]> git.proxmox.com Git - grub2.git/blame - ChangeLog
2008-11-12 Robert Millan <rmh@aybabtu.com>
[grub2.git] / ChangeLog
CommitLineData
76679cd3 12008-11-12 Robert Millan <rmh@aybabtu.com>
2
3 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `term/i386/vga_common.c'.
4 * conf/i386.rmk (pkglib_MODULES): Add `vga_text.mod'.
5 (vga_text_mod_SOURCES, vga_text_mod_CFLAGS, vga_text_mod_LDFLAGS): New
6 variables.
7 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
8 `term/i386/pc/console.c' with `term/i386/vga_common.c'.
9
10 * kern/i386/coreboot/init.c (grub_machine_init): Replace call to
11 grub_console_init() with call to grub_vga_text_init().
12 (grub_machine_fini): Replace call to
13 grub_console_fini() with call to grub_vga_text_fini() and
14 grub_at_keyboard_fini().
15
16 * include/grub/i386/pc/console.h: Include `<grub/term.h>'.
17 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
18 (grub_console_setcolorstate, grub_console_setcolor)
19 (grub_console_getcolor): New function prototypes.
20
21 * term/i386/pc/vga_text.c: Include `<grub/dl.h>'.
22 (grub_vga_text_getxy, grub_vga_text_gotoxy, grub_vga_text_cls)
23 (grub_vga_text_setcursor): Static-ize.
24 (grub_vga_text_term): New structure.
25 (GRUB_MOD_INIT(vga_text), GRUB_MOD_FINI(vga_text)): New functions.
26
27 * term/i386/pc/console.c: Remove `<grub/machine/machine.h>'.
28 (grub_console_cur_color, grub_console_standard_color)
29 (grub_console_normal_color, grub_console_highlight_color)
30 (map_char, grub_console_putchar, grub_console_getcharwidth)
31 (grub_console_getwh, grub_console_setcolorstate, grub_console_setcolor)
32 (grub_console_getcolor): Move from here ...
33 * term/i386/vga_common.c: ... to here (same function names).
34
95b841d3 352008-11-12 Robert Millan <rmh@aybabtu.com>
36
37 Use newly-added Multiboot support in coreboot.
38
39 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
40 `kern/i386/coreboot/mmap.c' with `kern/i386/multiboot_mmap.c'.
41
42 * kern/i386/coreboot/startup.S: Enable Multiboot header, fix its
43 alignment, set `MULTIBOOT_MEMORY_INFO' flag.
44 (codestart): Store the MBI in `startup_multiboot_info' when we're
45 being loaded using Multiboot.
46
47 * kern/i386/coreboot/init.c (grub_machine_init): Move
48 grub_at_keyboard_init() call to beginning of function (useful for
49 debugging). Call grub_machine_mmap_init() before attempting to use
50 grub_machine_mmap_iterate().
51 (grub_lower_mem, grub_upper_mem): Move from here ...
52 * kern/i386/multiboot_mmap.c (grub_lower_mem, grub_upper_mem): ... to
53 here (new file).
54
55 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_init): New
56 function prototype.
57
761ca975 582008-11-12 Robert Millan <rmh@aybabtu.com>
59
60 Fix a regression introduced by the at_keyboard.mod split. Because
61 some terminals are default on some platforms and non-default on
62 others, the first terminal being registered determines which is
63 going to be default.
64
65 * kern/term.c (grub_term_register_input): If this is the first
66 terminal being registered, set it as the current one.
67 (grub_term_register_output): Likewise.
68
69 * term/efi/console.c (grub_console_init): Do not call
70 grub_term_set_current_output() or grub_term_set_current_input().
71 * term/ieee1275/ofconsole.c (grub_console_init): Likewise.
72 * term/i386/pc/console.c (grub_console_init): Likewise.
73 (grub_console_fini): Do not call grub_term_set_current_input()
74 (but leave grub_term_set_current_output() to restore text mode).
75
6c529df7 762008-11-10 Robert Millan <rmh@aybabtu.com>
77
78 * util/grub.d/00_header.in: Add backward compatibility check for
79 versions of terminal.mod that don't understand `terminal_input' or
80 `terminal_output'.
81
132e4113 822008-11-09 Robert Millan <rmh@aybabtu.com>
83
84 * commands/terminal.c (GRUB_MOD_FINI(terminal)): Unregister
85 `terminal_input' / `terminal_output', not `terminal'.
86
ac293d50 872008-11-08 Robert Millan <rmh@aybabtu.com>
88
89 * Makefile.in (include_DATA): Fix srcdir=. assumption.
2a9c5940 90 (DISTCLEANFILES): Add `build_env.mk'.
ac293d50 91
0025933a 922008-11-08 Robert Millan <rmh@aybabtu.com>
93
94 * term/i386/pc/vesafb.c (grub_vesafb_term): Change type to
dba3f844 95 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
0025933a 96 members. Update all users.
97 * util/console.c (grub_ncurses_term): Split in ...
98 (grub_ncurses_term_input): ... this, and ...
99 (grub_ncurses_term_output): ... this. Update all users.
dcb6fa0a 100 * term/ieee1275/ofconsole.c: Remove stale `#endif'.
0025933a 101
37c86336 1022008-11-08 Robert Millan <rmh@aybabtu.com>
103
104 * Makefile.in (PKGLIB): Add $(pkglib_BUILDDIR).
105 (PKGDATA): Add $(pkgdata_SRCDIR).
106 (pkglib_BUILDDIR): New variable.
107 (pkgdata_SRCDIR): New variable.
108 (build_env.mk): New target.
109 (include_DATA): New variable.
110 (install-local): Install $(include_DATA) files in $(includedir).
111
b6c15a2d 1122008-11-07 Pavel Roskin <proski@gnu.org>
113
d99d46f1 114 * gendistlist.sh: Use C locale for sorting to ensure consistent
115 output on all systems.
116
b6c15a2d 117 * util/grub.d/00_header.in: Remove incorrect space before
118 "serial".
119
c32ee8c9 1202008-11-07 Robert Millan <rmh@aybabtu.com>
121
122 * include/multiboot2.h (struct multiboot_header): Add `flags' member as
123 per specification.
124 * loader/multiboot2.c (grub_multiboot2): Fix Multiboot2 header check.
125 * loader/multiboot_loader.c (find_multi_boot2_header): New function
126 (based on find_multi_boot1_header).
127 (grub_rescue_cmd_multiboot_loader): Check for Multiboot2 header,
128 using find_multi_boot2_header(), and abort if neither Multiboot or
129 Multiboot headers were found.
130
651c29b7 1312008-11-07 Robert Millan <rmh@aybabtu.com>
132
133 Modularize at_keyboard.mod:
134
135 * conf/i386.rmk (pkglib_MODULES): Add `at_keyboard.mod'.
136 (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS)
137 (at_keyboard_mod_LDFLAGS): New variables.
138
139 Actual terminal split:
140
141 * include/grub/term.h (struct grub_term): Split in ...
142 (struct grub_term_input): ... this, and ...
143 (struct grub_term_output): ... this. Update all users.
144 (grub_term_set_current): Split in ...
145 (grub_term_set_current_input): ... this, and ...
146 (grub_term_set_current_output): ... this.
147 (grub_term_get_current): Split in ...
148 (grub_term_get_current_input): ... this, and ...
149 (grub_term_get_current_output): ... this.
150 (grub_term_register): Split in ...
151 (grub_term_register_input): ... this, and ...
152 (grub_term_register_output): ... this.
153 (grub_term_unregister): Split in ...
154 (grub_term_unregister_input): ... this, and ...
155 (grub_term_unregister_output): ... this.
156 (grub_term_iterate): Split in ...
157 (grub_term_iterate_input): ... this, and ...
158 (grub_term_iterate_output): ... this.
159
160 * kern/term.c (grub_term_list): Split in ...
161 (grub_term_list_input): ... this, and ...
162 (grub_term_list_output): ... this. Update all users.
163 (grub_cur_term): Split in ...
164 (grub_cur_term_input): ... this, and ...
165 (grub_cur_term_output): ... this. Update all users.
166 (grub_term_set_current): Split in ...
167 (grub_term_set_current_input): ... this, and ...
168 (grub_term_set_current_output): ... this.
169 (grub_term_get_current): Split in ...
170 (grub_term_get_current_input): ... this, and ...
171 (grub_term_get_current_output): ... this.
172 (grub_term_register): Split in ...
173 (grub_term_register_input): ... this, and ...
174 (grub_term_register_output): ... this.
175 (grub_term_unregister): Split in ...
176 (grub_term_unregister_input): ... this, and ...
177 (grub_term_unregister_output): ... this.
178 (grub_term_iterate): Split in ...
179 (grub_term_iterate_input): ... this, and ...
180 (grub_term_iterate_output): ... this.
181
182 * kern/misc.c (grub_abort): Split use of grub_term_get_current() into
183 a check for input and one for output (and only attempt to get keys
184 from user when input works).
185
186 * util/grub-probe.c (grub_term_get_current): Split in ...
187 (grub_term_get_current_input): ... this, and ...
188 (grub_term_get_current_output): ... this.
189 * util/grub-fstest.c: Likewise.
190 * util/i386/pc/grub-setup.c: Likewise.
191 * util/grub-editenv.c: Likewise.
192
193 Portability adjustments:
194
195 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Remove
196 `term/i386/pc/at_keyboard.c'.
197 * kern/ieee1275/init.c [__i386__] (grub_machine_init): Remove call to
198 grub_keyboard_controller_init() (now handled by terminal .init).
199 * kern/i386/coreboot/init.c (grub_machine_init): Add call to
200 grub_at_keyboard_init().
201 * include/grub/i386/ieee1275/console.h (grub_keyboard_controller_init)
202 (grub_console_checkkey, grub_console_getkey): Remove (now provided by
203 at_keyboard.mod via input terminal interface).
204 * include/grub/i386/coreboot/console.h: Convert into a stub for
205 `<grub/i386/pc/console.h>'.
206
207 Migrate full terminals to new API:
208
209 * term/efi/console.c (grub_console_term): Split into ...
210 (grub_console_term_input): ... this, and ...
211 (grub_console_term_output): ... this. Update all users.
212 * term/ieee1275/ofconsole.c: Remove __i386__ hack.
213 (grub_ofconsole_init): Split into ...
214 (grub_ofconsole_init_input): ... this, and ...
215 (grub_ofconsole_init_output): ... this.
216 (grub_ofconsole_term): Split into ...
217 (grub_ofconsole_term_input): ... this, and ...
218 (grub_ofconsole_term_output): ... this. Update all users.
219 * term/i386/pc/serial.c (grub_serial_term): Split into ...
220 (grub_serial_term_input): ... this, and ...
221 (grub_serial_term_output): ... this. Update all users.
222 * term/i386/pc/console.c (grub_console_term): Split into ...
223 (grub_console_term_input): ... this, and ...
224 (grub_console_term_output): ... this. Update all users.
225 (grub_console_term_input): Only enable it on PC/BIOS platform.
226 (grub_console_init): Remove grub_keyboard_controller_init() call.
227
228 Migrate input terminals to new API:
229
230 * term/i386/pc/at_keyboard.c: Replace `cpu' and `machine' with
231 `i386' and `i386/pc' to enable build on x86_64 (this driver is
232 i386-specific anyway).
233 (grub_console_checkkey): Rename to ...
234 (grub_at_keyboard_checkkey): ... this. Static-ize. Update all
235 users.
236 (grub_keyboard_controller_orig): New variable.
237 (grub_console_getkey): Rename to ...
238 (grub_at_keyboard_getkey): ... this. Static-ize. Update all
239 users.
240 (grub_keyboard_controller_init): Static-ize. Save original
241 controller value so that it can be restored ...
242 (grub_keyboard_controller_fini): ... here (new function).
243 (grub_at_keyboard_term): New structure.
244 (GRUB_MOD_INIT(at_keyboard), GRUB_MOD_FINI(at_keyboard)): New
245 functions.
246
247 Migrate output terminals to new API:
248
249 * term/i386/pc/vga.c (grub_vga_term): Change type to
250 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
251 members. Update all users.
252 * term/gfxterm.c (grub_video_term): Change type to
253 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
254 members. Update all users.
255 * include/grub/i386/pc/console.h (grub_console_checkkey)
256 (grub_console_getkey): Do not export (no longer needed by gfxterm,
257 etc).
258
259 Migrate `terminal' command and userland tools to new API:
260
261 * commands/terminal.c (grub_cmd_terminal): Split into ...
262 (grub_cmd_terminal_input): ... this, and ...
263 (grub_cmd_terminal_output): ... this.
264 (GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands:
265 `terminal_input' and `terminal_output'.
266 * util/grub.d/00_header.in: Adjust `terminal' calls to new
267 `terminal_input' / `terminal_output' API.
268 * util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and
269 ${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user
270 provided ${GRUB_TERMINAL}, convert it).
271
96e5d876 2722008-11-04 Robert Millan <rmh@aybabtu.com>
273
274 * util/grub.d/10_freebsd.in: New file. Generate grub configuration
275 for FreeBSD.
276 * conf/common.rmk (grub-mkconfig_SCRIPTS): Add 10_freebsd.
277
556f3775 2782008-11-03 Bean <bean123ch@gmail.com>
279
280 * kern/elf.c (grub_elf32_load): Revert to previous code.
281 (grub_elf64_load): Likewise.
282
283 * loader/i386/bsd.c (grub_bsd_elf32_hook): Change return address.
284
926b9823 2852008-11-01 Robert Millan <rmh@aybabtu.com>
286
287 * Makefile.in (CPPFLAGS): Fix builddir=. assumption.
288 (TARGET_CPPFLAGS): Likewise.
289 * genmk.rb (mod_src): Fix builddir=. and srcdir=. assumptions.
290
1432e958 2912008-11-01 Carles Pina i Estany <carles@pina.cat>
292
293 * normal/menu.c (run_menu): Add Previous and Next Page keys in menu.
294
dba3f844 2952008-10-29 Guillem Jover <guillem.jover@nokia.com>
de4fa71c 296
297 * disk/lvm.c (grub_lvm_scan_device): Fix error recovery by delaying the
298 addition of objects until the code is not going to be able to fail.
299
dba3f844 3002008-10-29 Guillem Jover <guillem.jover@nokia.com>
b7279447 301
302 * disk/lvm.c (grub_lvm_scan_device): Fix possible NULL value handling
303 (add a missing NULL check, and correct them by moving the pointer
304 operations after the actual check).
305
7ab28c21 3062008-10-29 Robert Millan <rmh@aybabtu.com>
307
308 * util/i386/pc/grub-install.in: Handle empty string as output from
309 make_system_path_relative_to_its_root().
310
1b7748eb 3112008-10-05 Hans Lambermont <hans@lambermont.dyndns.org>
312
313 * disk/lvm.c (grub_lvm_scan_device): Allocate buffer space for the
314 circular metadata worst case scenario. If the metadata is circular
315 then copy the wrap in place.
316 * include/grub/lvm.h: Add GRUB_LVM_MDA_HEADER_SIZE, from the LVM2
317 project lib/format_text/layout.h
318 Circular metadata bug found and patch debugged by Jan Derk Gerlings.
319
c9618ab2 3202008-10-03 Felix Zielcke <fzielcke@z-51.de>
321
7a36edca 322 * util/i386/pc/grub-install.in: Source grub-mkconfig_lib instead of update-grub_lib.
c9618ab2 323
bf981c62 3242008-10-03 Felix Zielcke <fzielcke@z-51.de>
325
326 * util/update-grub_lib.in: Mention filename in warning message.
327
6d994591 3282008-09-29 Felix Zielcke <fzielcke@z-51.de>
329
330 * NEWS: Update for rename of update-grub to grub-mkconfig.
331
18ade780 3322008-09-29 Felix Zielcke <fzielcke@z-51.de>
333
334 * util/update-grub_lib.in: Copy to ...
335 * util/grub-mkconfig_lib.in: ... this. Update all users.
336 * util/update-grub_lib.in: Make it a stub to `grub-mkconfigig_lib.in'.
337 * util/update-grub.in: Rename to ...
338 * util/grub-mkconfig.in: ... this. Update all users. Remove `-y'
339 option. Add `--output' option to allow users to specify the generated
340 configuration file. Default to stdout.
341 (update_grub_dir): Rename to ...
342 (grub_mkconfig_dir): ... this.
343 (grub_cfg): Default to an empty string.
344 * conf/common.rmk (update-grub): Rename to ...
345 (grub-mkconfig): ... this.
346 (update-grub_lib): Copy to ...
347 (grub-mkconfig_lib): ... this.
348 (update-grub_SCRIPTS): Copy to ...
349 (grub-mkconfig_SCRIPTS): ... this. Update all users.
350 (update-grub_DATA): Rename to ...
351 (grub-mkconfig_DATA): ... this.
352
556ce6ac 3532008-09-28 Robert Millan <rmh@aybabtu.com>
354
355 * fs/iso9660.c (struct grub_iso9660_primary_voldesc): Rename `created'
356 to `modified'. Add the real `created' field.
357 (grub_iso9660_uuid): Use `modified' rather than `created' for
358 constructing the UUID.
359
3602008-09-28 Felix Zielcke <fzielcke@z-51.de>
eb079ba9 361
362 fs/jfs.c (grub_jfs_find_file): Treat multiple slashes like one.
363 Based on code from Tomas Ebenlendr <ebik@ucw.cz>.
364
92274e85 3652008-09-28 Bean <bean123ch@gmail.com>
366
367 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a bug in the previous patch.
368 Thanks to Christian Franke for finding this bug.
369
add6f17a 3702008-09-25 Robert Millan <rmh@aybabtu.com>
371
372 * util/grub-mkdevicemap.c (make_device_map): Actually replace all
373 instances of grub_util_get_disk_name() (see previous commit).
374
d2a367b8 3752008-09-25 Robert Millan <rmh@aybabtu.com>
376
377 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Remove
378 `util/i386/get_disk_name.c'.
379 * conf/i386-efi.rmk: Likewise.
380 * conf/x86_64-efi.rmk: Likewise.
381 * conf/i386-coreboot.rmk: Likewise.
382 * conf/i386-ieee1275.rmk: Likewise.
383 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Remove
384 `util/ieee1275/get_disk_name.c'.
385 * include/grub/util/misc.h (grub_util_get_disk_name): Remove.
386 * util/ieee1275/get_disk_name.c: Remove file.
387 * util/i386/get_disk_name.c: Remove file.
388 * util/grub-mkdevicemap.c (make_device_map): Back to hardcoding
389 "hd%d" for device.map entries, rather than using
390 grub_util_get_disk_name().
391
81a06771 3922008-09-24 Carles Pina i Estany <carles@pina.cat>
b0c301f7 393
394 * disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Fix `unused parameter'
395 warning.
396 * commands/i386/pc/pxecmd.c (dmraid_nvidia): Likewise.
397
5a004279 3982008-09-24 Carles Pina i Estany <carles@pina.cat>
399
400 * include/grub/i386/pc/console.h (GRUB_TERM_NPAGE):
401 Changed to 0x5100.
402 (GRUB_TERM_PPAGE): Changed to 0x4900.
403
397093d3 4042008-09-24 Robert Millan <rmh@aybabtu.com>
405
406 * include/grub/powerpc/ieee1275/console.h (GRUB_CONSOLE_KEY_*): Remove
407 macros (they were i386-pc specific).
408 * include/grub/sparc64/ieee1275/console.h: Likewise.
409 * include/grub/efi/console.h: Likewise.
410
a91b6c7c 4112008-09-22 Bean <bean123ch@gmail.com>
412
413 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a rare case where $BITMAP is
414 resident and in attribute list.
415
416 * include/grub/ntfs.h (BMP_LEN): Removed.
417
c40fd116 4182008-09-22 Bean <bean123ch@gmail.com>
419
81a06771 420 * disk/ata.c (grub_atapi_open): Initialize devfnd, no need to set
c40fd116 421 scsi->name and scsi->luns, as they will be set in grub_scsi_open.
422
423 * disk/scsi.c (grub_scsi_open): Don't call p->close (scsi) here when
424 error occurs, as grub_disk_open will call grub_disk_close, which will
425 call p->close (scsi).
426
81a06771 4272008-09-21 Felix Zielcke <fzielcke@z-51.de>
eb73121d 428
429 * configure.ac (AC_INIT): Quote `GRUB' string and version number.
430 (AC_PREREQ): Bumped to 2.59.
431 (AC_TRY_COMPILE): Replace obsolete macro with ...
432 (AC_COMPILE_IFELSE): ... this.
433 * aclocal.m4 (AC_TRY_LINK): Replace obsolete macro with ...
434 (AC_LINK_IFELSE): ... this.
435
5dc43410 4362008-09-21 Felix Zielcke <fzielcke@z-51.de>
437
438 * autogen.sh: Add a call to `gendistlist.sh'.
439
9035dce4 4402008-09-19 Christian Franke <franke@computer.org>
441
442 * aclocal.m4 (grub_CHECK_ENABLE_EXECUTE_STACK): New function.
443 * configure.ac: Call grub_CHECK_ENABLE_EXECUTE_STACK.
444 * include/grub/misc.h [NEED_ENABLE_EXECUTE_STACK]:
445 Export __enable_execute_stack() to modules.
446 * kern/misc.c [NEED_ENABLE_EXECUTE_STACK] (__enable_execute_stack):
447 New function.
448
7fd75377 4492008-09-09 Felix Zielcke <fzielcke@z-51.de>
450
040030b3 451 * Makefile.in (RMKFILES): Add `i386.rmk' and `x86_64-efi.rmk'.
452 Sort the list.
453
4542008-09-09 Felix Zielcke <fzielcke@z-51.de>
455
456 * util/hostdisk.c: Replace #include <grub/util/biosdisk.h> with
7fd75377 457 #include <grub/util/hostdisk.h>.
458
89d5ffcf 4592008-09-08 Robert Millan <rmh@aybabtu.com>
460
461 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Skip
462 segments when their filesz is zero (grub_file_read() interprets
81a06771 463 zero-size as "read until EOF", which results in memory corruption).
89d5ffcf 464 Use `lowest_segment' rather than 0 for calculating the current
465 segment load address.
466
40da438f 4672008-09-08 Robert Millan <rmh@aybabtu.com>
468
469 * util/hostdisk.c (open_device): Replace a grub_util_info() call
470 with grub_dprintf("hostdisk", ...), as it was so verbose that it
471 clobbered useful information.
472
ddbf5556 4732008-09-08 Robert Millan <rmh@aybabtu.com>
474
475 * include/grub/util/biosdisk.h: Move to ...
476 * include/grub/util/hostdisk.h: ... here. Update all users.
477 * util/biosdisk.c: Move to ...
478 * util/hostdisk.c: ... here. Update all users.
479
783d0f48 4802008-09-07 Robert Millan <rmh@aybabtu.com>
481
482 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): Remove
483 variables.
484 (grub_multiboot): Move `mbi' allocation upwards, so that mmap address
485 and length can be stored directly in the `mbi->mmap_addr' and
486 `mbi->mmap_length' struct fields.
487
548e2ea5 4882008-09-07 Robert Millan <rmh@aybabtu.com>
489
490 * conf/i386.rmk: New file. Provides declaration for building
491 `cpuid.mod'.
492 * conf/i386-pc.rmk (pkglib_MODULES): Remove `cpuid.mod'.
493 (cpuid_mod_SOURCES, cpuid_mod_CFLAGS, cpuid_mod_LDFLAGS): Remove
494 variables.
495 Include `conf/i386.mk'.
496 * conf/i386-efi.rmk: Likewise.
497 * conf/x86_64-efi.rmk: Likewise.
498 * conf/i386-coreboot.rmk: Likewise.
499 * conf/i386-ieee1275.rmk: Likewise.
500
0ea85a37 5012008-09-07 Vesa Jääskeläinen <chaac@nic.fi>
502
503 Based on patch created by Colin D Bennett <colin@gibibit.com>.
504 Adds optimization support for BGR based modes.
505
506 * include/grub/i386/pc/vbeblit.h (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8) Removed.
507 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
508 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
509 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
510 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
511 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
512 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
513 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
514 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
515 (grub_video_i386_vbeblit_index_index): Likewise.
516 (grub_video_i386_vbeblit_replace_directN): Added.
517 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
518 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
519 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
520 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
521 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
522 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
81a06771 523 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
0ea85a37 524 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
525 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
526 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
527 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
528 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
529 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
530
531 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8) Removed.
532 (grub_video_i386_vbefill_R8G8B8): Likewise.
533 (grub_video_i386_vbefill_index): Likewise.
534 (grub_video_i386_vbefill_direct32): Added.
535 (grub_video_i386_vbefill_direct24): Likewise.
536 (grub_video_i386_vbefill_direct16): Likewise.
537 (grub_video_i386_vbefill_direct8): Likewise.
538
81a06771 539 * include/grub/video.h (grub_video_blit_format): Removed
0ea85a37 540 GRUB_VIDEO_BLIT_FORMAT_R8G8B8A8, GRUB_VIDEO_BLIT_FORMAT_R8G8B8.
541 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_RGBA_8888,
542 GRUB_VIDEO_BLIT_FORMAT_BGRA_8888, GRUB_VIDEO_BLIT_FORMAT_RGB_888,
543 GRUB_VIDEO_BLIT_FORMAT_BGR_888, GRUB_VIDEO_BLIT_FORMAT_RGB_565,
544 GRUB_VIDEO_BLIT_FORMAT_BGR_565.
81a06771 545
0ea85a37 546 * video/video.c (grub_video_get_blit_format): Updated to use new
547 blit formats. Added handling for 16 bit color modes.
81a06771 548
549 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Updated to use new
0ea85a37 550 fillers.
551 (common_blitter): Updated to use new blitters.
552
553 * video/i386/pc/vbeblit.c (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8):
554 Removed.
555 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
556 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
557 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
558 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
559 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
560 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
561 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
562 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
563 (grub_video_i386_vbeblit_index_index): Likewise.
564 (grub_video_i386_vbeblit_replace_directN): Added.
565 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
566 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
567 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
568 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
569 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
570 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
571 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
572 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
573 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
574 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
575 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
576 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
577 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
81a06771 578
0ea85a37 579 * video/i386/pc/vbefill.c (grub_video_i386_vbefill_R8G8B8A8): Removed.
580 (grub_video_i386_vbefill_R8G8B8): Likewise.
581 (grub_video_i386_vbefill_index): Likewise.
582 (grub_video_i386_vbefill_direct32): Added.
583 (grub_video_i386_vbefill_direct24): Likewise.
584 (grub_video_i386_vbefill_direct16): Likewise.
585 (grub_video_i386_vbefill_direct8): Likewise.
81a06771 586
0ea85a37 587 * video/readers/jpeg.c (grub_jpeg_decode_sos): Adapt to new blitter
588 types.
81a06771 589
0ea85a37 590 * video/readers/tga.c (grub_video_reader_tga): Adapt to new blitter
591 types.
81a06771 592
0ea85a37 593 * video/readers/png.c (grub_png_decode_image_header): Adapt to new
594 blitter types.
81a06771 595
0ea85a37 596 * video/bitmap.c (grub_video_bitmap_create): Adapt to new blitter
597 types.
598
e8a83df6 5992008-09-06 Felix Zielcke <fzielcke@z-51.de>
600
601 * disk/raid.c (insert_array): Set `array->chunk_size' to 64 for
602 RAID level 1.
603
6bcd8ee5 6042008-09-06 Felix Zielcke <fzielcke@z-51.de>
c375ae58 605
6bcd8ee5 606 * fs/iso9660.c (grub_iso9660_date): New structure.
607 (grub_iso9660_primary_voldesc): Add `grub_iso9660_date' member.
608 (grub_iso9660_uuid): New function.
c375ae58 609
59261157 6102008-09-05 Bean <bean123ch@gmail.com>
611
612 * fs/fshelp.c (grub_fshelp_find_file): Handle case insensitive names.
613
614 * fs/ntfs.c (list_file): Ignore names in DOS namespace, set the case
615 insensitive bit for names in Win32 and Win32 & DOS namespace.
616
617 * include/grub/fshelp.h (GRUB_FSHELP_CASE_INSENSITIVE): New macro.
618
619 * include/grub/types.h (LONG_MAX): Likewise.
620
58b6645a 6212008-09-04 Felix Zielcke <fzielcke@z-51.de>
622
4ee55921 623 * util/getroot.c: Include <config.h>.
624 (grub_util_get_grub_dev): Rewrite to use asprintf for mdraid devices,
625 add support for /dev/md/N devices and handle LVM double dash escaping.
626
6272008-09-04 Felix Zielcke <fzielcke@z-51.de>
628
629 * config.guess: Update to latest version from config git.
630 * config.sub: Likewise.
58b6645a 631
9124f65d 6322008-09-03 Robert Millan <rmh@aybabtu.com>
633
634 * disk/scsi.c (grub_scsi_open): Remove size limit when printing
635 `disk->total_sectors'.
636
81a06771 6372008-09-01 Colin D Bennett <colin@gibibit.com>
a0224a4e 638
639 * include/grub/normal.h: Fixed incorrect comment for
640 GRUB_COMMAND_FLAG_NO_ARG_PARSE.
641
81a06771 6422008-09-01 Colin D Bennett <colin@gibibit.com>
f0619958 643
644 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Replaced constant
645 values with defines.
646
647 * include/grub/i386/pc/vbe.h (GRUB_VBE_MODEATTR_SUPPORTED): Added.
648 (GRUB_VBE_MODEATTR_RESERVED_1): Likewise.
649 (GRUB_VBE_MODEATTR_BIOS_TTY_OUTPUT_SUPPORT): Likewise.
650 (GRUB_VBE_MODEATTR_COLOR): Likewise.
651 (GRUB_VBE_MODEATTR_GRAPHICS): Likewise.
652 (GRUB_VBE_MODEATTR_VGA_COMPATIBLE): Likewise.
653 (GRUB_VBE_MODEATTR_VGA_WINDOWED_AVAIL): Likewise.
654 (GRUB_VBE_MODEATTR_LFB_AVAIL): Likewise.
655 (GRUB_VBE_MODEATTR_DOUBLE_SCAN_AVAIL): Likewise.
656 (GRUB_VBE_MODEATTR_INTERLACED_AVAIL): Likewise.
657 (GRUB_VBE_MODEATTR_TRIPLE_BUF_AVAIL): Likewise.
658 (GRUB_VBE_MODEATTR_STEREO_AVAIL): Likewise.
659 (GRUB_VBE_MODEATTR_DUAL_DISPLAY_START): Likewise.
660 (GRUB_VBE_MEMORY_MODEL_TEXT): Likewise.
661 (GRUB_VBE_MEMORY_MODEL_CGA): Likewise.
662 (GRUB_VBE_MEMORY_MODEL_HERCULES): Likewise.
663 (GRUB_VBE_MEMORY_MODEL_PLANAR): Likewise.
664 (GRUB_VBE_MEMORY_MODEL_NONCHAIN4_256): Likewise.
665 (GRUB_VBE_MEMORY_MODEL_YUV): Likewise.
666
93d5cbf8 6672008-08-31 Robert Millan <rmh@aybabtu.com>
668
669 * loader/i386/pc/multiboot.c (grub_get_multiboot_mmap_len): Fix
670 declaration.
671 (grub_multiboot): Fix a few warnings.
672
21751d50 6732008-08-31 Robert Millan <rmh@aybabtu.com>
674
675 * loader/i386/pc/multiboot.c: Update comment not to say that
676 boot_device support is unimplemented.
677
e27a75c5 6782008-08-31 Robert Millan <rmh@aybabtu.com>
679
680 * loader/i386/pc/multiboot.c: Update comment not to say that a.out
681 or memory map support are unimplemented.
682
81a06771 6832008-08-31 Colin D Bennett <colin@gibibit.com>
64d2d53c 684
685 * util/i386/pc/grub-mkrescue.in: Support multiple overlay directories.
686
81a06771 6872008-08-31 Colin D Bennett <colin@gibibit.com>
c08a6c18 688
689 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Show VBE version and
690 total video memory in 'vbeinfo' output; show color format details for
691 each video mode.
692
7c5d8d95 6932008-08-30 Pavel Roskin <proski@gnu.org>
694
695 * util/genmoddep.c: Remove for real this time.
696 * DISTLIST: Remove util/genmoddep.c.
697
4cebd25a 6982008-08-30 Robert Millan <rmh@aybabtu.com>
699
700 * kern/i386/pc/startup.S (multiboot_header): Force 4-byte alignment
701 as required by Multiboot spec (it was already 4-byte aligned, but
702 only by chance).
703
b497a269 7042008-08-29 Pavel Roskin <proski@gnu.org>
705
e3925185 706 * kern/powerpc/ieee1275/crt0.S: Rename to ...
707 * kern/powerpc/ieee1275/startup.S: ... this.
708 * conf/powerpc-ieee1275.rmk: Adjust for the above.
709 * DISTLIST: Likewise.
710
b497a269 711 * kern/powerpc/ieee1275/crt0.S: Include grub/symbol.h and
712 grub/cpu/kernel.h. Add start label for consistency with other
713 platforms. Add grub_prefix immediately after start. Add jump
714 to the code after grub_prefix.
715 * include/grub/powerpc/kernel.h: Provide valid values for
716 GRUB_KERNEL_CPU_PREFIX and GRUB_KERNEL_CPU_DATA_END.
717
6e5a42fe 7182008-08-29 Bean <bean123ch@gmail.com>
719
720 * configure.ac: Change host_os to cygwin for mingw.
721 (asprintf): New check for function.
722
723 * include/grub/symbol.h: Replace #ifndef __CYGWIN__ with
724 #if ! defined (__CYGWIN__) && ! defined (__MINGW32__).
725
726 * include/grub/util/misc.h: #include <config.h> and <grub/types.h>,
81a06771 727 declare asprintf if HAVE_ASPRINTF is not set, declare fseeko, ftello,
6e5a42fe 728 sync, sleep and grub_util_get_disk_size for mingw.
729
730 * util/biosdisk.c (grub_util_biosdisk_open): Use grub_util_get_disk_size
731 to get size in mingw.
732 (open_device): Use flag O_BINARY if it's defined.
733 (find_root_device): Add dummy code for mingw.
734
735 * util/grub-mkdevicemap.c (get_floppy_disk_name): Return 0 for mingw.
736 (get_ide_disk_name): Return //./PHYSICALDRIVE%d for mingw.
737 (get_scsi_disk_name): Return 0 for mingw.
738
739 * util/hostfs.c: #include <grub/util/misc.h>.
740 (grub_hostfs_open): Use "rb" flag to open file, use
741 grub_util_get_disk_size to get disk size for mingw.
742
743 * util/misc.c: #include <windows.h> and <winioctl.h> in mingw.
744 (asprintf): New function if HAVE_ASPRINTF is not set.
745 (sync): New function for mingw.
746 (sleep): Likewise.
747 (grub_util_get_disk_size): Likewise.
748
ab3f2673 7492008-08-28 Pavel Roskin <proski@gnu.org>
750
751 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
752 kern/time.c.
753
1c282483 7542008-08-28 Robert Millan <rmh@aybabtu.com>
755
756 * util/biosdisk.c (find_grub_drive): Declare missing `i' variable.
757
678e849c 7582008-08-28 Robert Millan <rmh@aybabtu.com>
759
760 Change find_grub_drive() syntax so it doesn't prevent it from
761 detecting NULL names as errors.
762
763 * util/biosdisk.c (find_grub_drive): Move free slot search code
764 from here ...
765 (find_free_slot): ... to here.
766 (read_device_map): Use find_free_slot() to search for free slots.
767
965c75ca 7682008-08-27 Marco Gerards <marco@gnu.org>
769
770 * conf/common.rmk (pkglib_MODULES): Add scsi.mod.
771 (scsi_mod_SOURCES): New variable.
772 (scsi_mod_CFLAGS): Likewise
773 (scsi_mod_LDFLAGS): Likewise.
774
775 * disk/scsi.c: New file.
776
777 * include/grub/scsi.h: Likewise.
778
779 * include/grub/scsicmd.h: Likewise.
780
781 * disk/ata.c: Include <grub/scsi.h>.
782 (grub_atapi_packet): Do not use grub_ata_cmd, use registers
783 instead.
784 (grub_ata_iterate): Skip ATAPI devices.
785 (grub_ata_open): Only handle ATAPI devices.
786 (struct grub_atapi_read): Removed.
787 (grub_atapi_readsector): Likewise.
788 (grub_ata_read): No longer handle ATAPI devices.
789 (grub_ata_write): Likewise.
790 (grub_atapi_iterate): New function.
791 (grub_atapi_read): Likewise.
792 (grub_atapi_write): Likewise.
793 (grub_atapi_open): Likewise.
794 (grub_atapi_close): Likewise.
795 (grub_atapi_dev): New variable.
796 (GRUB_MOD_INIT(ata)): Register ATAPI as SCSI device.
797 (GRUB_MOD_FINI(ata)): Unregister ATAPI.
798
799 * include/grub/disk.h (enum grub_disk_dev_id): Add
800 `GRUB_DISK_DEVICE_SCSI_ID'.
801
c07ae501 8022008-08-26 Robert Millan <rmh@aybabtu.com>
803
804 * util/biosdisk.c (grub_util_biosdisk_open, open_device)
805 (grub_util_biosdisk_get_grub_dev): Make error messages a bit more
806 descriptive.
807
5ed20adc 8082008-08-23 Bean <bean123ch@gmail.com>
809
810 * conf/common.rmk (grub_probe_SOURCES): Add disk/mdraid_linux.c.
811 (grub_fstest_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
812 disk/mdraid_linux.c and disk/dmraid_nvidia.c and lib/crc.c.
813 (pkglib_MODULES): Add raid5rec.mod, raid6rec.mod, mdraid.mod and
814 dm_nv.mod.
815 (raid5rec_mod_SOURCES): New macro.
816 (raid5rec_mod_CFLAGS): Likewise.
817 (raid5rec_mod_LDFLAGS): Likewise.
818 (raid6rec_mod_SOURCES): Likewise.
819 (raid6rec_mod_CFLAGS): Likewise.
820 (raid6rec_mod_LDFLAGS): Likewise.
821 (mdraid_mod_SOURCES): Likewise.
822 (mdraid_mod_CFLAGS): Likewise.
823 (mdraid_mod_LDFLAGS): Likewise.
824 (dm_nv_mod_SOURCES): Likewise.
825 (dm_nv_mod_CFLAGS): Likewise.
826 (dm_nv_mod_LDFLAGS): Likewise.
827
828 * conf/i386-pc.rmk (grub_setup_SOURCES): Add disk/mdraid_linux.c.
829 (grub_emu_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
830 disk/mdraid_linux.c and disk/dmraid_nvidia.c.
831
832 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add disk/raid5_recover.c,
833 disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c.
834
835 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
836
837 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
838
839 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
840
841 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
842
843 * disk/raid5_recover.c: New file.
844
845 * disk/raid6_recover.c: Likewise.
846
847 * disk/mdraid_linux.c: Likewise.
848
849 * disk/dmraid_nvidia.c: Likewise.
850
851 * disk/i386/pc/biosdisk.c: Set total_sectors of cdrom device to
852 ULONG_MAX.
853
854 * disk/raid.c (grub_raid_open): Use the size of the smallest disk to
855 calculate the size of raid device.
856 (grub_raid_read): Simplify raid0 code. Support raid4, raid6 and four
857 different layout of raid5.
858 (grub_raid_scan_device): Remove code specific to mdraid.
859 (grub_raid_list): New variable.
860 (free_array): New function.
861 (grub_raid_register): Likewise.
862 (grub_raid_unregister): Likewise.
863 (grub_raid_rescan): Likewise.
864 (GRUB_MOD_INIT): Don't iterate device here.
865 (GRUB_MOD_FINI): Use free_array to release resource.
866
867 * include/grub/raid.h: Remove macro and structure specific to mdraid.
868 (grub_raid5_recover_func_t): New function variable type.
869 (grub_raid6_recover_func_t): Likewise.
870 (grub_raid5_recover_func): New variable.
871 (grub_raid6_recover_func): Likewise.
872 (grub_raid_register): New function.
873 (grub_raid_unregister): Likewise.
874 (grub_raid_rescan): Likewise.
875 (grub_raid_block_xor): Likewise.
876
877 * util/grub-fstest.c: Add #include <grub/raid.h> and <grub/lib/crc.h>.
878 (CMD_CRC): New macro.
879 (part): Removed.
880 (read_file): Handle device as well as file.
881 (cmd_crc): New function.
882 (fstest): Handle multiple disks.
883 (options): Remove part, raw and long, add root and diskcount.
884 (usage): Add crc, remove -p, -r, -l, add -r and -c.
dba3f844 885 (main): Find the first non option entry and ignore subsequent options,
5ed20adc 886 add handling for the new options, support multiple disks.
887
888 * util/grub-probe.c (probe): Add mdraid to abstraction_name.
889
29c18915 8902008-08-23 Bean <bean123ch@gmail.com>
891
892 * normal/x86_64/setjmp.S (grub_longjmp): Return 1 when val = 0.
893
894 * genfslist.sh: Ignore kernel.mod.
895
896 * genpartmaplist.sh: Likewise.
897
8415f261 8982008-08-23 Robert Millan <rmh@aybabtu.com>
899
900 * util/getroot.c (find_root_device): Skip anything that starts with
901 a dot, not just directories. This avoids things like /dev/.tmp.md0.
902
d5a7dc5b 9032008-08-22 Felix Zielcke <fzielcke@z-51.de>
81a06771 904
d5a7dc5b 905 * util/update-grub.in (GRUB_GFXMODE): Export variable.
906 * util/grub.d/00_header.in: Allow the administrator to change default
907 gfxmode via ${GRUB_GFXMODE}.
908
380cfbb4 9092008-08-21 Felix Zielcke <fzielcke@z-51.de>
910
911 * fs/ntfs.c (grub_ntfs_mount): Fix a memory leak.
912
c9baafe7 9132008-08-21 Robert Millan <rmh@aybabtu.com>
914
915 * loader/i386/linux.c: New file. Implements generic 32-bit Linux
916 loader.
917 * conf/i386-coreboot.rmk (_linux_mod_SOURCES): Replace
918 `loader/i386/pc/linux.c' with `loader/i386/linux.c'.
919
e290bef2 9202008-08-20 Carles Pina i Estany <carles@pina.cat>
921
922 * menu/normal.c (run_menu): Replace hardcoded numbers with macros
923 (16 for GRUB_TERM_UP and 14 for GRUB_TERM_DOWN)
924
f9dbfc96 9252008-08-19 Robert Millan <rmh@aybabtu.com>
926
927 * term/gfxterm.c (DEFAULT_CURSOR_COLOR): Remove.
928 (struct grub_virtual_screen): Remove `cursor_color'.
929 (grub_virtual_screen_setup): Remove `virtual_screen.cursor_color'
930 initialization.
931 (write_cursor): Use `virtual_screen.fg_color' to draw cursor.
932
dd6bd6ab 9332008-08-18 Robert Millan <rmh@aybabtu.com>
934
935 Unify (identical) linux_normal.c files.
936 * loader/i386/efi/linux_normal.c: Move from here ...
937 * loader/linux_normal.c: ... to here. Update all users.
938 * loader/i386/pc/linux_normal.c: Delete. Update all users.
939 * loader/i386/ieee1275/linux_normal.c: Likewise.
940
7f42f83e 9412008-08-18 Robert Millan <rmh@aybabtu.com>
942
943 * include/grub/i386/linux.h (LINUX_LOADER_ID_LILO)
944 (LINUX_LOADER_ID_LOADLIN, LINUX_LOADER_ID_BOOTSECT)
945 (LINUX_LOADER_ID_SYSLINUX, LINUX_LOADER_ID_ETHERBOOT)
946 (LINUX_LOADER_ID_ELILO, LINUX_LOADER_ID_GRUB, LINUX_LOADER_ID_UBOOT)
947 (LINUX_LOADER_ID_XEN, LINUX_LOADER_ID_GUJIN, LINUX_LOADER_ID_QEMU):
948 New macros.
949 (GRUB_LINUX_CL_OFFSET, GRUB_LINUX_CL_END_OFFSET): Move from here ...
950 * loader/i386/pc/linux.c (GRUB_LINUX_CL_OFFSET)
951 (GRUB_LINUX_CL_END_OFFSET): ... to here.
952 * loader/i386/efi/linux.c (GRUB_EFI_CL_OFFSET): Rename to ...
953 (GRUB_LINUX_CL_OFFSET): ... this. Update all users.
954 (GRUB_EFI_CL_END_OFFSET): Rename to ...
955 (GRUB_LINUX_CL_END_OFFSET): ... this. Update all users.
956 (grub_rescue_cmd_linux): Macroify `type_of_loader' initialization.
957 Initialize `params->video_cursor_x' and `params->video_cursor_y'
958 portably using grub_getxy().
959 Replace `-EFI' with `-bzImage' in boot message.
960
38487ddb 9612008-08-17 Robert Millan <rmh@aybabtu.com>
962
963 * include/grub/x86_64/kernel.h: New file (<grub/i386/kernel.h> stub).
964
deceb3ec 9652008-08-17 Robert Millan <rmh@aybabtu.com>
966
967 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pc/mmap.c'.
968
969 * include/grub/i386/pc/init.h (GRUB_MACHINE_MEMORY_AVAILABLE)
970 (GRUB_MACHINE_MEMORY_RESERVED): New macros.
971 (grub_machine_mmap_iterate): New function declaration.
972 * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): New
973 structure.
974 (GRUB_MMAP_MEMORY_AVAILABLE, GRUB_MMAP_MEMORY_RESERVED): New
975 macros.
976
977 * kern/i386/pc/init.c (grub_machine_init): Replace hardcoded region
978 type check value with `GRUB_MACHINE_MEMORY_AVAILABLE'.
979 Move e820 parsing from here ...
980 * kern/i386/pc/mmap.c: New file.
981 (grub_machine_mmap_iterate): ... to here.
982
983 * include/grub/i386/coreboot/memory.h: Remove `<grub/err.h>'.
984 (GRUB_LINUXBIOS_MEMORY_AVAILABLE): Rename (for consistency) to ...
985 (GRUB_MACHINE_MEMORY_AVAILABLE): ... this. Update all users.
986 (grub_available_iterate): Redeclare to return `void', and redeclare
987 its hook to use grub_uint64_t as addr and size parameters, and rename
988 to ...
989 (grub_machine_mmap_iterate): ... this. Update all users.
990
991 * kern/i386/coreboot/mmap.c (grub_mmap_iterate): Simplify parser loop
992 to make it more readable. Rename to ...
993 (grub_machine_mmap_iterate): ... this.
994
995 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): New variables.
996 (grub_get_multiboot_mmap_len, grub_fill_multiboot_mmap): New functions.
997 (grub_multiboot): Allocate an extra region after the payload, and fill
998 it with a Multiboot memory map. Adjust a.out loader to calculate size
999 with the extra space.
1000 (grub_multiboot_load_elf32): Adjust elf32 loader to calculate size
1001 with the extra space.
1002
f8aa0f43 10032008-08-17 Carles Pina i Estany <carles@pina.cat>
1004
9807deb9 1005 * menu/normal.c (run_menu): Add Home and End keys in grub-menu.
f8aa0f43 1006
605f5bb6 10072008-08-17 Felix Zielcke <fzielcke@z-51.de>
1008
1009 * gendistlist.sh: Add *.y, *.tex, *.texi, grub.cfg, README, *.sc,
1010 mdate-sh to the list `find' searches for.
1011 * DISTLIST: Regenerated.
1012
210db6c6 10132008-08-16 Felix Zielcke <fzielcke@z-51.de>
1014
1015 * gendistlist.sh (EXTRA_DISTFILES): Remove gensymlist.sh,
1016 genkernsyms.sh. Add geninit.sh, geninitheader.sh, genkernsyms.sh.in,
48cdbfd4 1017 genmoddep.awk, gensymlist.sh.in.
1018 (DISTDIRS): Add bus, docs, hook, lib.
210db6c6 1019 * DISTLIST: Regenerated.
48cdbfd4 1020 * NEWS: Add cygwin support and change the `os-prober' entry a bit.
210db6c6 1021
1082b929 10222008-08-16 Robert Millan <rmh@aybabtu.com>
1023
1024 * disk/raid.c (grub_raid_init): Handle/report errors set by
1025 grub_device_iterate().
1026 * disk/lvm.c (grub_lvm_init): Likewise.
1027
42ce5170 10282008-08-15 Bean <bean123ch@gmail.com>
1029
1030 * conf/i386-pc.rmk (pkglib_MODULES): Add datetime.mod, date.mod
1031 and datehook.mod.
1032 (datetime_mod_SOURCES): New macro.
1033 (datetime_mod_CFLAGS): Likewise.
1034 (datetime_mod_LDFLAGS): Likewise.
1035 (date_mod_SOURCES): Likewise.
1036 (date_mod_CFLAGS): Likewise.
1037 (date_mod_LDFLAGS): Likewise.
1038 (datehook_mod_SOURCES): Likewise.
1039 (datehook_mod_CFLAGS): Likewise.
1040 (datehook_mod_LDFLAGS): Likewise.
1041
1042 * conf/i386-coreboot.rmk (pkglib_MODULES): Add datetime.mod, date.mod
1043 and datehook.mod.
1044 (datetime_mod_SOURCES): New macro.
1045 (datetime_mod_CFLAGS): Likewise.
1046 (datetime_mod_LDFLAGS): Likewise.
1047 (date_mod_SOURCES): Likewise.
1048 (date_mod_CFLAGS): Likewise.
1049 (date_mod_LDFLAGS): Likewise.
1050 (datehook_mod_SOURCES): Likewise.
1051 (datehook_mod_CFLAGS): Likewise.
1052 (datehook_mod_LDFLAGS): Likewise.
1053
1054 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add datetime.mod, date.mod
1055 and datehook.mod.
1056 (datetime_mod_SOURCES): New macro.
1057 (datetime_mod_CFLAGS): Likewise.
1058 (datetime_mod_LDFLAGS): Likewise.
1059 (date_mod_SOURCES): Likewise.
1060 (date_mod_CFLAGS): Likewise.
1061 (date_mod_LDFLAGS): Likewise.
1062 (datehook_mod_SOURCES): Likewise.
1063 (datehook_mod_CFLAGS): Likewise.
1064 (datehook_mod_LDFLAGS): Likewise.
1065
1066 * conf/i386-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
1067 and datehook.mod.
1068 (datetime_mod_SOURCES): New macro.
1069 (datetime_mod_CFLAGS): Likewise.
1070 (datetime_mod_LDFLAGS): Likewise.
1071 (date_mod_SOURCES): Likewise.
1072 (date_mod_CFLAGS): Likewise.
1073 (date_mod_LDFLAGS): Likewise.
1074 (datehook_mod_SOURCES): Likewise.
1075 (datehook_mod_CFLAGS): Likewise.
1076 (datehook_mod_LDFLAGS): Likewise.
1077
1078 * conf/x86_64-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
1079 and datehook.mod.
1080 (datetime_mod_SOURCES): New macro.
1081 (datetime_mod_CFLAGS): Likewise.
1082 (datetime_mod_LDFLAGS): Likewise.
1083 (date_mod_SOURCES): Likewise.
1084 (date_mod_CFLAGS): Likewise.
1085 (date_mod_LDFLAGS): Likewise.
1086 (datehook_mod_SOURCES): Likewise.
1087 (datehook_mod_CFLAGS): Likewise.
1088 (datehook_mod_LDFLAGS): Likewise.
1089
1090 * kern/env.c (grub_env_insert): Fix a bug in prevp pointer.
1091
1092 * commands/date.c: New file.
1093
1094 * hook/datehook.c: Likewise.
1095
1096 * include/grub/lib/datetime.h: Likewise.
1097
1098 * include/grub/i386/cmos.h: Likewise.
1099
1100 * lib/datetime.c: Likewise.
1101
1102 * lib/i386/datetime.c: Likewise.
1103
1104 * lib/efi/datetime.c: Likewise.
1105
0e9242da 11062008-08-14 Robert Millan <rmh@aybabtu.com>
1107
1108 * conf/common.rmk (bin_UTILITIES): Add `grub-mkelfimage'.
1109 (grub_mkelfimage_SOURCES): New variable.
1110 (util/elf/grub-mkimage.c_DEPENDENCIES): Likewise.
1111
1112 * conf/i386-coreboot.rmk (bin_UTILITIES, grub_mkimage_SOURCES)
1113 (grub_mkimage_LDFLAGS, util/elf/grub-mkimage.c_DEPENDENCIES): Remove.
1114 * conf/powerpc-ieee1275.rmk: Likewise.
1115 * conf/i386-ieee1275.rmk: Likewise.
1116
1117 * kern/ieee1275/init.c: Include `<grub/cpu/kernel.h>'.
1118 * kern/i386/coreboot/init.c: Likewise.
1119
1120 * kern/i386/ieee1275/startup.S: Replace `<grub/machine/kernel.h>'
1121 with `<grub/cpu/kernel.h>'.
1122 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Renamed
1123 to ...
1124 (GRUB_KERNEL_CPU_PREFIX, GRUB_KERNEL_CPU_DATA_END): ... this.
1125 * kern/i386/coreboot/startup.S: Likewise.
1126
1127 * include/grub/powerpc/ieee1275/kernel.h (GRUB_MOD_ALIGN)
1128 (GRUB_MOD_GAP): Remove.
1129 * include/grub/powerpc/kernel.h: New file.
1130 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX)
1131 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
1132 * include/grub/i386/kernel.h: New file.
1133 * include/grub/i386/coreboot/kernel.h (GRUB_MOD_ALIGN)
1134 (GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_PREFIX)
1135 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
1136
1137 * util/ieee1275/grub-install.in (grub_mkimage): Initialize to use
1138 `grub-mkelfimage'.
1139 Use --directory when invoking grub_mkimage.
1140
1141 * util/elf/grub-mkimage.c: Include `<grub/cpu/kernel.h>'.
1142 (add_segments): Replace GRUB_KERNEL_MACHINE_DATA_END and
1143 GRUB_KERNEL_MACHINE_PREFIX with GRUB_KERNEL_CPU_DATA_END
1144 and GRUB_KERNEL_CPU_PREFIX.
1145
b86408f8 11462008-08-14 Felix Zielcke <fzielcke@z-51.de>
1147
d5e619ca 1148 * include/grub/err.h (grub_err_printf): New function prototype.
1149 * util/misc.c (grub_err_printf): New function.
1150 * kern/misc.c [! GRUB_UTIL] (grub_err_printf): New alias for
1151 grub_printf.
1152 * kern/err.c (grub_print_error): Use grub_err_printf.
b86408f8 1153
7161f0e0 11542008-08-13 Robert Millan <rmh@aybabtu.com>
1155
1156 * docs/grub.cfg: Remove `/dev/' prefix in GNU/Hurd boot entry.
1157
a1967522 11582008-08-13 Robert Millan <rmh@aybabtu.com>
1159
1160 * docs/grub.cfg: Use the native device name for the example GNU/Hurd
1161 boot entry.
1162
371458b5 11632008-08-12 Robert Millan <rmh@aybabtu.com>
1164
1165 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Move part
1166 of the relocation code from here ...
1167 (grub_multiboot): ... to here.
1168 (forward_relocator, backward_relocator): Move from here ...
1169 * kern/i386/loader.S (grub_multiboot_forward_relocator)
1170 (grub_multiboot_backward_relocator): ... to here.
1171 (grub_multiboot_real_boot): Use %edx for entry offset. Put Multiboot
1172 magic in %eax. Use %ebp for jumping (so %edx is not trashed).
1173 * include/grub/i386/loader.h (grub_multiboot_forward_relocator)
1174 (grub_multiboot_forward_relocator_end)
1175 (grub_multiboot_backward_relocator)
1176 (grub_multiboot_backward_relocator_end): New variables.
1177
05f9452b 11782008-08-12 Bean <bean123ch@gmail.com>
1179
1180 * disk/raid.c (grub_raid_read): Fix a bug in raid0 code.
1181
20024ab0 11822008-08-11 Robert Millan <rmh@aybabtu.com>
1183
1184 * kern/i386/linuxbios/startup.S: Move from here ...
1185 * kern/i386/coreboot/startup.S: ... to here.
1186
1187 * kern/i386/linuxbios/init.c: Move from here ...
1188 * kern/i386/coreboot/init.c: ... to here.
1189
1190 * kern/i386/linuxbios/table.c: Move from here ...
1191 * kern/i386/coreboot/mmap.c: ... to here.
1192
1193 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Update moved files.
1194
e352e9cd 11952008-08-11 Robert Millan <rmh@aybabtu.com>
1196
1197 * kern/device.c (grub_device_open): Do not handle grub_disk_open()
1198 errors. Leave it to the upper layer to handle them.
1199
2d05bc6a 12002008-08-09 Christian Franke <franke@computer.org>
1201
1202 * Makefile.in: Add `target_os' and `enable_grub_pe2elf'.
1203 * conf/common.rmk: Install `grub-pe2elf' only if requested.
1204 Install `grub.d/10_windows' only on Cygwin.
1205 * configure.ac: Add subst of `target_os'.
1206 Check `target_os' also before setting TARGET_OBJ2ELF.
1207 Add `--enable-grub-pe2elf'.
1208
042bd419 12092008-08-08 Robert Millan <rmh@aybabtu.com>
1210
1211 * kern/disk.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
1212 (grub_last_time): Change type to grub_uint64_t.
1213 (grub_disk_open): Migrate code from to using grub_get_time_ms().
1214 (grub_disk_close): Likewise.
1215
1216 * normal/menu.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
1217 (run_menu): Migrate code from to using grub_get_time_ms().
1218
1219 * util/misc.c (grub_get_time_ms): New function.
1220
7f280db5 12212008-08-08 Marco Gerards <marco@gnu.org>
1222
1223 * disk/ata.c (grub_ata_regget): Change return type to
1224 `grub_uint8_t'.
1225 (grub_ata_regget2): Likewise.
1226 (grub_ata_wait_status): New function.
1227 (grub_ata_wait_busy): Removed function, updated all users to use
1228 `grub_ata_wait_status'.
1229 (grub_ata_wait_drq): Likewise.
1230 (grub_ata_cmd): New function.
1231 (grub_ata_pio_read): Change return type to `grub_uint8_t'. Add
1232 error handling.
1233 (grub_ata_pio_write): Add error handling.
1234 (grub_atapi_identify): Likewise.
1235 (grub_atapi_packet): Use `grub_ata_cmd' and improve error
1236 handling.
1237 (grub_ata_identify): Use `grub_ata_cmd' and improve error
1238 handling. Actually use the detected registers. Reorder the
1239 detection logic such that it is easier to read.
1240 (grub_ata_pciinit): Do not assign the same ID to each controller.
1241 (grub_ata_setaddress): Use `grub_ata_cmd' and improve error
1242 handling.
1243 (grub_atapi_readsector): Check the result of `grub_ata_pio_read'.
1244
1245 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TIMEOUT'.
1246
1fbc5e66 12472008-08-08 Marco Gerards <marco@gnu.org>
1248
1249 * NEWS: Update.
1250
819ce6c0 12512008-08-07 Bean <bean123ch@gmail.com>
1252
1253 * include/grub/x86_64/pci.h: New file.
1254
5c41d44d 12552008-08-07 Christian Franke <franke@computer.org>
1256
1257 * kern/i386/pit.c (TIMER2_SPEAKER): New define.
1258 (TIMER2_GATE): Likewise.
1259 (grub_pit_wait): Add enable/disable of the timer2 gate
1260 bit of port 0x61. This fixes a possible infinite loop.
1261
5ebc275d 12622008-08-07 Bean <bean123ch@gmail.com>
1263
1264 * conf/x86_64-efi.rmk (kernel_mod_SOURCES): Add kern/time.c,
1265 kern/i386/tsc.c and kern/i386/pit.c.
1266
1267 * include/grub/i386/tsc.h (grub_cpu_is_cpuid_supported): Handle
1268 x86_64 platform.
1269
1270 * kern/i386/efi/init.c: Replace <grub/cpu/tsc.h> with
1271 <grub/i386/tsc.h>.
1272
1273 * kern/i386/pit.c: Replace <grub/cpu/io.h> with <grub/i386/io.h>.
1274
e383b3d0 12752008-08-07 Bean <bean123ch@gmail.com>
1276
1277 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add kern/time.c.
1278
1279 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add kern/time.c,
1280
1281 * include/grub/i386/pit.h: Use macro KERNEL_CPU_PIT_HEADER to avoid
1282 multiple inclusion. Add #include <grub/types.h>.
1283
1cbb58ac 12842008-08-06 Christian Franke <franke@computer.org>
1285
1286 * conf/common.rmk: Build and install `10_windows'.
1287 * util/grub.d/10_windows.in: New script.
1288
337f5a1e 12892008-08-06 Pavel Roskin <proski@gnu.org>
1290
1291 * kern/i386/pit.c: Include `<grub/i386/pit.h>'.
1292
057bc4ac 12932008-08-06 Robert Millan <rmh@aybabtu.com>
1294
1295 * conf/i386-coreboot.rmk (kernel_elf_ASFLAGS): New variable.
1296 * kern/i386/tsc.c: Include `<grub/i386/pit.h>'.
1297
2b99f123 12982008-08-06 Bean <bean123ch@gmail.com>
1299
1300 * fs/i386/pc/pxe.c (grub_pxe_data): New member block_size.
1301 (grub_pxefs_fs_int): Remove dummy definition.
1302 (grub_pxefs_open): Use data->block_size to store the current block
1303 size setting.
1304 (grub_pxefs_read): Use block size stored in data->block_size. As the
1305 value of grub_pxe_blksize can be changed after the file is opened.
1306
9f0234cb 13072008-08-06 Bean <bean123ch@gmail.com>
1308
1309 * fs/i386/pc/pxe.c (curr_file): new variable.
1310 (grub_pxefs_open): Simply the handling of pxe file system. Don't
1311 require the dummy internal file system anymore.
1312 (grub_pxefs_read): Removed.
1313 (grub_pxefs_close): Likewise.
1314 (grub_pxefs_fs_int): Likewise.
1315 (grub_pxefs_read_int): Renamed to grub_pxefs_read. Reinitialize tftp
1316 connection when we switch file.
1317 (grub_pxefs_close_int): Renamed to grub_pxefs_close.
1318
a55d42e0 13192008-08-06 Robert Millan <rmh@aybabtu.com>
1320
1321 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and
1322 `halt.mod'.
1323 (reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS)
1324 (halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables.
1325
1326 * kern/i386/halt.c: New file.
1327 * kern/i386/reboot.c: Likewise.
1328 * include/grub/i386/reboot.h: Likewise.
1329 * include/grub/i386/halt.h: Likewise.
1330
1331 * commands/halt.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]:
1332 Include `<grub/cpu/halt.h>'.
1333 * commands/reboot.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]
1334 [! GRUB_MACHINE_PCBIOS]: Include `<grub/cpu/reboot.h>'.
1335
1336 * term/i386/pc/at_keyboard.c: Include `<grub/cpu/at_keyboard.h>'.
1337 (SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA)
1338 (KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ)
1339 (KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT)
1340 (KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY)
1341 (KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move
1342 from here ...
1343 * include/grub/i386/at_keyboard.h: ... to here.
1344
24371d26 13452008-08-05 Robert Millan <rmh@aybabtu.com>
1346
1347 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pit.c'.
1348 * conf/i386-efi.rmk (kernel_mod_SOURCES): Likewise.
1349 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Likewise. Also add
1350 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
1351 `kern/generic/millisleep.c'.
1352
1353 * kern/i386/tsc.c (calibrate_tsc): Rewrite using grub_pit_wait()
1354 instead of grub_get_rtc().
1355 (grub_tsc_init): Initialize `tsc_boot_time'.
1356
1357 * kern/i386/linuxbios/init.c (grub_millisleep): Remove stub.
1358 (grub_machine_init): Use grub_tsc_init() rather than
1359 installing an RTC-based handler via grub_install_get_time_ms().
1360
1361 * kern/i386/pit.c: New file.
1362 * include/grub/i386/pit.h: Likewise.
1363
9e7007b3 13642008-08-05 Bean <bean123ch@gmail.com>
1365
1366 * boot/i386/pc/pxeboot.S (_start): Use drive number 0x7F for pxe.
1367
1368 * conf/i386-pc.rmk (kernel_img_HEADERS): Add machine/pxe.h.
1369 (pkglib_MODULES): Add pxe.mod and pxecmd.mod.
1370 (pxe_mod_SOURCES): New macro.
1371 (pxe_mod_CFLAGS): Likewise.
1372 (pxe_mod_LDFLAGS): Likewise.
1373 (pxecmd_mod_SOURCES): Likewise.
1374 (pxecmd_mod_CFLAGS): Likewise.
1375 (pxecmd_mod_LDFLAGS): Likewise.
1376
1377 * kern/i386/pc/startup.S (grub_pxe_scan): New function.
1378 (grub_pxe_call): Likewise.
1379
1380 * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_PXE_ID.
1381
1382 * commands/i386/pc/pxecmd.c: New file.
1383
9f0234cb 1384 * fs/i386/pc/pxe.c: Likewise.
9e7007b3 1385
1386 * include/grub/i386/pc/pxe.h: Likewise.
1387
6977d49f 13882008-08-05 Bean <bean123ch@gmail.com>
1389
1390 * util/console.c (grub_console_cur_color): New variable.
1391 (grub_console_standard_color): Likewise.
1392 (grub_console_normal_color): Likewise.
1393 (grub_console_highlight_color): Likewise.
1394 (color_map): Likewise.
1395 (use_color): Likewise.
1396 (NUM_COLORS): New macro.
1397 (grub_ncurses_setcolorstate): Handle color properly.
1398 (grub_ncurses_setcolor): Don't change color here, just remember the
1399 settings, color will be set in grub_ncurses_setcolorstate.
1400 (grub_ncurses_getcolor): New function.
1401 (grub_ncurses_init): Initialize color pairs.
1402 (grub_ncurses_term): New member grub_ncurses_getcolor.
1403
9c2ff3ee 14042008-08-05 Colin D Bennett <colin@gibibit.com>
337f5a1e 1405
9c2ff3ee 1406 High resolution timer support. Implemented for x86 CPUs using TSC.
1407 Extracted generic grub_millisleep() so it's linked in only as needed.
1408 This requires a Pentium compatible CPU; if the RDTSC instruction is
1409 not supported, then it falls back on the generic grub_get_time_ms()
1410 implementation that uses the machine's RTC.
1411
1412 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/time.c',
1413 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
1414 `kern/generic/millisleep.c'.
1415
1416 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add `kern/i386/tsc.c',
1417 `kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'.
1418
1419 * conf/x86_64-efi.rml (kernel_mod_SOURCES): Add
1420 `kern/generic/millisleep.c' and `kern/generic/rtc_get_time_ms.c'.
1421
1422 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
1423
1424 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
1425 `kern/generic/millisleep.c'.
1426
1427 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
1428
1429 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Add `kern/time.c'.
1430
1431 * kern/generic/rtc_get_time_ms.c: New file.
1432
1433 * kern/generic/millisleep.c: New file.
337f5a1e 1434
9c2ff3ee 1435 * kern/misc.c: Don't include
1436 <kern/time.h> anymore.
1437 (grub_millisleep_generic): Removed.
1438
1439 * commands/sleep.c (grub_interruptible_millisleep): Uses
1440 grub_get_time_ms() instead of grub_get_rtc().
1441
1442 * include/grub/i386/tsc.h (grub_get_tsc): New file. New inline
1443 function.
1444 (grub_cpu_is_cpuid_supported): New inline function.
1445 (grub_cpu_is_tsc_supported): New inline function.
1446 (grub_tsc_init): New function prototype.
1447 (grub_tsc_get_time_ms): New function prototype.
1448
1449 * kern/i386/tsc.c (grub_get_time_ms): New file.
1450
1451 * include/grub/time.h: Include <grub/types.h.
1452 (grub_millisleep_generic): Removed.
1453 (grub_get_time_ms): New prototype.
1454 (grub_install_get_time_ms): New prototype.
1455 (grub_rtc_get_time_ms): New prototype.
1456
1457 * kern/time.c (grub_get_time_ms): New function.
1458 (grub_install_get_time_ms): New function.
1459
1460 * kern/i386/efi/init.c: Include <grub/cpu/tsc.h>. Don't include
1461 <grub/time.h> anymore.
1462 (grub_millisleep): Removed.
1463 (grub_machine_init): Call grub_tsc_init.
1464
1465 * kern/i386/linuxbios/init.c (grub_machine_init): Install the RTC
1466 get_time_ms() implementation.
1467
1468 * kern/sparc64/ieee1275/init.c (grub_millisleep): Removed.
1469 (ieee1275_get_time_ms): New function.
1470 (grub_machine_init): Install get_time_ms() implementation.
1471
1472 * kern/i386/pc/init.c: Include <grub/cpu/tsc.h>.
1473 (grub_machine_init): Call grub_tsc_init().
1474 (grub_millisleep): Removed.
bf06a93f 1475
9c2ff3ee 1476 * kern/ieee1275/init.c (grub_millisleep): Removed.
1477 (grub_machine_init): Install ieee1275_get_time_ms()
1478 implementation.
1479 (ieee1275_get_time_ms): New function.
1480 (grub_get_rtc): Now calls ieee1275_get_time_ms(), which does the
1481 real work.
1482
9ec92aaf 14832008-08-05 Marco Gerards <marco@gnu.org>
1484
1485 * disk/ata.c: Include <grub/pci.h>.
1486 (enum grub_ata_commands): Add `GRUB_ATA_CMD_EXEC_DEV_DIAGNOSTICS'.
1487 (grub_ata_initialize): Rewritten.
1488 (grub_ata_device_initialize): New function.
1489
8d23f507 14902008-08-04 Pavel Roskin <proski@gnu.org>
1491
1492 * kern/main.c: Include grub/mm.h.
1493
5e15ee3d 14942008-08-04 Robert Millan <rmh@aybabtu.com>
1495
1496 * conf/i386-coreboot.rmk (COMMON_ASFLAGS, COMMON_CFLAGS)
1497 (COMMON_LDFLAGS): Harmonize with i386-pc version (fixes a code
1498 corruption problem).
1499
a9053f8f 15002008-08-04 Robert Millan <rmh@aybabtu.com>
1501
1502 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Fix misc
1503 warnings introduced in my last commit.
1504
dd19c7d7 15052008-08-03 Robert Millan <rmh@aybabtu.com>
1506
1507 Make PCI available on all i386 architectures.
1508
1509 * include/grub/i386/pc/pci.h: Move from here ...
1510 * include/grub/i386/pci.h: ... to here.
1511
1512 * include/grub/i386/pc/pci.h: Remove.
1513 * include/grub/i386/efi/pci.h: Remove.
1514 * include/grub/x86_64/efi/pci.h: Remove.
1515
1516 * include/grub/pci.h: Replace `<grub/machine/pci.h>' with
1517 `<grub/cpu/pci.h>'.
1518
1519 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `pci' and `lspci'.
1520 (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS, lspci_mod_SOURCES)
1521 (lspci_mod_CFLAGS, lspci_mod_LDFLAGS): New variables.
1522
1523 * conf/i386-ieee1275.rmk: Likewise.
1524
e14a6184 15252008-08-03 Robert Millan <rmh@aybabtu.com>
1526
1527 * term/i386/pc/vga_text.c (CRTC_CURSOR_DISABLE): New macro.
1528 (grub_console_setcursor): Make it possible to set cursor off.
1529
52768e37 15302008-08-03 Robert Millan <rmh@aybabtu.com>
1531
1532 * util/grub.d/00_header.in: Be platform-agnostic. Probe for existence
1533 of modules instead of assuming which platform provides what.
1534 * util/update-grub.in: Likewise.
1535
2d52f57f 15362008-08-03 Robert Millan <rmh@aybabtu.com>
1537
1538 * kern/i386/pc/init.c (make_install_device): Check for `grub_prefix'
1539 instead of `grub_install_dos_part' to determine whether a drive needs
1540 to be prepended to prefix (`grub_install_dos_part' is not reliable,
825aa57a 1541 because it can be overridden when loading GRUB via Multiboot).
2d52f57f 1542
2a5cd121 15432008-08-02 Robert Millan <rmh@aybabtu.com>
1544
1545 * util/i386/pc/grub-install.in: Remove trailing slash from prefix.
1546
93808428 15472008-08-02 Robert Millan <rmh@aybabtu.com>
1548
1549 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Add a pair
1550 of informational grub_dprintf() calls.
1551
3bd0a12a 15522008-08-02 Robert Millan <rmh@aybabtu.com>
1553
1554 * disk/memdisk.c (memdisk_size): Don't initialize.
1555 (GRUB_MOD_INIT(memdisk)): Find memdisk using grub_module_iterate().
1556
1557 * include/grub/i386/pc/kernel.h
1558 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): Remove macro.
1559 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Shift.
1560 (grub_memdisk_image_size, grub_arch_memdisk_addr)
1561 (grub_arch_memdisk_size): Remove.
1562
1563 * include/grub/kernel.h (struct grub_module_header): Remove `offset'
1564 field (was only used to transfer a constant). Add `type' field to
1565 support multiple module types.
1566 (grub_module_iterate): New function.
1567
1568 * kern/device.c (grub_device_open): Do not hide error messages
1569 when grub_disk_open() fails. Use grub_print_error() instead.
1570
1571 * kern/i386/pc/init.c (grub_arch_modules_addr)
1572 (grub_arch_memdisk_size): Remove functions.
1573 (grub_arch_modules_addr): Return the module address in high memory
1574 (now that it isn't copied anymore).
1575
1576 * kern/i386/pc/startup.S (grub_memdisk_image_size): Remove variable.
1577 (codestart): Don't add grub_memdisk_image_size to %ecx in LZMA
1578 decompression routine (grub_total_module_size already includes that
1579 now). Don't copy modules back to low memory.
1580
1581 * kern/main.c: Include `<grub/mm.h>'.
1582 (grub_load_modules): Split out (and use) ...
1583 (grub_module_iterate): ... this function, which iterates through
1584 module objects and runs a hook.
1585 Comment out grub_mm_init_region() call, as it would cause non-ELF
1586 modules to be overwritten.
1587
1588 * util/i386/pc/grub-mkimage.c (generate_image): Instead of appending
1589 the memdisk image in its own region, make it part of the module list.
1590 * util/elf/grub-mkimage.c (options): Add "memdisk"|'m' option.
1591 (main): Parse --memdisk|-m option, and pass user-provided path as
1592 parameter to generate_image().
1593 (add_segments): Pass `memdisk_path' down to load_modules().
1594 (load_modules): Embed memdisk image in module section when requested.
1595 * util/i386/efi/grub-mkimage.c (make_mods_section): Initialize
1596 `header.type' instead of `header.offset'.
1597
1598 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add `memdisk.mod'.
1599 (memdisk_mod_SOURCES, memdisk_mod_CFLAGS)
1600 (memdisk_mod_LDFLAGS): New variables.
1601 * conf/i386-coreboot.rmk: Likewise.
1602 * conf/i386-ieee1275.rmk: Likewise.
1603
a927cc73 16042008-08-02 Robert Millan <rmh@aybabtu.com>
1605
1606 * loader/i386/pc/multiboot.c (playground, forward_relocator)
1607 (backward_relocator): New variables. Used to allocate and relocate
1608 the payload, respectively.
1609 (grub_multiboot_load_elf32): Load into heap instead of requested
825aa57a 1610 address, install the appropriate relocator code in each bound of
a927cc73 1611 the payload, and set the entry point such that
1612 grub_multiboot_real_boot() will jump to one of them.
1613
1614 * kern/i386/loader.S (grub_multiboot_payload_size)
1615 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
1616 (grub_multiboot_payload_entry_offset): New variables.
1617 (grub_multiboot_real_boot): Set cpu context to what the relocator
1618 expects, and jump to the relocator instead of the payload.
1619
1620 * include/grub/i386/loader.h (grub_multiboot_payload_size)
1621 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
1622 (grub_multiboot_payload_entry_offset): Export.
1623
b15d8a0c 16242008-08-01 Bean <bean123ch@gmail.com>
1625
1626 * normal/menu_entry.c (editor_getline): Don't return the original
1627 string as result, as it will be released by lexer once it has done
1628 using it.
1629
cdfb3d22 16302008-08-01 Robert Millan <rmh@aybabtu.com>
1631
1632 * util/grub.d/10_linux.in: Use prepare_grub_to_access_device() from
1633 within menuentries, not before them.
1634 util/grub.d/10_hurd.in: Likewise.
1635
9175e93d 16362008-08-01 Bean <bean123ch@gmail.com>
1637
1638 * conf/common.rmk (pkglib_MODULES): Add bufio.mod.
1639 (bufio_mod_SOURCES): New macro.
1640 (bufio_mod_CFLAGS): Likewise.
1641 (bufio_mod_LDFLAGS): Likewise.
1642
1643 * include/grub/bufio.h: New file.
1644
1645 * io/bufio.c: Likewise.
1646
1647 * video/png.c: Replace <grub/file.h> with <grub/bufio.h>.
1648 (grub_video_reader_png): Use grub_buffile_open to open file.
1649
1650 * video/jpeg.c: Replace <grub/file.h> with <grub/bufio.h>.
1651 (grub_video_reader_jpeg): Use grub_buffile_open to open file.
1652
1653 * video/tga.c: Replace <grub/file.h> with <grub/bufio.h>.
1654 (grub_video_reader_tga): Use grub_buffile_open to open file.
1655
1656 * font/manager.c: Include <grub/bufio.h>.
1657 (add_font): Use grub_buffile_open to open file.
1658
3d8383e7 16592008-07-31 Robert Millan <rmh@aybabtu.com>
1660
1661 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): When loading
1662 ELF segments, use a macro for arbitrarily accessing any of them instead
1663 of preparing a pointer that allows access to one at a time.
1664 (grub_multiboot_load_elf64): Likewise.
1665
16e641b6 16662008-07-31 Bean <bean123ch@gmail.com>
1667
1668 * boot/i386/pc/lnxboot.S (real_code_2): Replace 0x50 with
1669 GRUB_KERNEL_MACHINE_DATA_END.
1670
59198b72 16712008-07-30 Robert Millan <rmh@aybabtu.com>
1672
1673 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_DATA_END):
1674 Increase from 0x50 to 0x60.
1675 * util/i386/pc/grub-install.in: Detect cross-disk installs, and
1676 use UUIDs to identify the root drive for them. If that's not
1677 possible, abort.
1678 * util/i386/pc/grub-setup.c (setup): Do not special-case, or even
1679 check, for cross-disk installs.
1680
ae88bca3 16812008-07-30 Robert Millan <rmh@aybabtu.com>
1682
1683 * kern/ieee1275/init.c (grub_machine_set_prefix): If `grub_prefix'
1684 is non-empty, use it to set the `prefix' environment variable instead
1685 of the usual approach.
1686 * kern/i386/linuxbios/init.c (make_install_device): Remove function.
1687 (grub_machine_set_prefix): Use `grub_prefix' to set the `prefix'
1688 environment variable instead of dummy make_install_device().
1689
1690 * kern/i386/ieee1275/startup.S: Include `<grub/machine/kernel.h>'.
1691 (start): Insert a data section, with `grub_prefix' variable.
825aa57a 1692 * kern/i386/linuxbios/startup.S: Likewise.
ae88bca3 1693
1694 * include/grub/powerpc/ieee1275/kernel.h [!ASM_FILE] (grub_prefix):
1695 New variable reference.
1696 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX):
1697 New macro. Defines offset of `grub_prefix' within startup.S (relative
1698 to `start').
1699 (GRUB_KERNEL_MACHINE_DATA_END): New macro. Defines the end of data
1700 section within startup.S (relative to `start').
1701 * include/grub/i386/coreboot/kernel.h: Likewise.
1702
1703 * util/elf/grub-mkimage.c (add_segments): Receive `prefix' parameter.
1704 Overwrite grub_prefix with its contents, at the beginning of the
1705 first segment.
1706 (main): Understand -p|--prefix.
1707
14f41dd1 17082008-07-30 Robert Millan <rmh@aybabtu.com>
1709
1710 * util/grub.d/10_hurd.in: Source ${libdir}/grub/update-grub_lib.
1711
4ca049a3 17122008-07-30 Robert Millan <rmh@aybabtu.com>
1713
1714 * term/i386/pc/vga_text.c (grub_console_cls): Use
1715 grub_console_gotoxy() to go back to beginning of the screen.
1716 Found by Patrick Georgi <patrick.georgi@coresystems.de>
1717
2921d337 17182008-07-29 Christian Franke <franke@computer.org>
1719
1720 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
1721 Add conversion of emulated mount points on Cygwin.
1722
b609876d 17232008-07-29 Christian Franke <franke@computer.org>
1724
1725 * util/update-grub.in: Add a check for admin
1726 group on Cygwin.
1727 Remove old `grub.cfg.new' before creation.
1728 Add `-f' to `mv' to handle the different filesystem
1729 semantics of Windows.
1730
e93e4679 17312008-07-29 Bean <bean123ch@gmail.com>
1732
1733 * normal/main.c (get_line): Fix buffer overflow bug.
1734
41694fd0 17352008-07-28 Robert Millan <rmh@aybabtu.com>
1736
1737 * partmap/apple.c (GRUB_APPLE_HEADER_MAGIC): New macro.
1738 (struct grub_apple_header): New struct. Describes the layout of
1739 the partmap header.
1740 (apple_partition_map_iterate): Check the header magic as well as the
1741 partition magic (which was already being checked).
1742
cfd0b4e6 17432008-07-28 Pavel Roskin <proski@gnu.org>
1744
1745 * genmk.rb: Add a warning to the beginning of the output that
1746 it's a generated file and should not be edited.
1747
93cce016 17482008-07-28 Robert Millan <rmh@aybabtu.com>
1749
1750 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
1751 with the same number are found, just use issue a warning with
1752 grub_dprintf(), as this error has been reported to be non-fatal.
c298def0 1753
cd1df915 17542008-07-27 Robert Millan <rmh@aybabtu.com>
1755
1756 * disk/ata.c (grub_ata_dumpinfo): Use grub_dprintf() for debugging
1757 information.
1758
b70a8427 17592008-07-27 Bean <bean123ch@gmail.com>
1760
1761 * fs/fat.c (GRUB_FAT_MAXFILE): New constant.
1762 (grub_fat_find_dir): Ignore case when comparing filename.
1763
8f5e379f 17642008-07-27 Bean <bean123ch@gmail.com>
1765
1766 * fs/xfs.c (grub_xfs_dir_header): Change field i8count back to
1767 smallino, as it's more descriptive, and i8count can be confused with
1768 the other field count.
1769 (grub_xfs_iterate_dir): Adjust grub_xfs_dir_entry pointer for small
1770 inode type.
1771
a85cd5a0 17722008-07-27 Bean <bean123ch@gmail.com>
1773
1774 * commands/crc.c: New file.
1775
1776 * lib/crc.c: Likewise.
1777
1778 * include/grub/lib/crc.h: Likewise.
1779
1780 * util/grub-fstest.c: grub/hexdump.h => grub/lib/hexdump.h.
1781
1782 * commands/hexdump.c: grub/hexdump.h => grub/lib/hexdump.h.
1783 (hexdump): Move this function to ...
1784
1785 * lib/hexdump.c: ... here.
1786
1787 * include/grub/hexdump.h: Renamed to ...
1788
1789 * include/grub/lib/hexdump.h: ... this.
1790
1791 * commands/loadenv.c: grub/envblk.h => grub/lib/envblk.h
1792
1793 * util/grub-editenv.c: Likewise.
1794
1795 * include/envblk.h: Renamed to ...
1796
1797 * include/lib/envblk.h: ... this.
1798
1799 * util/envblk.c: Renamed to ...
1800
1801 * lib/envblk.c: ... this.
1802
1803 * conf/common.rmk (grub_fstest_SOURCES): commands/hexdump.c =>
1804 lib/hexdump.c.
1805 (grub_editenv_SOURCES): util/envblk.c => lib/envblk.c
1806 (pkglib_MODULES): Add crc.mod.
1807 (hexdump_mod_SOURCES): Add lib/hexdump.c.
1808 (loadenv_mod_SOURCES): util/envblk.c => lib/envblk.c.
1809 (crc_mod_SOURCES): New macro.
1810 (crc_mod_CFLAGS): Likewise.
1811 (crc_mod_LDFLAGS): Likewise.
1812
1813 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add lib/hexdump.c.
1814
1815 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1816
1817 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
1818
1819 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1820
1821 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1822
c298def0 18232008-07-27 Felix Zielcke <fzielcke@z-51.de>
8749e9e5 1824
1825 * commands/help.c: Include <grub/term.h>.
1826 (TERM_WIDTH): Removed. Updated all users.
1827
cc349fb3 18282008-07-27 Pavel Roskin <proski@gnu.org>
1829
1830 * util/getroot.c (find_root_device): Rephrase a comment to avoid
1831 spurious warnings about a comment within a comment.
1832
9051607e 18332008-07-25 Robert Millan <rmh@aybabtu.com>
1834
1835 * util/getroot.c (find_root_device): Skip devices that match
1836 /dev/dm-[0-9]. This lets the real device be found for any type of
1837 abstraction (LVM, EVMS, RAID..).
1838 (grub_guess_root_device): Do not traverse /dev/mapper (for LVM)
1839 and /dev/evms (for EVMS) before traversing /dev. If a /dev/dm-[0-9]
1840 device is found first, find_root_device() will now skip it.
1841
01453bfc 18422008-07-24 Pavel Roskin <proski@gnu.org>
1843
1844 * include/grub/types.h: Use __builtin_bswap32() and
1845 __builtin_bswap64() with gcc 4.3 and newer.
1846
6af9849f 18472008-07-24 Christian Franke <franke@computer.org>
1848
3a0fa256 1849 * util/i386/pc/grub-install.in: If `--debug' is specified,
1850 pass `--verbose' to grub-setup.
1851 Abort script if make_system_path_relative_to_its_root() fails.
1852
7810e747 18532008-07-24 Bean <bean123ch@gmail.com>
1854
1855 * configure.ac: Fixed a bug caused by the previous cygwin patch,
1856 variable `target_platform' should be `platform'.
1857
42290e17 18582008-07-24 Bean <bean123ch@gmail.com>
1859
51cc5193 1860 * video/reader/png.c (DEFLATE_HLIT_MAX): Change value.
42290e17 1861 (grub_png_init_fixed_block): New function.
1862 (grub_png_decode_image_data): Handle fixed huffman code compression.
1863
2a8a80e4 18642008-07-24 Bean <bean123ch@gmail.com>
1865
1866 * common.rmk (bin_UTILITIES): Add grub-pe2elf.
1867 (grub_pe2elf_SOURCES): New macro.
1868 (CLEANFILES): Add grub-pe2elf.
1869
1870 * include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant.
1871 (GRUB_PE32_SCN_ALIGN_2BYTES): Likewise.
1872 (GRUB_PE32_SCN_ALIGN_4BYTES): Likewise.
1873 (GRUB_PE32_SCN_ALIGN_8BYTES): Likewise.
1874 (GRUB_PE32_SCN_ALIGN_16BYTES): Likewise.
1875 (GRUB_PE32_SCN_ALIGN_32BYTES): Likewise.
1876 (GRUB_PE32_SCN_ALIGN_64BYTES): Likewise.
1877 (GRUB_PE32_SCN_ALIGN_SHIFT): Likewise.
1878 (GRUB_PE32_SCN_ALIGN_MASK): Likewise.
1879 (GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise.
1880 (GRUB_PE32_SYM_CLASS_STATIC): Likewise.
1881 (GRUB_PE32_SYM_CLASS_FILE): Likewise.
1882 (GRUB_PE32_DT_FUNCTION): Likewise.
1883 (GRUB_PE32_REL_I386_DIR32): Likewise.
1884 (GRUB_PE32_REL_I386_REL32): Likewise.
1885 (grub_pe32_symbol): New structure.
1886 (grub_pe32_reloc): Likewise.
1887
1888 * util/grub-pe2elf.c: New file.
1889
1890 * configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for
1891 start symbol in non pc platform.
1892
1893 * genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf.
1894
1895 The following patches are from Christian Franke.
1896
1897 * include/grub/dl.h: Remove .previous, gas supports this only
1898 for ELF format.
1899
1900 * include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE):
1901 Remove .type, gas supports this only for ELF format.
1902
1903 * kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing
1904 nullbytes in symbol table. This fixes an infinite loop if table is
1905 zero filled.
1906
1907 * Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT,
1908 TARGET_IMG_LDFLAGS and EXEEXT.
1909
1910 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by
1911 TARGET_IMG_LDFLAGS_AC.
1912 (grub_CHECK_STACK_ARG_PROBE): New function.
1913
1914 * conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS.
1915
1916 * conf/i386-pc-cygwin-ld-img.sc: New linker script.
1917
1918 * configure.ac: Add check for linker script "conf/${target}-img-ld.c"
1919 to set TARGET_IMG_LD* accordingly.
1920 Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly.
1921 Add call to grub_CHECK_STACK_ARG_PROBE.
1922 Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols.
1923
1924 * genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.
1925
1926 * genmk.rb: Add EXEEXT to CLEANFILES.
1927
12ccdb75 19282008-07-23 Robert Millan <rmh@aybabtu.com>
1929
1930 * Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they
1931 define the codes for arrows and lines used for the menu).
1932 (ascii.pff): Generate fonts for $(UNICODE_ARROWS) and $(UNICODE_LINES)
1933 as well.
1934
1935 * util/update-grub_lib.in (font_path): Prefer ascii.pff over complete
1936 fonts, because the latter are too slow.
1937
18eeaf04 19382008-07-21 Bean <bean123ch@gmail.com>
1939
1940 * kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
1941 a20. Run keyboard test last, as it will cause macbook to halt.
1942
b095e2ad 19432008-07-18 Pavel Roskin <proski@gnu.org>
1944
1945 * kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P. We cannot
1946 load foreign architecture modules correctly anyway. Keep
1947 support for loading host architecture modules, whether we
1948 compile them or not.
1949
737feb35 19502008-07-17 Pavel Roskin <proski@gnu.org>
1951
3f4ce737 1952 * configure.ac: Use -m32 or -m64 regardless of whether we had to
1953 change target_cpu. The compiler default can mismatch target_cpu
1954 in any case.
1955
4ad2d049 1956 * disk/efi/efidisk.c: Fix format warnings on x86_64.
1957 * kern/efi/efi.c: Likewise.
1958
f6130a12 1959 * aclocal.m4 (grub_PROG_TARGET_CC): New macro. Check if the
1960 target compiler is functional.
1961 * configure.ac: Call grub_PROG_TARGET_CC once all target flags
1962 are set up.
1963
58393a2d 1964 * configure.ac: Default to efi platform for x86_64-apple. Allow
1965 powerpc64 CPU, default to ieee1275 platform for it. Split CPU
1966 adjustments from the rest, only do them if target is not
1967 explicitly given. Merge other adjustments with the final sanity
1968 check. Remove an extraneous check for supported CPU. Be
1969 specific which CPU and which platform is not supported.
1970
737feb35 1971 * configure.ac: Default to pc platform for x86_64.
1972
546f966a 19732008-07-17 Robert Millan <rmh@aybabtu.com>
1974
1975 Partial LinuxBIOS -> Coreboot rename.
1976
1977 * conf/i386-linuxbios.rmk: Renamed to ...
1978 * conf/i386-coreboot.rmk: ... this.
1979 * Makefile.in (RMKFILES): s/i386-linuxbios.rmk/i386-coreboot.rmk/g.
1980 * configure.ac: Accept "coreboot" as input platform (but maintain
1981 compatibility with "linuxbios").
1982 * include/grub/i386/linuxbios: Renamed to ...
1983 * include/grub/i386/coreboot: ... this.
1984
20011694 19852008-07-17 Bean <bean123ch@gmail.com>
1986
1987 * conf/i386/efi.rmk (pkglib_MODULES): add pci.mod and lspci.mod.
c11f6d16 1988 (appleldr_mod_SOURCE): New variable.
20011694 1989 (appleldr_mod_CFLAGS): Likewise.
1990 (appleldr_mod_LDFLAGS): Likewise.
1991 (pci_mod_SOURCES): Likewise.
1992 (pci_mod_CFLAGS): Likewise.
1993 (pci_mod_LDFLAGS): Likewise.
1994 (lspci_mod_SOURCES): Likewise.
1995 (lspci_mod_CFLAGS): Likewise.
1996 (lspci_mod_LDFLAGS): Likewise.
1997
1998 * conf/x86_64-efi.rmk: New file.
1999
2000 * disk/efi/efidisk.c (grub_efidisk_read): Wrap efi calls with efi_call_N
2001 macro.
2002 (grub_efidisk_write): Likewise.
2003
2004 * include/efi/api.h (efi_call_0): New macro.
2005 (efi_call_1): Likewise.
2006 (efi_call_2): Likewise.
2007 (efi_call_3): Likewise.
2008 (efi_call_4): Likewise.
2009 (efi_call_5): Likewise.
2010 (efi_call_6): Likewise.
2011
2012 * include/grub/efi/chainloader.h (grub_chainloader_cmd): Rename to
2013 grub_rescue_cmd_chainloader.
2014
2015 * include/grub/efi/pe32.h (GRUB_PE32_MACHINE_X86_64): New macro.
2016 (grub_pe32_optional_header): Change some fields based on i386 or
2017 x86_64 platform.
2018 (GRUB_PE32_PE32_MAGIC): Likewise.
2019
2020 * include/grub/efi/uga_draw.h: New file.
2021
2022 * include/grub/elf.h (STN_ABS): New constant.
2023 (R_X86_64_NONE): Relocation constant for x86_64.
2024 (R_X86_64_64): Likewise.
2025 (R_X86_64_PC32): Likewise.
2026 (R_X86_64_GOT32): Likewise.
2027 (R_X86_64_PLT32): Likewise.
2028 (R_X86_64_COPY): Likewise.
2029 (R_X86_64_GLOB_DAT): Likewise.
2030 (R_X86_64_JUMP_SLOT): Likewise.
2031 (R_X86_64_RELATIVE): Likewise.
2032 (R_X86_64_GOTPCREL): Likewise.
2033 (R_X86_64_32): Likewise.
2034 (R_X86_64_32S): Likewise.
2035 (R_X86_64_16): Likewise.
2036 (R_X86_64_PC16): Likewise.
2037 (R_X86_64_8): Likewise.
2038 (R_X86_64_PC8): Likewise.
2039
2040 * include/grub/i386/efi/pci.h: New file.
2041
2042 * include/grub/i386/linux.h (GRUB_LINUX_EFI_SIGNATURE):
2043 Change it value based on platform.
2044 (GRUB_LINUX_EFI_SIGNATURE_0204): New constant.
2045 (GRUB_E820_RAM): Likewise.
2046 (GRUB_E820_RESERVED): Likewise.
2047 (GRUB_E820_ACPI): Likewise.
2048 (GRUB_E820_NVS): Likewise.
2049 (GRUB_E820_EXEC_CODE): Likewise.
2050 (GRUB_E820_MAX_ENTRY): Likewise.
2051 (grub_e820_mmap): New structure.
2052 (linux_kernel_header): Change the efi field according to different
2053 kernel version, also field from linux_kernel_header.
2054
2055 * include/grub/kernel.h (grub_module_info): Add padding for x86_64.
2056
2057 * include/grub/pci.h (GRUB_PCI_ADDR_SPACE_MASK): New constant.
2058 (GRUB_PCI_ADDR_SPACE_MEMORY): Likewise.
2059 (GRUB_PCI_ADDR_SPACE_IO): Likewise.
2060 (GRUB_PCI_ADDR_MEM_TYPE_MASK): Likewise.
2061 (GRUB_PCI_ADDR_MEM_TYPE_32): Likewise.
2062 (GRUB_PCI_ADDR_MEM_TYPE_1M): Likewise.
2063 (GRUB_PCI_ADDR_MEM_TYPE_64): Likewise.
2064 (GRUB_PCI_ADDR_MEM_PREFETCH): Likewise.
2065 (GRUB_PCI_ADDR_MEM_MASK): Likewise.
2066 (GRUB_PCI_ADDR_IO_MASK): Likewise.
2067
2068 * include/grub/x86_64/efi/kernel.h: New file.
2069
2070 * include/grub/x86_64/efi/loader.h: Likewise.
2071
2072 * include/grub/x86_64/efi/machine.h: Likewise.
2073
2074 * include/grub/x86_64/efi/pci.h: Likewise.
2075
2076 * include/grub/x86_64/efi/time.h: Likewise.
2077
2078 * include/grub/x86_64/linux.h: Likewise.
2079
2080 * include/grub/x86_64/setjmp.h: Likewise.
2081
2082 * include/grub/x86_64/time.h: Likewise.
2083
2084 * include/grub/x86_64/types.h: Likewise.
2085
2086 * kern/dl.c (GRUB_CPU_SIZEOF_VOID_P): Changed to
2087 GRUB_TARGET_SIZEOF_VOID_P.
2088
2089 * kern/efi/efi.c (grub_efi_locate_protocol): Wrap efi calls.
2090 (grub_efi_locate_handle): Likewise.
2091 (grub_efi_open_protocol): Likewise.
2092 (grub_efi_set_text_mode): Likewise.
2093 (grub_efi_stall): Likewise.
2094 (grub_exit): Likewise.
2095 (grub_reboot): Likewise.
2096 (grub_halt): Likewise.
2097 (grub_efi_exit_boot_services): Likewise.
2098 (grub_get_rtc): Likewise.
2099
2100 * kern/efi/mm.c (MEMORY_MAP_SIZE): Change to 0x3000 for new models.
2101 (GRUB_CPU_SIZEOF_VOID_P): Changed to GRUB_TARGET_SIZEOF_VOID_P.
2102 (grub_efi_allocate_pages): Wrap efi calls.
2103 (grub_efi_free_pages): Wrap efi calls.
2104 (grub_efi_get_memory_map): Wrap efi calls.
2105
2106 * kern/x86_64/dl.c: New file.
2107
2108 * kern/x86_64/efi/callwrap.S: Likewise.
2109
2110 * kern/x86_64/efi/startup.S: Likewise.
2111
2112 * loader/efi/appleloader.c: Likewise.
2113
2114 * loader/efi/chainloader.c (cmdline): New variable.
2115 (grub_chainloader_unload): Wrap efi calls.
2116 (grub_chainloader_boot): Likewise.
2117 (grub_rescue_cmd_chainloader): Wrap efi calls, handle
2118 command line.
2119
2120 * loader/efi/chainloader_normal.c (chainloader_command):
2121 Change grub_chainloader_cmd to grub_rescue_cmd_chainloader, pass
2122 command line.
2123
2124 * loader/i386/efi/linux.c (allocate_pages): Change allocation
2125 method.
2126 (grub_e820_add_region): New function.
2127 (grub_linux_boot): Construct e820 map from efi map, handle x86_64
2128 booting.
2129 (grub_find_video_card): New function.
2130 (grub_linux_setup_video): New function.
2131 (grub_rescue_cmd_linux): Probe for video information.
2132
2133 * normal/x86_64/setjmp.S: New file.
2134
2135 * term/efi/console.c (map_char): New function.
2136 (grub_console_putchar): Map unicode char.
2137 (grub_console_checkkey): Wrap efi calls.
2138 (grub_console_getkey): Likewise.
2139 (grub_console_getwh): Likewise.
2140 (grub_console_gotoxy): Likewise.
2141 (grub_console_cls): Likewise.
2142 (grub_console_setcolorstate): Likewise.
2143 (grub_console_setcursor): Likewise.
2144
2145 * util/i386/efi/grub-mkimage.c: Add support for x86_64.
2146
59652a20 21472008-07-16 Pavel Roskin <proski@gnu.org>
2148
ef294055 2149 * loader/i386/efi/linux.c (allocate_pages): Fix warnings in
2150 format strings.
2151
59652a20 2152 * util/i386/efi/grub-mkimage.c (get_target_address): Return a
2153 pointer, not an integer. This fixes a warning and prevents
2154 precision loss on 64-bit systems.
2155 (relocate_addresses): Remove unneeded cast.
2156
afc3b5d7 21572008-07-15 Pavel Roskin <proski@gnu.org>
2158
506b2b3e 2159 * kern/i386/ieee1275/init.c: Include grub/cache.h.
2160
62ead89c 2161 * term/ieee1275/ofconsole.c: Disable code unused on i386.
2162
c4cd51d7 2163 * kern/ieee1275/ieee1275.c (grub_ieee1275_get_integer_property):
2164 Fix comparison between signed and unsigned.
2165
0d3d8f28 2166 * include/grub/i386/ieee1275/console.h: Declare
2167 grub_console_init() and grub_console_fini().
2168
8804b286 2169 * loader/i386/ieee1275/linux.c (grub_set_bootpath): Remove.
2170 It's empty and unused.
2171
ee01cf35 2172 * fs/ext2.c (grub_ext2_read_block): Initialize blknr in the
2173 beginning to avoid warnings with some compilers.
2174
afc3b5d7 2175 * loader/ieee1275/multiboot2.c: Include grub/machine/loader.h.
2176 [__i386__] (grub_mb2_arch_boot): Avoid unnecessary cast.
2177
e4e8eaa5 21782008-07-14 Pavel Roskin <proski@gnu.org>
2179
407aceb4 2180 * kern/env.c (grub_register_variable_hook): Don't copy empty
2181 string, it leaks memory. Pass "" to grub_env_set(), it should
2182 handle constant strings.
2183
e4e8eaa5 2184 * commands/blocklist.c (grub_cmd_blocklist): Fix format warning.
2185 * commands/cmp.c (grub_cmd_cmp): Likewise.
2186 * kern/dl.c (grub_dl_flush_cache): Likewise.
2187 (grub_dl_load_core): Likewise.
2188 * kern/elf.c (grub_elf32_load_phdrs): Likewise.
2189 (grub_elf64_load_phdrs): Likewise.
2190
d4e2dad3 21912008-07-13 Pavel Roskin <proski@gnu.org>
2192
2193 * lib/LzmaEnc.c (LzmaEnc_SetProps): Fix warning about comparison
2194 between signed and unsigned.
2195 (LzmaEnc_Finish): Fix warning about an unused parameter.
2196
aa24b516 21972008-07-13 Bean <bean123ch@gmail.com>
2198
2199 * Makefile.in (enable_lzo): New rule.
2200
2201 * conf/i386-pc.rmk (grub_mkimage_SOURCES): New test with enable_lzo.
2202
2203 * configure.ac (ENABLE_LZO): New option --enable-lzo.
2204
2205 * boot/i386/pc/lnxboot.S: #include <config.h>.
2206
2207 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Change
fe987087 2208 its value according to the compression algorithm used, lzo or lzma.
aa24b516 2209
2210 * util/i386/pc/grub-mkimage.c (compress_kernel): Use different
2211 compression algorithm according to configure macro.
2212
2213 * kern/i386/pc/startup.S (codestart): Likewise.
2214
2215 * kern/i386/pc/lzma_decode.S: New file.
2216
2217 * include/grub/lib/LzFind.h: Likewise.
2218
2219 * include/grub/lib/LzHash.h: Likewise.
2220
2221 * include/grub/lib/LzmaDec.h: Likewise.
2222
2223 * include/grub/lib/LzmaEnc.h: Likewise.
2224
2225 * include/grub/lib/LzmaTypes.h: Likewise.
2226
2227 * lib/LzFind.c: Likewise.
2228
2229 * lib/LzmaDec.c: Likewise.
2230
2231 * lib/LzmaEnc.c: Likewise.
2232
4ae821ac 22332008-07-13 Bean <bean123ch@gmail.com>
2234
2235 * fs/ext2.c (EXT4_EXTENTS_FLAG): New macro.
2236 (grub_ext4_extent_header): New structure.
2237 (grub_ext4_extent): Likewise.
2238 (grub_ext4_extent_idx): Likewise.
2239 (grub_ext4_find_leaf): New function.
2240 (grub_ext2_read_block): Handle extents.
2241
9a745147 22422008-07-12 Robert Millan <rmh@aybabtu.com>
2243
2244 * util/i386/pc/grub-mkrescue.in: s/grub-install/grub-mkrescue/g.
2245
d49a4cf6 22462008-07-11 Robert Millan <rmh@aybabtu.com>
2247
2248 * util/grub.d/40_custom.in: New file. Example on how to add custom
2249 entries to /etc/grub.d.
2250 * conf/common.rmk (%, update-grub_SCRIPTS, CLEANFILES): Install
2251 40_custom (implicitly, by merging all the grub.d rules).
2252
947414b4 22532008-07-11 Pavel Roskin <proski@gnu.org>
2254
0059cf6f 2255 * commands/read.c (grub_getline): Fix invalid memory access.
2256 Don't add newline to the variable value.
2257
947414b4 2258 * term/i386/pc/serial.c (GRUB_SERIAL_PORT_NUM): New constant.
2259 [!GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Add COM2 and COM3.
2260 (serial_hw_get_port): Check validity of the port number.
2261 (grub_cmd_serial): Check return value of serial_hw_get_port().
2262
62a02d00 22632008-07-07 Pavel Roskin <proski@gnu.org>
2264
2265 * boot/i386/pc/diskboot.S (notification_string): Replace
2266 "Loading kernel" with just "loading". This is shorter, less
2267 confusing and saves a few bytes for possible future changes.
2268
3e5581b0 22692008-07-05 Pavel Roskin <proski@gnu.org>
2270
ea387a48 2271 * disk/ata.c (grub_ata_dumpinfo): Don't output addressing and
2272 size for ATAPI devices, they are undefined. Output sector
2273 number in decimal form.
2274
3e5581b0 2275 * disk/ata.c: Use named constants for status bits.
2276
fdecb8fd 22772008-07-04 Pavel Roskin <proski@gnu.org>
2278
bcd35b90 2279 * kern/i386/linuxbios/init.c (grub_machine_init): Cast addr to
2280 grub_addr_t before casting it to the void pointer to fix a
2281 warning. Non-addressable regions are discarded earlier.
2282 (grub_arch_modules_addr): Cast _end to grub_addr_t.
2283 * kern/i386/linuxbios/table.c: Include grub/misc.h.
2284 (check_signature): Don't shadow table_header.
2285 (grub_linuxbios_table_iterate): Cast numeric constants to
2286 grub_linuxbios_table_header_t.
2287 * include/grub/i386/linuxbios/init.h: Add noreturn attribute to
2288 grub_stop().
2289
af58ab3d 2290 * kern/ieee1275/init.c: Cast _start and _end to grub_addr_t to
2291 prevent warnings.
2292
1759aa57 2293 * include/grub/misc.h (ALIGN_UP): Avoid unnecessary cast to a
2294 pointer, which can cause warnings. Support 64-bit addresses.
2295
fdecb8fd 2296 * util/elf/grub-mkimage.c: Use GRUB_TARGET_SIZEOF_LONG instead
2297 of sizeof(long). This fixes PowerPC image generation on x86_64.
2298
8516d2a8 22992008-07-04 Robert Millan <rmh@aybabtu.com>
2300
2301 This fixes a performance issue when pc & gpt partmap iterators
2302 didn't abort iteration even after our hook found what it was
fe987087 2303 looking for (often causing expensive probes of non-existent drives).
8516d2a8 2304
2305 Some callers relied on previous buggy behaviour, since they would
2306 rise an error when their own hooks caused early abortion of its
2307 iteration.
2308
2309 * kern/device.c (grub_device_open): Improve error message.
2310 * disk/lvm.c (grub_lvm_open): Likewise.
2311 * disk/raid.c (grub_raid_open): Likewise.
2312
2313 * partmap/pc.c (pc_partition_map_iterate): Abort parent iteration
2314 when hook requests it, independently of grub_errno.
2315 (pc_partition_map_probe): Do not fail when find_func() caused
2316 early abortion of pc_partition_map_iterate().
2317
2318 * partmap/gpt.c (gpt_partition_map_iterate): Abort parent iteration
2319 when hook requests it, independently of grub_errno.
2320 (gpt_partition_map_probe): Do not fail when find_func() caused
2321 early abortion of gpt_partition_map_iterate().
2322
2323 * kern/partition.c (grub_partition_iterate): Abort parent iteration
2324 when hook requests it, independently of grub_errno. Do not fail when
2325 part_map_iterate_hook() caused early abortion of p->iterate().
2326
2327 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail
2328 when grub_partition_iterate() returned with non-zero.
2329
277d0de9 23302008-07-03 Pavel Roskin <proski@gnu.org>
2331
2332 * disk/ata.c (grub_ata_pio_write): Check status before writing,
2333 like we do in grub_ata_pio_read().
2334 (grub_ata_readwrite): Always write individual sectors. Fix the
2335 sector count for the remainder.
2336 (grub_ata_write): Enable writing to ATA devices. Correctly
2337 report error for ATAPI devices.
2338
d4c9b428 23392008-07-02 Pavel Roskin <proski@gnu.org>
2340
e43fc690 2341 * boot/i386/pc/cdboot.S: Add _start entry to fix a linker
2342 warning.
2343
f707af42 2344 * disk/ata.c (grub_ata_readwrite): Don't increment sector number
2345 for every read sector, we already increment it for the whole
2346 batch. This fixes reading more than 256 sectors at once.
2347
11e16b15 2348 * util/grub-editenv.c (cmd_info): Cast argument to long
2349 explicitly. ptrdiff_t reduces to int on i386.
2350
cbabfdd4 2351 * util/grub-editenv.c (main): Be specific which parameter is
2352 missing.
2353
b8fbce0a 2354 * disk/memdisk.c (memdisk_addr): Make a pointer to fix warnings.
2355 (memdisk): Make memdisk_orig_addr a pointer.
2356
c9c8e606 2357 * fs/reiserfs.c (grub_reiserfs_read): Fix misuse of grub_size_t
2358 for file offsets, use grub_off_t instead. Fix printf format
2359 warnings.
2360
ca62e598 2361 * fs/reiserfs.c: Remove #warning, TODO list items don't belong
2362 there. Real unexpected warnings should not drown in the noise
2363 about known problems.
2364
ce8d1766 2365 * commands/hexdump.c (grub_cmd_hexdump): Fix misuse of
2366 grub_disk_addr_t for memory addresses.
2367
00c7a56a 2368 * loader/aout.c (grub_aout_load): Cast load_addr to pointer
2369 explicitly to fix a warning.
2370
08d3ef09 2371 * util/grub-editenv.c (cmd_info): Fix warning in printf format.
2372
cb71ba20 2373 * Makefile.in (MODULE_LDFLAGS): New variable.
2374 * aclocal.m4 (grub_PROG_LD_BUILD_ID_NONE): New macro. Check if
2375 the linker accepts --build-id=none.
2376 * configure.ac: Call grub_PROG_LD_BUILD_ID_NONE. Substitute
2377 MODULE_LDFLAGS.
2378 * genmk.rb: Use MODULE_LDFLAGS when linking modules.
2379
d4c9b428 2380 * fs/xfs.c (struct grub_xfs_dir_header): Use names similar to
2381 those in Linux XFS code. Provide a way to access 64-bit parent
2382 inode.
2383 (grub_xfs_iterate_dir): Use the new names. Avoid reading past
2384 the end of struct grub_xfs_dir_header.
2385
d4156eee 23862008-07-02 Bean <bean123ch@gmail.com>
2387
2388 * include/grub/ieee1275.h (grub_ieee1275_flag): New constant
2389 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
2390 and GRUB_IEEE1275_FLAG_NO_ANSI.
2391
2392 * kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set flag
2393 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
2394 and GRUB_IEEE1275_FLAG_NO_ANSI for Open Hackware.
2395
2396 * kern/ieee1275/ieee1275.c (grub_ieee1275_interpret): Return
2397 immediately if GRUB_IEEE1275_FLAG_CANNOT_INTERPRET is set.
2398
2399 * kern/ieee1275/init.c (grub_claim_heap): Claim memory directly if
2400 GRUB_IEEE1275_FLAG_FORCE_CLAIM is set.
2401
2402 * term/ieee1275/ofconsole.c (grub_ofconsole_writeesc): Don't output
2403 esc sequence on non ANSI terminal.
2404 (grub_ofconsole_gotoxy): Emulate backspace key on non ANSI terminal.
2405
2406 * util/elf/grub-mkimage.c (add_segments): Move ELF header to the
2407 beginning of file.
2408
2270f77b 24092008-07-02 Bean <bean123ch@gmail.com>
2410
2411 * conf/common.rmk (bin_UTILITIES): Add grub-editenv.
2412 (grub_editenv_SOURCES): New variable.
2413 (pkglib_MODULES): Add loadenv.mod.
2414 (loadenv_mod_SOURCES): New variable.
2415 (loadenv_mod_CFLAGS): Likewise.
2416 (loadenv_mod_LDFLAGS): Likewise.
2417
2418 * include/grub/envblk.h: New file.
2419
2420 * util/envblk.c: New file.
2421
2422 * util/grub-editenv.c: New file.
2423
2424 * commands/loadenv.c: New file.
2425
0e9e51ec 24262008-07-01 Pavel Roskin <proski@gnu.org>
2427
d89b7634 2428 * include/multiboot2.h (struct multiboot_tag_module): Use char,
2429 not unsigned char. This fixes warnings and is consistent with
2430 other tags.
2431
bf1835b1 2432 * disk/fs_uuid.c (search_fs_uuid): Correctly increment count.
2433
8222a04b 2434 * normal/parser.y: Define YYENABLE_NLS as 0 to fix warnings.
2435
6a42d99d 2436 * term/tparm.c (analyze): Always set *popcount.
2437
10b159d1 2438 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Remove useless
2439 cast to fix a warning.
2440
b8789f6c 2441 * loader/i386/pc/multiboot2.c (grub_mb2_arch_module_alloc): Use
2442 cast to suppress a warning.
2443
29d7e38a 2444 * fs/afs.c (grub_afs_read_block): Return grub_disk_addr_t, as
2445 grub_fshelp_read_file() expects.
2446
f341f669 2447 * fs/fat.c: Fix UUID calculation on big-endian systems. We
2448 write uuid as a 32-bit value in CPU byte order, so declare and
2449 use it as such.
2450
0e9e51ec 2451 * disk/raid.c: Cast grub_dprintf() arguments to unsigned long
2452 long if the format specifier expects it.
2453 * partmap/gpt.c (gpt_partition_map_iterate): Likewise.
2454 * partmap/pc.c (pc_partition_map_iterate): Likewise.
2455 * fs/ntfs.c (grub_ntfs_uuid): Cast data->uuid to unsigned long
2456 long to fix a warning.
2457 * fs/reiserfs.c (grub_reiserfs_read): Change casts in
2458 grub_dprintf() arguments to fix warnings.
2459
3aefa857 24602008-06-30 Pavel Roskin <proski@gnu.org>
2461
56c7668b 2462 * util/i386/pc/grub-setup.c (setup): Write install_dos_part and
2463 install_bsd_part immediately before core.img is embedded or
2464 modified on disk. This fixes core.img verification if core.img
2465 cannot be embedded.
2466
3aefa857 2467 * util/i386/pc/grub-setup.c (setup): Use core_path_dev, not
2468 core_path to calculate the blocklist.
2469 Patch from Javier Martín <lordhabbit@gmail.com>
2470
5444088d 24712008-06-29 Robert Millan <rmh@aybabtu.com>
2472
2473 * fs/xfs.c (GRUB_XFS_FSB_TO_BLOCK): New macro. Maps filesystem
2474 block to disk block.
2475 (grub_xfs_read_block): Use GRUB_XFS_FSB_TO_BLOCK() on result.
2476 Patch from Niels Böhm <bitbucket@arcor.de>
2477
674835c8 24782008-06-29 Robert Millan <rmh@aybabtu.com>
2479
2480 * util/update-grub_lib.in (font_path): Search for fonts in
2481 /boot/grub first, which is more likely to be readable (we aren't
2482 deciding where fonts live, just looking for them).
2483
f527dbc8 24842008-06-26 Pavel Roskin <proski@gnu.org>
2485
6c2d8df6 2486 * util/biosdisk.c (read_device_map): Don't leave dead map
2487 entries for devices failing stat() check.
2488
f527dbc8 2489 * util/i386/pc/grub-setup.c (setup): Don't reuse core_path, use
2490 core_path_dev for the core.img path on the target device.
2491
aebe3d13 24922008-06-26 Robert Millan <rmh@aybabtu.com>
2493
2494 * disk/fs_uuid.c: New file.
2495 * conf/common.rmk (pkglib_MODULES): Add `fs_uuid.mod'.
2496 (fs_uuid_mod_SOURCES, fs_uuid_mod_CFLAGS)
2497 (fs_uuid_mod_LDFLAGS): New variables.
2498 * include/grub/disk.h (grub_disk_dev_id): Add
2499 `GRUB_DISK_DEVICE_UUID_ID'.
2500 * kern/disk.c (grub_disk_dev_iterate): Allow disk devices not to
2501 implement iterate().
2502
37aaf354 25032008-06-26 Robert Millan <rmh@aybabtu.com>
2504
2505 * util/grub.d/10_linux.in: Avoid passing UUIDs to Linux when either
2506 "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" does not exist, or when a
2507 Linux image includes no initrd.
2508
25ff262a 25092008-06-21 Javier Martín <lordhabbit@gmail.com>
2510
2511 * util/i386/pc/grub-setup.c (setup): Remove literal "core.img" in a
2512 call to resolve the core image location that effectively appended the
2513 name twice.
2514
76a2bd44 25152008-06-21 Robert Millan <rmh@aybabtu.com>
2516
2517 * util/grub.d/00_header.in: Move last prepare_grub_to_access_device()
2518 call from here ...
2519
2520 * util/grub.d/10_hurd.in: ... to here ...
2521 * util/grub.d/10_linux.in: ... and here.
2522
650e1c79 25232008-06-19 Robert Millan <rmh@aybabtu.com>
2524
fe987087 2525 * kern/main.c (grub_main): Export `prefix' variable immediately
650e1c79 2526 after it has been set by grub_machine_set_prefix().
2527
6ce63911 25282008-06-19 Robert Millan <rmh@aybabtu.com>
2529
2530 * commands/search.c (search_label, search_fs_uuid, search_file): Print
2531 search result when not saving to variable, not the other way around.
2532 When saving to variable, abort iteration as soon as a match is found.
2533
73940cec 25342008-06-19 Robert Millan <rmh@aybabtu.com>
2535
2536 * util/update-grub_lib.in (prepare_grub_to_access_device): Remove
2537 check for partition that provides /boot/grub. Its logic is flawed,
2538 as it prevents prepare_grub_to_access_device() from being called
2539 multiple times.
2540
3c62a39d 25412008-06-19 Robert Millan <rmh@aybabtu.com>
2542
2543 * util/update-grub_lib.in (prepare_grub_to_access_device): Issue
2544 "insmod" command directly when abstraction modules are needed,
fe987087 2545 instead of relying on GRUB_PRELOAD_MODULES (which had no effect
3c62a39d 2546 since it had already been processed).
2547
47395a42 25482008-06-19 Pavel Roskin <proski@gnu.org>
2549
2550 * conf/i386-efi.rmk: Recompile grub-mkimage.c if Makefile has
2551 changed. This is needed in case GRUB_LIBDIR changes.
2552 * conf/i386-ieee1275.rmk: Likewise.
2553 * conf/i386-linuxbios.rmk: Likewise.
2554 * conf/i386-pc.rmk: Likewise.
2555 * conf/powerpc-ieee1275.rmk: Likewise.
2556
a145ac2d 25572008-06-18 Pavel Roskin <proski@gnu.org>
2558
2559 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Rename
2560 kernel_elf_symlist.c to symlist.c for consistency with other
2561 architectures. Update all users.
2562 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
2563
7847c51e 25642008-06-18 Robert Millan <rmh@aybabtu.com>
2565
2566 * util/i386/pc/grub-install.in: If the drive is LVM or RAID, prepend
2567 it in prefix.
2568
2569 * util/i386/pc/grub-setup.c (main): Don't handle prefix at all. Set
2570 `must_embed' to 1 when root_dev is a RAID device. When dest_dev is
2571 a RAID device, run setup() for all members independently on whether
2572 LVM abstraction is being used.
2573 (setup): Don't handle prefix at all; let grub-mkimage take care of it.
2574 If grub-mkimage has set `*install_dos_part == -2', don't override this
2575 value.
2576 Perform *install_dos_part adjustments independently on whether
2577 we're embedding or not.
2578 Clarify error message when image is too big for embedding.
2579 Remove duplicate *install_dos_part stanza.
2580
b23e5644 25812008-06-17 Robert Millan <rmh@aybabtu.com>
2582
2583 * term/ieee1275/ofconsole.c (fgcolor, bgcolor): Remove variables.
2584 (grub_ofconsole_normal_color, grub_ofconsole_highlight_color): New
2585 variables.
2586 (grub_ofconsole_setcolor, grub_ofconsole_getcolor): Load/store
2587 values in grub_ofconsole_normal_color and
2588 grub_ofconsole_highlight_color (they're not directly related to
2589 background and foreground).
2590 (grub_ofconsole_setcolorstate): Extract background and foreground
2591 from grub_ofconsole_normal_color and grub_ofconsole_highlight_color.
2592
0aac2f79 25932008-06-17 Robert Millan <rmh@aybabtu.com>
2594
2595 * util/update-grub_lib.in (prepare_grub_to_access_device): Use
2596 /boot/grub for the check in last commit, not /boot (they could be
2597 different partitions).
2598
3cca7ef3 25992008-06-16 Robert Millan <rmh@aybabtu.com>
2600
2601 * util/update-grub_lib.in (prepare_grub_to_access_device): If we were
2602 asked to setup access for the same partition that provides /boot,
2603 don't bother using UUIDs since our root already has the value we
2604 want.
2605
347396d8 26062008-06-16 Robert Millan <rmh@aybabtu.com>
2607
2608 * util/biosdisk.c (convert_system_partition_to_system_disk): Detect
2609 I2O devices.
2610 Patch from Sven Mueller <sven@debian.org>.
2611
991477f8 26122008-06-16 Robert Millan <rmh@aybabtu.com>
2613
2614 * util/update-grub.in: Check for $EUID instead of $UID.
2615 Reported by Vincent Zweije.
2616
d31a32a1 26172008-06-16 Bean <bean123ch@gmail.com>
2618
fe987087 2619 * fs/ext2.c (grub_ext2_blockgroup): Revert to pre-journal state.
d31a32a1 2620 (grub_ext2_read_block): Likewise.
2621 (grub_ext2_read_inode): Likewise.
2622 (grub_ext2_mount): Likewise.
2623 (grub_ext2_close): Likewise.
2624 (grub_ext3_get_journal): Removed.
2625
fe987087 2626 * fs/reiserfs.c (grub_reiserfs_get_item): Revert to pre-journal state.
d31a32a1 2627 (grub_reiserfs_read_symlink): Likewise.
2628 (grub_reiserfs_mount): Likewise.
2629 (grub_reiserfs_open): Likewise.
2630 (grub_reiserfs_read): Likewise.
2631 (grub_reiserfs_close): Likewise.
2632 (grub_reiserfs_get_journal): Removed.
2633
2634 * fs/fshelp.c (grub_fshelp_read): Removed.
2635 (grub_fshelp_map_block): Likewise.
2636
2637 * include/grub/fshelp.h (grub_fshelp_journal_type): Removed.
2638 (grub_fshelp_journal): Likewise.
2639 (grub_fshelp_read): Likewise.
2640 (grub_fshelp_map_block): Likewise.
2641
3540a760 26422008-06-16 Pavel Roskin <proski@gnu.org>
2643
2644 * conf/powerpc-ieee1275.rmk: Remove -msoft-float, we don't use
2645 floating point anymore.
2646 * include/grub/powerpc/libgcc.h: Leave only necessary exports.
2647
95614c84 26482008-06-15 Pavel Roskin <proski@gnu.org>
2649
2650 * commands/ls.c (grub_ls_list_files): Use integer calculations
2651 for human readable format, avoid floating point use.
2652 * kern/misc.c (grub_ftoa): Remove.
2653 (grub_vsprintf): Remove floating point support.
2654
50465dd6 26552008-06-15 Robert Millan <rmh@aybabtu.com>
2656
fe6b695a 2657 * util/grub.d/10_linux.in: Use the underlying device for loop-AES
50465dd6 2658 devices.
2659 Reported by Max Vozeler.
2660
a9207284 26612008-06-15 Robert Millan <rmh@aybabtu.com>
2662
2663 * util/i386/pc/grub-mkimage.c (generate_image): If we included a drive
2664 in our prefix, set install_{dos,bsd}_part = -2 to indicate this can be
2665 skipped later.
2666 (main): If a memdisk was requested, add "(memdisk)" drive explicitly to
2667 the beginning of the prefix.
2668
2669 * kern/i386/pc/init.c (make_install_device): Remove memdisk check.
2670 It is assumed that if we have a memdisk, grub-mkimage has set
2671 grub_prefix to include the "(memdisk)" drive in it.
2672
a7cbd45a 26732008-06-15 Robert Millan <rmh@aybabtu.com>
2674
2675 * term/i386/pc/console.c [GRUB_MACHINE_LINUXBIOS] (grub_console_init):
2676 Initialize keyboard controller after registering the terminal, so that
2677 grub_printf() can be called from grub_keyboard_controller_init().
2678
21cf716a 26792008-06-15 Robert Millan <rmh@aybabtu.com>
2680
2681 * fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in
2682 extent-btree which is written as big endian on disk.
2683 Reported by Alain Greppin <al@chilibi.org>.
2684
23a64d8e 26852008-06-14 Robert Millan <rmh@aybabtu.com>
2686
2687 * util/i386/efi/grub-install.in (modules): Remove `_chain'.
2688 * util/i386/pc/grub-install.in (modules): Likewise.
2689
d687651c 26902008-06-13 Pavel Roskin <proski@gnu.org>
2691
2692 * commands/ls.c (grub_ls_list_files): Fix format warnings.
2693
dfe9ddd4 26942008-06-13 Bean <bean123ch@gmail.com>
2695
2696 * commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.
2697
2698 * fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling.
2699
2700 * fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
2701 to indicate sparse block.
2702
16ae7781 27032008-06-12 Pavel Roskin <proski@gnu.org>
2704
e6d1a308 2705 * fs/ext2.c (grub_ext2_read_inode): Don't normalize block
2706 number, grub_fshelp_read() does it for us.
2707
16ae7781 2708 * fs/fshelp.c (grub_fshelp_read): New function. Implement
2709 linear disk read with journal translation.
2710 * fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
2711 * include/grub/fshelp.h: Declare grub_fshelp_read().
2712
40fd3a2b 27132008-06-09 Pavel Roskin <proski@gnu.org>
2714
2715 * fs/minix.c (grub_minix_mount): Handle error reading
2716 superblock.
2717
f5679726 27182008-06-08 Robert Millan <rmh@aybabtu.com>
2719
2720 * util/i386/pc/grub-setup.c (main): If install drive is an LVM,
2721 don't append the RAID prefix afterwards.
2722 Reported by Clint Adams.
2723
ce525529 27242008-06-08 Robert Millan <rmh@aybabtu.com>
2725
2726 Based on description from Pavel:
2727 * kern/disk.c (grub_disk_check_range): Rename to ...
2728 (grub_disk_adjust_range): ... this. Add a comment explaining the
2729 tasks performed by this function.
2730
ad4936a0 27312008-06-08 Robert Millan <rmh@aybabtu.com>
2732
2733 * include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to
2734 `num_serial' (for consistency with other variables).
2735 (struct grub_ntfs_data): Add `uuid' member.
2736 * fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'.
2737 (grub_ntfs_uuid): New function.
2738 (grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member.
2739
dc20b0f9 27402008-06-07 Pavel Roskin <proski@gnu.org>
2741
2742 * util/biosdisk.c (open_device): Revert last change to the
2743 function, it broke installation. The sector needs to be
2744 different dependent on which device is opened.
2745
c5e3cfba 27462008-06-06 Robert Millan <rmh@aybabtu.com>
2747
2748 Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the
2749 rest of GRUB, and breakage doesn't happen if its value were modified.
2750
2751 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
2752 Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of
2753 a constant (same value).
2754 * kern/i386/pc/startup.S: Replace hardcoded `0x50' with
2755 `GRUB_KERNEL_MACHINE_DATA_END' (same value).
2756
26a1f8c4 27572008-06-06 Robert Millan <rmh@aybabtu.com>
2758
2759 * util/biosdisk.c (open_device): Do not modify sector offset when
2760 accessing a partition. kern/disk.c already handles this for us.
2761
25d6b327 27622008-06-06 Robert Millan <rmh@aybabtu.com>
2763
2764 * util/grub-emu.c (grub_machine_init): Move code in this function from
2765 here ...
2766 (main): ... to here (before grub_util_biosdisk_init() call, to prevent
2767 segfault in case grub_printf() is called).
2768
2769 * util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to
2770 grub_probe. Update all users not to explicitly add it again.
2771 (grub_device): New variable; contains corresponding device for grubdir.
2772 (fs_module, partmap_module, devabstraction_module): Pass
2773 `--device ${grub_device}' to grub_probe to avoid traversing /dev
2774 every time.
2775
9ece62fb 27762008-06-05 Robert Millan <rmh@aybabtu.com>
2777
2778 * normal/misc.c (grub_normal_print_device_info): When a filesystem UUID
2779 is found, print it (same layout as with labels).
2780
1ad36d37 27812008-06-04 Robert Millan <rmh@aybabtu.com>
2782
2783 * util/biosdisk.c (get_drive): Rename to ...
2784 (find_grub_drive): ... this. Update all users.
2785
2786 (get_os_disk): Rename to ...
2787 (convert_system_partition_to_system_disk): ... this. Update all users.
2788
2789 (find_drive): Rename to ...
2790 (find_system_device): ... this. Update all users.
2791
e6a30859 27922008-06-04 Robert Millan <rmh@aybabtu.com>
2793
2794 * util/biosdisk.c (get_os_disk): Handle IDA devices.
2795 * util/grub-mkdevicemap.c (get_mmc_disk_name)
2796 (make_device_map): Likewise.
2797
00c108a4 27982008-06-01 Robert Millan <rmh@aybabtu.com>
2799
2800 * util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL
2801 before dereferencing it.
2802
2803 * fs/fat.c (struct grub_fat_bpb): Move fat32-specific fields into a
2804 union with fat12/fat16-specific ones. Add some new fields, including
2805 `num_serial' for both versions.
2806 (struct grub_fat_data): Add `uuid' member.
2807 (grub_fat_mount): Refer to fat32-specific fields in `bpb' by their new
2808 names. Initialize `data->uuid' using `num_serial'.
2809 (grub_fat_uuid): New function.
2810 (grub_fat_fs): Reference grub_fat_uuid() in `uuid' struct member.
2811
2812 * fs/reiserfs.c (grub_reiserfs_superblock): Add `uuid' field.
2813 (grub_reiserfs_uuid): New function.
2814 (grub_reiserfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct
2815 member.
2816
2817 * fs/xfs.c (grub_xfs_sblock): Add `uuid' field.
2818 (grub_xfs_uuid): New function.
2819 (grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member.
2820
1385c5bb 28212008-06-01 Robert Millan <rmh@aybabtu.com>
2822
2823 * util/update-grub_lib.in (prepare_grub_to_access_device): Generate
2824 code that is backward compatible with pre-uuid search command.
2825
c682dfd7 28262008-05-31 Robert Millan <rmh@aybabtu.com>
2827
2828 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through
2829 floppies after everything else, to ensure floppy drive isn't accessed
2830 unnecessarily (patch from Bean).
2831
b7db5d47 28322008-05-31 Robert Millan <rmh@aybabtu.com>
2833
2834 * commands/search.c (search_label, search_fs_uuid, search_file): Do
2835 not print device names when we were asked to set a variable.
2836
6e037aa9 28372008-05-31 Robert Millan <rmh@aybabtu.com>
2838
2839 * term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement
2840 using "cursor-on" and "cursor-off" commands (understood at least by
2841 the Open Firmware flavour on OLPC).
2842
41305bc8 28432008-05-31 Michael Gorven <michael@gorven.za.net>
2844
2845 * term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor
2846 on and off sequences.
2847
69ba137e 28482008-05-31 Robert Millan <rmh@aybabtu.com>
2849
2850 * util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'.
2851 * util/update-grub.in: Likewise.
2852
520ae21b 28532008-05-30 Pavel Roskin <proski@gnu.org>
2854
2855 * util/biosdisk.c (linux_find_partition): Simplify logic and
2856 make the code more universal. Keep special processing for
2857 devfs, but use a simple rule for all other devices. If the
2858 device ends with a number, append 'p' and the partition number.
2859 Otherwise, append only the partition number.
2860
5786569b 28612008-05-30 Robert Millan <rmh@aybabtu.com>
2862
2863 * util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable.
2864 * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and
2865 GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as
2866 the `root' parameter to Linux.
2867
51500452 28682008-05-30 Robert Millan <rmh@aybabtu.com>
2869
2870 * commands/search.c (options): Rename --fs_uuid to --fs-uuid.
2871 * util/update-grub_lib.in (prepare_grub_to_access_device): Replace
2872 --fs_uuid with --fs-uuid.
2873 * util/update-grub.in: Allow filesystem UUID probes to fail (since not
2874 all filesystems support them).
2875
811d3878 28762008-05-30 Robert Millan <rmh@aybabtu.com>
2877
2878 * fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as
f19dbdb7 2879 grub_printf() flags, since we're printing in units of 2 bytes.
811d3878 2880
cab63c95 28812008-05-30 Robert Millan <rmh@aybabtu.com>
2882
2883 * util/grub.d/00_header.in: Remove obsolete comment referencing
2884 convert_system_path_to_grub_path().
2885 * util/update-grub.in: Likewise.
2886 * util/update-grub_lib.in (is_path_readable_by_grub): New function.
2887 (convert_system_path_to_grub_path): Add a warning message explaining
2888 that this function is deprecated. Rely on is_path_readable_by_grub()
2889 for the readability checks.
2890 (font_path): Use is_path_readable_by_grub() for the readability
2891 check rather than convert_system_path_to_grub_path().
2892
972e2f7a 28932008-05-30 Robert Millan <rmh@aybabtu.com>
2894
2895 * util/update-grub_lib.in (prepare_grub_to_access_device): New function.
2896 * util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without
2897 converting it first.
2898 * util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup
2899 grub.cfg for access to font file, and afterwards call it again to set
2900 the root device.
2901
62191274 29022008-05-30 Robert Millan <rmh@aybabtu.com>
2903
2904 * commands/search.c (options): Add --fs_uuid option.
2905 (search_fs_uuid): New function.
2906 (grub_cmd_search): Fix --set argument passing.
2907 Use search_fs_uuid() when requested via --fs_uuid.
2908 (grub_search_init): Update help message.
2909 * fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid'
2910 and redeclare it as an array of 16-bit words.
2911 (grub_ext2_uuid): New function.
2912 (grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member.
2913 * include/grub/fs.h (struct grub_fs): Add `uuid' struct member.
2914 * util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT)
2915 (GRUB_DEVICE_BOOT_UUID): New variables.
2916 (GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove.
2917 * util/grub.d/00_header.in: Set root using `search --fs_uuid' command
2918 whenever possible.
2919 * util/grub.d/10_hurd.in: Avoid explicit use of root drive. Instead,
2920 just assume `root' variable has the right value.
2921 * util/grub.d/10_linux.in: Likewise.
2922 * util/grub-probe.c (probe): Probe for filesystem UUID when requested
2923 via PRINT_FS_UUID.
2924 (main): Recognise `-t fs_uuid' argument.
2925
01b73ec8 29262008-05-30 Robert Millan <rmh@aybabtu.com>
2927
2928 * util/biosdisk.c (map): Redefine structure to hold information
2929 about GRUB drive name.
fe6b695a 2930 (get_drive): Reimplement without assuming (and verifying) BIOS-like
01b73ec8 2931 drive names.
2932 (call_hook): Remove.
2933 (grub_util_biosdisk_iterate): Access drive names via `.drive' struct
2934 member. Assume drive has partitions.
2935 (grub_util_biosdisk_open): Access device names via `.device' struct
2936 member.
2937 (open_device): Likewise.
2938 (find_drive): Likewise.
2939 (read_device_map): Adjust map[] usage to match the new struct
2940 definition. Don't check for duplicates (still possible, but not cheap
2941 anymore).
2942 (grub_util_biosdisk_fini): Free malloced buffers referenced by map[].
2943 (make_device_name): Remove assumption of BIOS-like drive names.
2944
22f16596 29452008-05-30 Pavel Roskin <proski@gnu.org>
2946
2947 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as
2948 compiling execute.c doesn't need grub_script.tab.h anymore.
2949 (normal/command.c_DEPENDENCIES): Likewise.
2950 (normal/function.c_DEPENDENCIES): Likewise.
2951 * conf/i386-ieee1275.rmk: Likewise.
2952 * conf/i386-linuxbios.rmk: Likewise.
2953 * conf/i386-pc.rmk: Likewise.
2954 * conf/powerpc-ieee1275.rmk: Likewise.
2955 * conf/sparc64-ieee1275.rmk: Likewise.
2956
528ad8f2 29572008-05-29 Pavel Roskin <proski@gnu.org>
2958
d1dff95d 2959 * disk/lvm.c (grub_lvm_scan_device): Check for the buffer end
2960 when scanning metadata for volume group name.
2961
528ad8f2 2962 * include/grub/script.h: Don't include grub_script.tab.h. It's
2963 a generated file, which may only be included from the files with
2964 DEPENDENCIES rules in the makefile. Don't use typedef YYSTYPE,
2965 use union YYSTYPE, as the later allows forward declaration.
2966 * normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.
2967
47248e08 29682008-05-29 Robert Millan <rmh@aybabtu.com>
2969
2970 * term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'.
2971 (OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros.
2972 [GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes
2973 (grub_console_checkkey): Add grub_dprintf() call to report unknown
2974 scan codes.
2975
ee632529 29762008-05-29 Robert Millan <rmh@aybabtu.com>
2977
2978 * term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for
2979 control key combinations.
2980
eee96e08 29812008-05-29 Robert Millan <rmh@aybabtu.com>
2982
2983 * util/powerpc/ieee1275/grub-install.in: Move from here ...
2984 * util/ieee1275/grub-install.in: ... to here.
2985 * powerpc-ieee1275.rmk (grub_install_SOURCES): Update location.
2986 * i386-ieee1275.rmk (sbin_SCRIPTS): New variable.
2987 (grub_install_SOURCES): Likewise.
2988
da9a6a94 29892008-05-29 Robert Millan <rmh@aybabtu.com>
2990
2991 * fs/affs.c: Update copyright year.
2992 * fs/ext2.c: Likewise.
2993 * fs/fshelp.c: Likewise.
2994 * fs/hfsplus.c: Likewise.
2995 * fs/ntfs.c: Likewise.
2996 * fs/xfs.c: Likewise.
2997 * include/grub/fshelp.h: Likewise.
2998 * util/grub-mkdevicemap.c: Likewise.
2999
12e65f3a 30002008-05-28 Robert Millan <rmh@aybabtu.com>
3001
3002 * util/update-grub.in: Allow chmod call to fail, since /boot/grub/
3003 might need to be fatfs to support some firmware implementations
3004 (e.g. OFW or EFI).
3005
23023641 30062008-05-28 Robert Millan <rmh@aybabtu.com>
3007
3008 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC
3009 devices.
3010 * util/grub-mkdevicemap.c (get_mmc_disk_name)
3011 (make_device_map): Likewise.
3012
887d2619 30132008-05-20 Bean <bean123ch@gmail.com>
3014
3015 * fs/fshelp.c (grub_fshelp_map_block): New function.
3016 (grub_fshelp_find_file): Use 64-bit type for pos and block address.
3017 Use `>>' and `&' operator to avoid 64-bit divide and modulo.
3018
3019 * include/grub/fshelp.h (grub_fshelp_journal_type): New enum.
3020 (GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro.
3021 (grub_fshelp_journal): New structure.
3022 (grub_fshelp_map_block): New function prototype.
3023 (grub_fshelp_read_file): Use grub_disk_addr_t as block type.
3024 (grub_fshelp_map_block): Likewise.
3025
3026 * fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro.
3027 (EXT3_JOURNAL_MAGIC_NUMBER): Likewise.
3028 (EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise.
3029 (EXT3_JOURNAL_COMMIT_BLOCK): Likewise.
3030 (EXT3_JOURNAL_SUPERBLOCK_V1): Likewise.
3031 (EXT3_JOURNAL_SUPERBLOCK_V2): Likewise.
3032 (EXT3_JOURNAL_REVOKE_BLOCK): Likewise.
3033 (EXT3_JOURNAL_FLAG_ESCAPE): Likewise.
3034 (EXT3_JOURNAL_FLAG_SAME_UUID): Likewise.
3035 (EXT3_JOURNAL_FLAG_DELETED): Likewise.
3036 (EXT3_JOURNAL_FLAG_LAST_TAG): Likewise.
3037 (grub_ext2_sblock): New members for journal support.
3038 (grub_ext3_journal_header): New structure.
3039 (grub_ext3_journal_revoke_header): Likewise.
3040 (grub_ext3_journal_block_tag): Likewise.
3041 (grub_ext3_journal_sblock): Likewise.
3042 (grub_fshelp_node): New members logfile and journal.
3043 (grub_ext2_read_block): Change block type to grub_disk_addr_t. Use
3044 grub_fshelp_map_block to get real block number.
3045 (grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block
3046 number.
3047 (grub_ext2_read_inode): Likewise.
3048 (grub_ext3_get_journal): New function.
3049 (grub_read_inode): Initialize journal using grub_ext3_get_journal.
3050 (grub_ext2_close): Release memory used by journal.
3051
3052 * fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr".
3053 (REISERFS_MAGIC_DESC_BLOCK): New macro.
3054 (grub_reiserfs_transaction_header): Renamed to
3055 grub_reiserfs_description_block, replace field data with real_blocks.
3056 (grub_reiserfs_commit_block): New structure.
3057 (grub_reiserfs_data): New member journal.
3058 (grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block
3059 number.
3060 (grub_reiserfs_read_symlink): Likewise.
3061 (grub_reiserfs_iterate_dir): Likewise.
3062 (grub_reiserfs_open): Likewise.
3063 (grub_reiserfs_read): Likewise.
3064 (grub_reiserfs_get_journal): New function.
3065 (grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are
3066 three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal
3067 using grub_reiserfs_get_journal.
3068 (grub_reiserfs_close): Release memory used by journal.
3069
3070 * fs/affs.c (grub_affs_read_block): Change block type to
3071 grub_disk_addr_t. Use grub_divmod64 to do 64-bit division.
3072
3073 * fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t.
3074
3075 * fs/hfsplus.c (grub_hfsplus_read_block): Likewise.
3076
3077 * fs/ntfs.c (grub_ntfs_read_block): Likewise.
3078
3079 * fs/udf.c (grub_udf_read_block): Change block type to
3080 grub_disk_addr_t. Use type cast to avoid warning.
3081
3082 * fs/xfs.c (grub_xfs_read_block): Likewise.
3083
b7c6bed5 30842008-05-16 Christian Franke <franke@computer.org>
3085
3086 * commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue
3087 to ensure that break with ESC will always work.
3088 * commands/sleep.c (grub_interruptible_millisleep): Likewise.
3089 Remove ESC from keyboard queue.
3090
eedf167f 30912008-05-16 Christian Franke <franke@computer.org>
3092
3093 * util/biosdisk.c: [__CYGWIN__] Add includes.
3094 (grub_util_biosdisk_open): Use Linux code also for Cygwin.
3095 (get_os_disk): Move variable declarations to OS specific
3096 parts to avoid warning.
3097 [__GNU__] (get_os_disk): Fix /dev/sdXsN case.
3098 [__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names.
3099 (grub_util_biosdisk_get_grub_dev): Use Linux code also for
3100 Cygwin.
3101 * util/getroot.c: [__CYGWIN__] Add includes.
3102 (strip_extra_slashes): Fix "/" case.
3103 [__CYGWIN__] (get_win32_path): New function.
3104 [__CYGWIN__] (grub_get_prefix): Add conversion to win32 path.
3105 [__CYGWIN__] (find_root_device): Disable.
3106 [__CYGWIN__] (get_bootsec_serial): New function.
3107 [__CYGWIN__] (find_cygwin_root_device): Likewise.
3108 [__linux__] (grub_guess_root_device): Add early returns to simplify
3109 structure.
3110 [__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device.
3111 [__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID
3112 check for Linux only.
3113
a079699e 31142008-05-15 Bean <bean123ch@gmail.com>
3115
3116 * kern/i386/pc/startup.S (grub_console_getkey): Workaround for the
3117 keyboard hang problem in apple's intel mac.
3118
1cf4059a 31192008-05-09 Robert Millan <rmh@aybabtu.com>
3120
3121 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio
3122 devices.
3123 * util/grub-mkdevicemap.c (get_virtio_disk_name)
3124 (make_device_map): Likewise.
3125 Reported by Aurelien Jarno <aurel32@debian.org>
3126
ed759390 31272008-05-07 Ian Campbell <ijc@hellion.org.uk>
3128
3129 * util/biosdisk.c (get_os_disk): Recognise xvd type disks.
3130 * util/grub-mkdevicemap.c (get_xvd_disk_name): New function.
3131 (make_device_map): Output entries for xvd type disks.
3132
b56c4eaa 31332008-05-07 Robert Millan <rmh@aybabtu.com>
3134
3135 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS
3136 devices.
3137 * util/grub-mkdevicemap.c (get_cciss_disk_name)
3138 (make_device_map): Likewise.
3139 Reported by Roland Dreier <rdreier@cisco.com>
3140
7f8866ed 31412008-05-07 Robert Millan <rmh@aybabtu.com>
3142
3143 * disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional
3144 grub_strstr() call. Correct a few mistakes in failure path handling.
3145
b0346e0f 31462008-05-06 Robert Millan <rmh@aybabtu.com>
3147
3148 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
3149 Do not print a trailing slash (therefore, the root directory is an
3150 empty string).
3151 (convert_system_path_to_grub_path): Do not remove trailing slash
3152 from make_system_path_relative_to_its_root() output.
3153
3154 * util/i386/pc/grub-install.in: Add trailing slash to output from
3155 make_system_path_relative_to_its_root().
3156
6cf12cbd 31572008-05-06 Robert Millan <rmh@aybabtu.com>
3158
3159 * util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'. This
3160 ensures that output lines aren't intermangled with those sent to
3161 stderr (via grub_util_info()).
3162 * util/grub-probe.c (grub_refresh): Likewise.
3163 * util/i386/pc/grub-setup.c (grub_refresh): Likewise.
3164
0fbb3117 31652008-05-05 Christian Franke <franke@computer.org>
3166
3167 * util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]:
3168 Add Cygwin device names.
3169 (get_ide_disk_name) [__CYGWIN__]: Likewise.
3170 (get_scsi_disk_name) [__CYGWIN__]: Likewise.
3171 (check_device): Return error instead of success on empty name.
3172 (make_device_map): Move label inside linux specific code to
3173 prevent compiler warning.
3174
8124cdb7 31752008-04-30 Robert Millan <rmh@aybabtu.com>
3176
3177 Based on patch from Fabian Greffrath <greffrath@leat.rub.de>
3178 * util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the
3179 first boot option.
3180 * util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT.
3181
094c01d0 31822008-04-29 Robert Millan <rmh@aybabtu.com>
3183
3184 * docs/grub.cfg: New file (example GRUB configuration).
3185
f4b1fc02 31862008-04-26 Robert Millan <rmh@aybabtu.com>
3187
329ce2a5 3188 * DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST). Add
3189 `loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c'
3190 and `disk/ieee1275/nand.c'.
f4b1fc02 3191
25f16ec1 31922008-04-25 Bean <bean123ch@gmail.com>
f19dbdb7 3193
25f16ec1 3194 * Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and
3195 i386-linuxbios.
3196
3197 * commands/hexdump.c (grub_cmd_hexdump): Support dumping of device,
3198 change the buffer size to 4096 for cdrom device.
3199
3200 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add _linux.mod, linux.mod
3201 and nand.mod.
3202 (_linux_mod_SOURCES): New variable.
3203 (_linux_mod_CFLAGS): Likewise.
3204 (_linux_mod_LDFLAGS): Likewise.
3205 (linux_mod_SOURCES): Likewise.
3206 (linux_mod_CFLAGS): Likewise.
3207 (linux_mod_LDFLAGS): Likewise.
3208 (nand_mod_SOURCES): Likewise.
3209 (nand_mod_CFLAGS): Likewise.
3210 (nand_mod_LDFLAGS): Likewise.
3211
3212 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Return
3213 GRUB_ERR_UNKNOWN_DEVICE instead of GRUB_ERR_BAD_DEVICE if no device
3214 type property. (nand device in olpc don't have this property)
3215
3216 * include/grub/disk.h (grub_disk_dev_id): New macro
3217 GRUB_DISK_DEVICE_NAND_ID.
3218
3219 * include/grub/i386/ieee1275/loader.h (grub_rescue_cmd_linux): New
3220 function prototype.
3221 (grub_rescue_cmd_initrd): Likewise.
3222
3223 * include/grub/i386/linux.h (GRUB_LINUX_OFW_SIGNATURE): New macro.
3224 (linux_kernel_params): Add new member ofw_signature, ofw_num_items,
3225 ofw_cif_handler and ofw_idt, adjust padding number.
f19dbdb7 3226
25f16ec1 3227 * include/grub/i386/pc/memory.h (grub_upper_mem): Export it if
3228 GRUB_MACHINE_IEEE1275 is defined.
3229
3230 * include/grub/ieee1275/ieee1275.h (grub_available_iterate):
3231 Use NESTED_FUNC_ATTR attribute on the hook parameter.
3232
3233 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Use NESTED_FUNC_ATTR
3234 on nested function heap_init.
3235 (grub_upper_mem): New variable for i386-ieee1275.
3236 (grub_get_extended_memory): New function for i386-ieee1275.
3237 (grub_machine_init): Call grub_get_extended_memory for i386-ieee1275.
3238
3239 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Use
3240 NESTED_FUNC_ATTR on the hook parameter. Don't quit if no device type
3241 property.
f19dbdb7 3242
25f16ec1 3243 * loader/i386/ieee1275/linux.c: New file.
3244
3245 * loader/i386/ieee1275/linux_normal.c: New file.
3246
3247 * disk/ieee1275/nand.c: New file.
3248
e89d61e9 32492008-04-18 Thomas Schwinge <tschwinge@gnu.org>
3250
3251 * util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct
3252 value.
3253 * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise.
3254
602566f6 32552008-04-18 Robert Millan <rmh@aybabtu.com>
3256
3257 Restructures early code path on ieee1275 to unify grub_main() as
3258 the first C function that is executed in every platform.
3259
3260 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype.
3261 * kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of
3262 cmain().
3263 * kern/powerpc/ieee1275/crt0.S (_start): Likewise.
3264 * kern/ieee1275/cmain.c (cmain): Rename to ...
3265 * kern/ieee1275/cmain.c (grub_ieee1275_init): ... this.
3266 * kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init()
3267 at the beginning.
3268
57490c2b 32692008-04-18 Robert Millan <rmh@aybabtu.com>
3270
3271 * util/update-grub.in: Fix syntax error when setting
3272 `GRUB_PRELOAD_MODULES'.
3273 Reported by Stephane Chazelas <stephane@artesyncp.com>
3274
1977517d 32752008-04-17 Lubomir Kundrak <lkundrak@redhat.com>
3276
3277 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text
3278 section into account, newer toolchains generate unique build ids
3279 * configure.ac: remove the test for --build-id=none acceptance,
e0c5dacb 3280 we want build ids to be preserved
1977517d 3281 * genmk.rb: add -R .note.gnu.build-id to objcopy, so build id
3282 far from other sections don't cause the raw binary images grow
3283 size
3284
bfb1f1a2 32852008-04-15 Robert Millan <rmh@aybabtu.com>
3286
3287 * disk/lvm.c: Update copyright year.
3288 * kern/misc.c: Likewise.
3289
01979850 32902008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
3291
3292 * disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when
f19dbdb7 3293 there is no memory left for physical volume name.
01979850 3294
0a1150e2 32952008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
3296
3297 * disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical
3298 volume name mapping to support bigger than 9 character names properly.
3299
82ead3fe 33002008-04-13 Robert Millan <rmh@aybabtu.com>
3301
3302 * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
3303 as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm
3304
e54a72f5 33052008-04-13 Christian Franke <franke@computer.org>
3306
3307 * util/i386/pc/grub-mkrescue.in: Add --emulation=floppy
3308 to create a floppy emulation boot CD when non emulation mode
3309 does not work.
3310 Enable Joliet CD filesystem extension.
3311
9fe86034 33122008-04-13 Robert Millan <rmh@aybabtu.com>
3313
3314 * kern/misc.c (grub_strncat): Fix off-by-one error.
3315 Reported by Zhang Huan <zhanghuan@nrchpc.ac.cn>
3316
3317 * kern/env.c (grub_env_context_close): Clear current context, not
3318 previous one.
3319 Patch from Zhang Huan <zhanghuan@nrchpc.ac.cn>
3320
3321 * kern/misc.c (grub_strcat): Minor speed optimization (same code size).
3322
7ceeee39 33232008-04-13 Robert Millan <rmh@aybabtu.com>
3324
3325 Improve robustness when handling LVM.
3326
3327 * disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL
f19dbdb7 3328 (and leave `*p' unmodified).
7ceeee39 3329 (grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating
3330 through it.
3331 (grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when
3332 iterating through it.
3333 (grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating
3334 through it.
fe6b695a 3335 (grub_lvm_scan_device): Check the return value (and fail gracefully
7ceeee39 3336 when due) on each grub_lvm_getvalue() or grub_strstr() call.
3337 Don't assume `vg->pvs != NULL' when iterating through it.
3338
58cd3d85 33392008-04-13 Robert Millan <rmh@aybabtu.com>
3340
3341 * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
3342 * genmk.rb (partmap): New variable.
3343 (CLEANFILES, PARTMAPFILES): Add #{partmap}.
3344 (#{partmap}): New target rule.
3345 * genpartmaplist.sh: New file.
3346 * Makefile.in (pkglib_DATA): Add partmap.lst.
3347 (partmap.lst): New target rule.
3348 * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
3349 modules (including all partition maps), instead of preloading them.
3350
78b51059 33512007-04-13 Fabian Greffrath <fabian.greffrath@web.de>
3352
3353 * util/grub.d/30_os-prober.in: New script. Use `os-prober' and
3354 `linux-boot-prober' (if installed) to detect other operating
3355 systems which are installed on the computer and add them to
3356 the boot menu.
3357 * conf/common.rmk: Build and install 30_os-prober.
3358
a91627b4 33592008-04-12 Robert Millan <rmh@aybabtu.com>
3360
3361 * kern/powerpc/ieee1275/init.c: Move from here ...
3362 * kern/ieee1275/init.c: ... to here. Update all users.
3363
3364 * kern/powerpc/ieee1275/cmain.c: Move from here ...
3365 * kern/ieee1275/cmain.c: ... to here. Update all users.
3366
3367 * kern/powerpc/ieee1275/openfw.c: Move from here ...
3368 * kern/ieee1275/openfw.c: ... to here. Update all users.
3369
3370 * loader/powerpc/ieee1275/multiboot2.c: Move from here ...
3371 * loader/ieee1275/multiboot2.c: ... to here. Update all users.
3372
322562ea 33732008-04-10 Pavel Roskin <proski@gnu.org>
3374
3375 * configure.ac: Always use "_cv_" in cache variables for
3376 compatibility with Autoconf 2.62.
3377
a02a73c5 33782008-04-07 Robert Millan <rmh@aybabtu.com>
3379
3380 Revert grub/machine/init.h addition by Pavel (since it breaks on
3381 i386-ieee1275 and others):
3382 * util/i386/pc/misc.c: Remove grub/machine/init.h.
3383 * util/powerpc/ieee1275/misc.c: Likewise.
3384
25c024b1 33852008-04-07 Robert Millan <rmh@aybabtu.com>
3386
3387 * util/grub-probe.c (probe): Improve error message.
3388
3cbd2f98 33892008-04-07 Robert Millan <rmh@aybabtu.com>
3390
3391 * util/biosdisk.c (read_device_map): Skip devices that don't exist
3392 (this prevents the presence of a bogus entry from ruining the whole
3393 thing).
3394
87a297bf 33952008-04-06 Pavel Roskin <proski@gnu.org>
3396
36747a62 3397 * util/biosdisk.c: Include grub/util/biosdisk.h.
3398 * util/grub-fstest.c (execute_command): Make static.
3399 * util/grub-mkdevicemap.c (check_device): Likewise.
3400 * util/i386/pc/misc.c: Include grub/machine/init.h.
3401 * util/powerpc/ieee1275/misc.c: Likewise.
3402 * util/lvm.c: Include grub/util/lvm.h.
3403 * util/misc.c: Include grub/kernel.h, grub/misc.h and
3404 grub/cache.h.
3405 * util/raid.c: Include grub/util/raid.h.
3406 (grub_util_getdiskname): Make static.
3407
87a297bf 3408 * util/grub-emu.c (main): Remove calls to grub_hostfs_init() and
3409 grub_hostfs_fini(), as they are called from grub_init_all() and
3410 grub_fini_all() respectively. This fixes an infinite loop in
3411 grub-fstest due to double registration of hostfs.
3412 Reported by Christian Franke <Christian.Franke@t-online.de>
3413
f6ce7629 34142008-04-05 Pavel Roskin <proski@gnu.org>
3415
3416 * bus/pci.c (grub_pci_iterate): For multifunction devices, probe
3417 all 8 functions. Otherwise, probe function 0 only.
3418
070e49e4 34192008-04-04 Pavel Roskin <proski@gnu.org>
3420
8b088a4c 3421 * commands/lspci.c (grub_lspci_iter): Print the bus number
3422 correctly.
3423
4f657021 3424 * commands/lspci.c (grub_pci_classes): Fix typos.
3425 (grub_lspci_iter): Don't print func twice. Print vendor ID
3426 before device ID, as it's normally done.
3427
070e49e4 3428 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
3429 Fix signedness warnings.
3430 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate):
3431 Likewise.
3432 * util/ieee1275/get_disk_name.c: Include config.h so that
3433 _GNU_SOURCE is defined and getline() is declared. Mark an
3434 unused argument as such. Fix a signedness warning.
3435
ba7328dc 34362008-04-02 Pavel Roskin <proski@gnu.org>
3437
26887f22 3438 * genkernsyms.sh.in: Use more robust assignments for CC and
3439 srcdir. Quote srcdir.
3440 * gensymlist.sh.in: Likewise. Assert at the compile time that
3441 the symbol table is not empty.
3442
ba7328dc 3443 * disk/raid.c (grub_raid_memberlist): Fix a signedness warning.
3444 * fs/cpio.c (grub_cpio_read): Likewise.
3445
0f582c6b 34462008-04-01 Pavel Roskin <proski@gnu.org>
3447
4b6e1995 3448 * disk/ata.c (grub_ata_open): Don't lose precision in disk->id.
3449 * disk/host.c (grub_host_open): Likewise.
3450 * disk/loopback.c (grub_loopback_open): Likewise.
3451 * disk/memdisk.c (grub_memdisk_open): Use a string pointer for
3452 disk->id as in disk/host.c, not a multi-character constant.
3453
828a2768 3454 * util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek(). The
3455 later is obsolete, potentially dangerous and sets a bad example.
3456 * util/i386/efi/grub-mkimage.c (make_header): Likewise.
3457 * util/misc.c (grub_util_get_image_size): Likewise.
3458
2bb4fb47 3459 * disk/loopback.c (options): Improve help for "--partitions".
3460
0f582c6b 3461 * normal/arg.c (grub_arg_show_help): Fix spacing of the long
3462 options to align them with the short options, e.g. "echo -e".
3463
a33224e0 34642008-03-31 Bean <bean123ch@gmail.com>
3465
3466 * video/reader/png.c (grub_png_data): New member is_16bit and
3467 image_data.
3468 (grub_png_decode_image_header): Detect 16 bit png image.
3469 (grub_png_convert_image): New function to convert 16 bit image to 8 bit.
3470 (grub_png_decode_png): Call grub_png_convert_image for 16 bit image.
3471 (grub_video_reader_png): Release memory occupied by image_data.
3472
3473 * fs/ntfs.c (find_attr): Handle non-resident attribute list larger than
3474 4096 bytes.
3475 (grub_nfs_mount): Skip the test for sector per cluster.
3476
3477 * include/grub/ntfs.h (MAX_SPC): Removed.
3478
86cb4f54 34792008-03-31 Bean <bean123ch@gmail.com>
3480
3481 * conf/common.rmk (pkgdata_MODULES): Add afs.mod.
3482 (grub_probe_SOURCES): Add fs/afs.c.
3483 (grub_fstest_SOURCES): Likewise.
3484 (afs_mod_SOURCES): New variable.
3485 (afs_mod_CFLAGS): Likewise.
3486 (afs_mod_LDFLAGS): Likewise.
3487
3488 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/afs.c.
3489 (grub_emu_SOURCES): Likewise.
3490
3491 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
3492
3493 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3494
3495 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
3496
3497 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3498
3499 * fs/afs.c: New file.
3500
17c74c21 35012008-03-30 Pavel Roskin <proski@gnu.org>
3502
4cb68e89 3503 * disk/host.c: Include grub/misc.h to fix a warning.
3504 * util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix
3505 warnings about implicit declarations.
3506
8790bb04 3507 * fs/udf.c (grub_udf_mount): Fix warning about a shadowing a
3508 variable.
3509 * include/grub/i386/loader.h: Change declaration of
3510 grub_linux_boot() to match what grub_loader_set() expects.
3511 * util/getroot.c (grub_guess_root_device): Return const char* to
3512 fix a warning.
3513 * util/grub-probe.c (probe): Fix a warning about uninitialized
3514 abstraction_name variable.
3515 * util/i386/get_disk_name.c (grub_util_get_disk_name): Mark
3516 second argument as unused to fix a warning.
3517
9a3f3296 3518 * loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add
3519 missing grub_error() call.
3520
0ecef90d 3521 * util/update-grub_lib.in: Define datarootdir, since Autoconf
3522 2.60 and newer uses it to define datadir.
3523
0bf6d401 3524 * commands/sleep.c: Fix warning about implicit declaration.
3525 * disk/memdisk.c: Likewise.
3526 * loader/aout.c: Likewise.
3527 * loader/i386/bsd_normal.c: Likewise.
3528 * util/grub-probe.c: Likewise.
3529
7cdacf97 3530 * commands/i386/cpuid.c (has_longmode): Make static.
3531 * disk/i386/pc/biosdisk.c (cd_drive): Likewise.
3532 * include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused.
3533
17c74c21 3534 * kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
3535 GDT. This is more robust, as %ds can change.
3536 (grub_biosdisk_rw_int13_extensions): Don't clear %ds before
3537 calling real_to_prot().
3538 (grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
3539
80a3e68b 35402008-03-28 Pavel Roskin <proski@gnu.org>
3541
3542 * kern/i386/pc/startup.S: Assert that uncompressed functions
3543 don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
3544 * kern/i386/pc/lzo1x.S: Remove all .align directives in the
3545 code, as they push parts of the code (error handlers) beyond
3546 GRUB_KERNEL_MACHINE_RAW_SIZE. Speed is not as important in this
3547 code as correctness and size.
3548
77bcd272 35492008-03-28 Pavel Roskin <proski@gnu.org>
3550
3551 * kern/i386/pc/startup.S
3552 (grub_biosdisk_get_diskinfo_int13_extensions): When converting
3553 data block address to the real mode, keep offset minimal. This
3554 works around a bug in AWARD BIOS on old Athlon systems, which
3555 makes CD detection hang.
3556
c5dfd43b 35572008-03-26 Pavel Roskin <proski@gnu.org>
3558
3559 * normal/color.c (grub_parse_color_name_pair): Make `name' a
3560 const.
3561 * include/grub/normal.h: Add grub_parse_color_name_pair()
3562 declaration.
3563
bf962df2 35642008-03-24 Bean <bean123ch@gmail.com>
3565
3566 * disk/i386/pc/biosdisk.c (cd_start): Removed.
3567 (cd_count): Removed.
3568 (cd_drive): New variable.
3569 (grub_biosdisk_get_drive): Don't check for (cdN) device.
3570 (grub_biosdisk_call_hook): Likewise.
3571 (grub_biosdisk_iterate): Change cdrom detection method.
3572 (grub_biosdisk_open): Replace cd_start with cd_drive.
3573 (GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to
3574 detect cdrom device.
3575
3576 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_MACHINE_CDROM_START):
3577 Removed.
3578 (GRUB_BIOSDISK_MACHINE_CDROM_END): Removed.
3579 (GRUB_BIOSDISK_CDTYPE_NO_EMUL): New macro.
3580 (GRUB_BIOSDISK_CDTYPE_1_2_M): Likewise.
3581 (GRUB_BIOSDISK_CDTYPE_1_44_M): Likewise.
3582 (GRUB_BIOSDISK_CDTYPE_2_88_M): Likewise.
3583 (GRUB_BIOSDISK_CDTYPE_HARDDISK): Likewise.
3584 (GRUB_BIOSDISK_CDTYPE_MASK): Likewise.
3585 (grub_biosdisk_cdrp): New structure.
3586 (grub_biosdisk_get_cdinfo_int13_extensions): New function.
3587
3588 * include/grub/i386/pc/kernel.h (grub_boot_drive): Export this variable.
3589
3590 * kern/i386/pc/init.c (make_install_device): Don't use (cdN) as root
3591 device.
3592
3593 * kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions):
3594 New function.
3595
68e7fc7a 35962008-03-20 Robert Millan <rmh@aybabtu.com>
3597
3598 Remove 2 TiB limit in ata.mod.
3599 * disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t.
3600 (grub_ata_dumpinfo): Print sector count with 0x%llx.
3601 (grub_ata_identify): Interpret `&info16[100]' as a pointer to
3602 grub_uint64_t instead of grub_uint32_t.
3603
38ad2cf5 36042008-03-05 Bean <bean123ch@gmail.com>
3605
3606 * loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function.
3607 (grub_multiboot): Set boot device.
3608
3609 * boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF.
3610
2b89344e 36112008-03-02 Bean <bean123ch@gmail.com>
3612
3613 * fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of
3614 symlink_buffer.
3615
87a95d1f 36162008-03-01 Yoshinori K. Okuji <okuji@enbug.org>
3617
3618 * DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and
3619 texinfo.tex.
3620
3621 * docs/grub.texi: New file. Copied from GRUB Legacy, and slightly
3622 modified.
3623
3624 * docs/fdl.texi: New file.
f19dbdb7 3625
87a95d1f 3626 * docs/mdate-sh: New file. Copied from gnulib.
3627 * docs/texinfo.tex: Likewise.
3628
3629 * config.guess: Updated from gnulib.
3630 * install-sh: Likewise.
3631
7dc15d8e 36322008-02-28 Robert Millan <rmh@aybabtu.com>
3633
3634 * conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod.
3635 (aout_mod_SOURCES): New variable.
3636 (aout_mod_CFLAGS): Likewise.
3637 (aout_mod_LDFLAGS): Likewise.
3638
3639 * conf/i386-ieee1275.rmk: Likewise.
3640
b00ab696 36412008-02-28 Robert Millan <rmh@aybabtu.com>
3642
3643 * util/update-grub.in: Reorganise terminal validity check. Accept
3644 `ieee1275:console' (OLPC) and `*:gfxterm' as valid too.
3645 Based on suggestion by Franklin PIAT.
3646
79ca2d78 36472008-02-28 Fabian Greffrath <greffrath@leat.rub.de>
3648
3649 * include/grub/util/getroot.h (grub_util_check_block_device): Export new
3650 function.
3651 * util/getroot.c (grub_util_check_block_device): New function that
3652 returns the given argument if it is a block device and returns NULL else.
3653 * util/grub-probe.c (argument_is_device): New variable.
3654 (probe): Promote device_name from a variable to an argument. Receive
3655 device_name from grub_util_check_block_device() if path is NULL and from
3656 grub_guess_root_device() else. Do not free() device_name anymore.
f19dbdb7 3657 (options): Introduce new parameter '-d, --device'.
79ca2d78 3658 (main): Add description of the new parameter to the help screen.
3659 Rename path variable to argument. Set argument_is_device if the '-d'
3660 option is given. Pass argument to probe() depending on
3661 argument_is_device.
3662
0d16e571 36632008-02-24 Bean <bean123ch@gmail.com>
3664
3665 * fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro.
3666 (GRUB_ISO9660_VOLDESC_PRIMARY): Likewise.
3667 (GRUB_ISO9660_VOLDESC_SUPP): Likewise.
3668 (GRUB_ISO9660_VOLDESC_PART): Likewise.
3669 (GRUB_ISO9660_VOLDESC_END): Likewise.
3670 (grub_iso9660_primary_voldesc): New member escape.
3671 (grub_iso9660_data): New member joliet.
3672 (grub_iso9660_convert_string): New function.
3673 (grub_iso9660_mount): Detect joliet extension.
3674 (grub_iso9660_iterate_dir): Convert filename when joliet is detected.
3675 (grub_iso9660_iso9660_label): Likewise.
3676
3677 * conf/common.rmk (pkgdata_MODULES): Add udf.mod.
3678 (grub_setup_SOURCES): Add fs/udf.c.
3679 (grub_fstest_SOURCES): Likewise.
3680 (udf_mod_SOURCES): New variable.
3681 (udf_mod_CFLAGS): Likewise.
3682 (udf_mod_LDFLAGS): Likewise.
3683
3684 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/udf.c.
3685 (grub_emu_SOURCES): Likewise.
3686
3687 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
3688
3689 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3690
3691 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
3692
3693 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3694
3695 * fs/udf.c: New file.
3696
8a594a17 36972008-02-24 Robert Millan <rmh@aybabtu.com>
3698
3699 * conf/i386-efi.rmk (normal/function.c_DEPENDENCIES)
3700 (normal/lexer.c_DEPENDENCIES): New variables.
3701 * conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES)
3702 (normal/lexer.c_DEPENDENCIES): Likewise.
3703 * conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES)
3704 (normal/lexer.c_DEPENDENCIES): Likewise.
3705 * conf/i386-pc.rmk (normal/function.c_DEPENDENCIES)
3706 (normal/lexer.c_DEPENDENCIES): Likewise.
3707 * conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES)
3708 (normal/lexer.c_DEPENDENCIES): Likewise.
3709 * conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES)
3710 (normal/lexer.c_DEPENDENCIES): Likewise.
3711
2dc33c03 37122008-02-23 Robert Millan <rmh@aybabtu.com>
3713
3714 * partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member,
3715 since they were intended to be in hex. This didn't break previously
3716 because of a bug in gpt_partition_map_iterate() (see below).
3717
3718 (gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp'
3719 when checking the validity of GPT header.
3720 Remove `partno', since it always provides the same information as `i'.
3721
f6f4cfb0 37222008-02-21 Yoshinori K. Okuji <okuji@enbug.org>
3723
3724 * include/grub/efi/time.h: Fix a wrong comment.
3725
79ff665f 37262008-02-19 Pavel Roskin <proski@gnu.org>
3727
3728 * kern/rescue.c (grub_enter_rescue_mode): Improve initial
3729 message.
3730
d38e24c2 37312008-02-19 Bean <bean123ch@gmail.com>
3732
3733 * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
3734 (aout_mod_SOURCES): New variable.
3735 (aout_mod_CFLAGS): Likewise.
3736 (aout_mod_LDFLAGS): Likewise.
3737 (_bsd_mod_SOURCES): New variable.
3738 (_bsd_mod_CFLAGS): Likewise.
3739 (_bsd_mod_LDFLAGS): Likewise.
3740 (bsd_mod_SOURCES): New variable.
3741 (bsd_mod_CFLAGS): Likewise.
3742 (bsd_mod_LDFLAGS): Likewise.
3743
3744 * include/grub/aout.h: New file.
3745
3746 * include/grub/i386/loader.h (grub_unix_real_boot): New function.
3747
3748 * include/grub/i386/bsd.h: New file.
3749
3750 * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
3751 to make it public.
3752
3753 * kern/elf.c (grub_elf32_load): Get the physical address after the hook
3754 function is called, so that it's possible to change it inside the hook.
3755 (grub_elf64_load): Likewise.
3756 (grub_elf_file): Don't close the file if elf header is not found.
3757 (grub_elf_close): Close the file if grub_elf_file fails (The new
3758 grub_elf_file won't close it).
3759 (grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize.
3760 (grub_elf64_size): Likewise.
3761
3762 * kern/i386/loader.S (grub_unix_real_boot): New function.
3763
3764 * loader/aout.c: New file.
3765
3766 * loader/i386/bsd.c: New file.
3767
3768 * loader/i386/bsd_normal.c: New file.
3769
3770 * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.
3771
3772 * loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
fe987087 3773 can test other formats.
d38e24c2 3774
b93bdb0f 37752008-02-19 Robert Millan <rmh@aybabtu.com>
3776
3777 * partmap/gpt.c: Include `<grub/gpt_partition.h>'.
3778 (grub_gpt_partition_type_empty): Redefine with macro from
3779 `<grub/gpt_partition.h>'.
3780 (gpt_partition_map_iterate): Adjust partition type comparison.
3781
3782 Export `entry' as partmap-specific `part.data' struct.
3783 (grub_gpt_header, grub_gpt_partentry): Move from here ...
3784
3785 * include/grub/gpt_partition.h (grub_gpt_header)
3786 (grub_gpt_partentry): ... to here (new file).
3787
3788 * util/i386/pc/grub-setup.c: Include `<grub/gpt_partition.h>'.
3789
3790 (grub_gpt_partition_type_bios_boot): New const variable, defined
3791 with macro from `<grub/gpt_partition.h>'.
3792
3793 (setup): Replace `first_start' with `embed_region', which keeps
3794 track of the embed region (and is partmap-agnostic).
3795
3796 Replace find_first_partition_start() with find_usable_region(),
3797 which finds a usable region for embedding using partmap-specific
3798 knowledge (supports PC/MSDOS and GPT).
3799
3800 Fix all assumptions that the embed region start at sector 1, using
3801 `embed_region.start' from now on. Similarly, use `embed_region.end'
3802 rather than `first_start' to calculate available size.
3803
3804 In grub_util_info() message, replace "into after the MBR" with an
3805 indication of the specific sector our embed region starts at.
3806
66cb40f6 38072008-02-19 Robert Millan <rmh@aybabtu.com>
3808
3809 * DISTLIST: Replace `commands/ieee1275/halt.c' and
3810 `commands/ieee1275/reboot.c' with `commands/halt.c' and
3811 `commands/reboot.c'.
3812 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
3813 (halt_mod_SOURCES): Likewise.
3814 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
3815 (halt_mod_SOURCES): Likewise.
3816
b7202015 38172008-02-17 Christian Franke <franke@computer.org>
3818
3819 * commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key.
3820
32b0fc49 38212008-02-17 Robert Millan <rmh@aybabtu.com>
3822
3823 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
3824 set `first_start' to 0 for non-PC/MSDOS partition maps.
3825
aca63502 38262008-02-16 Robert Millan <rmh@aybabtu.com>
3827
3828 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
3829 do not assume partition map is PC/MSDOS before performing checks that
3830 are specific to that layout.
3831
0de8be86 38322008-02-13 Robert Millan <rmh@aybabtu.com>
3833
3834 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove
3835 `commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'.
3836 * kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs.
3837
c3db8364 38382008-02-13 Yoshinori K. Okuji <okuji@enbug.org>
3839
3840 * configure.ac: Only a cosmetic change on the handling of
3841 -fno-stack-protector.
3842
f714229e 38432008-02-12 Alexandre Boeglin <alex@boeglin.org>
3844
c3db8364 3845 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace
3846 commands/i386/pc/halt.c and reboot.c by commands/halt.c and
3847 reboot.c.
f714229e 3848 (grub_install_SOURCES): Add halt.mod and reboot.mod.
3849 (halt_mod_SOURCES): New variable.
3850 (halt_mod_CFLAGS): Likewise.
3851 (halt_mod_LDFLAGS): Likewise.
3852 (reboot_mod_SOURCES): Likewise.
3853 (reboot_mod_CFLAGS): Likewise.
3854 (reboot_mod_LDFLAGS): Likewise.
3855
c3db8364 3856 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace
3857 commands/ieee1275/halt.c and reboot.c by commands/halt.c and
3858 reboot.c.
f714229e 3859 (halt_mod_SOURCES): Likewise.
3860 (reboot_mod_SOURCES): Likewise.
3861
c3db8364 3862 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace
3863 commands/i386/pc/reboot.c by commands/reboot.c.
f714229e 3864 (reboot_mod_SOURCES): Likewise.
3865
3866 * commands/i386/pc/reboot.c: merge this file ...
3867
3868 * commands/ieee1275/reboot.c: ... and this file ...
3869
3870 * commands/reboot.c: ... to this file.
c3db8364 3871 Add some precompiler directive to include the correct header for
3872 each machine.
f714229e 3873
3874 * commands/ieee1275/halt.c: move this file ...
3875
3876 * commands/halt.c: ... to here.
c3db8364 3877 Add some precompiler directive to include the correct header for
3878 each machine.
f714229e 3879
3880 * include/grub/efi/efi.h (grub_reboot): New function declaration.
3881 (grub_halt): Likewise.
3882
3883 * kern/efi/efi.c (grub_reboot): New function.
3884 (grub_halt): Likewise.
3885
c74493e0 38862008-02-12 Robert Millan <rmh@aybabtu.com>
3887
3888 * util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
3889 /dev (like it is done for /dev/mapper). This doesn't provide support
3890 for EVMS, but at least it is now easy to identify the problem when it
3891 arises.
3892
d0db4b04 38932008-02-11 Robert Millan <rmh@aybabtu.com>
3894
3895 * util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition)
3896 (grub_util_biosdisk_get_grub_dev): Check open() exit status by
3897 comparing it with -1, not 0.
3898
bf748642 38992008-02-10 Robert Millan <rmh@aybabtu.com>
3900
3901 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and
3902 `disk/lvm.c'.
3903 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3904 * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
3905
3906 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and
3907 `disk/lvm.c' to the end of the list.
3908 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
3909 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
3910
b5db202a 39112008-02-10 Robert Millan <rmh@aybabtu.com>
3912
3913 * kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'. Call
3914 grub_print_error() instead. This will let user know why we're entering
3915 rescue mode.
3916 Based on suggestions from Sam Morris.
3917
83abee31 39182008-02-10 Alexandre Boeglin <alex@boeglin.org>
3919
3920 * normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg()
3921 on remaining N args, instead of "--" arg N times.
3922
78d5a08b 39232008-02-09 Vesa Jaaskelainen <chaac@nic.fi>
3924
3925 * font/manager.c (unknown_glyph): Added variable for unknown glyph.
3926 (fill_with_default_glyph): Changed to use unknown_glyph for fill
3927 pattern for unknown glyphs.
3928
68807e5f 39292008-02-09 Robert Millan <rmh@aybabtu.com>
3930
3931 * configure.ac: Probe for `help2man'.
3932 * Makefile.in (builddir): New variable.
3933 (HELP2MAN): Likewise. Set to `true' when @HELP2MAN@ doesn't provide it,
3934 or otherwise add a few flags/options to it.
3935 (install-local): For every executable utility or script that is
3936 installed, invoke $(HELP2MAN) to install a manpage based on --help
3937 output.
3938
3939 * util/i386/pc/grub-install.in: Move down `update-grub_lib' sourcing, so
3940 that it doesn't prevent --help from working in build tree.
3941
3942 * util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org'
3943 with `bug-grub@gnu.org'.
3944 * util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise.
3945 * util/update-grub.in (usage): New function.
3946 Implement proper argument check, with support for --help and --version
3947 (as well as existing -y).
3948
39492008-02-09 Christian Franke <franke@computer.org>
0d9ff7f0 3950
3951 * commands/cat.c (grub_cmd_cat): Print '\r' as hex to
3952 avoid overwriting previous output.
3953 * kern/rescue.c (grub_rescue_cmd_cat): Likewise.
3954
c1962162 39552008-02-09 Robert Millan <rmh@aybabtu.com>
3956
3957 * normal/menu.c (run_menu): If timeout is set to zero, don't bother
3958 drawing the menu.
3959
3dac2e3f 39602008-02-09 Robert Millan <rmh@aybabtu.com>
3961
3962 * commands/sleep.c: New file.
3963 * conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'.
3964 (sleep_mod_SOURCES): New variable.
3965 (sleep_mod_CFLAGS): Likewise.
3966 (sleep_mod_LDFLAGS): Likewise.
3967
7a634e08 39682008-02-09 Robert Millan <rmh@aybabtu.com>
3969
3970 * disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for
3971 situations in which we can deduce the RAID size and the superblock
3972 doesn't match it.
3973
b92f0c18 39742008-02-09 Robert Millan <rmh@aybabtu.com>
3975
3976 * disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function. Construct
3977 and return a grub_diskmemberlist_t composed of LVM physical volumes.
3978 [GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member.
3979
3980 * disk/raid.c [GRUB_UTIL] (grub_raid_memberlist): New function. Construct
3981 and return a grub_diskmemberlist_t composed of physical array members.
3982 [GRUB_UTIL] (grub_raid_dev): Add `memberlist' member.
3983
3984 * include/grub/disk.h [GRUB_UTIL] (grub_disk_memberlist): New struct
3985 prototype.
3986 [GRUB_UTIL] (struct grub_disk_dev): Add `memberlist' function pointer.
3987 [GRUB_UTIL] (struct grub_disk_memberlist): New struct declaration.
3988 [GRUB_UTIL] (grub_disk_memberlist_t): New typedef.
3989
3990 * util/grub-probe.c (probe): Move partmap probing code from here ...
3991 (probe_partmap): ... to here.
3992 (probe): Use probe_partmap() once for the disk we're probing, and
3993 additionally, when such disk contains a memberlist() struct member,
3994 once for each disk that is contained in the structure returned by
3995 memberlist().
3996
91a4bf68 39972008-02-09 Robert Millan <rmh@aybabtu.com>
3998
3999 * util/grub-probe.c (main): When `verbosity > 1', set `debug'
4000 environment variable to 'all' in order to obtain debug output from
4001 non-util/ code.
4002 * util/i386/pc/grub-setup.c (main): Likewise.
4003
a96f9caa 40042008-02-08 Robert Millan <rmh@aybabtu.com>
4005
4006 * disk/raid.c (grub_raid_scan_device): Check for
4007 `array->device[sb.this_disk.number]' rather than for
4008 `array->device[sb.this_disk.number]->name', since the latter is not
fe6b695a 4009 guaranteed to be accessible.
a96f9caa 4010
b37a9222 40112008-02-08 Robert Millan <rmh@aybabtu.com>
4012
4013 * disk/raid.c: Update copyright.
4014 * fs/cpio.c: Likewise.
4015 * include/grub/raid.h: Likewise.
4016 * loader/i386/pc/multiboot.c: Likewise.
4017 * util/hostfs.c: Likewise.
4018
5626aee1 40192008-02-08 Robert Millan <rmh@aybabtu.com>
4020
4021 * include/grub/raid.h (struct grub_raid_array): Change type of `device'
4022 to a grub_disk_t array.
4023 * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
4024 `device[x]'.
4025 (grub_raid_scan_device): Replace `device[x].name' accesses with
4026 `device[x]->name'. Simplify initialization of `array->device[x]'.
4027
554f0187 40282008-02-08 Robert Millan <rmh@aybabtu.com>
4029
4030 * disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
4031 grub_dprintf() calls.
4032 * kern/disk.c (grub_disk_read): Include grub_errmsg in out of range
4033 error message.
4034
1ec8425d 40352008-02-07 Christian Franke <franke@computer.org>
4036
4037 * util/hostfs.c (grub_hostfs_open): Use fseeko and ftello
4038 instead of fseek and ftell to support large files.
4039 (grub_hostfs_read): Likewise.
4040
f2156fda 40412008-02-07 Robert Millan <rmh@aybabtu.com>
4042
4043 Patch from Jeroen Dekkers.
4044 * disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk
fe6b695a 4045 failure, since successfully reading all array members might not be
f2156fda 4046 required.
4047
9216e0e7 40482008-02-06 Robert Millan <rmh@aybabtu.com>
4049
4050 * util/grub-probe.c (probe): Simplify partmap probing (with the
4051 assumption that the first word up to the underscore equals to
4052 the module name).
4053
b0dfd29a 40542008-02-06 Christian Franke <franke@computer.org>
4055
4056 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE
4057 (and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on
4058 last block of a cpio or tar stream.
4059 Check for "TRAILER!!!" instead of any empty data
4060 block to detect last block of a cpio stream.
4061 (grub_cpio_dir): Fix constness of variable np.
4062 (grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if
4063 cpio or tar trailer is detected. This fixes a crash
4064 on open of a non existing file.
4065
c32865bf 40662008-02-05 Bean <bean123ch@gmail.com>
4067
4068 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical
4069 address of entry.
4070 (grub_multiboot_load_elf64): Likewise.
4071 (grub_multiboot): Initialize mbi structure.
4072
4073 * util/grub-fstest.c: Don't include unused header file script.h.
4074
fe6b695a 4075 * conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the beginning
c32865bf 4076 of file.
4077 (grub_fstest_SOURCES): Likewise.
4078
409480b7 40792008-02-05 Robert Millan <rmh@aybabtu.com>
4080
4081 * include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT)
4082 (GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END)
4083 (GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC)
4084 (GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros.
4085
4086 * kern/i386/pc/startup.S: Include `<grub/term.h>'.
4087 (translation_table): Replace hardcoded values with macros
4088 provided by `<grub/term.h>'.
4089
4090 * term/i386/pc/at_keyboard.c: Include `<grub/term.h>'.
4091 (keyboard_map): Correct/add a few values, with macros provided
4092 by `<grub/term.h>'.
4093 (keyboard_map_shift): Zero values that don't differ from their
4094 `keyboard_map' equivalents.
4095 (grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling.
4096 Discard the second scan code that is always sent by Caps lock.
4097 Only use `keyboard_map_shift' when it provides a non-zero value,
4098 otherwise fallback to `keyboard_map'.
4099
99fadbaa 41002008-02-04 Bean <bean123ch@gmail.com>
4101
4102 * Makefile.in (enable_grub_fstest): New variable.
4103
4104 * conf/common.rmk (grub_fstest_init.lst): New rule.
4105 (grub_fstest_init.h): Likewise.
4106 (grub_fstest_init.c): Likewise.
4107 (util/grub-fstest.c_DEPENDENCIES): New variable.
4108 (grub_fstest_SOURCES): Likewise.
4109
4110 * configure.ac (enable_grub_fstest): Check for --enable-grub-fstest.
4111
4112 * util/grub-fstest.c: New file.
4113
bf567c50 41142008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
4115
4116 Make grub-setup handle a separate root device.
f19dbdb7 4117
bf567c50 4118 * util/i386/pc/grub-setup.c (setup): Always open the root device,
4119 so that the root device can be compared with the destination
4120 device.
4121 When embedding the core image, if the root and destination devices
4122 are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to
4123 0xFF.
4124 When not embedding, set ROOT_DRIVE to 0xFF.
f19dbdb7 4125
9be6b98b 41262008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
4127
4128 Add support for having a grub directory in a different drive. This
4129 is still only the data handling part.
f19dbdb7 4130
9be6b98b 4131 * kern/i386/pc/startup.S (multiboot_trampoline): Set %dh to 0xFF.
4132 (codestart): Save %dh in GRUB_ROOT_DRIVE.
4133 (grub_root_drive): New variable.
4134
4135 * kern/i386/pc/init.c (make_install_device): Use GRUB_ROOT_DRIVE
4136 instead of GRUB_BOOT_DRIVE to construct a device name. Set
4137 GRUB_ROOT_DRIVE to GRUB_BOOT_DRIVE if it is 0xFF, otherwise use it
4138 as it was.
4139
4140 * include/grub/i386/pc/kernel.h (grub_root_drive): New prototype.
4141
4142 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_ROOT_DRIVE): New
4143 macro.
4144 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Set to 0x4f.
4145
4146 * boot/i386/pc/pxeboot.S (_start): Set %dh to 0xFF. For now, this
4147 is bogus, because PXE booting does not specify any drive
4148 correctly.
4149
4150 * boot/i386/pc/lnxboot.S (reg_edx): Set the second byte to 0xFF. I
4151 am not sure if this is really correct.
4152
4153 * boot/i386/pc/cdboot.S: Set %dh to 0xFF, because the root drive
4154 is always identical to the boot drive when booting from a CD.
4155
4156 * boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any
4157 longer.
4158 (root_drive): New variable.
4159 (real_start): Unconditionally set %dh to ROOT_DRIVE.
4160 (setup_sectors): Push %dx right after popping it, because %dh will
4161 be modified later.
4162 (copy_buffer): Restore %dx.
4163
e0ca0677 41642008-02-03 Robert Millan <rmh@aybabtu.com>
4165
4166 * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
4167 use `cdboot.img' for cdrom images.
4168
3b3f6629 41692008-02-03 Robert Millan <rmh@aybabtu.com>
4170
4171 * util/grub.d/00_header.in: Issue scripting commands for GRUB to
4172 only setup gfxterm when `font' command has succeeded.
4173
d42b3672 41742008-02-03 Robert Millan <rmh@aybabtu.com>
4175
4176 * loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS]
4177 (grub_rescue_cmd_multiboot_loader)
4178 (grub_rescue_cmd_module_loader): Enable multiboot1 calls.
4179
fa370ea6 41802008-02-03 Pavel Roskin <proski@gnu.org>
4181
e0c5dacb 4182 * kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop
fa370ea6 4183 %edx and %esi from stack only after grub_gate_a20() is called.
4184 grub_gate_a20() clobbers %edx.
4185
f2a76e1d 41862008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
4187
4188 * configure.ac (AC_INIT): Bumped to 1.96.
4189
4190 * DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c,
4191 commands/lspci.c,disk/memdisk.c, include/grub/pci.h,
4192 include/grub/i386/pc/pci.h, video/readers/jpeg.c, and
4193 video/readers/png.c.
4194
90fd32d1 41952008-02-03 Bean <bean123ch@gmail.com>
9be665dd 4196
4197 * conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img.
4198 (cdboot_img_SOURCES): New variable.
4199 (cdboot_img_ASFLAGS): New variable.
4200 (cdboot_img_LDFLAGS): New variable.
4201
4202 * boot/i386/pc/cdboot.S: New file.
4203
4204 * disk/i386/pc/biosdisk.c (cd_start): New variable.
4205 (cd_count): Likewise.
4206 (grub_biosdisk_get_drive): Add support for cd device.
4207 (grub_biosdisk_call_hook): Likewise.
4208 (grub_biosdisk_iterate): Likewise.
4209 (grub_biosdisk_open): Likewise.
4210 (GRUB_BIOSDISK_CDROM_RETRY_COUNT): New macro.
4211 (grub_biosdisk_rw): Support reading from cd device.
4212 (GRUB_MOD_INIT): Iterate cd devices.
4213
4214 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_FLAG_CDROM): New macro.
4215 (GRUB_BIOSDISK_MACHINE_CDROM_START): Likewise.
4216 (GRUB_BIOSDISK_MACHINE_CDROM_END): Likewise.
4217
4218 * kern/i386/pc/init.c (make_install_device): Check for cd device.
4219
4020aa53 42202008-02-02 Robert Millan <rmh@aybabtu.com>
4221
4222 * commands/read.c: New file.
4223 * conf/common.rmk (pkglib_MODULES): Add `commands/read.c'.
4224 (read_mod_SOURCES): New variable.
4225 (read_mod_CFLAGS): Likewise.
4226 (read_mod_LDFLAGS): Likewise.
4227
e03a1132 42282008-02-02 Robert Millan <rmh@aybabtu.com>
4229
4230 * normal/main.c (grub_normal_execute): Check for `menu->size' when
4231 determining whether menu has to be displayed.
4232
58c69220 42332008-02-02 Marco Gerards <marco@gnu.org>
4234
4235 * bus/pci.c: New file.
4236
4237 * include/grub/pci.h: Likewise.
4238
4239 * include/grub/i386/pc/pci.h: Likewise.
4240
4241 * commands/lspci.c: Likewise.
4242
4243 * conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and
4244 `lspci.mod'.
4245 (pci_mod_SOURCES): New variable.
4246 (pci_mod_CFLAGS): Likewise.
4247 (pci_mod_LDFLAGS): Likewise.
4248 (lspci_mod_SOURCES): Likewise.
4249 (lspci_mod_CFLAGS): Likewise.
f19dbdb7 4250 (lspci_mod_LDFLAGS): Likewise.
58c69220 4251
c004e1b4 42522008-02-02 Bean <bean123ch@gmail.com>
4253
4254 * fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
4255 (grub_ufs_get_file_block): Fix indirect block calculation problem.
4256
4257 * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk.
4258 (grub_xfs_btree_node): New structure.
4259 (grub_xfs_btree_root): New structure.
4260 (grub_xfs_inode): New members nblocks, extsize, nextents and btree.
4261 (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents.
4262 (GRUB_XFS_EXTENT_BLOCK): Likewise.
4263 (GRUB_XFS_EXTENT_SIZE): Likewise.
4264 (grub_xfs_read_block): Support btree format type.
4265 (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook.
4266 Use directory block as basic unit.
4267
4268 * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block.
4269
4270 * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
4271 __attribute__ ((__regparm__ (1))).
4272
f95562bf 42732008-02-01 Robert Millan <rmh@aybabtu.com>
4274
4275 Correct a mistake in previous commit.
4276
4277 * conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the
4278 top.
4279 (normal/command.c_DEPENDENCIES): New variable.
4280
7d31f41f 42812008-02-01 Robert Millan <rmh@aybabtu.com>
4282
4283 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the
4284 top.
4285 (normal/command.c_DEPENDENCIES): New variable.
4286 (grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables.
4287 * conf/i386-ieee1275.rmk: Likewise.
4288 * conf/i386-linuxbios.rmk: Likewise.
4289 * conf/i386-pc.rmk: Likewise.
4290 * conf/sparc64-ieee1275.rmk: Likewise.
4291 * conf/powerpc-ieee1275.rmk: Likewise.
4292 (grub_emu_SOURCES): Add `fs/fshelp.c'.
4293
4294 * genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it.
4295
60b6be74 42962008-02-01 Robert Millan <rmh@aybabtu.com>
4297
4298 * kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf()
4299 call at beginning of function.
4300
078522ab 43012008-01-31 Pavel Roskin <proski@gnu.org>
4302
4303 * util/powerpc/ieee1275/grub-mkrescue.in: New file.
d2c11005 4304 * conf/powerpc-ieee1275.rmk (bin_SCRIPTS): New variable.
4305 (grub_mkrescue_SOURCES): Likewise.
078522ab 4306 * DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in.
4307
ccaa8a5f 43082008-01-30 Robert Millan <rmh@aybabtu.com>
4309
4310 * conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'.
4311 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ...
4312 * conf/common.rmk (util/grub-probe.c_DEPENDENCIES)
4313 (grub_probe_SOURCES): ... to here.
4314
4315 * conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'.
4316 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove.
4317 * conf/i386-ieee1275.rmk: Likewise.
4318 * conf/i386-linuxbios.rmk: Likewise.
4319 * conf/powerpc-ieee1275.rmk: Likewise.
4320
ae5a9cd7 43212008-01-30 Tristan Gingold <gingold@free.fr>
4322
4323 * kern/rescue.c: Silently accept empty lines.
4324
70bc2ef2 43252008-01-29 Bean <bean123ch@gmail.com>
4326
4327 * boot/i386/pc/lnxboot.S (data_start): Code cleanup.
4328 (real_code_2): Code cleanup and change comment style.
4329 (move_memory): Avoid using 32-bit address mode.
4330
6a4d50ea 43312008-01-29 Bean <bean123ch@gmail.com>
4332
4333 * conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'.
4334 (png_mod_SOURCES): New variable.
4335 (png_mod_CFLAGS): Likewise.
4336 (png_mod_LDFLAGS): Likewise.
4337
4338 * video/readers/png.c: New file.
4339
11cc30ac 43402008-01-28 Robert Millan <rmh@aybabtu.com>
4341
4342 * include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro.
4343 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove
4344 `ifndef GRUB_MOD_GAP' hack.
4345 * util/elf/grub-mkimage.c (add_segments): Likewise.
4346
3abc589f 43472008-01-27 Robert Millan <rmh@aybabtu.com>
4348
4349 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip
4350 `GRUB_MOD_GAP' for platforms in which it's not defined.
962ca133 4351 * util/elf/grub-mkimage.c (add_segments): Likewise.
3abc589f 4352
e1907778 43532008-01-27 Robert Millan <rmh@aybabtu.com>
4354
4355 Get grub-emu to build again (including parallel builds).
4356
4357 * conf/i386-pc.rmk (util/grub-emu.c_DEPENDENCIES): Remove variable.
4358 Split into ...
4359 (util/grub-emu.c_DEPENDENCIES): ... this, ...
4360 (normal/execute.c_DEPENDENCIES): ... this, ...
4361 (grub-emu_DEPENDENCIES): ... and this.
4362
4363 * conf/i386-efi.rmk: Likewise.
4364 * conf/i386-linuxbios.rmk: Likewise.
4365 * conf/i386-ieee1275.rmk: Likewise.
4366 * conf/powerpc-ieee1275.rmk: Likewise.
4367 (grub_emu_SOURCES): Remove duplicated `kern/file.c'.
4368
2216b101 43692008-01-27 Robert Millan <rmh@aybabtu.com>
4370
4371 * NEWS: Add a few items.
4372
f75172d9 43732008-01-27 Robert Millan <rmh@aybabtu.com>
4374
4375 Fix parallel builds with grub-emu. Based on earlier commit for
4376 grub-probe and grub-setup.
4377
4378 * conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ...
4379 (util/grub-emu.c_DEPENDENCIES): ... this.
4380 * conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ...
4381 (util/grub-emu.c_DEPENDENCIES): ... this.
4382 * conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ...
4383 (util/grub-emu.c_DEPENDENCIES): ... this.
4384 * conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
4385 (util/grub-emu.c_DEPENDENCIES): ... this.
4386 * conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
4387 (util/grub-emu.c_DEPENDENCIES): ... this.
4388
3f51de77 43892008-01-27 Pavel Roskin <proski@gnu.org>
4390
4391 * include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
4392 to create a gap between _end and the modules added to the image
4393 with grub-mkrescue. That fixes "CLAIM failed" on PowerMAC.
4394 * kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
4395 * util/elf/grub-mkimage.c (add_segments): Likewise.
4396
2033f53e 43972008-01-26 Pavel Roskin <proski@gnu.org>
4398
4399 * kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
4400 just return an error.
4401
22da1f6f 44022008-01-26 Bean <bean123ch@gmail.com>
4403
4404 * fs/reiserfs.c (grub_fshelp_node): New member next_offset.
4405 (grub_reiserfs_get_item): Save offset of the next item.
4406 (grub_reiserfs_iterate_dir): Use next_offset to find next item.
4407
2a9525e6 44082008-01-25 Robert Millan <rmh@aybabtu.com>
4409
4410 * conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to
4411 make all filesystem sources appear together (possibly fixing omissions
4412 while at it).
4413 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
4414 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4415 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
4416 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4417
4418 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise. Additionally,
4419 add `kern/file.c'.
4420 * conf/i386-efi.rmk (grub_probe_SOURCES): Likewise.
4421 * conf/i386-ieee1275.rmk (grub_probe_SOURCES): Likewise.
4422 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Likewise.
4423 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Likewise.
4424
4425 * util/grub-probe.c: Include `<grub/file.h>' and `<sys/stat.h>'.
4426 (probe): Add a sanity check to make sure of our ability to read
4427 requested files when probing for filesystem type.
4428
4429 * genmk.rb: Update copyright year (2007).
4430
4431 * include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init)
4432 (grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init)
4433 (grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init)
4434 (grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init)
4435 (grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init)
4436 : Remove function prototypes.
4437
b95f71b5 44382008-01-25 Robert Millan <rmh@aybabtu.com>
4439
4440 Revert my previous commits (based on wrong assumption of how grub_errno
4441 works).
4442
fe6b695a 4443 * kern/disk.c (grub_disk_open): Stop resetting grub_errno.
b95f71b5 4444 * kern/file.c (grub_file_open): Likewise.
4445
d08bbb49 44462008-01-24 Pavel Roskin <proski@gnu.org>
4447
4448 * include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares
4449 that hang if GRUB tries to setup colors.
4450 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set
4451 colors for firmwares that don't support it.
4452 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag):
4453 Recognize Open Hack'Ware, set flags to work around its
4454 limitations.
4455
605e36ed 44562008-01-24 Robert Millan <rmh@aybabtu.com>
4457
4458 * kern/file.c (grub_file_open): Do not account previous failures of
4459 unrelated functions when grub_errno is checked for.
4460 Reported by Oleg Strikov.
4461
bac332a1 44622008-01-24 Bean <bean123ch@gmail.com>
4463
4464 * fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro.
4465 (grub_ufs_sblock): New member volume name.
4466 (grub_ufs_find_file): Fix string copy bug.
4467 (grub_ufs_label): Implement this function properly.
4468
4469 * fs/hfs.c (grub_hfs_cnid_type): New enum.
4470 (grub_hfs_iterate_records): Use the correct file number for extents
4471 and catalog file. Fix problem in next index calculation.
4472 (grub_hfs_find_node): Replace recursive function call with loop.
4473 (grub_hfs_iterate_dir): Replace recursive function call with loop.
4474
15c80c09 44752008-01-23 Robert Millan <rmh@aybabtu.com>
4476
4477 * include/grub/i386/ieee1275/loader.h: Include `<grub/types.h>',
4478 `<grub/symbol.h>' and `<grub/multiboot.h>'.
4479 (grub_multiboot2_real_boot): New function prototype.
4480
4481 * include/grub/i386/pc/memory.h: Include `<grub/machine/machine.h>'.
4482 [!GRUB_MACHINE_IEEE1275] (grub_lower_mem, grub_upper_mem): Disable.
4483
4484 * kern/i386/ieee1275/init.c (grub_os_area_addr)
4485 (grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables.
4486
305338fd 44872008-01-23 Robert Millan <rmh@aybabtu.com>
4488
4489 * kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with
4490 #ifdef'ed out grub_printf().
4491
3ea52685 44922008-01-23 Robert Millan <rmh@aybabtu.com>
4493
4494 * term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out
4495 grub_dprintf calls, since they make "debug=all" mode unusable.
4496 (grub_console_checkkey): Likewise.
4497
5882ae4b 44982008-01-23 Robert Millan <rmh@aybabtu.com>
4499
4500 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
4501 `term/i386/pc/at_keyboard.c'.
4502 (pkglib_MODULES): Add `serial.mod'.
4503 (serial_mod_SOURCES): New variable.
4504 (serial_mod_CFLAGS): Likewise.
4505 (serial_mod_LDFLAGS): Likewise.
4506
4507 * include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'. Remove
4508 `<grub/powerpc/ieee1275/console.h>'.
4509 (grub_keyboard_controller_init): New function prototype.
4510 (grub_console_checkkey): Likewise.
4511 (grub_console_getkey): Likewise.
4512
4513 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT
4514 keyboard on i386.
4515
4516 * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
4517 grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
4518
06ab5303 45192008-01-23 Robert Millan <rmh@aybabtu.com>
4520
4521 * kern/i386/pc/init.c (make_install_device): When memdisk image is
4522 present, "(memdisk)/boot/grub" becomes the default prefix.
4523
4524 * util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus
4525 a memdisk tarball with all the modules. Add --overlay=DIR option that
4526 allows users to overlay additional files into the image.
4527
dbb475a4 45282008-01-23 Robert Millan <rmh@aybabtu.com>
4529
4530 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h'
4531 and `machine/memory.h'.
4532 (pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'.
4533 (_multiboot_mod_SOURCES): New variable.
4534 (_multiboot_mod_CFLAGS): Likewise.
4535 (_multiboot_mod_LDFLAGS): Likewise.
4536 (multiboot_mod_SOURCES): Likewise.
4537 (multiboot_mod_CFLAGS): Likewise.
4538 (multiboot_mod_LDFLAGS): Likewise.
4539
4540 * include/grub/i386/ieee1275/loader.h: New file.
4541
4542 * include/grub/i386/ieee1275/machine.h: Likewise.
4543
4544 * include/grub/i386/ieee1275/memory.h: Likewise.
4545
4546 * include/grub/i386/pc/init.h (grub_os_area_addr): Remove (redundant)
4547 variable declaration.
4548 (grub_os_area_size): Likewise.
4549
4550 * kern/i386/ieee1275/init.c (grub_os_area_addr, grub_os_area_size)
4551 (grub_lower_mem, grub_upper_mem): New variables.
4552 (grub_stop_floppy): New function (just to make
4553 grub_multiboot2_real_boot() happy).
4554
4555 * kern/i386/ieee1275/startup.S: Include `<grub/machine/memory.h>',
4556 `<grub/cpu/linux.h>', `<multiboot.h>' and `<multiboot2.h>'.
4557 (grub_stop): New function.
4558 Include `"../realmode.S"' and `"../loader.S"'.
4559
4560 * loader/multiboot_loader.c: Include `<grub/machine/machine.h>'.
4561 Replace `__i386__' #ifdefs with `GRUB_MACHINE_PCBIOS'.
4562
4563 * loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386,
4564 rely on grub_multiboot2_real_boot() for final boot.
4565
25638629 45662008-01-22 Robert Millan <rmh@aybabtu.com>
4567
4568 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When
4569 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any
4570 device that doesn't look like an SD card.
4571 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
4572 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag.
4573 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect
4574 OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when
4575 found.
4576
9dad816d 45772008-01-22 Robert Millan <rmh@aybabtu.com>
4578
4579 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
4580 avoid claiming over our own code.
4581
34842f2d 45822008-01-22 Bean <bean123ch@gmail.com>
4583
4584 * conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
4585 (jpeg_mod_SOURCES): New variable.
4586 (jpeg_mod_CFLAGS): Likewise.
4587 (jpeg_mod_LDFLAGS): Likewise.
4588
4589 * video/readers/jpeg.c : New file.
4590
44023a28 45912008-01-22 Bean <bean123ch@gmail.com>
4592
4593 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
4594 there are no more items.
4595
bc2d8ac6 45962008-01-21 Robert Millan <rmh@aybabtu.com>
4597
4598 * kern/mm.c (grub_mm_init_region): Improve debug message.
4599
261bd4bc 46002008-01-21 Robert Millan <rmh@aybabtu.com>
4601
4602 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
4603 (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
4604 address.
4605 (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
4606 a C macro.
4607 * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
4608 Indicates start of upper memory.
4609 * util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
4610 (generate_image): Abort when image size is big enough to corrupt
4611 upper memory.
4612
4613 * include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
4614 (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
4615 * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
4616 instead of hardcoding 0xA0000.
4617 * video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
4618 (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
4619 instead of hardcoding 0xA0000.
4620
f970b55e 46212008-01-21 Robert Millan <rmh@aybabtu.com>
4622
4623 * disk/memdisk.c (memdisk_size): New variable.
4624 (grub_memdisk_open): Replace grub_arch_memdisk_size() call with
4625 `memdisk_size'.
4626 (grub_memdisk_init): Initialize `memdisk_size'. Reallocate memdisk
4627 image to dynamic memory.
4628 (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
4629 `memdisk_size'. Free memdisk block.
4630
1a8b0526 46312008-01-21 Robert Millan <rmh@aybabtu.com>
4632
4633 Fix detection of very small filesystems (like tar).
4634
4635 * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
4636 contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
4637 GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
4638 a problem with this disk).
4639
6e9b4aab 46402008-01-21 Robert Millan <rmh@aybabtu.com>
4641
4642 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
4643 on grub_biosdisk_rw_standard() error.
4644
0d8837b2 46452008-01-21 Robert Millan <rmh@aybabtu.com>
4646
4647 * include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
4648 recent changes.
4649 * kern/elf.c: Likewise.
4650 * kern/ieee1275/ieee1275.c: Likewise.
4651 * kern/powerpc/ieee1275/openfw.c: Likewise.
4652 * term/ieee1275/ofconsole.c: Likewise.
4653
ffd36e34 46542008-01-21 Robert Millan <rmh@aybabtu.com>
4655
4656 * include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.
4657
3f0093d0 4658 * include/grub/kernel.h (grub_arch_memdisk_addr)
4659 (grub_arch_memdisk_size): Moved from here ...
ffd36e34 4660
3f0093d0 4661 * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr)
4662 (grub_arch_memdisk_size): ... to here.
ffd36e34 4663
6c391b21 46642008-01-21 Robert Millan <rmh@aybabtu.com>
4665
4666 Mostly based on bugfix from Bean.
4667
4668 * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
4669 attribute with hook() parameter.
4670 (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
4671 declaration.
4672 (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
4673 attribute with hook() parameter.
4674 (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
4675 declaration.
4676
55a581dc 46772008-01-21 Robert Millan <rmh@aybabtu.com>
4678
4679 * conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
4680 (pkglib_MODULES): Add `memdisk.mod'.
4681 (memdisk_mod_SOURCES): New variable.
4682 (memdisk_mod_CFLAGS): Likewise.
4683 (memdisk_mod_LDFLAGS): Likewise.
4684
4685 * disk/memdisk.c: New file.
4686
4687 * include/grub/disk.h (grub_disk_dev_id): Add
4688 `GRUB_DISK_DEVICE_MEMDISK_ID'.
4689
4690 * include/grub/i386/pc/kernel.h
4691 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro.
4692 (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4.
4693 (grub_kernel_image_size): New variable declaration.
4694 (grub_total_module_size): Likewise.
4695 (grub_memdisk_image_size): Likewise.
4696
4697 * include/grub/i386/pc/memory.h
4698 (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro.
4699
4700 * include/grub/kernel.h: Include `<grub/symbol.h>'.
4701 (grub_arch_memdisk_addr): New variable declaration.
4702 (grub_arch_memdisk_size): Likewise.
4703
4704 * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function.
4705 (grub_arch_memdisk_size): Likewise.
4706
4707 * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable.
4708 (codestart): Replace hardcoded `0x100000' with
4709 `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro.
4710
4711 * util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
4712 (generate_image): Add `memdisk_path' parameter. When `memdisk_path' is
4713 not NULL, append the contents of the file it refers to, at the end of
4714 the compressed kernel image. Initialize `grub_memdisk_image_size'
4715 variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
4716 (options): Add "memdisk"|'m' option.
4717 (main): Parse --memdisk|-m option, and pass user-provided path as
4718 parameter to generate_image().
4719
3d7f54c9 47202008-01-20 Robert Millan <rmh@aybabtu.com>
4721
4722 * kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
4723 grub_dprintf() calls from here ...
4724 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.
4725
0bf74728 47262008-01-20 Robert Millan <rmh@aybabtu.com>
4727
4728 Fix detection of "real mode" when /options/real-mode? doesn't exist.
4729
4730 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
4731 declaration.
4732 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
4733 (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
4734 `GRUB_IEEE1275_FLAG_REAL_MODE'.
fe6b695a 4735 (cmain): Initialize `grub_ieee1275_mmu' (using /chosen/mmu integer
0bf74728 4736 property).
4737 * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
4738 `grub_ieee1275_mmu' rather than obtaining a handler on every call.
4739
33bf70a7 47402008-01-19 Robert Millan <rmh@aybabtu.com>
4741
fe6b695a 4742 Get rid of confusing function (superseded by
33bf70a7 4743 `grub_ieee1275_get_integer_property')
4744 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
4745 prototype.
4746 * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
4747 function.
4748 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
4749 grub_ieee1275_decode_int_4(), by obtaining integer properties directly
fe987087 4750 in native endianness from grub_ieee1275_get_integer_property().
33bf70a7 4751
e2da7d26 47522008-01-19 Robert Millan <rmh@aybabtu.com>
4753
4754 * kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
4755 command after "shut-down", since implementations differ on which
4756 the command for halt is.
4757
59f1fd8d 47582008-01-19 Robert Millan <rmh@aybabtu.com>
4759
4760 * include/grub/i386/linuxbios/console.h: Add header protection.
4761 (grub_keyboard_controller_init): New function prototype.
4762 * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
4763 (KEYBOARD_COMMAND_READ): Likewise.
4764 (KEYBOARD_COMMAND_WRITE): Likewise.
4765 (KEYBOARD_SCANCODE_SET1): Likewise.
4766 (grub_keyboard_controller_write): New function.
4767 (grub_keyboard_controller_read): Likewise.
4768 (grub_keyboard_controller_init): Likewise.
4769
4770 * term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
4771 (grub_console_init): On coreboot/LinuxBIOS, call
4772 grub_keyboard_controller_init().
4773
5f5a7c15 47742008-01-19 Robert Millan <rmh@aybabtu.com>
4775
4776 PowerPC changes provided by Pavel Roskin.
4777
4778 * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
4779 * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
4780 don't rely on cmain() doing it.
4781 * kern/i386/ieee1275/startup.S (_start): Store %eax in
4782 grub_ieee1275_entry_fn, don't rely on cmain() doing it.
4783
1210e168 47842008-01-16 Robert Millan <rmh@aybabtu.com>
4785
4786 * include/grub/i386/linuxbios/memory.h
4787 (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
4788 * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
4789 receive `table_header' as argument. Instead, probe for it in the
4790 known memory ranges where it can be present.
4791 (grub_available_iterate): Do not pass a fixed `table_header' address
4792 to grub_linuxbios_table_iterate().
4793
3d04eab8 47942008-01-15 Robert Millan <rmh@aybabtu.com>
4795
4796 * configure.ac: Add `i386-ieee1275' to the list of supported targets.
4797 * conf/i386-ieee1275.rmk: New file.
4798 * include/grub/i386/ieee1275/console.h: Likewise.
4799 * include/grub/i386/ieee1275/ieee1275.h: Likewise.
4800 * include/grub/i386/ieee1275/kernel.h: Likewise.
4801 * include/grub/i386/ieee1275/time.h: Likewise.
4802 * kern/i386/ieee1275/init.c: Likewise.
4803 * kern/i386/ieee1275/startup.S: Likewise.
4804
d1bc1b73 48052008-01-15 Robert Millan <rmh@aybabtu.com>
4806
4807 * kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
4808 when pointers are 32-bit (but still do set it to one when they are
4809 64-bit).
4810
66a65807 48112008-01-15 Robert Millan <rmh@aybabtu.com>
4812
4813 * include/grub/ieee1275/ieee1275.h
4814 (grub_ieee1275_get_integer_property): New function prototype.
4815
4816 * kern/ieee1275/ieee1275.c: Include `<grub/types.h>'.
4817 (grub_ieee1275_get_integer_property): New function. Wraps around
fe987087 4818 grub_ieee1275_get_property() to handle endianness.
66a65807 4819
4820 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
4821 grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
fe6b695a 4822 where appropriate.
66a65807 4823 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
4824 (grub_map): Likewise.
4825 * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.
4826
a83ccafd 48272008-01-15 Bean <bean123ch@gmail.com>
4828
4829 * normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
4830 (grub_script_execute_cmdline): Reset grub_errno.
4831
4832 * normal/main.c (read_config_file): Reset grub_errno.
4833
4834 * normal/parse.y (script_init): New.
4835 (script): Move function and menuentry here.
4836 (delimiter): New.
4837 (command): Add delimiter at the end of command.
4838 (commands): Adjust to match the new command.
4839 (commandblock): Remove grub_script_lexer_record_start.
f19dbdb7 4840 (menuentry): Add grub_script_lexer_record_start, use the new commands.
a83ccafd 4841 (if): Use the new commands.
4842
4843 * conf/common.rmk (pkgdata_MODULES): Add echo.mod.
4844
df6ecfc6 48452008-01-15 Robert Millan <rmh@aybabtu.com>
4846
4847 * normal/menu.c (run_menu): Move timeout message from here ...
4848 (print_timeout): ... to here.
4849 (run_menu): Use print_timeout() once during initial draw to print
4850 the whole message, and again in every clock tick to update only
4851 the number of seconds.
4852
87ae25eb 48532008-01-15 Robert Millan <rmh@aybabtu.com>
4854
4855 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
4856 actual size of `available' from grub_ieee1275_get_property(), and
4857 restrict parsing to that bound.
4858
47bf09a4 48592008-01-15 Christian Franke <franke@computer.org>
4860
4861 * util/grub-emu.c: Replace <argp.h> by <getopt.h>.
4862 (argp_program_version): Remove variable.
4863 (argp_program_bug_address): Likewise.
4864 (options): Convert from struct argp_option to struct option.
4865 (struct arguments): Remove.
4866 (parse_opt): Remove.
4867 (usage): New function.
4868 (main): Replace struct args members by simple variables.
4869 Replace argp_parse() by getopt_long().
4870 Add switch to evaluate options.
4871 Add missing "(...)" around root_dev in prefix string.
4872
c86f1469 48732008-01-14 Robert Millan <rmh@aybabtu.com>
4874
4875 * kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
4876 for grub_ieee1275_exit(), in order to improve portability.
4877
e622c559 48782008-01-14 Robert Millan <rmh@aybabtu.com>
4879
4880 * util/grub.d/10_linux.in (prefix): Define.
4881 (exec_prefix): Likewise. Both definitions are later used by `libdir'.
4882
44cb1ec8 48832008-01-13 Pavel Roskin <proski@gnu.org>
4884
4885 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
4886 grub_errno if no errors have been detected.
4887
1eb8c802 48882008-01-12 Robert Millan <rmh@aybabtu.com>
4889
4890 * include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
4891 (grub_util_get_dev_abstraction): New function prototype.
4892
4893 * util/getroot.c: Include `<grub/util/getroot.h>'
4894 (grub_util_get_grub_dev): Move detection of abstraction type to ...
4895 (grub_util_get_dev_abstraction): ... here (new function).
4896
4897 * util/grub-probe.c: Convert PRINT_* to an enum. Add
4898 `PRINT_ABSTRACTION'.
4899 (probe): Probe for abstraction type when requested.
4900 (main): Understand `--target=abstraction'.
4901
4902 * util/i386/efi/grub-install.in: Add abstraction module to core
4903 image when it is found to be necessary.
4904 * util/i386/pc/grub-install.in: Likewise.
4905 * util/powerpc/ieee1275/grub-install.in: Likewise.
4906
4907 * util/update-grub_lib.in (font_path): Return system path without
4908 converting to GRUB path.
4909 * util/update-grub.in: Convert system path returned by font_path()
4910 to a GRUB path. Use `grub-probe -t abstraction' to determine what
4911 abstraction module is needed for loading fonts (if any). Export
4912 that as `GRUB_PRELOAD_MODULES'.
4913 * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
4914 insmod commands).
4915
52bd3de9 49162008-01-12 Yoshinori K. Okuji <okuji@enbug.org>
4917
4918 Remove some unused code from reiserfs.
f19dbdb7 4919
52bd3de9 4920 * fs/reiserfs.c (struct grub_reiserfs_key)
4921 [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
4922 (struct grub_reiserfs_node_body): Removed.
4923 (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
4924 Likewise.
4925 (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
4926 Likewise.
4927 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
4928 Likewise.
4929 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
4930 Likewise.
4931 (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
4932 Likewise.
4933 (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
4934 Likewise.
4935 (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
4936 (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
4937 (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
4938
2f80039d 49392008-01-10 Robert Millan <rmh@aybabtu.com>
4940
4941 * util/update-grub_lib.in (grub_file_is_not_garbage): New function.
4942 Determines if a file is garbage left by packaging systems, etc.
4943 * util/update-grub.in: Use grub_file_is_not_garbage() as a condition
4944 for processing /etc/grub.d scripts.
4945 * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
4946 * util/grub.d/10_linux.in: Likewise. Use grub_file_is_not_garbage()
4947 as a condition for processing Linux images.
4948
87888032 49492008-01-10 Pavel Roskin <proski@gnu.org>
4950
4951 * include/grub/powerpc/libgcc.h (__ucmpdi2): New export. Needed
4952 to compile reiserfs.c on PowerPC.
4953
7e54fced 49542008-01-10 Robert Millan <rmh@aybabtu.com>
de9993e0 4955
4956 * kern/device.c (grub_device_iterate): Do not abort device iteration
4957 when one of the devices cannot be opened.
4958 * kern/disk.c (grub_disk_open): Do not account previous failures of
4959 unrelated functions when grub_errno is checked for.
4960
5aa541e6 49612008-01-08 Robert Millan <rmh@aybabtu.com>
4962
4963 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
4964 `! grub_linux_is_bzimage', change order of address comparison to make
4965 it more intuitive, and improve "too big zImage" error message.
4966
7076340d 49672008-01-08 Robert Millan <rmh@aybabtu.com>
4968
4969 * Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
4970 `$(update-grub_DATA)'.
4971 (distcheck): Fix race condition when invoking `$(MAKE)' on multiple
4972 targets.
4973
9ca70333 49742008-01-07 Robert Millan <rmh@aybabtu.com>
4975
4976 * boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
4977 which instruction is modified by grub-setup during installation
4978 (since it wasn't obvious by only looking at this file).
4979
38ccf575 49802008-01-07 Robert Millan <rmh@aybabtu.com>
4981
4982 * TODO: Rewrite. Just refer to the wiki and the BTS instead of
4983 listing actual TODO items.
4984
f5db4291 49852008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
4986
868967cf 4987 * fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
4988 correctly.
4989 (grub_reiserfs_get_key_offset): Likewise.
4990 (grub_reiserfs_set_key_offset): Likewise.
4991 (grub_reiserfs_set_key_type): Likewise.
fe6b695a 4992 (grub_reiserfs_iterate_dir): Return 1 if found, otherwise 0.
868967cf 4993
4994 (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
4995 better to remove the bitfield version completely.
f19dbdb7 4996
868967cf 49972008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 4998
f5db4291 4999 * fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
5000 allocated from the heap, due to the fshelp implementation.
5001 (grub_reiserfs_dir): Free NODE, due to the same reason.
5002
492e6d9d 50032008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
5004
5005 Mostly from Vincent Pelletier:
f19dbdb7 5006
492e6d9d 5007 * fs/reiserfs.c: New file.
f19dbdb7 5008
492e6d9d 5009 * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod.
5010 (reiserfs_mod_SOURCES): New variable.
5011 (reiserfs_mod_CFLAGS): Likewise.
5012 (reiserfs_mod_LDFLAGS): Likewise.
5013
5014 * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
5015 disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
5016 include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
5017 normal/color.c.
5018
9ce3e7c1 50192008-01-06 Robert Millan <rmh@aybabtu.com>
5020
5021 * normal/color.c: Remove `<grub/env.h>'.
5022
f3b58148 50232008-01-05 Jeroen Dekkers <jeroen@dekkers.cx>
5024
5025 * include/grub/normal.h: Include <grub/env.h>.
5026
7ac3bcfa 50272008-01-05 Robert Millan <rmh@aybabtu.com>
5028
5029 * util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
5030 usage example with `(hd0,1)'.
fb358190 5031 Reported by Samuel Thibault.
7ac3bcfa 5032
c8ee99d7 50332008-01-05 Robert Millan <rmh@aybabtu.com>
5034
5035 * kern/i386/loader.S (grub_linux_is_bzimage): New variable.
5036 (grub_linux_boot_zimage): Rename to ...
5037 (grub_linux_boot): ... this.
5038 (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
5039 (grub_linux_boot_zimage): Conditionalize zImage copy.
5040
5041 * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype.
5042 (grub_linux_boot_bzimage): Remove prototype.
5043 (grub_linux_boot_zimage): Rename to ...
5044 (grub_linux_boot): ... this.
5045
5046 * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
5047 (grub_linux_boot): Remove function.
5048
0ece25b1 50492008-01-05 Robert Millan <rmh@aybabtu.com>
5050
5051 * include/grub/normal.h (grub_env_write_color_normal): New prototype.
5052 (grub_env_write_color_highlight): Likewise.
5053 (grub_wait_after_message): Likewise.
5054
5055 * normal/color.c: New file.
5056
5057 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'.
5058 (normal_mod_DEPENDENCIES): Likewise.
5059
5060 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'.
5061 (normal_mod_DEPENDENCIES): Likewise.
5062
5063 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'.
5064 (normal_mod_DEPENDENCIES): Likewise.
5065
5066 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'.
5067 (normal_mod_DEPENDENCIES): Likewise.
5068
5069 * normal/menu_entry.c (run): Rely on grub_wait_after_message()
5070 for waiting after a message is printed.
5071 * normal/main.c (read_config_file): Likewise.
5072 (grub_normal_init): Register grub_env_write_color_normal() and
5073 grub_env_write_color_highlight() hooks. Mark `color_normal' and
5074 `color_highlight' variables as global.
5075
5076 * normal/menu.c (grub_wait_after_message): New function.
5077 (grub_color_menu_normal): New variable. Replaces ...
5078 (GRUB_COLOR_MENU_NORMAL): ... this macro.
5079 (grub_color_menu_highlight): New variable. Replaces ...
5080 (GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
5081 (draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
5082 `GRUB_TERM_COLOR_STANDARD'.
5083 (print_message): Use `grub_setcolorstate' to reload colors. Rename
5084 `normal_code' and `highlight_code' to `old_color_normal' and
5085 `old_color_highlight', respectively.
5086 (grub_menu_init_page): Update colors when drawing the menu, based on
5087 `menu_color_normal' and `menu_color_highlight' variables.
5088 (grub_menu_run): Rely on grub_wait_after_message() for waiting after
5089 a message is printed.
5090
182dd4e5 50912008-01-05 Robert Millan <rmh@aybabtu.com>
5092
5093 * kern/env.c (grub_env_context_open): Propagate hooks for global
5094 variables to new context.
5095
5096 * kern/main.c (grub_set_root_dev): Export `root' variable.
5097
ddf8f6ad 50982008-01-05 Robert Millan <rmh@aybabtu.com>
5099
5100 * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
fe6b695a 5101 discs unconditionally, since udev and others have options to provide
ddf8f6ad 5102 them.
5103
d8b43d9b 51042008-01-05 Robert Millan <rmh@aybabtu.com>
5105
5106 * normal/completion.c (iterate_dir): Skip `.' and `..' directories.
5107
2bff2de3 51082008-01-04 Christian Franke <franke@computer.org>
5109
5110 * kern/i386/pc/init.c (grub_machine_init): Fix evaluation
5111 of eisa_mmap.
5112
97eab917 51132008-01-03 Pavel Roskin <proski@gnu.org>
5114
5115 * kern/i386/linuxbios/init.c: Put "void" to all function
5116 declarations with no arguments.
5117 * kern/powerpc/ieee1275/init.c: Likewise.
5118 * term/i386/pc/at_keyboard.c: Likewise.
5119 * term/i386/pc/vga_text.c: Likewise.
5120 * util/grub-mkdevicemap.c: Likewise.
5121
b9416d00 51222008-01-02 Robert Millan <rmh@aybabtu.com>
5123
5124 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
5125 message when loaded image is out of bounds.
5126 (grub_multiboot_load_elf64): Likewise.
5127
92695df9 51282008-01-02 Pavel Roskin <proski@gnu.org>
5129
5130 * util/grub.d/10_linux.in: Try version without ".old" when
5131 looking for initrd. It's better to use initrd from the newer
5132 kernel of the same version than no initrd at all.
5133
d98d9cad 51342008-01-01 Robert Millan <rmh@aybabtu.com>
5135
5136 * util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.
5137
dbfdce36 51382008-01-01 Vesa Jaaskelainen <chaac@nic.fi>
5139
f19dbdb7 5140 * include/grub/video.h: Added grub_video_unmap_color and
dbfdce36 5141 grub_video_get_active_render_target.
5142 (grub_video_adapter): Added unmap_color and get_active_render_target.
5143
f19dbdb7 5144 * video/video.c: Added grub_video_unmap_color and
dbfdce36 5145 grub_video_get_active_render_target.
5146 (grub_video_get_info): Changed method to accept NULL pointer as an
5147 argument to allow detection of active video adapter.
5148
5149 * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as
5150 grub_video_vbe_unmap_color_int.
5151 Added grub_video_vbe_unmap_color and
5152 grub_video_vbe_get_active_render_target.
5153 (grub_video_vbe_adapter): Added unmap_color and
5154 get_active_render_target.
5155
f19dbdb7 5156 * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage
dbfdce36 5157 with grub_video_vbe_unmap_color_int.
5158
5159 * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
5160 (DEFAULT_NORMAL_COLOR): Likewise.
5161 (DEFAULT_HIGHLIGHT_COLOR) Likewise.
5162 (DEFAULT_FG_COLOR): Removed.
5163 (DEFAULT_BG_COLOR): Likewise.
5164 (DEFAULT_CURSOR_COLOR): Changed value.
5165 (grub_virtual_screen): Added standard_color_setting,
5166 normal_color_setting, highlight_color_setting and term_color.
5167 (grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
5168 (bitmap_width): Added.
5169 (bitmap_height): Likewise.
5170 (bitmap): Likewise.
5171 (set_term_color): Likewise.
5172 (grub_virtual_screen_setup): Changed to use new terminal coloring
5173 settings.
5174 (grub_gfxterm_init): Added init for bitmap.
5175 (grub_gfxterm_fini): Added destroy for bitmap.
5176 (redraw_screen_rect): Updated to use background bitmap and new
5177 terminal coloring.
5178 (scroll_up): Added optimization for case when there is no bitmap.
5179 (grub_gfxterm_cls): Fixed to use correct background color.
5180 (grub_virtual_screen_setcolorstate): Changed to use new terminal
5181 coloring.
5182 (grub_virtual_screen_setcolor): Likewise.
5183 (grub_virtual_screen_getcolor): Added.
5184 (grub_gfxterm_background_image_cmd): Likewise.
5185 (grub_video_term): Added setcolor and getcolor.
5186 (MOD_INIT): Added registration of background_image command.
5187 (MOD_TERM): Added unregistration for background_image command.
5188
c3c20931 51892007-12-30 Pavel Roskin <proski@gnu.org>
5190
5191 * loader/multiboot_loader.c: Fix multiboot command
5192 unregistration. Fix all typos in the word "multiboot".
5193
df266716 51942007-12-29 Pavel Roskin <proski@gnu.org>
94239199 5195
5196 * util/grub.d/10_linux.in: Refactor search for initrd. Add
5197 support for initrd names used in Fedora.
5198
fc6e896c 51992007-12-26 Bean <bean123ch@gmail.com>
5200
5201 * conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
5202 (cpio_mod_SOURCES): New variable.
5203 (cpio_mod_CFLAGS): Likewise.
5204 (cpio_mod_LDFLAGS): Likewise.
5205
5206 * fs/cpio.c: New file.
5207
5208 * conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c.
5209
5210 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
5211
5212 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
5213
5214 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5215
533110ad 52162007-12-25 Robert Millan <rmh@aybabtu.com>
5217
5218 * include/grub/term.h (struct grub_term): Add `getcolor' function.
5219 (grub_getcolor): New function.
5220
5221 * kern/term.c (grub_getcolor): New function.
5222 * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
5223 (GRUB_COLOR_MENU_HIGHLIGHT): New macro.
5224 (print_entry): Set normal and highlight colors to
5225 `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
5226 respectively, before printing and restore them to old
5227 values afterwards.
5228 (grub_menu_init_page): Likewise. Fill an additional colored space
5229 that would otherwise be left blank.
5230
5231 * term/efi/console.c (grub_console_getcolor): New function.
5232 (struct grub_console_term.getcolor): New variable.
5233 * term/i386/pc/console.c (grub_console_getcolor): New function.
5234 (struct grub_console_term.getcolor): New variable.
5235 * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
5236 (struct grub_console_term.getcolor): New variable.
5237
5238 * term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
5239 (struct grub_console_term.setcolor): Remove variable.
5240 * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
5241 (struct grub_console_term.setcolor): Remove variable.
5242 * term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
5243 (struct grub_console_term.setcolor): Remove variable.
5244 * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
5245 (struct grub_console_term.setcolor): Remove variable.
5246
4931827f 52472007-12-25 Robert Millan <rmh@aybabtu.com>
5248
5249 * configure.ac: Search for possible unifont.hex locations, and
5250 define UNIFONT_HEX if found.
5251
5252 * Makefile.in (UNIFONT_HEX): Define variable.
5253 (DATA): Rename to ...
5254 (PKGLIB): ... this. Update all users.
5255 (PKGDATA): New variable.
5256 (pkgdata_IMAGES): Rename to ...
5257 (pkglib_IMAGES): ... this. Update all users.
5258 (pkgdata_MODULES): Rename to ...
5259 (pkglib_MODULES): ... this. Update all users.
5260 (pkgdata_PROGRAMS): Rename to ...
5261 (pkglib_PROGRAMS): ... this. Update all users.
5262 (pkgdata_DATA): Rename to ...
5263 (pkglib_DATA): ... this. Update all users.
5264 (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
5265 (unicode.pff, ascii.pff): New rules.
5266 (all-local): Add `$(PKGDATA)' dependency.
5267 (install-local): Process `$(PKGDATA)'.
5268
5269 * util/update-grub_lib.in (font_path): Search for *.pff files in
5270 a few more locations, including `${pkgdata}'.
5271
57e57e31 52722007-12-23 Robert Millan <rmh@aybabtu.com>
5273
5274 Patch from Bean <bean123ch@gmail.com>:
5275 * disk/loopback.c (grub_loopback_read): Add missing bit shift to
5276 `size'.
5277
4bc72aa9 52782007-12-21 Bean <bean123ch@gmail.com>
5279
5280 * conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
5281 (ntfscomp_mod_SOURCES): New variable.
5282 (ntfscomp_mod_CFLAGS): Likewise.
5283 (ntfscomp_mod_LDFLAGS): Likewise.
5284
5285 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c.
5286 (grub_probe_SOURCES): Likewise.
5287 (grub_emu_SOURCES): Likewise.
5288
5289 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
5290 (grub_emu_SOURCES): Likewise.
5291
5292 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
5293 (grub_emu_SOURCES): Likewise.
5294
5295 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
5296 (grub_emu_SOURCES): Likewise.
5297
5298 * fs/ntfs.c (grub_ntfscomp_func): New variable.
5299 (read_run_list): Renamed to grub_ntfs_read_run_list.
5300 (decomp_nextvcn): Moved to ntfscomp.c.
5301 (decomp_getch): Likewise.
5302 (decomp_get16): Likewise.
5303 (decomp_block): Likewise.
5304 (read_block): Likewise.
5305 (read_data): Partially moved to ntfscomp.c.
5306 (fixup): Change unsigned to grub_uint16_t.
5307 (read_mft): Change unsigned long to grub_uint32_t.
5308 (read_attr): Likewise.
5309 (read_data): Likewise.
5310 (read_run_data): Likewise.
5311 (read_run_list): Likewise.
5312 (read_mft): Likewise.
5313
5314 * fs/ntfscomp.c: New file.
5315
5316 * include/grub/ntfs.h: New file.
5317
af680a87 53182007-12-16 Robert Millan <rmh@aybabtu.com>
5319
5320 * util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
5321 IDE disk check, since Linux is known to support 20 IDE disks.
5322 Reported by Colin Watson.
5323
84be7599 53242007-12-15 Bean <bean123ch@gmail.com>
5325
5326 * conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
5327 (lnxboot_img_SOURCES): New variable.
5328 (lnxboot_img_ASFLAGS): Likewise.
5329 (lnxboot_img_LDFLAGS): Likewise.
5330
5331 * boot/i386/pc/lnxboot.S: New file.
5332
6af9db01 53332007-11-24 Pavel Roskin <proski@gnu.org>
5334
5335 * configure.ac: Test if '--build-id=none' is supported by the
5336 linker. If yes, add it to TARGET_LDFLAGS. Build ID causes
5337 objcopy to generate incorrect binary files (binutils
5338 2.17.50.0.18-1 as shipped by Fedora 8).
5339 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
5340 linking, so that build ID doesn't break the test.
5341
7361cfe6 53422007-11-24 Pavel Roskin <proski@gnu.org>
5343
5344 * include/grub/i386/time.h: use "void" in the argument list
5345 of grub_cpu_idle().
5346 * include/grub/powerpc/time.h: Likewise.
5347 * include/grub/sparc64/time.h: Likewise.
5348
1593e10c 53492007-11-18 Christian Franke <franke@computer.org>
5350
5351 * util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
5352 now return control chars instead of GRUB_CONSOLE_KEY_* constants.
5353 This fixes the problem that function keys did not work in grub-emu.
5354
3b8db1a8 53552007-11-18 Christian Franke <franke@computer.org>
5356
5357 * disk/host.c (grub_host_open): Remove attribute unused from
5358 name parameter. Add check for "host". This fixes the problem
5359 that grub-emu does not find partitions.
5360
2e29408d 53612007-11-18 Christian Franke <franke@computer.org>
5362
5363 * util/hostfs.c (is_dir): New function.
5364 (grub_hostfs_dir): Handle missing dirent.d_type case.
5365 (grub_hostfs_read): Add missing fseek().
5366 (grub_hostfs_label): Clear label pointer. This fixes a crash
5367 of grub-emu on "ls (host)".
5368
398cd047 53692007-11-18 Christian Franke <franke@computer.org>
5370
5371 * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
5372 Add attribute packed, gcc 3.4.4 on Cygwin aligns this
5373 to 64 bit boundary by default.
5374
c405c391 53752007-11-18 Bean <bean123ch@gmail.com>
5376
5377 * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
5378 (hexdump_mod_SOURCES): New variable.
5379 (hexdump_mod_CFLAGS): Likewise.
5380 (hexdump_mod_LDFLAGS): Likewise.
f19dbdb7 5381
c405c391 5382 * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.
5383
5384 * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.
5385
5386 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.
5387
5388 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.
5389
5390 * include/grub/hexdump.h: New file.
5391
5392 * commands/hexdump.c: New file.
5393
5cced7fd 53942007-11-10 Robert Millan <rmh@aybabtu.com>
5395
5396 * commands/i386/pc/play.c (beep_off): Switch order of arguments
5397 in grub_outb() calls.
5398 (beep_on): Likewise.
5399
8b714eb0 54002007-11-10 Christian Franke <franke@computer.org>
5401
5402 * normal/menu.c (run_menu): Check for empty menu to avoid crash.
5403 (grub_menu_run): Likewise.
5404
ce0f1839 54052007-11-10 Robert Millan <rmh@aybabtu.com>
5406
5407 * include/grub/i386/efi/machine.h: New file.
5408 * include/grub/i386/linuxbios/machine.h: Likewise.
5409 * include/grub/i386/pc/machine.h: Likewise.
5410 * include/grub/powerpc/ieee1275/machine.h: Likewise.
5411 * include/grub/sparc64/ieee1275/machine.h: Likewise.
5412
5413 * term/i386/pc/serial.c: Include <grub/machine/machine.h>.
5414 (serial_hw_io_addr): New variable.
5415 (serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
5416 instead of `(unsigned short *) 0x400'.
5417
270c237d 54182007-11-10 Bean <bean123ch@gmail.com>
5419
5420 * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
5421
a87783bf 54222007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
5423
5424 * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
5425 (vga_mod_SOURCES): Added.
5426 (vga_mod_CFLAGS): Likewise.
5427 (vga_mod_LDFLAGS): Likewise.
5428
5429 * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
5430 grub_outb() calls.
5431 (set_map_mask): Likewise.
5432 (set_read_map): Likewise.
5433 (set_read_address): Likewise.
5434 (vga_font): Removed variable.
5435 (get_vga_glyph): Removed function.
5436 (invalidate_char): Likewise.
5437 (write_char): Changed to use grub_font_get_glyph() for font
5438 information.
5439 (grub_vga_putchar): Likewise.
5440 (grub_vga_getcharwidth): Likewise.
5441
6433b448 54422007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
5443
5444 * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
5445 flags.
5446 (pxeboot_img_LDFLAGS): Likewise.
5447 (diskboot_img_LDFLAGS): Likewise.
5448 (kernel_img_LDFLAGS): Likewise.
5449
49178511 54502007-11-06 Robert Millan <rmh@aybabtu.com>
5451
5452 * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
5453 in grub_outb() calls.
5454 (serial_hw_init): Likewise.
5455
53b052de 54562007-11-05 Robert Millan <rmh@aybabtu.com>
5457
5458 * util/update-grub.in: Allow files in ${update_grub_dir} to contain
5459 spaces. Skip non-regular files.
5460
5ab33bba 54612007-11-05 Robert Millan <rmh@aybabtu.com>
5462
5463 * kern/disk.c (grub_disk_firmware_fini)
5464 (grub_disk_firmware_is_tainted): New variables.
5465
5466 * include/grub/disk.h (grub_disk_firmware_fini)
5467 (grub_disk_firmware_is_tainted): Likewise.
5468
5469 * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
5470 (grub_disk_biosdisk_fini): ... to here.
5471 (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
5472 (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
5473 is set. Register grub_disk_biosdisk_fini() in
5474 `grub_disk_firmware_fini'.
5475
5476 * disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
5477 (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
5478 Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
5479 to finish existing firmware disk interface.
5480
5481 * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
5482 (ata_mod_SOURCES): New variable.
5483 (ata_mod_CFLAGS): Likewise.
5484 (ata_mod_LDFLAGS): Likewise.
5485
0149ab7c 54862007-11-05 Robert Millan <rmh@aybabtu.com>
5487
5488 * disk/ata.c: Remove `<grub/machine/time.h>'. Include `<grub/time.h>'.
5489 (grub_ata_wait): Reimplement using grub_millisleep().
5490
5491 * include/grub/misc.h (grub_div_roundup): Fix parenthesization.
5492 * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
5493
be7ac41e 54942007-11-03 Marco Gerards <marco@gnu.org>
5495
5496 * term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
5497 (CRTC_ADDR_PORT): New macro.
5498 (CRTC_DATA_PORT): Likewise.
5499 (CRTC_CURSOR): Likewise.
5500 (CRTC_CURSOR_ADDR_HIGH): Likewise.
5501 (CRTC_CURSOR_ADDR_LOW): Likewise.
5502 (update_cursor): New function.
5503 (grub_console_real_putchar): Call `update_cursor'.
5504 (grub_console_gotoxy): Likewise.
5505 (grub_console_cls): Set the default color when clearing the
5506 screen.
5507 (grub_console_setcursor): Implemented.
5508
bb06ab2e 55092007-11-03 Marco Gerards <marco@gnu.org>
5510
5511 * disk/ata.c (grub_ata_pio_read): Don't wait for the command to
5512 become activate.
5513 (grub_ata_pio_write): Likewise.
5514
5515 (grub_atapi_identify): Wait after issuing an ATA command.
5516 (grub_atapi_packet): Likewise.
5517 (grub_ata_identify): Likewise.
5518 (grub_ata_readwrite): Likewise.
5519
cf8f780b 55202007-11-03 Marco Gerards <marco@gnu.org>
5521
5522 * disk/ata.c (grub_ata_pio_read): Detect and return the error code.
5523 (grub_ata_pio_write): Likewise.
5524 (grub_ata_readwrite): Use `grub_error', instead of
5525 returning `grub_errno'.
5526
ed649e54 55272007-11-03 Marco Gerards <marco@gnu.org>
5528
5529 * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
5530 grub_ata_pio_write once for every single sector, instead of for
5531 multiple sectors.
5532
ca25d8f0 55332007-10-31 Robert Millan <rmh@aybabtu.com>
5534
5535 * configure.ac: Add `i386-linuxbios' to the list of supported targets.
5536
5537 * conf/i386-linuxbios.rmk: New file.
5538
5539 * kern/i386/pc/hardware.c: Likewise.
5540 * term/i386/pc/at_keyboard.c: Likewise.
5541 * term/i386/pc/vga_text.c: Likewise.
5542
5543 * include/grub/i386/linuxbios/boot.h: Likewise.
5544 * include/grub/i386/linuxbios/console.h: Likewise.
5545 * include/grub/i386/linuxbios/init.h: Likewise.
5546 * include/grub/i386/linuxbios/kernel.h: Likewise.
5547 * include/grub/i386/linuxbios/loader.h: Likewise.
5548 * include/grub/i386/linuxbios/memory.h: Likewise.
5549 * include/grub/i386/linuxbios/serial.h: Likewise.
5550 * include/grub/i386/linuxbios/time.h: Likewise.
5551
5552 * kern/i386/linuxbios/init.c: Likewise.
5553 * kern/i386/linuxbios/startup.S: Likewise.
5554 * kern/i386/linuxbios/table.c: Likewise.
5555
e911ecc1 55562007-10-31 Marco Gerards <marco@gnu.org>
5557
5558 * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
5559 (ata_mod_SOURCES): New variable.
5560 (ata_mod_CFLAGS): Likewise.
5561 (ata_mod_LDFLAGS): Likewise.
5562
5563 * disk/ata.c: New file.
5564
5565 * include/grub/disk.h (grub_disk_dev_id): Add
5566 `GRUB_DISK_DEV_ATA_ID'.
f19dbdb7 5567
7f66d0e0 55682007-10-31 Robert Millan <rmh@aybabtu.com>
5569
5570 * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
5571 * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.
5572
5573 * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
5574 * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.
5575
5576 * include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
5577 `<grub/types.h>'.
5578
5579 * loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
5580
5cd7dd46 55812007-10-27 Robert Millan <rmh@aybabtu.com>
5582
3236ca65 5583 * include/grub/types.h (ULONG_MAX): Define macro.
5cd7dd46 5584
2ebfc90f 55852007-10-22 Robert Millan <rmh@aybabtu.com>
5586
5587 * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'. Include
5588 `"../realmode.S"'.
5589 Remove `"kern/i386/loader.S"'. Include `"../loader.S"'.
5590
73fcb0f3 55912007-10-22 Robert Millan <rmh@aybabtu.com>
5592
5593 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
5594 (pkgdata_MODULES): Add `biosdisk.mod'.
5595 (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
5596 variables.
5597
5598 * disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
5599 (grub_biosdisk_init): Replace with ...
5600 (GRUB_MOD_INIT(biosdisk)): ... this.
5601 (grub_biosdisk_fini): Replace with ...
5602 (GRUB_MOD_FINI(biosdisk)): ... this.
5603
5604 * kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
5605 (grub_machine_init): Remove call to grub_biosdisk_init().
5606 (grub_machine_fini): Remove call to grub_machine_fini().
5607
5608 * util/i386/pc/grub-install.in (modules): Add `biosdisk'.
5609
3381d274 56102007-10-22 Robert Millan <rmh@aybabtu.com>
5611
5612 * include/grub/time.h: New file.
5613 * include/grub/i386/time.h: Likewise.
5614 * include/grub/powerpc/time.h: Likewise.
5615 * include/grub/sparc64/time.h: Likewise.
5616
5617 * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
5618 instances to ...
5619 (KERNEL_MACHINE_TIME_HEADER): ... this.
5620 * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
5621 instances to ...
5622 (KERNEL_MACHINE_TIME_HEADER): ... this.
5623 * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
5624 instances to ...
5625 (KERNEL_MACHINE_TIME_HEADER): ... this.
5626
5627 * kern/i386/efi/init.c: Include `<grub/time.h>'.
5628 (grub_millisleep): New function.
5629 * kern/i386/pc/init.c: Include `<grub/time.h>'.
5630 (grub_millisleep): New function.
5631 * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
5632 Remove `grub/machine/time.h' include.
5633 (grub_millisleep): New function.
5634 * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
5635 Remove `grub/machine/time.h' include.
5636 (grub_millisleep): New function.
5637
5638 * include/grub/misc.h (grub_div_roundup): New function.
5639
5640 * kern/misc.c: Include `<grub/time.h>'.
5641 (grub_millisleep_generic): New function.
5642
5643 * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
5644 Add `time.h'.
5645 * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
5646 Add `time.h'.
5647 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
5648 `machine/time.h'. Add `time.h'.
5649 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
5650
a39a0312 56512007-10-21 Robert Millan <rmh@aybabtu.com>
5652
5653 * include/grub/misc.h (grub_max): New function.
5654
2aad70e2 56552007-10-21 Robert Millan <rmh@aybabtu.com>
5656
5657 * util/misc.c (grub_util_info): Call fflush() before returning.
5658
54b71c4b 56592007-10-20 Robert Millan <rmh@aybabtu.com>
5660
5661 * genmk.rb (Image): Copy `extra_flags' from here ...
5662 (PModule): ... to here. Use it in `#{obj}: #{src}' rule.
5663
5664 * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
5665 to `argc' and `args' arguments.
5666
a979f513 56672007-10-17 Robert Millan <rmh@aybabtu.com>
5668
5669 * kern/i386/loader.S: New file.
5670
5671 * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
5672 * kern/i386/loader.S (grub_linux_prot_size)... to here.
5673 * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
5674 * kern/i386/loader.S (grub_linux_tmp_addr)... to here.
5675 * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
5676 * kern/i386/loader.S (grub_linux_real_addr)... to here.
5677 * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
5678 * kern/i386/loader.S (grub_linux_boot_zimage)... to here.
5679 * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
5680 * kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
5681 * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
5682 * kern/i386/loader.S (grub_multiboot_real_boot)... to here.
5683 * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
5684 * kern/i386/loader.S (grub_multiboot2_real_boot)... to here.
5685
5686 * kern/i386/realmode.S: New file.
5687
5688 * kern/i386/pc/startup.S (protstack): Moved from here ...
5689 * kern/i386/realmode.S (protstack)... to here.
5690 * kern/i386/pc/startup.S (gdt): Moved from here ...
5691 * kern/i386/realmode.S (gdt)... to here.
5692 * kern/i386/pc/startup.S (prot_to_real): Moved from here ...
5693 * kern/i386/realmode.S (prot_to_real)... to here.
5694
5695 * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
5696 `kern/i386/realmode.S'.
5697
825fc8fd 56982007-10-17 Robert Millan <rmh@aybabtu.com>
5699
5700 * include/grub/i386/loader.h: New file.
5701
5702 * include/grub/i386/pc/loader.h (grub_linux_prot_size)
5703 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
5704 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
5705 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
5706 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
5707 * include/grub/i386/loader.h (grub_linux_prot_size)
5708 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
5709 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
5710 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
5711 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.
5712
5713 * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
5714
e179b2f4 57152007-10-15 Robert Millan <rmh@aybabtu.com>
5716
5717 * normal/misc.c (grub_normal_print_device_info): Do not probe for
5718 filesystem when dev->disk is unset.
5719 Do probe for filesystem even when dev->disk->has_partitions is set.
5720 In case a filesystem is found, always report it.
5721 In case it isn't, if dev->disk->has_partitions is set, report that
5722 a partition table was found instead of reporting that no filesystem
5723 could be identified.
5724
5db82af6 57252007-10-12 Robert Millan <rmh@aybabtu.com>
5726
5727 * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
5728 to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.
5729
68f6ac74 5730 * include/grub/types.h (grub_host_to_target16): New macro.
5731 (grub_host_to_target32): Likewise.
5732 (grub_host_to_target64): Likewise.
5733 (grub_target_to_host16): Likewise.
5734 (grub_target_to_host32): Likewise.
5735 (grub_target_to_host64): Likewise.
5db82af6 5736
5737 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
5738 Renamed from to ...
5739 (GRUB_MOD_ALIGN): ...this. Update all users.
5740
68f6ac74 5741 * util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with
5742 grub_host_to_target32.
5743 Replace grub_be_to_cpu32 with grub_target_to_host32.
5744 (load_modules): Likewise.
5745 (add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16.
5746 Replace grub_be_to_cpu32 with grub_target_to_host32.
5747 Replace grub_cpu_to_be16 with grub_host_to_target16.
5748 Replace grub_cpu_to_be32 grub_host_to_target32.
5db82af6 5749
3cf497cc 57502007-10-12 Robert Millan <rmh@aybabtu.com>
5751
5752 * util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
5753 * util/elf/grub-mkimage.c: ... here.
5754
5755 * DISTLIST: Add `util/elf/grub-mkimage.c'. Remove
5756 `util/powerpc/ieee1275/grub-mkimage.c'.
5757
c8cc3692 57582007-10-07 Robert Millan <rmh@aybabtu.com>
adbc4c9d 5759
c8cc3692 5760 * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
5761 and make it easier to figure out.
5762 Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
5763 (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
5764 Do not avoid claiming a region above HEAP_MAX_ADDR if that would
5765 leave us with less than HEAP_MIN_SIZE total heap.
5766 Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
adbc4c9d 5767
5c58b791 57682007-10-03 Robert Millan <rmh@aybabtu.com>
5769
5770 * include/grub/i386/io.h: New file.
5771 * commands/i386/pc/play.c (inb): Removed.
5772 (outb): Removed.
5773 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
5774 with grub_outb().
afcd2ef8 5775 * term/i386/pc/serial.c (inb): Removed.
5776 (outb): Removed.
5777 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
5778 with grub_outb().
5779 * term/i386/pc/vga.c (inb): Removed.
5780 (outb): Removed.
5781 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
5782 with grub_outb().
5c58b791 5783
1a477ed6 57842007-10-02 Robert Millan <rmh@aybabtu.com>
5785
5786 * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
5787 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5788 Reported by Marcin Kurek.
5789
6b5d80fa 57902007-09-07 Robert Millan <rmh@aybabtu.com>
5791
5792 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
5793 SmartFirmware version updates (as released by Sven Luther), and avoid
5794 setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
5795 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
5796 known broken.
5797
5618afbf 57982007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
5799
5800 From Hitoshi Ozeki:
5801 * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
5802 when merging two regions.
5803
6139dcd9 58042007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
5805
508e39ee 5806 * kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
5807 * normal/completion.c (grub_normal_do_completion): Likewise.
5808 Reported by Hitoshi Ozeki.
5809
58102007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 5811
6139dcd9 5812 Do not use devices at boot in chainloading.
f19dbdb7 5813
6139dcd9 5814 * loader/i386/pc/chainloader.c (boot_drive): New variable.
5815 (boot_part_addr): Likewise.
5816 (grub_chainloader_boot): Simply call grub_chainloader_real_boot
5817 with BOOT_DRIVE and BOOT_PART_ADDR.
5818 (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
5819 Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
5820
38da6516 58212007-08-29 Robert Millan <rmh@aybabtu.com>
5822
5823 Patch from Simon Peter <dn.tlp@gmx.net>:
5824 * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
5825 * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
5826 util/grub-probe.c_DEPENDENCIES. Replace grub-setup_DEPENDENCIES with
5827 util/i386/pc/grub-setup.c_DEPENDENCIES.
5828 * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
5829 util/grub-probe.c_DEPENDENCIES.
5830 * conf/powerpc-ieee1275.rmk: Likewise.
5831
29d0928c 58322007-08-28 Robert Millan <rmh@aybabtu.com>
5833
5834 * util/i386/get_disk_name.c: New. Implement grub_util_get_disk_name()
5835 to tell grub-mkdevicemap how to name devices.
5836 * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
5837 feature).
5838
5839 * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
5840 util/i386/get_disk_name.c.
5841 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
5842 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
5843 util/ieee1275/get_disk_name.c.
5844
5845 * include/grub/util/misc.h: grub_util_get_disk_name() declaration.
5846
5847 * DISTLIST: Add util/i386/get_disk_name.c and
5848 util/ieee1275/get_disk_name.c.
5849
5850 * util/grub-mkdevicemap.c: Replace device naming logic with
5851 grub_util_get_disk_name() calls.
5852
5a0d3cca 58532007-08-20 Robert Millan <rmh@aybabtu.com>
5854
5855 * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
5856 (so that it works for both plural and singular quantities).
5857
8b72db2f 58582007-08-05 Robert Millan <rmh@aybabtu.com>
5859
5860 * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
5861 so that [xz] isn't taken into account when determining order.
5862
352466bf 58632007-08-02 Marco Gerards <marco@gnu.org>
5864
5865 * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
5866 `include/multiboot2.h', `include/grub/elfload.h',
5867 `include/multiboot.h', `include/grub/multiboot.h',
5868 `include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
5869 `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
5870 `kern/elf.c', `loader/multiboot_loader.c',
5871 `loader/multiboot_loader_normal.c', `loader/multiboot2.c',
5872 `loader/i386/pc/multiboot2.c',
5873 `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
5874 `util/i386/pc/grub-mkrescue.in'. Remove
5875 `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
5876 `include/grub/i386/pc/util/biosdisk.h' and
5877 `include/grub/powerpc/ieee1275/multiboot.h'.
5878
8f096014 58792007-08-02 Bean <bean123ch@gmail.com>
5880
5881 * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
5882 (ntfs_mod_SOURCES): New variable.
5883 (ntfs_mod_CFLAGS): Likewise.
5884 (ntfs_mod_LDFLAGS): Likewise.
5885
5886 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c.
5887 (grub_probe_SOURCES): Likewise.
5888 (grub_emu_SOURCES): Likewise.
5889
5890 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
5891 (grub_emu_SOURCES): Likewise.
5892
5893 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
5894 (grub_emu_SOURCES): Likewise.
f19dbdb7 5895
8f096014 5896 * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.
5897
5898 * fs/ntfs.c: New file.
5899
9959f7db 59002007-08-02 Bean <bean123ch@gmail.com>
5901
5902 * disk.h (grub_disk): Use NESTED_FUNC_ATTR.
5903
5904 * file.h (grub_file): Likewise.
5905
5906 * fshelp.h (grub_fshelp_read_file): Likewise.
5907
5908 * util/i386/pc/grub-setup.c (setup): Likewise.
5909 (save_first_sector): Likewise.
5910 (save_blocklists): Likewise.
f19dbdb7 5911
9959f7db 5912 * fs/affs.c (grub_affs_read_file): Likewise.
5913
5914 * fs/ext2.c (grub_ext2_read_file): Likewise.
5915
5916 * fs/fat.c (grub_fat_read_data): Likewise.
5917
5918 * fs/fshelp.c (grub_fshelp_read_file): Likewise.
5919
5920 * fs/hfs.c (grub_hfs_read_file): Likewise.
5921
5922 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
5923
5924 * fs/jfs.c (grub_jfs_read_file): Likewise.
5925
5926 * fs/minix.c (grub_minix_read_file): Likewise.
5927
5928 * fs/sfs.c (grub_sfs_read_file): Likewise.
5929
5930 * fs/ufs.c (grub_ufs_read_file): Likewise.
f19dbdb7 5931
9959f7db 5932 * fs/xfs.c (grub_xfs_read_file): Likewise.
5933
5934 * command/blocklist.c (read_blocklist): Likewise.
5935 (print_blocklist): Likewise.
5936
0a203f83 59372007-08-02 Marco Gerards <marco@gnu.org>
5938
5939 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
5940 `util/hostfs.c'.
5941
5942 * disk/host.c: New file.
5943
5944 * util/hostfs.c: Likewise.
5945
5946 * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
5947 return `GRUB_ERR_BAD_FS'.
5948 * fs/sfs.c (grub_sfs_mount): Likewise.
5949 * fs/xfs.c (grub_xfs_mount): Likewise.
5950
5951 * include/grub/disk.h (enum grub_disk_dev_id): Add
5952 `GRUB_DISK_DEVICE_HOST_ID'.
5953
5954 * util/grub-emu.c (main): Initialize and de-initialize hostfs.
5955
e5dfe777 59562007-07-24 Jerone Young <jerone@gmail.com>
5957
f19dbdb7 5958 * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
e5dfe777 5959 modules for compilation.
5960 * conf/powerpc-ieee1275.rmk: Likewise.
5961
5962 * include/multiboot.h: Move multiboot definitions to one file. Rename
5963 many definitions to not get grub specific.
5964 * include/multiboot2.h: Create header with multiboot 2 definitions.
5965 * include/grub/multiboot.h: Header for grub specific function
5966 prototypes and definitions.
5967 * include/grub/multiboot2.h: Likewise.
5968 * include/grub/multiboot_loader.h: Likewise.
5969 * include/grub/i386/pc/multiboot.h: Removed.
5970 * include/grub/powerpc/ieee1275/multiboot.h: Removed.
5971
5972 * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
5973 and 2 to allow for one multiboot and module commands.
5974 * loader/multiboot2.c: Add multiboot2 functionality.
5975 * loader/i386/pc/multiboot.c: Modify for new multiboot header location
5976 and definition names.
5977 * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
5978 2 functions.
5979 * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
5980 ieee1275 specific multiboot2 code.
5981
5982 * kern/i386/pc/startup.S: Change headers and definition names for
5983 multiboot. Add function grub_multiboot2_real_boot for multiboot 2.
5984
daf0f0ba 59852007-07-22 Robert Millan <rmh@aybabtu.com>
5986
5987 * geninitheader.sh: Process file specified in first parameter rather
5988 than hardcoding grub_modules_init.lst.
fe6b695a 5989 * geninit.sh: Likewise. Also, construct header name dynamically rather
daf0f0ba 5990 than hardcoding grub_modules_init.h.
5991
5992 * conf/common.rmk: Rename grub_modules_init.[ch] files associated with
5993 grub-emu to grub_emu_init.[ch]. Add rules to build analogous
5994 grub_probe_init.[ch] and grub_setup_init.[ch].
5995
5996 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
5997 grub_modules_init.h with grub_emu_init.h.
5998 (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
5999 grub_probe_init.[ch] files.
6000 * conf/i386-efi.rmk: Likewise.
6001 * conf/i386-pc.rmk: Likewise.
6002 (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
6003 grub_setup_init.[ch] files.
6004
6005 * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
6006 * util/grub-probe.c: Include grub_probe_init.h. Use grub_init_all()
6007 to initialize modules rather than a list of hardcoded functions.
6008 * util/i386/pc/grub-setup.c: Include grub_setup_init.h. Use
6009 grub_init_all() to initialize modules rather than a list of hardcoded
6010 functions.
6011
54cdc1cc 60122007-07-22 Robert Millan <rmh@aybabtu.com>
6013
6014 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
6015 GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
6016
ad0686cc 60172007-07-22 Robert Millan <rmh@aybabtu.com>
6018
6019 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
6020 GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
6021 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
6022 flag when running on SmartFirmware.
6023 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
6024 "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
6025 was set.
6026
6027 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
6028 Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
6029 rather than decreasing it.
6030
6031 * util/i386/pc/grub-setup.c (setup): When embedding is required, but
6032 there's not enough space to do it, fail in the same way as when it
6033 can't be done because there are no partitions.
6034
6035 * util/powerpc/ieee1275/grub-install.in: Improve error message shown
6036 when nvsetenv failed.
6037
969c02ec 60382007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
6039
6040 * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
6041 because this rule is automatically generated.
6042 (grub-mkrescue): Removed for the same reason as above.
6043
5a79f472 60442007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
6045
6046 Migrate to GNU General Public License Version 3.
f19dbdb7 6047
5a79f472 6048 * COPYING: Replaced with the plain text version of GPLv3.
6049
6050 * config.guess: Updated from gnulib.
6051 * config.sub: Likewise.
6052
6053 * geninit.sh: Output a GPLv3 copyright notice.
6054 * geninitheader.sh: Likewise.
6055 * genmodsrc.sh: Likewise.
6056 * gensymlist.sh.in: Likewise.
6057
6058 * boot/i386/pc/boot.S: Upgraded to GPLv3.
6059 * boot/i386/pc/diskboot.S: Likewise.
6060 * boot/i386/pc/pxeboot.S: Likewise.
6061 * commands/blocklist.c: Likewise.
6062 * commands/boot.c: Likewise.
6063 * commands/cat.c: Likewise.
6064 * commands/cmp.c: Likewise.
6065 * commands/configfile.c: Likewise.
6066 * commands/echo.c: Likewise.
6067 * commands/help.c: Likewise.
6068 * commands/ls.c: Likewise.
6069 * commands/search.c: Likewise.
6070 * commands/terminal.c: Likewise.
6071 * commands/test.c: Likewise.
6072 * commands/videotest.c: Likewise.
6073 * commands/i386/cpuid.c: Likewise.
6074 * commands/i386/pc/halt.c: Likewise.
6075 * commands/i386/pc/play.c: Likewise.
6076 * commands/i386/pc/reboot.c: Likewise.
6077 * commands/i386/pc/vbeinfo.c: Likewise.
6078 * commands/i386/pc/vbetest.c: Likewise.
6079 * commands/ieee1275/halt.c: Likewise.
6080 * commands/ieee1275/reboot.c: Likewise.
6081 * commands/ieee1275/suspend.c: Likewise.
6082 * disk/loopback.c: Likewise.
6083 * disk/lvm.c: Likewise.
6084 * disk/raid.c: Likewise.
6085 * disk/efi/efidisk.c: Likewise.
6086 * disk/i386/pc/biosdisk.c: Likewise.
6087 * disk/ieee1275/ofdisk.c: Likewise.
6088 * font/manager.c: Likewise.
6089 * fs/affs.c: Likewise.
6090 * fs/ext2.c: Likewise.
6091 * fs/fat.c: Likewise.
6092 * fs/fshelp.c: Likewise.
6093 * fs/hfs.c: Likewise.
6094 * fs/hfsplus.c: Likewise.
6095 * fs/iso9660.c: Likewise.
6096 * fs/jfs.c: Likewise.
6097 * fs/minix.c: Likewise.
6098 * fs/sfs.c: Likewise.
6099 * fs/ufs.c: Likewise.
6100 * fs/xfs.c: Likewise.
6101 * hello/hello.c: Likewise.
6102 * include/grub/acorn_filecore.h: Likewise.
6103 * include/grub/arg.h: Likewise.
6104 * include/grub/bitmap.h: Likewise.
6105 * include/grub/boot.h: Likewise.
6106 * include/grub/cache.h: Likewise.
6107 * include/grub/device.h: Likewise.
6108 * include/grub/disk.h: Likewise.
6109 * include/grub/dl.h: Likewise.
6110 * include/grub/elfload.h: Likewise.
6111 * include/grub/env.h: Likewise.
6112 * include/grub/err.h: Likewise.
6113 * include/grub/file.h: Likewise.
6114 * include/grub/font.h: Likewise.
6115 * include/grub/fs.h: Likewise.
6116 * include/grub/fshelp.h: Likewise.
6117 * include/grub/gzio.h: Likewise.
6118 * include/grub/hfs.h: Likewise.
6119 * include/grub/kernel.h: Likewise.
6120 * include/grub/loader.h: Likewise.
6121 * include/grub/lvm.h: Likewise.
6122 * include/grub/misc.h: Likewise.
6123 * include/grub/mm.h: Likewise.
6124 * include/grub/net.h: Likewise.
6125 * include/grub/normal.h: Likewise.
6126 * include/grub/parser.h: Likewise.
6127 * include/grub/partition.h: Likewise.
6128 * include/grub/pc_partition.h: Likewise.
6129 * include/grub/raid.h: Likewise.
6130 * include/grub/rescue.h: Likewise.
6131 * include/grub/script.h: Likewise.
6132 * include/grub/setjmp.h: Likewise.
6133 * include/grub/symbol.h: Likewise.
6134 * include/grub/term.h: Likewise.
6135 * include/grub/terminfo.h: Likewise.
6136 * include/grub/tparm.h: Likewise.
6137 * include/grub/types.h: Likewise.
6138 * include/grub/video.h: Likewise.
6139 * include/grub/efi/api.h: Likewise.
6140 * include/grub/efi/chainloader.h: Likewise.
6141 * include/grub/efi/console.h: Likewise.
6142 * include/grub/efi/console_control.h: Likewise.
6143 * include/grub/efi/disk.h: Likewise.
6144 * include/grub/efi/efi.h: Likewise.
6145 * include/grub/efi/pe32.h: Likewise.
6146 * include/grub/efi/time.h: Likewise.
6147 * include/grub/i386/linux.h: Likewise.
6148 * include/grub/i386/setjmp.h: Likewise.
6149 * include/grub/i386/types.h: Likewise.
6150 * include/grub/i386/efi/kernel.h: Likewise.
6151 * include/grub/i386/efi/loader.h: Likewise.
6152 * include/grub/i386/efi/time.h: Likewise.
6153 * include/grub/i386/pc/biosdisk.h: Likewise.
6154 * include/grub/i386/pc/boot.h: Likewise.
6155 * include/grub/i386/pc/chainloader.h: Likewise.
6156 * include/grub/i386/pc/console.h: Likewise.
6157 * include/grub/i386/pc/init.h: Likewise.
6158 * include/grub/i386/pc/kernel.h: Likewise.
6159 * include/grub/i386/pc/loader.h: Likewise.
6160 * include/grub/i386/pc/memory.h: Likewise.
6161 * include/grub/i386/pc/multiboot.h: Likewise.
6162 * include/grub/i386/pc/serial.h: Likewise.
6163 * include/grub/i386/pc/time.h: Likewise.
6164 * include/grub/i386/pc/vbe.h: Likewise.
6165 * include/grub/i386/pc/vbeblit.h: Likewise.
6166 * include/grub/i386/pc/vbefill.h: Likewise.
6167 * include/grub/i386/pc/vbeutil.h: Likewise.
6168 * include/grub/i386/pc/vga.h: Likewise.
6169 * include/grub/ieee1275/ieee1275.h: Likewise.
6170 * include/grub/ieee1275/ofdisk.h: Likewise.
6171 * include/grub/powerpc/libgcc.h: Likewise.
6172 * include/grub/powerpc/setjmp.h: Likewise.
6173 * include/grub/powerpc/types.h: Likewise.
6174 * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
6175 * include/grub/powerpc/ieee1275/console.h: Likewise.
6176 * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
6177 * include/grub/powerpc/ieee1275/kernel.h: Likewise.
6178 * include/grub/powerpc/ieee1275/loader.h: Likewise.
6179 * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
6180 * include/grub/powerpc/ieee1275/time.h: Likewise.
6181 * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
6182 * include/grub/sparc64/libgcc.h: Likewise.
6183 * include/grub/sparc64/setjmp.h: Likewise.
6184 * include/grub/sparc64/types.h: Likewise.
6185 * include/grub/sparc64/ieee1275/console.h: Likewise.
6186 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
6187 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
6188 * include/grub/sparc64/ieee1275/time.h: Likewise.
6189 * include/grub/util/biosdisk.h: Likewise.
6190 * include/grub/util/getroot.h: Likewise.
6191 * include/grub/util/lvm.h: Likewise.
6192 * include/grub/util/misc.h: Likewise.
6193 * include/grub/util/raid.h: Likewise.
6194 * include/grub/util/resolve.h: Likewise.
6195 * io/gzio.c: Likewise.
6196 * kern/device.c: Likewise.
6197 * kern/disk.c: Likewise.
6198 * kern/dl.c: Likewise.
6199 * kern/elf.c: Likewise.
6200 * kern/env.c: Likewise.
6201 * kern/err.c: Likewise.
6202 * kern/file.c: Likewise.
6203 * kern/fs.c: Likewise.
6204 * kern/loader.c: Likewise.
6205 * kern/main.c: Likewise.
6206 * kern/misc.c: Likewise.
6207 * kern/mm.c: Likewise.
6208 * kern/parser.c: Likewise.
6209 * kern/partition.c: Likewise.
6210 * kern/rescue.c: Likewise.
6211 * kern/term.c: Likewise.
6212 * kern/efi/efi.c: Likewise.
6213 * kern/efi/init.c: Likewise.
6214 * kern/efi/mm.c: Likewise.
6215 * kern/i386/dl.c: Likewise.
6216 * kern/i386/efi/init.c: Likewise.
6217 * kern/i386/efi/startup.S: Likewise.
6218 * kern/i386/pc/init.c: Likewise.
6219 * kern/i386/pc/lzo1x.S: Likewise.
6220 * kern/i386/pc/startup.S: Likewise.
6221 * kern/ieee1275/ieee1275.c: Likewise.
6222 * kern/powerpc/cache.S: Likewise.
6223 * kern/powerpc/dl.c: Likewise.
6224 * kern/powerpc/ieee1275/cmain.c: Likewise.
6225 * kern/powerpc/ieee1275/crt0.S: Likewise.
6226 * kern/powerpc/ieee1275/init.c: Likewise.
6227 * kern/powerpc/ieee1275/openfw.c: Likewise.
6228 * kern/sparc64/cache.S: Likewise.
6229 * kern/sparc64/dl.c: Likewise.
6230 * kern/sparc64/ieee1275/init.c: Likewise.
6231 * kern/sparc64/ieee1275/openfw.c: Likewise.
6232 * loader/efi/chainloader.c: Likewise.
6233 * loader/efi/chainloader_normal.c: Likewise.
6234 * loader/i386/efi/linux.c: Likewise.
6235 * loader/i386/efi/linux_normal.c: Likewise.
6236 * loader/i386/pc/chainloader.c: Likewise.
6237 * loader/i386/pc/chainloader_normal.c: Likewise.
6238 * loader/i386/pc/linux.c: Likewise.
6239 * loader/i386/pc/linux_normal.c: Likewise.
6240 * loader/i386/pc/multiboot.c: Likewise.
6241 * loader/i386/pc/multiboot_normal.c: Likewise.
6242 * loader/powerpc/ieee1275/linux.c: Likewise.
6243 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
6244 * normal/arg.c: Likewise.
6245 * normal/cmdline.c: Likewise.
6246 * normal/command.c: Likewise.
6247 * normal/completion.c: Likewise.
6248 * normal/execute.c: Likewise.
6249 * normal/function.c: Likewise.
6250 * normal/lexer.c: Likewise.
6251 * normal/main.c: Likewise.
6252 * normal/menu.c: Likewise.
6253 * normal/menu_entry.c: Likewise.
6254 * normal/misc.c: Likewise.
6255 * normal/parser.y: Likewise.
6256 * normal/script.c: Likewise.
6257 * normal/i386/setjmp.S: Likewise.
6258 * normal/powerpc/setjmp.S: Likewise.
6259 * normal/sparc64/setjmp.S: Likewise.
6260 * partmap/acorn.c: Likewise.
6261 * partmap/amiga.c: Likewise.
6262 * partmap/apple.c: Likewise.
6263 * partmap/gpt.c: Likewise.
6264 * partmap/pc.c: Likewise.
6265 * partmap/sun.c: Likewise.
6266 * term/gfxterm.c: Likewise.
6267 * term/terminfo.c: Likewise.
6268 * term/efi/console.c: Likewise.
6269 * term/i386/pc/console.c: Likewise.
6270 * term/i386/pc/serial.c: Likewise.
6271 * term/i386/pc/vesafb.c: Likewise.
6272 * term/i386/pc/vga.c: Likewise.
6273 * term/ieee1275/ofconsole.c: Likewise.
6274 * util/biosdisk.c: Likewise.
6275 * util/console.c: Likewise.
6276 * util/genmoddep.c: Likewise.
6277 * util/getroot.c: Likewise.
6278 * util/grub-emu.c: Likewise.
6279 * util/grub-mkdevicemap.c: Likewise.
6280 * util/grub-probe.c: Likewise.
6281 * util/lvm.c: Likewise.
6282 * util/misc.c: Likewise.
6283 * util/raid.c: Likewise.
6284 * util/resolve.c: Likewise.
6285 * util/update-grub.in: Likewise.
6286 * util/update-grub_lib.in: Likewise.
6287 * util/grub.d/00_header.in: Likewise.
6288 * util/grub.d/10_hurd.in: Likewise.
6289 * util/grub.d/10_linux.in: Likewise.
6290 * util/i386/efi/grub-install.in: Likewise.
6291 * util/i386/efi/grub-mkimage.c: Likewise.
6292 * util/i386/pc/grub-install.in: Likewise.
6293 * util/i386/pc/grub-mkimage.c: Likewise.
6294 * util/i386/pc/grub-mkrescue.in: Likewise.
6295 * util/i386/pc/grub-setup.c: Likewise.
6296 * util/i386/pc/misc.c: Likewise.
6297 * util/powerpc/ieee1275/grub-install.in: Likewise.
6298 * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
6299 * util/powerpc/ieee1275/misc.c: Likewise.
6300 * video/bitmap.c: Likewise.
6301 * video/video.c: Likewise.
6302 * video/i386/pc/vbe.c: Likewise.
6303 * video/i386/pc/vbeblit.c: Likewise.
6304 * video/i386/pc/vbefill.c: Likewise.
6305 * video/i386/pc/vbeutil.c: Likewise.
6306 * video/readers/tga.c: Likewise.
6307
3572d015 63082007-07-02 Robert Millan <rmh@aybabtu.com>
6309
6310 * conf/i386-efi.rmk: Replace obsolete reference to
6311 util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
6312 with util/getroot.c.
6313 * conf/powerpc-ieee1275.rmk: Likewise.
6314 * conf/sparc64-ieee1275.rmk: Likewise.
6315
6316 * util/grub-emu.c (main): Fix unchecked pointer handling.
6317
2c2a681b 63182007-07-02 Robert Millan <rmh@aybabtu.com>
6319
6320 * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
6321 invocation to fail, in order to support partition-less media.
6322
6323 * util/i386/pc/grub-install.in: Likewise.
6324
6325 * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
6326 which fs or partmap modules are needed (akin to its sister scripts).
6327
6328 Also use grub-probe to get rid of unportable /proc/mounts check.
6329
6330 Print the same informational message that the other scripts do, before
fe6b695a 6331 exiting.
2c2a681b 6332
6193defe 63332007-06-23 Robert Millan <rmh@aybabtu.com>
6334
fe6b695a 6335 * util/update-grub_lib.in (font_path): New function. Determine whether
6193defe 6336 a font file can be found and, if so, echo the GRUB path to it.
6337
6338 * util/update-grub.in: Handle multiple terminals depending on user
6339 input, platform availability and font file presence. Propagate
6340 variables of our findings to /etc/grub.d/ children.
6341
6342 * util/grub.d/00_header.in: Handle multiple terminals, based on
6343 environment setup by update-grub.
6344
eface1dc 63452007-06-23 Robert Millan <rmh@aybabtu.com>
6346
ba50d28f 6347 * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.
eface1dc 6348
bf697e28 63492007-06-21 Robert Millan <rmh@aybabtu.com>
6350
6351 * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
6352 indicate end of data section in kernel image.
6353 * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
6354 GRUB_KERNEL_MACHINE_DATA_END.
6355
6356 * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
6357 space for it.
6358 * kern/i386/efi/startup.S: Likewise.
6359
6360 * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
6361 during image generation. Implement --prefix option to override this
6362 patch.
6363 * util/i386/efi/grub-mkimage.c: Likewise.
6364
6365 * util/update-grub_lib.in (convert_system_path_to_grub_path): Split
6366 code to make path relative to its root into a separate function.
6367
6368 * util/i386/pc/grub-install.in: Use newly provided
6369 make_system_path_relative_to_its_root() to convert ${grubdir}, then
6370 pass the result to grub-install --prefix.
6371
baa574b4 63722007-06-13 Robert Millan <rmh@aybabtu.com>
6373
6374 * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
6375 DEFAULT_DEVICE_MAP.
6376 * util/grub-emu.c: Use above definitions from misc.h instead of
6377 defining them.
6378 * util/grub-mkdevicemap.c: Likewise.
6379 * util/i386/pc/grub-setup.c: Likewise.
6380 * util/grub-probe.c: Likewise.
6381 (probe): Abort with grub_util_error() when either
6382 grub_guess_root_device or grub_util_get_grub_dev fails.
6383
0215dcbf 63842007-06-12 Robert Millan <rmh@aybabtu.com>
6385
6386 * normal/command.c (grub_command_execute): Use NULL rather than 0 for
6387 "pager" assignment.
6388 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
6389 "pcdata".
6390 * util/grub-probe.c (probe): Likewise for "drive_name".
6391
8af2ab7b 63922007-06-11 Robert Millan <rmh@aybabtu.com>
6393
6394 * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
6395 not just the cdrom one.
6396
59d31694 63972007-06-11 Robert Millan <rmh@aybabtu.com>
6398
6399 * util/i386/pc/grub-mkrescue.in: Add "set -e".
6400 Add --pkglibdir=DIR option to override pkglibdir.
6401 Mention --image-type=TYPE in help output.
6402 Fix --grub-mkimage (it was a no-op).
fe6b695a 6403 Abort gracefully when no parameter is given.
59d31694 6404
7ee367e4 64052007-06-11 Robert Millan <rmh@aybabtu.com>
6406
6407 * util/i386/pc/grub-mkrescue.in: New file.
6408 * conf/i386-pc.rmk: Add its build declarations. Put it in bin_SCRIPTS.
6409 * Makefile.in: Handle bin_SCRIPTS.
6410
29b0ed46 64112007-06-10 Vesa Jaaskelainen <chaac@nic.fi>
6412
6413 * term/gfxterm.c (grub_gfxterm_init): Added support for specifying
6414 list of video modes.
6415
c0f90770 64162007-06-06 Robert Millan <rmh@aybabtu.com>
6417
6418 * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
6419 file doesn't exist, or if it is in a filesystem grub can't read.
6420
6421 * util/update-grub.in: Set fallback for GRUB_FS check to "unknown". Do
6422 not abort if GRUB_DRIVE could not be defined. Rearrange generated
6423 header comment to fit in 80 columns when the variables are resolved.
6424
6425 * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
6426 could be identified by update-grub. Remove redundant check for
fe6b695a 6427 unifont.pff existence (since convert_system_path_to_grub_path now
c0f90770 6428 handles that).
6429
fb36dc26 64302007-06-04 Robert Millan <rmh@aybabtu.com>
6431
6432 * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.
6433
6434 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.
6435
6436 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
6437
0c68c93e 64382007-06-04 Robert Millan <rmh@aybabtu.com>
6439
6440 * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.
6441
6442 * include/grub/partition.h: Declare grub_apple_partition_map_init and
6443 grub_apple_partition_map_fini.
6444
6445 * util/biosdisk.c
6446 (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
6447 to access >2 TiB disks).
6448
6449 Print disk->total_sectors with %llu instead of %lu, since this
6450 variable is always 64-bit (prevents wrong disk size from being displayed
6451 on either >2 TiB disk or big-endian CPU).
6452
6453 (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
6454 into a generic case that supports all (sane) partition maps.
6455
6456 Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
6457 breaks big-endian.
6458
6459 * util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
6460 and grub_apple_partition_map_fini() after that.
6461
0f23eb74 64622007-06-01 Robert Millan <rmh@aybabtu.com>
6463
6464 * util/update-grub.in: Export GRUB_CMDLINE_LINUX.
6465
6466 * util/grub.d/00_header.in: Only enable gfxterm when
6467 convert_system_path_to_grub_path() succeeds.
6468
42c71976 64692007-05-20 Robert Millan <rmh@aybabtu.com>
6470
6471 * util/update-grub_lib.in: New file.
6472 * DISTLIST: Add update-grub_lib.in.
6473 * conf/common.rmk: Generate update-grub_lib and install it in
6474 $(lib_DATA).
6475 * Makefile.in: Add install routine for $(lib_DATA).
6476
6477 * util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
6478 function provided by update-grub_lib to support arbitrary paths of
6479 unifont.pff.
6480 * util/update-grub.in: Use convert_system_path_to_grub_path() to
6481 initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
6482
5beb2291 64832007-05-19 Robert Millan <rmh@aybabtu.com>
6484
6485 * commands/i386/cpuid.c: New module.
6486 * DISTLIST: Add it.
6487 * conf/i386-efi.rmk: Enable cpuid.mod.
6488 * conf/i386-pc.rmk: Likewise.
6489
7262eca1 64902007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
6491
6492 * kern/disk.c (grub_disk_read): Check return value of
6493 grub_realloc().
6494
260ba823 64952007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
6496
6497 * util/getroot.c (grub_util_get_grub_dev): Support partitionable
6498 arrays.
6499 * disk/raid.c (grub_raid_open): Likewise.
6500
1ecb6cf2 65012007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
6502
6503 * util/biosdisk.c (linux_find_partition): Allocate real_dev on the
6504 stack instead of on the heap.
6505
6506 * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
6507 before doing a read on it.
6508
6509 * configure.ac: Only use -fno-stack-protector for the target
6510 environment.
f19dbdb7 6511
21c8cbb1 65122007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
6513
6514 * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
6515 __attribute_ ((unused)) to mode_type argument.
6516
6517 * util/getroot.c (grub_guess_root_device): Fix #endif.
f19dbdb7 6518
21c8cbb1 6519 * kern/misc.c (memcmp): Fix prototype.
6520
6521 * include/grub/partition.h [GRUB_UTIL]
6522 (grub_gpt_partition_map_init): Add prototype.
6523 (grub_gpt_partition_map_fini): Likewise.
6524
6525 * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
6526 at the right place.
6527
6528 * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
6529 (grub_fat_read_data): Likewise.
6530 (grub_fat_find_dir): Likewise.
6531
6532 * font/manager.c (find_glyph): Make table a const.
6533 (grub_font_get_glyph): Remove bitmap from if statement.
f19dbdb7 6534
849d55d3 65352007-05-16 Jeroen Dekkers <jeroen@dekkers.cx>
6536
6537 * util/getroot.c (grub_guess_root_device): Remove RAID and LVM
6538 code, first search for device in /dev/mapper, then in /dev.
6539 (grub_util_get_grub_dev): New function.
6540 * include/grub/util/getroot.h (grub_util_get_grub_dev): Add
6541 prototype.
6542 * util/grub-probe.c (probe): Remove check for RAID, call
6543 grub_util_get_grub_dev() instead of
6544 grub_util_biosdisk_get_grub_dev().
6545 * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
6546 grub_util_biosdisk_get_grub_dev().
6547 * util/i386/pc/grub-setup.c (main): Likewise.
6548
8fff7c2f 65492007-05-16 Robert Millan <rmh@aybabtu.com>
6550
6551 * DISTLIST: Update for the latest changes.
6552 * conf/i386-pc.rmk: Use the new paths for util/getroot.c,
6553 util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
6554 * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
6555 grub/util/biosdisk.h.
6556 * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
6557 grub/util/biosdisk.h.
6558
48e12b52 65592007-05-16 Robert Millan <rmh@aybabtu.com>
6560
6561 * util/grub.d/00_header.in: Set default gfxmode to `640x480'.
6562
46b9d128 65632007-05-16 Robert Millan <rmh@aybabtu.com>
6564
6565 * util/i386/efi/grub-install.in: New.
6566 * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
6567 newly added grub-install.
6568 * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
6569 include.
6570 * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
6571 grub/util/biosdisk.h.
6572 * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
6573 grub/util/biosdisk.h.
6574
2d1a40a9 65752007-05-16 Robert Millan <rmh@aybabtu.com>
6576
6577 * include/grub/i386/pc/util/biosdisk.h: Moved to ...
6578 * include/grub/util/biosdisk.h: ... here.
6579 * util/i386/pc/biosdisk.c: Moved to ...
6580 * util/biosdisk.c: ... here.
6581 * util/i386/pc/getroot.c: Moved to ...
6582 * util/getroot.c: ... here.
6583 * util/i386/pc/grub-mkdevicemap.c: Moved to ...
6584 * util/grub-mkdevicemap.c: ... here.
6585 * util/i386/pc/grub-probe.c: Moved to ...
6586 * util/grub-probe.c: ... here.
6587
9e26e3bc 65882007-05-15 Robert Millan <rmh@aybabtu.com>
6589
6590 * util/update-grub.in: Remove duplicated line in grub.cfg header
6591 message.
6592
57f96397 65932007-05-13 Robert Millan <rmh@aybabtu.com>
6594
6595 * util/update-grub.in: Fix a few assumptions about the devices holding
6596 /, /boot and /boot/grub being the same.
6597 * util/grub.d/00_header.in: Likewise.
6598 * util/grub.d/10_hurd.in: Likewise.
6599 * util/grub.d/10_linux.in: Likewise.
6600
6601 * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
6602 patterns. Use that to define the `.old' suffix as older than `'.
6603
6604 * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.
6605
6606 * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
6607 the grub.cfg header message.
6608
2e610d62 66092007-05-11 Robert Millan <rmh@aybabtu.com>
6610
6611 * util/update-grub.in: Create device.map if it doesn't already exist,
6612 before attempting to run grub-probe.
6613 Check for grub-probe and grub-mkdevicemap with the same code
6614 grub-install is using.
6615 Remove test mode.
6616
3f6a10ef 66172007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
6618
6619 * Makefile.in: Add the datarootdir autoconf variable.
6620
02e7b75e 66212007-05-09 Robert Millan <rmh@aybabtu.com>
6622
6623 * util/i386/pc/grub-probe.c (probe): When detecting partition map,
f19dbdb7 6624 fail gracefully if dev->disk->partition == NULL.
02e7b75e 6625
75f396cc 66262007-05-07 Robert Millan <rmh@aybabtu.com>
6627
6628 * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
6629 determine partition map module.
6630 * util/i386/pc/grub-install.in: Use this feature to decide which
6631 partition module to load, instead of hardcoding pc and gpt.
6632
da65cb36 66332007-05-07 Robert Millan <rmh@aybabtu.com>
6634
6635 * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
6636 source directory differs from build directory.
6637
b57d6a91 66382007-05-05 Robert Millan <rmh@aybabtu.com>
6639
6640 * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
6641 initialisation.
6642
509d00f1 66432007-05-05 Robert Millan <rmh@aybabtu.com>
6644
6645 * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
6646
c48f23ef 66472007-05-05 Robert Millan <rmh@aybabtu.com>
6648
6649 * util/grub.d/10_linux.in: Allow the administrator to insert Linux
6650 command-line arguments via ${GRUB_CMDLINE_LINUX}.
6651
20b97658 66522007-05-05 Robert Millan <rmh@aybabtu.com>
6653
6654 * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
6655 (grub_probe_SOURCES): Likewise.
6656 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
6657 GPT and initialize dos_part and bsd_part accordingly.
6658 * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
6659 install_bsd_part.
6660 (main): Activate gpt module for use during partition identification,
6661 and deactivate it afterwards.
6662 * util/i386/pc/grub-install.in: Add gpt module to core.img.
6663 * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
6664 partition identification, and deactivate it afterwards.
6665
99123174 66662007-05-05 Robert Millan <rmh@aybabtu.com>
6667
6668 * term/i386/pc/console.c (grub_console_fini): Call
6669 grub_term_set_current() before grub_term_unregister().
6670
ebd97f6e 66712007-05-04 Robert Millan <rmh@aybabtu.com>
6672
6673 * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
6674 util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
6675 * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS
6676 and update-grub_DATA.
6677 * conf/common.rmk: Build and install update-grub components.
6678 * conf/common.mk: Regenerate.
6679 * util/update-grub.in: New. Core of update-grub.
6680 * util/grub.d/00_header.in: New. Generates grub.cfg header.
6681 * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd.
6682 * util/grub.d/10_linux.in: New. Generates boot entries for Linux.
6683 * util/grub.d/README: New. Document grub.d directory layout.
6684
b06a264d 66852007-05-01 Robert Millan <rmh@aybabtu.com>
6686
6687 * util/grub-emu.c: Move initialization functions
6688 grub_util_biosdisk_init() and grub_init_all() before
6689 grub_util_biosdisk_get_grub_dev(), which relies on them.
6690
41f0050e 66912007-04-19 Robert Millan <rmh@aybabtu.com>
6692
6693 * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
6694 it is used later.
6695
04582bb3 66962007-04-18 Jerone Young <jerone@gmail.com>
6697
f19dbdb7 6698 * kernel/elf.c: Add missing parenthesis for conditional statement
04582bb3 6699 stanza.
6700
08db4632 67012007-04-10 Jerone Young <jerone@gmail.com>
49892fdf 6702
08db4632 6703 * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
6704 continue on and look for device node with real device name.
6705
801b76be 67062007-04-10 Jerone Young <jerone@gmail.com>
f19dbdb7 6707
fe6b695a 6708 * configure.ac: Add argument for autoconf to use transformation
1d543c3e 6709 ability.
6710 * Makefile.in: Add autoconf package transformation code.
6711 * util/i386/pc/grub-install.in: Likewise.
6712 * util/powerpc/ieee1275/grub-install.in: Likewise.
6713
6795c4e1 67142007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
6715
6716 * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
6717 (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
6718 (EXT2_REVISION): Likewise.
6719 (EXT2_INODE_SIZE): Likewise.
6720 (struct grub_ext2_block_group): Added a missing member
6721 "used_dirs".
6722 (grub_ext2_read_inode): Divide by the inode size in a superblock
6723 instead of 128 to obtain INODES_PER_BLOCK.
6724 Use the macro EXT2_INODE_SIZE instead of directly using
6725 SBLOCK->INODE_SIZE.
6726
d70af616 67272007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
6728
6729 * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
6730 superblock instead of the structure size to compute an
6731 offset. This fixes the problem that GRUB could not read a
6732 filesystem when inode size is different from 128-byte.
6733
3b801603 67342007-03-05 Marco Gerards <marco@gnu.org>
6735
6736 * normal/main.c (read_config_file): When "menu" is not set, create
6737 an initial context.
6738
4785bfe4 67392007-02-21 Hollis Blanchard <hollis@penguinppc.org>
6740
6741 * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
6742 (HEAP_LIMIT): New macro.
6743 (grub_claim_heap): Claim memory up to `heaplimit'.
6744
a0cbb023 67452007-02-21 Hollis Blanchard <hollis@penguinppc.org>
6746
6747 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
6748 * kern/powerpc/ieee1275/init.c (_end): Add declaration.
6749 (_start): Likewise.
6750 (grub_arch_modules_addr): Return address after `_end'.
6751 * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
6752 (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
6753 (add_segments): Calculate `_end' from phdr size and location.
6754 (ALIGN_UP): Moved to ...
6755 * include/grub/misc.h: here.
6756 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
6757 New macro.
6758 (GRUB_IEEE1275_MODULE_BASE): Removed.
6759
fd7d8eba 67602007-02-20 Hollis Blanchard <hollis@penguinppc.org>
6761
6762 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
6763 loop boundary.
6764
9b09e6fc 67652007-02-20 Hollis Blanchard <hollis@penguinppc.org>
6766
6767 * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
6768 All users updated.
6769 (grub_elf64_load_hook_t): Likewise.
6770 * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
6771 debug output.
6772
3ce27299 67732007-02-20 Hollis Blanchard <hollis@penguinppc.org>
6774
6775 * kern/mm.c: Update copyright.
6776 (grub_mm_debug): Correct syntax error.
6777 (grub_mm_dump_free): New function.
6778 (grub_debug_free): Call `grub_free'.
6779 * include/grub/mm.h: Update copyright.
6780 (grub_mm_dump_free): Add declaration.
6781
077d5fee 67822007-02-12 Hollis Blanchard <hollis@penguinppc.org>
6783
6784 * include/grub/ieee1275/ieee1275.h: Update copyright.
6785 * kern/powerpc/ieee1275/init.c: Likewise.
6786 * kern/powerpc/ieee1275/openfw.c: Likewise.
6787
6788 * loader/powerpc/ieee1275/linux.c: Likewise.
6789 * include/grub/elfload.h: Likewise.
6790 * kern/elf.c: Likewise.
6791 (grub_elf32_load): Pass `base' and `size' parameters. Update all
6792 callers.
6793 (grub_elf64_load): Likewise.
6794 (grub_elf32_load_segment): Move to a nested function.
6795 (grub_elf64_load_segment): Likewise.
6796
dc946850 67972007-02-12 Hollis Blanchard <hollis@penguinppc.org>
6798
6799 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
6800 prototype.
6801 * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
6802 (grub_heap_len): Likewise.
6803 (HEAP_SIZE): New macro.
6804 (grub_claim_heap): New function.
6805 (grub_machine_init): Don't claim heap directly. Call
6806 `grub_claim_heap'.
6807 * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
6808 (grub_available_iterate): New function.
6809
baa2a121 68102007-02-03 Thomas Schwinge <tschwinge@gnu.org>
6811
6812 * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
6813 * configure.ac: Use it for testing the HOST and TARGET compilers.
6814
4fe9862e 68152006-12-13 Thomas Schwinge <tschwinge@gnu.org>
6816
6817 * Makefile.in (enable_grub_emu): New variable.
6818 * configure.ac (--enable-grub-emu): New option.
6819 Do the checks for (n)curses only if `--enable-grub-emu' is requested.
6820 * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
6821 * conf/i386-pc.rmk: Likewise.
6822 * conf/powerpc-ieee1275.rmk: Likewise.
6823 * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
6824
a8aa5762 68252006-12-12 Marco Gerards <marco@gnu.org>
6826
6827 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
6828
6829 * kern/env.c (grub_env_unset): Don't free the member `value' when
6830 the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
6831 pointer.
6832
6833 * normal/main.c (current_menu): Removed.
6834 (free_menu): Unset the `menu' environment variable.
6835 (grub_normal_menu_addentry): Make use of the environment variable
6836 `menu', instead of using the global `current_menu'. Allocate
6837 memory for the sourcecode of this entry.
6838 (read_config_file): New argument `nested', changed all callers.
6839 Only in the case of a new context, initialize a new menu. Set the
6840 `menu' environment variable.
6841 (grub_normal_execute): Don't set and unset the environment
6842 variable `menu' here anymore. Only free the menu when leaving the
6843 context.
6844
6845 * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
6846 leak.
6847
957b3a3e 68482006-12-11 Marco Gerards <marco@gnu.org>
6849
6850 * normal/menu_entry.c (run): Fix off by one bug so the last line
6851 is executed. Move the loader check to outside the loop.
6852
ef875714 68532006-12-08 Hollis Blanchard <hollis@penguinppc.org>
6854
6855 * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
6856
4e739985 68572006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
6858
6859 * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
6860 the number of sectors. Reported by Andrey Shuvikov
6861 <mr_hyro@yahoo.com>.
f19dbdb7 6862
790707f2 68632006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
6864
6865 * kern/disk.c (grub_disk_read): When there is a read error, always
6866 try to read only the necessary data.
f19dbdb7 6867
790707f2 6868 * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
6869 disk/raid.c.
6870 * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
6871 prototype.
6872 [GRUB_UTIL] (grub_raid_fini): Likewise.
6873 [GRUB_UTIL] (grub_lvm_init): Likewise.
f19dbdb7 6874 [GRUB_UTIL] (grub_lvm_fini): Likewise.
790707f2 6875 * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
6876 RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
6877 (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
6878 and grub_raid_fini().
f19dbdb7 6879
03e58196 68802006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
6881
6882 * include/grub/types.h (__unused): Rename to UNUSED.
6883 * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
6884 (grub_elf64_size): Likewise.
f19dbdb7 6885
ae4f23bf 68862006-11-03 Hollis Blanchard <hollis@penguinppc.org>
6887
6888 * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
6889 grub_error_push and grub_error_pop in the error-handling path.
6890 (grub_elf32_load_segment): Only call grub_file_read with non-zero
6891 length.
6892
2166cc83 68932006-11-03 Hollis Blanchard <hollis@penguinppc.org>
6894
6895 * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
6896 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
6897 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6898 (kernel_elf_SOURCES): Likewise.
6899 * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
6900 * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
6901 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
6902 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
6903 * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
6904 (elf_mod_SOURCES): New variable.
6905 (elf_mod_CFLAGS): Likewise.
6906 (elf_mod_LDFLAGS): Likewise.
6907 * include/grub/types.h (__unused): New macro.
6908 * include/grub/elfload.h: New file.
6909 * kern/elf.c: Likewise.
6910 * loader/powerpc/ieee1275/linux.c: Include elfload.h.
6911 (ELF32_LOADMASK): New macro.
6912 (ELF64_LOADMASK): Likewise.
6913 (vmlinux): Removed.
6914 (grub_linux_load32): New function.
6915 (grub_linux_load64): Likewise.
6916 (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
6917 Use grub_elf_t instead of grub_file_t.
6918
a09d5aa5 69192006-11-02 Hollis Blanchard <hollis@penguinppc.org>
6920
6921 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
6922 `catch_result' to struct set_color_args.
6923
d976fc51 69242006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
6925
6926 * normal/menu.c: Include grub/script.h.
6927 * normal/menu_entry.c: Likewise.
6928 * include/grub/normal.h: Do not include grub/script.h.
6929
67507549 69302006-10-27 Hollis Blanchard <hollis@penguinppc.org>
6931
6932 * kern/disk.c (grub_disk_read): Correct debug printf formatting.
6933
69203a99 69342006-10-27 Hollis Blanchard <hollis@penguinppc.org>
6935
6936 * kern/disk.c (grub_disk_open): Print debug messages when opening a
6937 disk.
6938 (grub_disk_close): Print debug messages when closing a disk.
6939 (grub_disk_read): Print debug messages when disk read fails.
6940 * kern/fs.c (grub_fs_probe): Print debug messages when detecting
6941 filesystem type.
6942 * kern/partition.c: Include misc.h.
6943 (grub_partition_iterate): Print debug messages when detecting
6944 partition type.
6945
e2b8278c 69462006-10-27 Hollis Blanchard <hollis@penguinppc.org>
6947
6948 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
6949 is negative.
6950 * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
6951
97b2f2ff 69522006-10-26 Hollis Blanchard <hollis@penguinppc.org>
6953
6954 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
6955 Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
6956
6555d655 69572006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
6958
6959 * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
6960 instead of sizeof(lv). Patch by Michael Guntsche.
6961
4d42b77f 69622006-10-18 Jeroen Dekkers <jeroen@dekkers.cx>
6963
6964 * disk/lvm.c: Rename VGS to VG_LIST.
6965 (grub_lvm_iterate): Change VGS->LV to VG-LV.
6966 (grub_lvm_open): Likewise.
6967 Thanks to Michael Guntsche for finding this bug.
6968
5d74d927 69692006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
6970
6971 * configure.ac (AC_INIT): Bumped to 1.95.
6972
a1bb27e4 69732006-10-14 Robert Millan <rmh@aybabtu.com>
6974
6975 * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
6976 with "/dev/.static/dev/md".
6977
e0994b8b 69782006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
6979
6980 * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
6981 DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
6982 DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
6983 DRIVE_NAME are always freed.
6984
6985 * util/i386/pc/biosdisk.c (make_device_name): Add one into
6986 DOS_PART, as a DOS partition is counted from one instead of zero
6987 now. Reported by Robert Millan.
6988
ddd5cee9 69892006-10-14 Robert Millan <rmh@aybabtu.com>
6990
6991 * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
6992 grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
6993 * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
6994 string returned by grub_guess_root_device.
6995 * util/i386/pc/grub-setup.c: Likewise.
6996 * util/i386/pc/grub-probefs.c: Likewise.
6997
6998 * util/i386/pc/grub-probefs.c: Rename to ...
6999 * util/i386/pc/grub-probe.c: ... this.
7000 * DISTLIST: Remove grub-probefs, add grub-probe.
7001 * conf/i386-efi.rmk: Likewise.
7002 * conf/i386-pc.rmk: Likewise.
7003 * util/i386/pc/grub-install.in: Likewise.
7004
7005 * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
7006 choose which information we want to print.
7007
2b002173 70082006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
7009
7010 * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
7011 include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
7012 include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
7013 include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
7014 video/readers/tga.c and video/i386/pc/vbeutil.c.
7015
70162006-10-14 Jeroen Dekkers <jeroen@dekkers.cx>
7017
7018 Added support for RAID and LVM.
f19dbdb7 7019
2b002173 7020 * disk/lvm.c: New file.
7021 * disk/raid.c: Likewise.
7022 * include/grub/lvm.h: Likewise.
f19dbdb7 7023 * include/grub/raid.h: Likewise.
2b002173 7024 * include/grub/util/lvm.h: Likewise.
7025 * include/grub/util/raid.h: Likewise.
7026 * util/lvm.c: Likewise.
7027 * util/raid.c: Likewise.
7028
7029 * include/grub/disk.h (grub_disk_dev_id): Add
7030 GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
7031 (grub_disk_get_size): New prototype.
7032 * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
7033 returns a partition.
7034 (grub_disk_get_size): New function.
f19dbdb7 7035
2b002173 7036 * kern/i386/pc/init.c (make_install_device): Copy the prefix
7037 verbatim if grub_install_dos_part is -2.
7038
7039 * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
7040 and LVM devices.
7041
7042 * util/i386/pc/grub-setup.c (setup): New argument
7043 MUST_EMBED. Force embedding of GRUB when the argument is
7044 true. Close FILE before returning.
7045 (main): Add support for RAID and LVM.
f19dbdb7 7046
2b002173 7047 * conf/common.rmk: Add RAID and LVM modules.
7048 * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
7049 util/lvm.c.
7050 (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
7051
7052 * kern/misc.c (grub_strstr): New function.
7053 * include/grub/misc.h (grub_strstr): New prototype.
7054
050548d0 70552006-10-10 Tristan Gingold <tristan.gingold@bull.net>
7056
7057 * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
7058
da849d2d 70592006-10-05 Tristan Gingold <tristan.gingold@bull.net>
7060
7061 * kern/misc.c (grub_strtoull): Guess the base only if not
7062 specified.
7063
97b2f2ff 70642006-10-01 Hollis Blanchard <hollis@penguinppc.org>
4f0acd39 7065
7066 * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
7067 PowerMac support.
7068
97b2f2ff 70692006-10-01 Hollis Blanchard <hollis@penguinppc.org>
fba51f48 7070
7071 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
7072
7073 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
7074 Remove `flags' argument. All callers changed.
7075 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
7076 (IEEE1275_IHANDLE_INVALID): New variable.
7077 (IEEE1275_CELL_INVALID): New variable.
7078 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
7079 grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
7080 grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
7081 grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
7082 grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
7083 codes from Open Firmware. All callers updated.
7084 (grub_ieee1275_next_property): Directly return Open Firmware return
7085 code.
7086 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
7087 Standardize error checking from `grub_ieee1275_get_property'.
7088 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
7089 `devalias' to `aliases'. Correct comments. Consolidate error paths.
7090
97b2f2ff 70912006-10-01 Hollis Blanchard <hollis@penguinppc.org>
cc6d3df3 7092
7093 * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
7094 `instance_to_package_args' to `instance_to_path_args'.
7095
7096 * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
7097 `grub_ieee1275_chosen'.
7098
7099 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
7100 `grub_ieee1275_interpret'.
7101
97b2f2ff 71022006-09-25 Hollis Blanchard <hollis@penguinppc.org>
02bb8acc 7103
7104 * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
7105
97b2f2ff 71062006-09-25 Hollis Blanchard <hollis@penguinppc.org>
663b72f0 7107
7108 * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
7109 (__cmpdi): Likewise.
7110
7111 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
7112 `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type
7113 `grub_ssize_t'.
7114
02bb8acc 7115 * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
663b72f0 7116
7117 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
7118 to type `grub_ssize_t'.
7119 (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
7120
7f9a8531 71212006-09-22 Marco Gerards <marco@gnu.org>
7122
7123 * normal/script.c (grub_script_create_cmdmenu): Skip leading
7124 newlines.
7125
b5ef1102 71262006-09-22 Marco Gerards <marco@gnu.org>
7127
7128 * commands/echo.c: New file.
7129
7130 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
7131
7132 * conf/common.rmk (echo_mod_SOURCES): New variable.
7133 (echo_mod_CFLAGS): Likewise.
7134 (echo_mod_LDFLAGS): Likewise.
7135
2cff3677 71362006-09-22 Marco Gerards <marco@gnu.org>
7137
7138 * normal/main.c (get_line): Malloc memory instead of using
7139 preallocated memory. Removed the arguments `cmdline' and
7140 `max_len'. Updated all callers.
7141
6ba4688b 71422006-09-22 Marco Gerards <marco@gnu.org>
7143
7144 * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
7145 (normal_mod_DEPENDENCIES): Likewise.
7146
7147 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
7148 (normal_mod_DEPENDENCIES): Likewise.
7149
7150 * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
7151
e02ac02c 71522006-09-22 Johan Rydberg <jrydberg@gnu.org>
7153
7154 * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
7155 programs.
7156 * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
7157 (normal_mod_DEPENDENCIES): Likewise.
7158 * conf/i386-pc.mk: Regenerate.
7159 * conf/i386-efi.mk: Likewise
7160 * conf/common.mk: Likewise.
7161 * conf/powerpc-ieee1275.mk: Likewise.
7162 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 7163
8d252e44 71642006-09-22 Robert Millan <rmh@aybabtu.com>
7165
7166 Sync with i386 version.
7167 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
7168 * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
7169
209bf7ac 71702006-09-21 Robert Millan <rmh@aybabtu.com>
7171
7172 Import from GRUB Legacy (lib/device.c):
7173 * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
7174 (init_device_map) [__linux__]: Add support for I2O devices.
7175
6b146090 71762006-09-14 Marco Gerards <marco@gnu.org>
7177
7178 * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
7179 `-melf_i386'.
7180
e38600a8 71812006-09-14 Robert Millan <rmh@aybabtu.com>
2952da5d 7182
7183 * util/i386/pc/grub-install.in: Skip menu.lst when removing
7184 /boot/grub/*.lst.
78fa1790 7185
2952da5d 7186 * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
6b146090 7187
2952da5d 7188 * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
7189 before adding it to device.map.
7190
01b82a64 71912006-08-15 Johan Rydberg <jrydberg@gnu.org>
7192
fe6b695a 7193 * genmk.rb: Let GCC generate dependencies the first time it
01b82a64 7194 compiles a file; using the -MD option.
7195 * conf/common.mk: Regenerate.
7196 * conf/i386-pc.mk: Likewise.
7197 * conf/i386-efi.mk: Likewise.
7198 * conf/powerpc-ieee1275.mk: Likewise.
7199 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 7200
1064790d 72012006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
7202
7203 Move the prototypes of grub_setjmp and grub_longjmp to
7204 cpu/setjmp.h, so that each architecture may specify different
7205 attributes.
f19dbdb7 7206
1064790d 7207 * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
7208 (grub_longjmp): Likewise.
7209 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
7210 (grub_longjmp): Likewise.
7211 * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
7212 (grub_longjmp): Likewise.
7213
7214 * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
7215 [!GRUB_UTIL] (grub_longjmp): Removed.
7216
29dda3ed 72172006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
7218
7219 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
7220 "color!" method does not return any value.
7221
ad2a06ed 72222006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
7223
7224 * include/grub/bitmap.h: New file.
7225
7226 * include/grub/i386/pc/vbeutil.h: Likewise.
7227
7228 * video/bitmap.c: Likewise.
7229
7230 * video/readers/tga.c: Likewise.
7231
7232 * video/i386/pc/vbeutil.c: Likewise.
7233
7234 * commands/videotest.c: Code cleanup and updated to reflect to new
7235 video API.
7236
7237 * term/gfxterm.c: Likewise.
7238
7239 * video/video.c: Likewise.
7240
7241 * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
7242 (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
7243 (bitmap_mod_SOURCES): New entry.
7244 (bitmap_mod_CFLAGS): Likewise.
7245 (bitmap_mod_LDFLAGS): Likewise.
7246 (tga_mod_SOURCES): Likewise.
7247 (tga_mod_CFLAGS): Likewise.
7248 (tga_mod_LDFLAGS): Likewise.
7249
7250 * include/grub/video.h (grub_video_blit_operators): New enum type.
7251 (grub_video_render_target): Changed as forward declaration and moved
7252 actual definition to be video driver specific.
7253 (grub_video_adapter.blit_bitmap): Added blitting operator.
7254 (grub_video_adapter.blit_render_target): Likewise.
7255 (grub_video_blit_bitmap): Likewise.
7256 (grub_video_blit_render_target): Likewise.
7257
7258 * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
7259 driver specific render target definition.
7260 (grub_video_vbe_map_rgba): Added driver internal helper.
7261 (grub_video_vbe_unmap_color): Updated to use
7262 grub_video_i386_vbeblit_info.
7263 (grub_video_vbe_get_video_ptr): Likewise.
7264
7265 * include/grub/i386/pc/vbeblit.h
7266 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
7267 grub_video_i386_vbeblit_info.
7268 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
7269 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
7270 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
7271 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
7272 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
7273 (grub_video_i386_vbeblit_index_index): Likewise.
7274 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
7275 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
7276 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
7277 (grub_video_i386_vbeblit_blend): Added generic blitter for blend
7278 operator.
7279 (grub_video_i386_vbeblit_replace): Added generic blitter for replace
7280 operator.
7281
7282 * video/i386/pc/vbeblit.c: Updated to reflect changes on
7283 include/grub/i386/pc/vbeblit.h.
7284
7285 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
7286 Updated to use grub_video_i386_vbeblit_info.
7287 (grub_video_i386_vbefill_R8G8B8): Likewise.
7288 (grub_video_i386_vbefill_index): Likewise.
7289 (grub_video_i386_vbefill): Added generic filler.
7290
7291 * video/i386/pc/vbefill.c: Updated to reflect changes on
7292 include/grub/i386/pc/vbefill.h.
7293
7294 * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
7295 grub_video_i386_vbeblit_info.
7296 (grub_video_vbe_unmap_color): Likewise.
7297 (grub_video_vbe_blit_glyph): Likewise.
7298 (grub_video_vbe_scroll): Likewise.
7299 (grub_video_vbe_draw_pixel): Removed function.
7300 (grub_video_vbe_get_pixel): Likewise.
7301 (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
7302 updated code to use it.
7303 (common_blitter): Added common blitter for render target and bitmap.
7304 (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
7305 (grub_video_vbe_blit_render_target): Likewise.
7306
bc8c036d 73072006-07-30 Johan Rydberg <jrydberg@gnu.org>
7308
7309 * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
7310 is in text mode if there is no console control protocol instance
7311 available.
7312
684a8eff 73132006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
7314
7315 * include/grub/video.h: Code cleanup.
7316
7317 * include/grub/i386/pc/vbe.h: Likewise.
7318
7319 * video/i386/pc/vbe.c: Likewise.
7320
7321 * video/i386/pc/vbeblit.c: Likewise.
7322
7323 * video/i386/pc/vbefill.c: Likewise.
7324
7325 * video/video.c: Likewise. Also added more comments.
7326
5915059b 73272006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
7328
7329 * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
7330 (struct grub_biosdisk_dap): Likewise.
7331
7332 * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected
7333 linkage settings for all functions.
7334
90ce5d56 73352006-07-12 Marco Gerards <marco@gnu.org>
7336
7337 * configure.ac (--enable-mm-debug): Fix typo.
7338
7339 * genkernsyms.sh.in: Use proper quoting for `CC'.
7340
43e7f879 73412006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
7342
7343 * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
7344 (normal_mod_ASFLAGS): Remove "-m32".
7345
4889bdec 73462006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
7347
7348 * util/misc.c: Include config.h.
7349 [!HAVE_MEMALIGN]: Do not include malloc.h.
7350 (grub_memalign): Use posix_memalign, if present. Then, use
7351 memalign, if present. Otherwise, emit an error.
7352
7353 * util/grub-emu.c: Do not include malloc.h.
7354
7355 * include/grub/util/misc.h: Include unistd.h. This is required for
7356 FreeBSD, because off_t is defined in unistd.h. Reported by Harley
7357 D. Eades III <hde@foobar-qux.org>.
7358
7359 * configure.ac (AC_GNU_SOURCE): Added.
7360 (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
7361 type.
7362
fd39d4da 73632006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
7364
7365 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
7366 ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
7367
b786f3b5 73682006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
7369
7370 * include/grub/types.h (grub_host_addr_t): Rename to
7371 grub_target_addr_t.
7372 (grub_host_off_t): Rename to grub_target_off_t.
7373 (grub_host_size_t): Rename to grub_target_size_t.
7374 (grub_host_ssize_t): Rename to grub_target_ssize_t.
7375 Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
7376
7377 * include/grub/kernel.h (struct grub_module_header): Change type
7378 of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
7379 (grub_module_info): Likewise.
f19dbdb7 7380
051988bb 73812006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
7382
7383 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
7384 of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
7385 Velazquez <jesus.velazquez@gmail.com>.
7386
deae281b 73872006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
7388
7389 Count partitions from 1 instead of 0 in the string representation
7390 of partitions. Still use 0-based internally.
f19dbdb7 7391
deae281b 7392 * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
7393 (sun_partition_map_iterate): Use grub_partition_t instead of
7394 struct grub_partition *. Cast DESC->START_CYLINDER to
7395 grub_uint64_t after converting the endian.
7396 (sun_partition_map_probe): Subtract 1 for PARTNUM.
7397 (sun_partition_map_get_name): Add 1 to P->INDEX.
7398
7399 * partmap/pc.c (grub_partition_parse): Subtract 1 for
7400 PCDATA->DOS_PART.
7401 (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
7402
7403 * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
7404 zero instead of one.
7405 (gpt_partition_map_probe): Subtract 1 for PARTNUM.
7406 (gpt_partition_map_get_name): Add 1 into P->INDEX.
7407
7408 * partmap/apple.c (apple_partition_map_iterate): Change the type
7409 of POS to unsigned.
7410 (apple_partition_map_probe): Subtract 1 for PARTNUM.
7411 (apple_partition_map_get_name): Add 1 into P->INDEX.
7412
7413 * partmap/amiga.c (amiga_partition_map_iterate): Change the type
7414 of POS to unsigned.
7415 (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
7416 calculate the offset of a partition.
7417 (amiga_partition_map_probe): Subtract 1 for PARTNUM.
7418 (amiga_partition_map_get_name): Add 1 into P->INDEX.
7419
7420 * partmap/acorn.c (acorn_partition_map_find): Change the type of
7421 SECTOR to grub_disk_addr_t.
7422 (acorn_partition_map_iterate): Likewise.
7423 (acorn_partition_map_probe): Subtract 1 for PARTNUM.
7424 Change the type of SECTOR to grub_disk_addr_t. Declare P on the
7425 top.
7426 (acorn_partition_map_get_name): Add 1 into P->INDEX.
7427
7428 * kern/i386/pc/init.c (make_install_device): Add 1 into
7429 GRUB_INSTALL_DOS_PART.
7430
7431 * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
7432 conditional.
7433
524a1e6a 74342006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
7435
7436 Clean up the code to support 64-bit addressing in disks and
7437 files. This change is not enough for filesystems yet.
f19dbdb7 7438
524a1e6a 7439 * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
7440 type of "start" to grub_uint64_t.
7441 (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
7442 grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
7443 save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
7444 convert addresses.
7445
7446 * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
7447 to grub_disk_addr_t.
7448
7449 * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
7450 string.
7451
7452 * partmap/pc.c (pc_partition_map_iterate): Likewise.
7453
7454 * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
7455 to char *.
7456
7457 * normal/script.c (grub_script_parse): Remove unused MEMFREE.
7458
7459 * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
7460
7461 * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
7462
7463 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
7464 to grub_off_t, to detect an error from grub_file_seek.
7465 (grub_multiboot_load_elf32): Likewise.
7466
7467 * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
7468 maximum unsigned long value when an overflow is detected.
7469 (grub_strtoull): New function.
7470 (grub_divmod64): Likewise.
7471 (grub_lltoa): use grub_divmod64.
7472
7473 * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
7474 grub_disk_addr_t.
7475 (grub_fs_blocklist_open): Increase P if P is not NULL to advance
7476 the pointer to next character. Use grub_strtoull instead of
7477 grub_strtoul.
7478 (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
7479 SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
7480 respectively.
7481
fe6b695a 7482 * kern/file.c (grub_file_read): Prevent an overflow of LEN, as the
524a1e6a 7483 return value is signed.
7484 (grub_file_seek): Change the type of OLD to grub_off_t. Do not
7485 test if OFFSET is less than zero, as OFFSET is unsigned now.
7486
7487 * kern/disk.c (struct grub_disk_cache): Change the type of
7488 "sector" to grub_disk_addr_t.
7489 (grub_disk_cache_get_index): Change the type of SECTOR to
7490 grub_disk_addr_t. Calculate the hash with SECTOR casted to
7491 unsigned after shifting.
7492 (grub_disk_cache_invalidate): Change the type of SECTOR to
7493 grub_disk_addr_t.
7494 (grub_disk_cache_unlock): Likewise.
7495 (grub_disk_cache_store): Likewise.
7496 (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
7497 START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
7498 grub_disk_addr_t and grub_uint64_t, respectively.
7499 (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
7500 body, as the value of OFFSET is tweaked by
7501 grub_disk_check_range. Change the types of START_SECTOR, LEN and
7502 POS to grub_disk_addr_t, grub_size_t and grub_size_t,
7503 respectively.
7504 (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
7505 body, as the value of OFFSET is tweaked by
7506 grub_disk_check_range. Change the types of LEN and N to
7507 grub_size_t.
7508
7509 * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
7510 and "saved_offset" to grub_off_t.
7511 (test_header): Cast BUF to char *.
7512 (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
7513 to char *.
7514 (grub_gzio_read): Change the types of OFFSET and SIZE to
7515 grub_off_t and grub_size_t, respectively.
7516
7517 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
7518 Removed.
7519 (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
7520 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
7521 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
7522 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
7523 (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
7524
7525 * include/grub/types.h (grub_off_t): Unconditionally set to
7526 grub_uint64_t.
7527 (grub_disk_addr_t): Changed to grub_uint64_t.
7528
7529 * include/grub/partition.h (struct grub_partition): Change the
7530 types of "start", "len" and "offset" to grub_disk_addr_t,
7531 grub_uint64_t and grub_disk_addr_t, respectively.
7532 (grub_partition_get_start): Return grub_disk_addr_t.
7533 (grub_partition_get_len): Return grub_uint64_t.
7534
7535 * include/grub/misc.h (grub_strtoull): New prototype.
7536 (grub_divmod64): Likewise.
7537
7538 * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
7539 of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
7540 grub_off_t, respectively.
7541 All callers and references changed.
7542
7543 * include/grub/fs.h (struct grub_fs): Change the type of LEN to
7544 grub_size_t in "read".
7545 All callers and references changed.
7546
7547 * include/grub/file.h (struct grub_file): Change the types of
7548 "offset" and "size" to grub_off_t and grub_off_t,
7549 respectively. Change the type of SECTOR to grub_disk_addr_t in
7550 "read_hook".
7551 (grub_file_read): Change the type of LEN to grub_size_t.
7552 (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
7553 grub_off_t.
7554 (grub_file_size): Return grub_off_t.
7555 (grub_file_tell): Likewise.
7556 All callers and references changed.
7557
7558 * include/grub/disk.h (struct grub_disk_dev): Change the types of
7559 SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
7560 "write".
7561 (struct grub_disk): Change the type of "total_sectors" to
7562 grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
f19dbdb7 7563 "read_hook".
524a1e6a 7564 (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
7565 grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
7566 (grub_disk_write): Likewise.
7567 All callers and references changed.
7568
7569 * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
7570 char * for grub_strncmp to silence gcc.
7571 (grub_iso9660_mount): Likewise.
7572 (grub_iso9660_mount): Likewise.
7573 (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
7574 return statement.
7575 (grub_iso9660_iterate_dir): Likewise.
7576 (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
7577
7578 * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
7579 LEN to grub_disk_addr_t and grub_size_t, respectively.
7580
7581 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
7582
7583 * fs/jfs.c (grub_jfs_read_file): Likewise.
7584
7585 * fs/minix.c (grub_jfs_read_file): Likewise.
7586
7587 * fs/sfs.c (grub_jfs_read_file): Likewise.
7588
7589 * fs/ufs.c (grub_jfs_read_file): Likewise.
7590
7591 * fs/xfs.c (grub_jfs_read_file): Likewise.
7592
7593 * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
7594 and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
7595 respectively.
7596
7597 * fs/ext2.c (grub_ext2_read_block): When an error happens, set
7598 BLKNR to -1 instead of returning GRUB_ERRNO.
7599 (grub_ext2_read_file): Change the types of SECTOR and
7600 LEN to grub_disk_addr_t and grub_size_t, respectively.
7601
7602 * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
7603 LEN to grub_disk_addr_t and grub_size_t, respectively.
7604
7605 * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
7606 grub_file_read.
7607
7608 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
7609 string. Do not cast SECTOR explicitly.
7610
7611 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
7612 TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
7613 (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
7614 grub_disk_addr_t and grub_size_t, respectively. If the sector is
7615 over 2TB and LBA mode is not supported, raise an error.
7616 (get_safe_sectors): New function.
7617 (grub_biosdisk_read): Use get_safe_sectors.
7618 (grub_biosdisk_write): Likewise.
7619
7620 * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
7621 (grub_efidisk_write): Likewise.
7622
7623 * disk/loopback.c (delete_loopback): Cosmetic changes.
7624 (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
7625 correctly.
7626 (grub_loopback_open): Likewise.
7627 (grub_loopback_read): Likewise. Also, change the type of POS to
7628 grub_off_t, and fix the usage of grub_memset.
7629
7630 * commands/i386/pc/play.c: Include grub/machine/time.h.
7631
7632 * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
7633 print FILE->SIZE.
7634
7635 * commands/configfile.c: Include grub/env.h.
7636
7637 * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
7638 GRUB_ERRNO directly instead. Change the type of POS to
7639 grub_off_t. Follow the coding standard.
7640
7641 * commands/blocklist.c: Include grub/partition.h.
7642 (grub_cmd_blocklist): Return an error if the underlying device is
7643 not a disk. Take the starting sector of a partition into account,
7644 if a partition is used.
7645
7646 * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
7647 a length field.
7648 (lba_mode): Support 64-bit addresses.
7649 (chs_mode): Likewise.
7650 (copy_buffer): Adapted to the new offsets of a length field and a
7651 segment field.
7652 (blocklist_default_start): Allocate 64-bit space.
7653
7654 * boot/i386/pc/boot.S (force_lba): Removed.
7655 (boot_drive): Moved to under KERNEL_SECTOR.
fe987087 7656 (kernel_sector): Moved to under KERNEL_SEGMENT. Allocate 64-bit
524a1e6a 7657 space.
7658 (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
7659 is useless.
7660 (lba_mode): Refactored to support a 64-bit address. More size
7661 optimization.
7662 (setup_sectors): Likewise.
7663
53af98ad 76642006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
7665
7666 * DISTLIST: Added include/grub/i386/linux.h. Removed
7667 include/grub/i386/pc/linux.h
7668
7669 * configure.ac (AC_INIT): Bumped to 1.94.
7670
7671 * config.guess: Updated from gnulib.
7672 * config.sub: Likewise.
7673 * install-sh: Likewise.
7674 * mkinstalldirs: Likewise.
7675
b4c1940a 76762006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
7677
7678 * conf/common.rmk (grub_modules_init.lst): Depended on
7679 grub_emu_SOURCES, excluding grub_emu_init.c, instead of
7680 MODSRCFILES.
7681
7682 * genmk.rb (PModule::rule): Reverted the previous change.
7683
cfca1cfd 76842006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
7685
7686 * conf/common.rmk (grub_modules_init.lst): Depends on
7687 $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
7688 that the target does not exist before producing.
7689 (grub_modules_init.h): Remove the target before generating.
7690 (grub_emu_init.c): Likewise.
7691
7692 * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
7693
aa6d7826 76942006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
7695
7696 * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
7697 for the target-specific tests. Make sure that we also have the
7698 up-to-date target variables for those tests.
7699
26c607b9 77002006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
7701
7702 * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
7703 (PModule::rule): Likewise.
7704
0162321a 77052006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
7706
7707 * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
7708 TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
7709 target-specific flags should be prefixed.
7710 (PModule::rule): Likewise.
7711
6c826348 77122006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
7713
7714 * configure.ac (CMP): Check if cmp is available explicitly.
7715
b977bf01 77162006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
7717
7718 * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
7719 (target_cpu): New variable.
7720 (pkglibdir): Use target_cpu instead of host_cpu.
f19dbdb7 7721
b977bf01 7722 * util/i386/pc/grub-install.in (host_cpu): Removed.
7723 (target_cpu): New variable.
7724 (pkglibdir): Use target_cpu instead of host_cpu.
7725
7726 * util/genmoddep.c: Removed.
f19dbdb7 7727
b977bf01 7728 * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
7729 instead of GRUB_HOST_SIZEOF_VOID_P.
7730 * kern/dl.c: Likewise.
7731
7732 * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
7733 ...
7734 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
7735 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
7736 (GRUB_TARGET_SIZEOF_LONG): ... this.
7737 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
7738 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
7739 * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
7740 to ...
7741 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
7742 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
7743 (GRUB_TARGET_SIZEOF_LONG): ... this.
7744 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
7745 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
7746 * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
7747 to ...
7748 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
7749 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
7750 (GRUB_TARGET_SIZEOF_LONG): ... this.
7751 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
7752 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
7753
7754 * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
7755 GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
7756 [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
7757 instead of GRUB_HOST_SIZEOF_LONG.
7758 [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
7759 GRUB_HOST_WORDS_BIGENDIAN to define or undefine
7760 GRUB_CPU_WORDS_BIGENDIAN.
7761 Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
7762 define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
7763 grub_host_ssize_t.
7764
7765 * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
7766 (genmoddep_SOURCES): Likewise.
7767 * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
7768 (genmoddep_SOURCES): Likewise.
7769 * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
7770 (genmoddep_SOURCES): Likewise.
7771 * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
7772 Likewise.
7773 (genmoddep_SOURCES): Likewise.
7774
7775 * genmoddep.awk: New file.
7776
7777 * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
7778 TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
7779 CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
7780 (PModule::rule): Likewise.
7781 (Program::rule): Likewise.
7782 (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
7783 BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
7784 respectively.
7785
7786 * configure.ac: Rewritten intensively to use host and target
7787 instead of build and host, respectively.
7788
7789 * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
7790 (host_cpu): Removed.
7791 (target_cpu): New variable.
7792 (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
7793 (BUILD_CC): Removed.
7794 (BUILD_CFLAGS): Likewise.
7795 (BUILD_CPPFLAGS): Likewise.
7796 (TARGET_CC): New variable.
7797 (TARGET_CFLAGS): Likewise.
7798 (TARGET_CPPFLAGS): Likewise.
7799 (TARGET_LDFLAGS): Likewise.
7800 (AWK): Likewise.
7801 (include): Use target_cpu instead of host_cpu.
7802 (moddep.lst:): Use genmoddep.awk instead of genmoddep.
f19dbdb7 7803
b977bf01 7804 * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
7805
f09771a1 78062006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
7807
7808 * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
7809 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed
7810 field 'false' to 'exec_on_false'.
7811 (grub_script_create_cmdif): Renamed argument names to reflect above
7812 changes.
7813
7814 * normal/execute.c (grub_script_execute_cmdif): Likewise.
7815
7816 * normal/script.c (grub_script_create_cmdif): Likewise.
7817
118f4fb3 78182006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
7819
7820 * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
7821 top.
7822 (grub_hfsplus_btree_recptr): Likewise.
7823 (grub_hfsplus_find_block): Do not take RETRY any longer. Use
7824 FILEBLOCK both to pass a block number and store next block
7825 number.
7826 (grub_hfsplus_read_block): Rewritten heavily to support an extent
7827 overflow file correctly. Specify errors appropriately, because
7828 fshelp expects that GRUB_ERRNO is set when fails. Reuse
7829 grub_hfsplus_btree_recptr to get the pointer to a found key.
7830 (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
7831 is found.
7832
7833 * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
7834 linux.mod.
7835 (_linux_mod_SOURCES): New variable.
7836 (_linux_mod_CFLAGS): Likewise.
7837 (_linux_mod_LDFLAGS): Likewise.
7838 (linux_mod_SOURCES): Likewise.
7839 (linux_mod_CFLAGS): Likewise.
7840 (linux_mod_LDFLAGS): Likewise.
7841
7842 * DISTLIST: Added loader/i386/efi/linux.c,
7843 loader/i386/efi/linux_normal.c and
7844 include/grub/i386/efi/loader.h.
7845
7846 * loader/i386/efi/linux.c: New file.
7847 * loader/i386/efi/linux_normal.c: Likewise.
7848 * include/grub/i386/efi/loader.h: Likewise.
7849
89a7d726 78502006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
7851
7852 * commands/blocklist.c: New file.
7853
7854 * DISTLIST: Added commands/blocklist.c.
7855
7856 * term/efi/console.c (grub_console_highlight_color): Use a lighter
43b553ad 7857 color for the background, and a darker color for the foreground.
89a7d726 7858 (grub_console_checkkey): Return READ_KEY.
7859 (grub_console_cls): Set the background to
7860 GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
7861
7862 * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
7863
7864 * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
7865 the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
7866
7867 * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
7868 prototype.
7869
7870 * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
7871 BG. The spec is wrong again.
7872
7873 * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
7874 prototype.
7875 [GRUB_UTIL] (grub_blocklist_fini): Likewise.
7876
7877 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
7878 commands/blocklist.c.
7879 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
f19dbdb7 7880
89a7d726 7881 * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
7882 (blocklist_mod_SOURCES): New variable.
7883 (blocklist_mod_CFLAGS): Likewise.
7884 (blocklist_mod_LDFLAGS): Likewise.
7885
75c8f258 78862006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
7887
7888 * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
7889 duplication.
7890 (lba_mode): Use %eax more intensively to reduce the code size.
7891
da2eb181 78922006-05-20 Marco Gerards <marco@gnu.org>
7893
7894 * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
7895
7896 * normal/parser.y (commandblock): Defined as <cmd>. A subroutine
7897 for `menuentry'.
7898 (script): Accept leading newlines.
7899 (newlines): New rule to describe 0 or more newlines.
7900 (commands): Accept `command' with trailing newline. Fixed the
7901 order in which arguments were passed to `grub_script_add_cmd'.
7902 Accept commands separated by newlines.
7903 (function): Changed to accept newlines.
7904 (menuentry) Rewritten.
7905
7906 * normal/script.c (grub_script_create_cmdmenu): Add new entries in
7907 front of the list, instead of to the end.
7908
577b4050 79092006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
7910
7911 * util/i386/pc/grub-install.in (bindir): New variable.
7912 (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
7913 Shaver <lbgwjl@gmail.com>.
7914
0d6e1189 79152006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
7916
7917 * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
7918 grub/machine/linux.h
7919 * loader/i386/pc/linux.c: Likewise.
7920
7921 * include/grub/i386/pc/linux.h: Moved to ...
7922 * include/grub/i386/linux.h: ... here.
7923
7924 * include/grub/i386/linux.h (struct linux_kernel_params): New
7925 struct.
f19dbdb7 7926
31b86e9f 79272006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
7928
7929 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
7930 checking.
7931 (grub_video_vbe_blit_glyph): Likewise.
7932 (grub_video_vbe_blit_bitmap): Likewise.
7933 (grub_video_vbe_blit_render_target): Likewise.
7934
83b984de 79352006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
7936
7937 * configure.ac (--with-platform): Properly quote the square
7938 brackets.
7939
5f0413bd 79402006-05-08 Marco Gerards <marco@gnu.org>
7941
7942 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
7943 this...
7944 (kernel_elf_HEADERS): ...to this. Updated all users.
7945 (grubof_symlist.c): Renamed from this...
7946 (kernel_elf_symlist.c): ...to this. Updated all users.
7947 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
7948 (grubof_SOURCES): Renamed from this...
7949 (kernel_elf_SOURCES): ...to this.
7950 (grubof_HEADERS): Renamed from this...
7951 (kernel_elf_HEADERS): ...to this.
7952 (grubof_CFLAGS): Renamed from this...
7953 (kernel_elf_CFLAGS): ...to this.
7954 (grubof_ASFLAGS): Renamed from this...
7955 (kernel_elf_ASFLAGS): ...to this.
7956 (grubof_LDFLAGS): Renamed from this...
7957 (kernel_elf_LDFLAGS): ...to this.
7958
7959 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
7960 this...
7961 (kernel_elf_HEADERS): ...to this. Updated all users.
7962 (grubof_symlist.c): Renamed from this...
7963 (kernel_elf_symlist.c): ...to this. Updated all users.
7964 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
7965 (grubof_SOURCES): Renamed from this...
7966 (kernel_elf_SOURCES): ...to this.
7967 (grubof_HEADERS): Renamed from this...
7968 (kernel_elf_HEADERS): ...to this.
7969 (grubof_CFLAGS): Renamed from this...
7970 (kernel_elf_CFLAGS): ...to this.
7971 (grubof_ASFLAGS): Renamed from this...
7972 (kernel_elf_ASFLAGS): ...to this.
7973 (grubof_LDFLAGS): Renamed from this...
7974 (kernel_elf_LDFLAGS): ...to this.
7975
7976 * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
7977 `kernel.elf' instead of `grubof'.
7978
05568c2e 79792006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
7980
7981 Add --with-platform to configure. Use pkglibdir instead of
7982 pkgdatadir. This is reported by Roger Leigh.
7983
7984 * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
7985 (host_vendor): Likewise.
7986 (host_os): Likewise.
7987 (pkgdatadir): Likewise.
7988 (platform): New variable.
7989 (pkglibdir): Likewise.
7990 Use PKGLIBDIR instead of PKGDATADIR.
f19dbdb7 7991
05568c2e 7992 * util/i386/pc/grub-install.in (datadir): Removed.
7993 (host_vendor): Likewise.
7994 (host_os): Likewise.
7995 (pkgdatadir): Likewise.
7996 (platform): New variable.
7997 (pkglibdir): Likewise.
7998 Use PKGLIBDIR instead of PKGDATADIR.
7999
8000 * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
8001 instead of GRUB_DATADIR.
8002 (main): Likewise.
8003 * util/i386/pc/grub-mkimage.c (usage): Likewise.
8004 (main): Likewise.
8005 * util/i386/efi/grub-mkimage.c (usage): Likewise.
8006 (main): Likewise.
8007
8008 * configure.ac (--with-platform): New option.
8009 Use PLATFORM instead of HOST_VENDOR to specify a platform.
8010
8011 * Makefile.in: Include a makefile based on PLATFORM instead of
8012 HOST_VENDOR.
8013 (pkgdatadir): Not appended by the machine type.
8014 (pkglibdir): Appended by the machine type.
8015 (host_vendor): Removed.
8016 (platform): New variable.
8017 (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
8018 (install-local): Use PKGLIBDIR instead of PKGDATADIR.
8019 (uninstall): Likewise.
8020
4e93851c 80212006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
8022
8023 Use the environment context in the menu. Remove the commands
8024 "default" and "timeout", and use variables instead.
f19dbdb7 8025
4e93851c 8026 * normal/menu.c: Include grub/env.h.
8027 (print_entry): Cast TITLE to silence gcc.
8028 (get_timeout): New function.
8029 (set_timeout): Likewise.
8030 (get_entry_number): Likewise.
8031 (run_menu): Use a default entry, a fallback entry and a timeout
8032 in the environment variables "default", "fallback" and
8033 "timeout". Also, tweak the default entry if it is not within the
8034 current menu entries.
8035 (grub_menu_run): Use a fallback entry in the environment variable
8036 "fallback".
8037
8038 * normal/main.c (read_config_file): Do not initialize
8039 NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
8040 NEWMENU->TIMEOUT.
8041 (grub_normal_execute): Use a data slot to store the menu.
8042
8043 * include/grub/normal.h (struct grub_menu): Removed default_entry,
8044 fallback_entry and timeout.
8045 (struct grub_menu_list): Removed.
8046 (grub_menu_list_t): Likewise.
8047 (struct grub_context): Likewise.
8048 (grub_context_t): Likewise.
8049 (grub_context_get): Likewise.
8050 (grub_context_get_current_menu): Likewise.
8051 (grub_context_push_menu): Likewise.
8052 (grub_context_pop_menu): Likewise.
8053 (grub_default_init): Likewise.
8054 (grub_default_fini): Likewise.
8055 (grub_timeout_init): Likewise.
8056 (grub_timeout_fini): Likewise.
8057
8058 * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
8059 and timeout.mod.
8060 (normal_mod_SOURCES): Removed normal/context.c.
8061
8062 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
8063 commands/default.c, commands/timeout.c and normal/context.c.
8064 (normal_mod_SOURCES): Removed normal/context.c.
8065
8066 * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
8067 commands/timeout.c and normal/context.c.
8068 (normal_mod_SOURCES): Removed normal/context.c.
8069
8070 * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
8071 commands/default.c, commands/timeout.c and normal/context.c.
8072 (normal_mod_SOURCES): Removed normal/context.c.
8073
8074 * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
8075 timeout.mod.
8076 (default_mod_SOURCES): Removed.
8077 (default_mod_CFLAGS): Likewise.
8078 (default_mod_LDFLAGS): Likewise.
8079 (timeout_mod_SOURCES): Removed.
8080 (timeout_mod_CFLAGS): Likewise.
8081 (timeout_mod_LDFLAGS): Likewise.
8082
8083 * DISTLIST: Removed commands/default.c, commands/timeout.c and
8084 normal/context.c.
8085
8086 * commands/default.c: Removed.
8087 * commands/timeout.c: Likewise.
8088 * normal/context.c: Likewise.
8089
1eb9cc1d 80902006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
8091
8092 * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
8093
385bd9c1 80942006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
8095
8096 * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
8097 "next" to "prev" for readability.
8098 (struct grub_env_sorted_var): New struct.
8099 (grub_env_context): Renamed to ...
8100 (initial_context): ... this.
8101 (grub_env_var_context): Renamed to ...
8102 (current_context): ... this.
8103 (grub_env_find): Look only at CURRENT_CONTEXT.
8104 (grub_env_context_open): Rewritten to copy exported variables from
8105 previous context.
8106 (grub_env_context_close): Rewritten according to the new
8107 scheme. Also, add an assertion to prevent the initial context from
8108 removed.
8109 (grub_env_insert): Removed the code for the sorted list.
8110 (grub_env_remove): Likewise.
8111 (grub_env_export): Simply mark the variable with
8112 GRUB_ENV_VAR_GLOBAL.
8113 (grub_env_set): A cosmetic change for naming consistency.
8114 (grub_env_get): Likewise.
8115 (grub_env_unset): Likewise.
8116 (grub_env_iterate): Rewritten to sort variables within this
8117 function.
8118 (grub_register_variable_hook): Fixed for naming consistency. Call
8119 grub_env_find again, only if NAME is not found at the first time.
8120 (mangle_data_slot_name): New function.
8121 (grub_env_set_data_slot): Likewise.
8122 (grub_env_get_data_slot): Likewise.
8123 (grub_env_unset_data_slot): Likewise.
8124
8125 * include/grub/env.h (grub_env_var_type): New enum.
8126 (GRUB_ENV_VAR_LOCAL): New constant.
8127 (GRUB_ENV_VAR_GLOBAL): Likewise.
8128 (GRUB_ENV_VAR_DATA): Likewise.
8129 (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
8130 "type".
8131 (grub_env_set): Replace VAR with NAME for consistency.
8132 (grub_register_variable_hook): Likewise.
8133 (grub_env_export): Specify the name of the argument.
8134 (grub_env_set_data_slot): New prototype.
8135 (grub_env_get_data_slot): Likewise.
8136 (grub_env_unset_data_slot): Likewise.
8137
7f362539 81382006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
8139
8140 Extend the loader so that GRUB can accept a loader which comes
8141 back to GRUB when a loaded image exits. Also, this change adds
8142 support for a chainloader on EFI.
f19dbdb7 8143
7f362539 8144 * term/efi/console.c: Include grub/misc.h.
8145 (grub_console_checkkey): Display a scan code on the top for
8146 debugging. This will be removed once the EFI port gets stable.
8147 Correct the scan code mapping.
8148
8149 * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
8150 allocate memory from larger regions, in order to reduce the number
8151 of allocated regions. Otherwise, the MacOSX loader panics.
8152 (filter_memory_map): Avoid less than 1MB for compatibility with
8153 other loaders.
8154 (add_memory_regions): Allocate from the tail of a region, if
8155 possible, to avoid allocating a region near to 1MB, for the MacOSX
8156 loader.
8157
8158 * kern/efi/init.c (grub_efi_set_prefix): Specify
8159 GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
8160
8161 * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
8162 argument IMAGE_HANDLE and specify it to get a loaded image.
8163 (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
8164 grub_efi_get_loaded_image.
fe6b695a 8165 (grub_efi_get_filename): Divide the length by the size of
7f362539 8166 grub_efi_char16_t.
8167 (grub_efi_get_device_path): New function.
8168 (grub_efi_print_device_path): Print End Device Path nodes. Divide
8169 the length by the size of grub_efi_char16_t for a file path device
8170 path node.
8171
8172 * kern/loader.c (grub_loader_noreturn): New variable.
8173 (grub_loader_set): Accept a new argument NORETURN. Set
8174 GRUB_LOADER_NORETURN to NORETURN.
8175 All callers changed.
8176 (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
8177 grub_machine_fini.
8178
8179 * include/grub/efi/efi.h (grub_efi_get_device_path): New
8180 prototype.
8181 (grub_efi_get_loaded_image): Take an argument to specify an image
8182 handle.
8183
8184 * include/grub/loader.h (grub_loader_set): Added one more argument
8185 NORETURN.
8186
8187 * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
8188 instead of grub_efi_open_protocol.
8189 (grub_efidisk_get_device_name): Likewise.
8190 (grub_efidisk_close): Print a newline.
8191 (grub_efidisk_get_device_handle): Fixed to use
8192 GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
8193 GRUB_EFI_DEVICE_PATH_TYPE.
8194
8195 * disk/efi/efidisk.c (device_path_guid): Moved to ...
8196 * kern/efi/efi.c (device_path_guid): ... here.
8197
8198 * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
8199 chain.mod.
8200 (kernel_mod_HEADERS): Added efi/disk.h.
8201 (_chain_mod_SOURCES): New variable.
8202 (_chain_mod_CFLAGS): Likewise.
8203 (_chain_mod_LDFLAGS): Likewise.
8204 (chain_mod_SOURCES): Likewise.
8205 (chain_mod_CFLAGS): Likewise.
8206 (chain_mod_LDFLAGS): Likewise.
8207
8208 * DISTLIST: Added include/grub/efi/chainloader.h,
8209 loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
8210
8211 * include/grub/efi/chainloader.h: New file.
8212 * loader/efi/chainloader.c: Likewise.
8213 * loader/efi/chainloader_normal.c: Likewise.
8214
c0111d6e 82152006-04-30 Marco Gerards <marco@gnu.org>
8216
8217 * commands/configfile.c (grub_cmd_source): New function.
8218 (GRUB_MOD_INIT): Register the commands `source' and `.'.
8219 (GRUB_MOD_FINI): De-register the commands `source' and `.'.
8220
df5341da 82212006-04-30 Marco Gerards <marco@gnu.org>
8222
8223 * normal/execute.c (grub_script_execute_cmd): Change the return
8224 type to `grub_err_t'. Correctly return the error.
8225 (grub_script_execute_cmdline): In case a command line is not a
8226 command or a function, try to interpret it as an assignment.
8227
f85934bd 82282006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
8229
8230 * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
8231 (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
8232 skip a node whose name is obviously invalid as UTF-16,
8233 i.e. contains a NUL character. Stop the iteration when the last
8234 directory entry is found. Instead of using the return value of
8235 grub_hfsplus_btree_iterate_node, store the value in RET and use
8236 it, because the iterator can be stopped by the last directory
8237 entry.
8238
8f8a2cf8 82392006-04-30 Marco Gerards <marco@gnu.org>
8240
8241 * include/grub/env.h (grub_env_export): New prototype. Reported
8242 by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
8243
a27e84ce 82442006-04-30 Marco Gerards <marco@gnu.org>
8245
8246 * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
8247 size of the extents in a catalog file record.
8248
eaef0553 82492006-04-29 Marco Gerards <marco@gnu.org>
8250
8251 * commands/configfile.c (grub_cmd_configfile): Execute the
8252 configfile within its own context.
8253
8254 * include/grub/env.h (grub_env_context_open): New prototype.
8255 (grub_env_context_close): Likewise.
8256
8257 * kern/env.c (grub_env): Removed.
8258 (grub_env_sorted): Likewise.
8259 (grub_env_context): New variable.
8260 (grub_env_var_context): Likewise.
8261 (grub_env_find): Search both the active context and the global
8262 context.
8263 (grub_env_context_open): New function.
8264 (grub_env_context_close): Likewise.
8265 (grub_env_insert): Likewise.
8266 (grub_env_remove): Likewise.
8267 (grub_env_export): Likewise.
8268 (grub_env_set): Changed to use helper functions to avoid code
8269 duplication.
8270 (grub_env_iterate): Rewritten so both the current context and the
8271 global context are being used.
8272
8273 * normal/command.c (export_command): New function.
8274 (grub_command_init): Register the `export' function.
8275
7b455f4d 82762006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
8277
8278 * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
8279 explicitly to suppress gcc's warnings.
8280 * fs/fat.c (grub_fat_find_dir): Likewise.
8281 (grub_fat_label): Likewise.
8282 * fs/xfs.c (grub_xfs_read_inode): Likewise.
8283 (grub_xfs_mount): Likewise.
8284 (grub_xfs_label): Likewise.
8285 * fs/affs.c (grub_affs_mount): Likewise.
8286 (grub_affs_label): Likewise.
8287 (grub_affs_iterate_dir): Likewise.
8288 * fs/sfs.c (grub_sfs_mount): Likewise.
8289 (grub_sfs_iterate_dir): Likewise.
8290 * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
8291 * fs/hfs.c (grub_hfs_mount): Likewise.
8292 (grub_hfs_cmp_catkeys): Likewise.
8293 (grub_hfs_find_dir): Likewise.
8294 (grub_hfs_dir): Likewise.
8295 (grub_hfs_label): Likewise.
8296 * fs/jfs.c (grub_jfs_mount): Likewise.
8297 (grub_jfs_opendir): Likewise.
8298 (grub_jfs_getent): Likewise.
8299 (grub_jfs_lookup_symlink): Likewise.
8300 (grub_jfs_label): Likewise.
8301 * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
8302 (grub_hfsplus_iterate_dir): Likewise.
8303 (grub_hfsplus_btree_iterate_node): Made static.
8304
8305 * util/grub-emu.c (prefix): New variable.
8306 (grub_machine_set_prefix): New function.
8307 (main): Do not set the environment variable "prefix" here. Only
8308 set PREFIX, which is used later by grub_machine_set_prefix.
8309
8310 * include/grub/video.h: Do not include grub/symbol.h.
8311 (grub_video_register): Not exported. This symbol is not defined in
8312 the kernel.
8313 (grub_video_unregister): Likewise.
8314 (grub_video_iterate): Likewise.
8315 (grub_video_setup): Likewise.
8316 (grub_video_restore): Likewise.
8317 (grub_video_get_info): Likewise.
8318 (grub_video_get_blit_format): Likewise.
8319 (grub_video_set_palette): Likewise.
8320 (grub_video_get_palette): Likewise.
8321 (grub_video_set_viewport): Likewise.
8322 (grub_video_get_viewport): Likewise.
8323 (grub_video_map_color): Likewise.
8324 (grub_video_map_rgb): Likewise.
8325 (grub_video_map_rgba): Likewise.
8326 (grub_video_fill_rect): Likewise.
8327 (grub_video_blit_glyph): Likewise.
8328 (grub_video_blit_bitmap): Likewise.
8329 (grub_video_blit_render_target): Likewise.
8330 (grub_video_scroll): Likewise.
8331 (grub_video_swap_buffers): Likewise.
8332 (grub_video_create_render_target): Likewise.
8333 (grub_video_delete_render_target): Likewise.
8334 (grub_video_set_active_render_target): Likewise.
8335
8336 * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
8337 Undefined.
8338 [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
8339
8340 * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
8341 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
8342 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
8343 instead of $(srcdir)/genkernsyms.sh.
8344
8345 * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
8346 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
8347 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
8348 instead of $(srcdir)/genkernsyms.sh.
8349
8350 * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
8351 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
8352 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
8353 instead of $(srcdir)/genkernsyms.sh.
8354
8355 * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
8356 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
8357 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
8358 instead of $(srcdir)/genkernsyms.sh.
8359
8360 * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
8361 genkernsyms.sh.
8362
8363 * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
8364 genkernsyms.sh.
8365 (gensymlist.sh): New target.
8366 (genkernsyms.sh): Likewise.
8367
8368 * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
8369 genkernsyms.sh.in and gensymlist.sh.in.
8370
8371 * genkernsyms.sh: Removed.
8372 * gensymlist.sh: Likewise.
f19dbdb7 8373
7b455f4d 8374 * genkernsyms.sh.in: New file.
8375 * gensymlist.sh.in: Likewise.
8376
1885bb27 83772006-04-25 Hollis Blanchard <hollis@penguinppc.org>
8378
8379 * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
8380 clobber "prefix", since we may have already set it manually.
8381
71538dff 83822006-04-25 Hollis Blanchard <hollis@penguinppc.org>
8383
8384 * kern/misc.c (abort): New alias for grub_abort.
8385
2965c7cc 83862006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
8387
8388 A new machine-specific function "grub_machine_set_prefix" is
8389 defined. This is called after loading modules, so that a prefix
8390 initialization can use modules. Also, this change adds an
8391 intensive debugging feature for the memory manager via the
8392 configure option "--enable-mm-debug".
f19dbdb7 8393
2965c7cc 8394 * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
8395 PART.LEN.
8396
8397 * kern/sparc64/ieee1275/init.c (abort): Removed.
8398 (grub_stop): Likewise.
8399 (grub_exit): New function.
8400 (grub_set_prefix): Renamed to ...
8401 (grub_machine_set_prefix): ... this.
8402 (grub_machine_init): Do not call grub_set_prefix.
8403
8404 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
8405 (grub_machine_set_prefix): ... this.
8406 (grub_machine_init): Do not call grub_set_prefix.
8407
8408 * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
8409 (grub_machine_init): Do not set the prefix here.
8410
8411 * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
8412
8413 * kern/efi/init.c: Include grub/mm.h.
8414 (grub_efi_set_prefix): New function.
8415
8416 * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
8417 (grub_efi_get_filename): New function.
8418 (grub_print_device_path): Renamed to ...
8419 (grub_efi_print_device_path): ... this.
8420
8421 * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
8422 [MM_DEBUG] (grub_realloc): Likewise.
8423 [MM_DEBUG] (grub_free): Likewise.
8424 [MM_DEBUG] (grub_memalign): Likewise.
8425 [MM_DEBUG] (grub_mm_debug): New variable.
8426 [MM_DEBUG] (grub_debug_malloc): New function.
8427 [MM_DEBUG] (grub_debug_free): New function.
8428 [MM_DEBUG] (grub_debug_realloc): New function.
8429 [MM_DEBUG] (grub_debug_memalign): New function.
8430
8431 * kern/misc.c (grub_abort): Print a newline to distinguish
8432 the message.
8433
8434 * kern/main.c (grub_main): Call grub_machine_set_prefix and
8435 grub_set_root_dev after loading modules. This is necessary when
8436 setting a prefix depends on modules.
8437
8438 * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
8439 (grub_efi_print_device_path): ... this.
8440 (grub_efi_get_filename): New prototype.
8441 (grub_efi_set_prefix): Likewise.
8442
8443 * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
8444 and grub/disk.h.
8445 (grub_efidisk_get_device_handle): New prototype.
8446 (grub_efidisk_get_device_name): Likewise.
8447
8448 * include/grub/mm.h: Include config.h.
8449 (MM_DEBUG): Removed.
8450 [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
8451 [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
8452 [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
8453 [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
8454 [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
8455 [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
8456 [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
8457 [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
8458 [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
8459
8460 * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
8461
8462 * disk/efi/efidisk.c: Include grub/partition.h.
8463 (iterate_child_devices): New function.
8464 (add_device): First, compare only last device path nodes, so that
8465 devices are sorted by the types.
8466 (grub_efidisk_get_device_handle): New function.
8467 (grub_efidisk_get_device_name): Likewise.
8468
8469 * configure.ac (--enable-mm-debug): New option to enable the
8470 memory manager debugging feature. This makes the binary much
8471 bigger, so is disabled by default.
8472
9cacaa17 84732006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
8474
8475 Use grub_abort instead of grub_stop, and grub_exit must be
8476 define in each architecture now. Also, this change adds support
8477 for EFI disks.
f19dbdb7 8478
9cacaa17 8479 * util/i386/pc/grub-probefs.c: Include grub/term.h.
8480 (grub_getkey): New function.
8481 (grub_term_get_current): Likewise.
8482
8483 * util/i386/pc/grub-setup.c: Include grub/term.h.
8484 (grub_getkey): New function.
8485 (grub_term_get_current): Likewise.
8486
8487 * util/misc.c (grub_stop): Renamed to ...
8488 (grub_exit): ... this.
8489
8490 * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
8491 (grub_exit): ... this.
8492 (grub_machine_init): Use grub_abort instead of abort.
8493 (grub_stop): Removed.
8494
8495 * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
8496 abort.
8497
8498 * kern/i386/pc/startup.S (grub_exit): New function.
8499 (cold_reboot): New label.
8500
8501 * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
8502 (grub_efi_init): Call grub_efidisk_init.
8503 (grub_efi_fini): Call grub_efidisk_fini.
8504
8505 * kern/efi/efi.c: Include grub/mm.h.
8506 (grub_efi_console_control_guid): Renamed to ...
8507 (console_control_guid): ... this.
8508 (grub_efi_loaded_image_guid): Renamed to ...
8509 (loaded_image_guid): ... this.
8510 (grub_efi_locate_handle): New function.
8511 (grub_efi_open_protocol): Likewise.
8512 (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
8513 GRUB_EFI_CONSOLE_CONTROL_GUID.
8514 (grub_efi_exit): Removed.
8515 (grub_stop): Likewise.
8516 (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
8517 (grub_exit): New function.
8518 (grub_print_device_path): Likewise.
8519
8520 * kern/rescue.c (grub_rescue_cmd_exit): New function.
8521 (grub_enter_rescue_mode): Register "exit".
8522
8523 * kern/misc.c (grub_real_dprintf): A cosmetic change.
8524 (grub_abort): New function.
8525
8526 * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
8527
8528 * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
8529
8530 * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
8531
8532 * include/grub/efi/efi.h (grub_efi_exit): Removed.
8533 (grub_print_device_path): New prototype.
8534 (grub_efi_locate_handle): Likewise.
8535 (grub_efi_open_protocol): Likewise.
8536
8537 * include/grub/efi/disk.h (grub_efidisk_fini): New file.
8538 * disk/efi/efidisk.c: Likewise.
8539
8540 * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
8541
8542 * include/grub/efi/console_control.h
8543 (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
8544
8545 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
8546 last 8 bytes as an array.
8547 (GRUB_EFI_DISK_IO_GUID): New macro.
8548 (GRUB_EFI_BLOCK_IO_GUID): Likewise.
8549 (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
8550 (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
8551 grub_uint8_t.
8552 (struct grub_efi_guid): Use an array to specify the last 8 bytes.
8553 (struct grub_efi_device_path): Rename the member "sub_type" to
8554 "subtype".
8555 (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
8556 (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
8557 (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
8558 (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
8559 (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
8560 (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
8561 (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
8562 (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
8563 (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
8564 (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
8565 (struct grub_efi_pci_device_path): New structure.
8566 (grub_efi_pci_device_path_t): New type.
8567 (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
8568 (struct grub_efi_pccard_device_path): New structure.
8569 (grub_efi_pccard_device_path_t): New type.
8570 (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
8571 (struct grub_efi_memory_mapped_device_path): New structure.
8572 (grub_efi_memory_mapped_device_path_t): New type.
8573 (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
8574 (struct grub_efi_vendor_device_path): New structure.
8575 (grub_efi_vendor_device_path_t): New type.
8576 (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
8577 (struct grub_efi_controller_device_path): New structure.
8578 (grub_efi_controller_device_path_t): New type.
8579 (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
8580 (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
8581 (struct grub_efi_acpi_device_path): New structure.
8582 (grub_efi_acpi_device_path_t): New type.
8583 (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
8584 (struct grub_efi_expanded_acpi_device_path): New structure.
8585 (grub_efi_expanded_acpi_device_path_t): New type.
8586 (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
8587 (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
8588 (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
8589 (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
8590 (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
8591 (struct grub_efi_atapi_device_path): New structure.
8592 (grub_efi_atapi_device_path_t): New type.
8593 (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
8594 (struct grub_efi_fibre_channel_device_path): New structure.
8595 (grub_efi_fibre_channel_device_path_t): New type.
8596 (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
8597 (struct grub_efi_1394_device_path): New structure.
8598 (grub_efi_1394_device_path_t): New type.
8599 (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
8600 (struct grub_efi_usb_device_path): New structure.
8601 (grub_efi_usb_device_path_t): New type.
8602 (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
8603 (struct grub_efi_usb_class_device_path): New structure.
8604 (grub_efi_usb_class_device_path_t): New type.
8605 (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
8606 (struct grub_efi_i2o_device_path): New structure.
8607 (grub_efi_i2o_device_path_t): New type.
8608 (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
8609 (struct grub_efi_mac_address_device_path): New structure.
8610 (grub_efi_mac_address_device_path_t): New type.
8611 (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
8612 (struct grub_efi_ipv4_device_path): New structure.
8613 (grub_efi_ipv4_device_path_t): New type.
8614 (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
8615 (struct grub_efi_ipv6_device_path): New structure.
8616 (grub_efi_ipv6_device_path_t): New type.
8617 (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
8618 (struct grub_efi_infiniband_device_path): New structure.
8619 (grub_efi_infiniband_device_path_t): New type.
8620 (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
8621 (struct grub_efi_uart_device_path): New structure.
8622 (grub_efi_uart_device_path_t): New type.
8623 (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
8624 (struct grub_efi_vendor_messaging_device_path): New structure.
8625 (grub_efi_vendor_messaging_device_path_t): New type.
8626 (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
8627 (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
8628 (struct grub_efi_hard_drive_device_path): New structure.
8629 (grub_efi_hard_drive_device_path_t): New type.
8630 (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
8631 (struct grub_efi_cdrom_device_path): New structure.
8632 (grub_efi_cdrom_device_path_t): New type.
8633 (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
8634 (struct grub_efi_vendor_media_device_path): New structure.
8635 (grub_efi_vendor_media_device_path_t): New type.
8636 (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
8637 (struct grub_efi_file_path_device_path): New structure.
8638 (grub_efi_file_path_device_path_t): New type.
8639 (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
8640 (struct grub_efi_protocol_device_path): New structure.
8641 (grub_efi_protocol_device_path_t): New type.
8642 (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
8643 (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
8644 (struct grub_efi_bios_device_path): New structure.
8645 (grub_efi_bios_device_path_t): New type.
8646 (struct grub_efi_disk_io): New structure.
8647 (grub_efi_disk_io_t): New type.
8648 (struct grub_efi_block_io_media): New structure.
8649 (grub_efi_block_io_media_t): New type.
8650 (struct grub_efi_block_io): New structure.
8651 (grub_efi_block_io_t): New type.
8652
8653 * include/grub/misc.h (grub_stop): Removed.
8654 (grub_exit): New prototype.
8655 (grub_abort): Likewise.
8656
8657 * include/grub/disk.h (enum grub_disk_dev_id): Added
8658 GRUB_DISK_DEVICE_EFIDISK_ID.
8659
8660 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
8661 disk/efi/efidisk.c.
8662 (kernel_syms.lst): Remove the target if an error occurs.
8663
49986a9f 86642006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
8665
8666 * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
8667 as it was simply too buggy.
8668
970d3b8a 86692006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
8670
8671 * kern/misc.c (grub_lltoa): New function.
8672 (grub_vsprintf): Added support for the long long suffix,
8673 i.e. "ll".
8674
ff04ec24 86752006-04-20 Hollis Blanchard <hollis@penguinppc.org>
8676
8677 * Makefile.in (LDFLAGS): Add variable.
8678 (LD): Remove variable.
8679 * configure.ac: Add -m32 to LDFLAGS.
8680 * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
8681 * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
8682 (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
8683 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
8684 suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
8685 variables.
8686 * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
8687 * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
8688 * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
8689
37e5e1a4 86902006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
8691
8692 * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
8693 length for unknown glyph.
8694
c352d8dd 86952006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
8696
2eab1c0d 8697 Add support for pre-loaded modules into the EFI port.
f19dbdb7 8698
2eab1c0d 8699 * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
8700 completely. Accept one more argument DIR. The caller has changed.
8701
8702 * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
8703
8704 * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
8705 (grub_efi_loaded_image_guid): New variable.
8706 (grub_efi_get_loaded_image): New function.
8707 (grub_arch_modules_addr): Likewise.
8708
8709 * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
8710 prototype.
8711
8712 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
8713 (struct grub_efi_loaded_image): New structure.
8714 (grub_efi_loaded_image_t): New type.
8715
87162006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 8717
c352d8dd 8718 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
8719 size with GRUB_OS_AREA_SIZE as grub_size_t instead of
8720 grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
8721
6d01d6b4 87222006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
8723
8724 * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
8725
976a4ea0 87262006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
8727
8728 * DISTLIST: Added include/grub/efi/console.h,
8729 include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
8730 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
8731
8732 * include/grub/efi/console.h: New file.
8733 * include/grub/efi/time.h: Likewise.
8734 * include/grub/i386/efi/kernel.h: Likewise.
8735 * kern/efi/init.c: Likewise.
8736 * kern/efi/mm.c: Likewise.
8737 * term/efi/console.c: Likewise.
f19dbdb7 8738
976a4ea0 8739 * kern/i386/efi/init.c: Do not include grub/machine/time.h.
8740 (grub_stop): Removed.
8741 (grub_get_rtc): Likewise.
8742 (grub_machine_init): Simply call grub_efi_init.
8743 (grub_machine_fini): Call grub_efi_fini.
8744
8745 * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
8746 (grub_efi_output_string): Removed.
8747 (grub_efi_stall): New function.
8748 (grub_stop): Likewise.
8749 (grub_get_rtc): Likewise.
8750
8751 * include/grub/efi/efi.h (grub_efi_output_string): Removed.
8752 (grub_efi_stall): New prototype.
8753 (grub_efi_allocate_pages): Likewise.
8754 (grub_efi_free_pages): Likewise.
8755 (grub_efi_get_memory_map): Likewise.
8756 (grub_efi_mm_init): Likewise.
8757 (grub_efi_mm_fini): Likewise.
8758 (grub_efi_init): Likewise.
8759 (grub_efi_fini): Likewise.
8760
8761 * include/grub/i386/efi/time.h: Do not include
8762 grub/symbol.h. Include grub/efi/time.h.
8763 (GRUB_TICKS_PER_SECOND): Removed.
8764 (grub_get_rtc): Likewise.
8765
8766 * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
8767 Added padding. The EFI spec is buggy.
8768 (GRUB_EFI_BLACK): New macro.
8769 (GRUB_EFI_BLUE): Likewise.
8770 (GRUB_EFI_GREEN): Likewise.
8771 (GRUB_EFI_CYAN): Likewise.
8772 (GRUB_EFI_RED): Likewise.
8773 (GRUB_EFI_MAGENTA): Likewise.
8774 (GRUB_EFI_BROWN): Likewise.
8775 (GRUB_EFI_LIGHTGRAY): Likewise.
8776 (GRUB_EFI_BRIGHT): Likewise.
8777 (GRUB_EFI_DARKGRAY): Likewise.
8778 (GRUB_EFI_LIGHTBLUE): Likewise.
8779 (GRUB_EFI_LIGHTGREEN): Likewise.
8780 (GRUB_EFI_LIGHTCYAN): Likewise.
8781 (GRUB_EFI_LIGHTRED): Likewise.
8782 (GRUB_EFI_LIGHTMAGENTA): Likewise.
8783 (GRUB_EFI_YELLOW): Likewise.
8784 (GRUB_EFI_WHITE): Likewise.
8785 (GRUB_EFI_BACKGROUND_BLACK): Likewise.
8786 (GRUB_EFI_BACKGROUND_BLUE): Likewise.
8787 (GRUB_EFI_BACKGROUND_GREEN): Likewise.
8788 (GRUB_EFI_BACKGROUND_CYAN): Likewise.
8789 (GRUB_EFI_BACKGROUND_RED): Likewise.
8790 (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
8791 (GRUB_EFI_BACKGROUND_BROWN): Likewise.
8792 (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
8793 (GRUB_EFI_TEXT_ATTR): Likewise.
8794
8795 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
8796 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
8797 (kernel_mod_HEADERS): Added efi/time.h.
8798
83709125 87992006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
8800
8801 * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
8802 include/grub/efi/api.h, include/grub/efi/console_control.h,
8803 include/grub/efi/efi.h, include/grub/efi/pe32.h,
8804 include/grub/i386/efi/time.h, kern/efi/efi.c,
8805 kern/i386/efi/init.c, kern/i386/efi/startup.S,
8806 and util/i386/efi/grub-mkimage.c.
8807
8808 * Makefile.in (RMKFILES): Added i386-efi.rmk.
8809
8810 * genmk.rb (PModule#rule): Do not export symbols if
8811 #{prefix}_EXPORTS is set to "no".
8812
8813 * conf/i386-efi.mk: New file.
8814 * conf/i386-efi.rmk: Likewise.
8815 * include/grub/efi/api.h: Likewise.
8816 * include/grub/efi/console_control.h: Likewise.
8817 * include/grub/efi/efi.h: Likewise.
8818 * include/grub/efi/pe32.h: Likewise.
8819 * include/grub/i386/efi/time.h: Likewise.
8820 * kern/efi/efi.c: Likewise.
8821 * kern/i386/efi/init.c: Likewise.
8822 * kern/i386/efi/startup.S: Likewise.
8823 * util/i386/efi/grub-mkimage.c: Likewise.
8824
88252006-04-17 Marco Gerards <marco@gnu.org>
bfa2bd9e 8826
8827 * include/grub/script.h: Include <grub/parser.h> and
8828 "grub_script.tab.h".
8829 (struct grub_lexer_param): New struct.
8830 (struct grub_parser_param): Likewise.
8831 (grub_script_create_arglist): Pass the state in an argument.
8832 (grub_script_add_arglist): Likewise.
8833 (grub_script_create_cmdline): Likewise.
8834 (grub_script_create_cmdblock): Likewise.
8835 (grub_script_create_cmdif): Likewise.
8836 (grub_script_create_cmdmenu): Likewise.
8837 (grub_script_add_cmd): Likewise.
8838 (grub_script_arg_add): Likewise.
8839 (grub_script_lexer_ref): Likewise.
8840 (grub_script_lexer_deref): Likewise.
8841 (grub_script_lexer_record_start): Likewise.
8842 (grub_script_lexer_record_stop): Likewise.
8843 (grub_script_mem_record): Likewise.
8844 (grub_script_mem_record_stop): Likewise.
8845 (grub_script_malloc): Likewise.
8846 (grub_script_yylex): Likewise.
8847 (grub_script_yyparse): Likewise.
8848 (grub_script_yyerror): Likewise.
8849 (grub_script_yylex): Likewise.
8850 (grub_script_lexer_init): Return the state.
8851
8852 * normal/lexer.c (grub_script_lexer_state): Removed variable.
8853 (grub_script_lexer_done): Likewise.
8854 (grub_script_lexer_getline): Likewise.
8855 (grub_script_lexer_refs): Likewise.
8856 (script): Likewise.
8857 (newscript): Likewise.
8858 (record): Likewise.
8859 (recording): Likewise.
8860 (recordpos): Likewise.
8861 (recordlen): Likewise.
8862 (grub_script_lexer_init): Return the state instead of setting
8863 global variables.
8864 (grub_script_lexer_ref): Use the newly added argument for state
8865 instead of globals.
8866 (grub_script_lexer_deref): Likewise.
8867 (grub_script_lexer_record_start): Likewise.
8868 (grub_script_lexer_record_stop): Likewise.
8869 (recordchar): Likewise.
8870 (nextchar): Likewise.
8871 (grub_script_yylex2): Likewise.
8872 (grub_script_yylex): Likewise.
8873 (grub_script_yyerror): Likewise.
8874
8875 * normal/parser.y (func_mem): Removed variable.
8876 (menu_entry): Likewise.
8877 (err): Likewise.
8878 (%lex-param): New parser option.
8879 (%parse-param): Likewise.
8880 (script): Always return the AST.
8881 (argument): Pass the state around.
8882 (arguments): Likewise.
8883 (grubcmd): Likewise.
8884 (commands): Likewise.
8885 (function): Likewise.
8886 (menuentry): Likewise.
8887 (if_statement): Likewise.
8888 (if): Likewise.
8889
8890 * normal/script.c (grub_script_memused): Removed variable.
8891 (grub_script_parsed): Likewise.
8892 (grub_script_malloc): Added a state argument. Use that instead of
8893 global variables.
8894 (grub_script_mem_record): Likewise.
8895 (grub_script_mem_record_stop): Likewise.
8896 (grub_script_arg_add): Likewise.
8897 (grub_script_add_arglist): Likewise.
8898 (grub_script_create_cmdline): Likewise.
8899 (grub_script_create_cmdif): Likewise.
8900 (grub_script_create_cmdmenu): Likewise.
8901 (grub_script_add_cmd): Likewise.
8902 (grub_script_parse): Setup the state before calling the parser.
f19dbdb7 8903
e2a8c904 89042006-04-16 Marco Gerards <marco@gnu.org>
6de2ee99 8905
8906 * normal/command.c (grub_command_init): Remove the title command.
8907
8908 * normal/lexer.c (grub_script_yylex): Renamed from this...
8909 (grub_script_yylex2): ... to this.
8910 (grub_script_yylex): New function. Temporary
8911 introduced to filter some tokens.
8912 (grub_script_yyerror): Print a newline.
8913
8914 * normal/main.c (read_config_file): Output information about the
8915 lines that contain errors. Wait for a key after all lines have
8916 been processed. Don't return an empty menu.
8917
8918 * normal/parser.y (func_mem): Don't initialize.
8919 (menu_entry): Likewise.
8920 (err): New variable.
8921 (script): Don't return anything when an error was encountered.
8922 (ws, returns): Removed rules.
8923 (argument): Disabled concatenated variable support.
8924 (arguments): Remove explicit separators.
8925 (grubcmd): Likewise.
8926 (function): Likewise.
8927 (menuentry): Likewise.
8928 (if): Likewise.
8929 (commands): Likewise. Add error handling.
8930
8931 * normal/script.c (grub_script_create_cmdline): If
8932 `grub_script_parsed' is 0, assume the parser encountered an error.
8933
c9a86192 89342006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
8935
8936 * configure.ac: Add support for EFI. Fix the typo
8937 BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
8938
70f3b243 89392006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
8940
8941 * util/unifont2pff.rb: Removed unnecessary byte ordering. Now
8942 foreign multibyte characters should be shown correctly.
8943
65f201ad 89442006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
8945
8946 * normal/main.c (grub_normal_menu_addentry): Fixed menu size
8947 calculation.
8948 (read_config_file): Made it to close file before returning.
8949
b4b93674 89502006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
8951
8952 * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
8953 include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
8954 video/i386/pc/vbefill.c.
8955
8956 * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
8957 video/i386/pc/vbefill.c.
8958
8959 * include/grub/video.h (grub_video_blit_format): New enum.
8960 (grub_video_mode_info): Added new member blit_format.
8961 (grub_video_get_blit_format): New function prototype.
8962
8963 * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
8964 function prototype.
8965 (grub_video_vbe_map_rgb): Likewise.
8966 (grub_video_vbe_unmap_color): Likewise.
8967
8968 * include/grub/i386/pc/vbeblit.h: New file.
8969
8970 * include/grub/i386/pc/vbefill.h: New file.
8971
8972 * video/video.c (grub_video_get_blit_format): New function.
8973 (grub_video_vbe_get_video_ptr): Re-declared as non-static.
8974 (grub_video_vbe_map_rgb): Likewise.
8975 (grub_video_vbe_unmap_color): Likewise.
8976
8977 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
8978 optimized fills.
8979 (grub_video_vbe_blit_render_target): Changed to use more optimized
8980 blits.
8981 (grub_video_vbe_setup): Added detection for optimized settings.
8982 (grub_video_vbe_create_render_target): Likewise.
8983
8984 * video/i386/pc/vbeblit.c: New file.
8985
8986 * video/i386/pc/vbefill.c: New file.
8987
c2379b9c 89882006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
8989
8990 * font/manager.c (grub_font_get_glyph): Removed font fixup from
8991 here...
8992
8993 * util/unifont2pff.rb: ... and moved it to here. Improved argument
8994 parsing to support both hex and dec ranges. If filename was missing
8995 show usage information.
8996
bd0d7896 89972006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
8998
8999 * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
9000 video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c.
9001
9002 * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
9003 gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod.
9004 (video_mod_SOURCES): Added.
9005 (video_mod_CFLAGS): Likewise.
9006 (video_mod_LDFLAGS): Likewise.
9007 (gfxterm_mod_SOURCES): Likewise.
9008 (gfxterm_mod_CFLAGS): Likewise.
9009 (gfxterm_mod_LDFLAGS): Likewise.
9010 (videotest_mod_SOURCES): Likewise.
9011 (videotest_mod_CFLAGS): Likewise.
9012 (videotest_mod_LDFLAGS): Likewise.
9013 (vesafb_mod_SOURCES): Removed.
9014 (vesafb_mod_CFLAGS): Likewise.
9015 (vesafb_mod_LDFLAGS): Likewise.
9016 (vga_mod_SOURCES): Likewise.
9017 (vga_mod_CFLAGS): Likewise.
9018 (vga_mod_LDFLAGS): Likewise.
9019
9020 * commands/videotest.c: New file.
9021
9022 * font/manager.c (fill_with_default_glyph): Modified to use
9023 grub_font_glyph.
9024 (grub_font_get_glyph): Likewise.
9025 (fontmanager): Renamed from this...
9026 (font_manager): ... to this.
9027
9028 * include/grub/font.h (grub_font_glyph): Added new structure.
9029 (grub_font_get_glyph): Modified to use grub_font_glyph.
9030
9031 * include/grub/misc.h (grub_abs): Added as inline function.
9032
9033 * include/grub/video.h: New file.
9034
9035 * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
9036 (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
9037 (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
9038 (grub_vbe_get_controller_info): Renamed from this...
9039 (grub_vbe_bios_get_controller_info): ... to this.
9040 (grub_vbe_get_mode_info): Renamed from this...
9041 (grub_vbe_bios_get_mode_info): ... to this.
9042 (grub_vbe_set_mode): Renamed from this...
9043 (grub_vbe_bios_set_mode): ... to this.
9044 (grub_vbe_get_mode): Renamed from this...
9045 (grub_vbe_bios_get_mode): ... to this.
9046 (grub_vbe_set_memory_window): Renamed from this...
9047 (grub_vbe_bios_set_memory_window): ... to this.
9048 (grub_vbe_get_memory_window): Renamed from this...
9049 (grub_vbe_bios_get_memory_window): ... to this.
9050 (grub_vbe_set_scanline_length): Renamed from this...
9051 (grub_vbe_set_scanline_length): ... to this.
9052 (grub_vbe_get_scanline_length): Renamed from this...
9053 (grub_vbe_bios_get_scanline_length): ... to this.
9054 (grub_vbe_set_display_start): Renamed from this...
9055 (grub_vbe_bios_set_display_start): ... to this.
9056 (grub_vbe_get_display_start): Renamed from this...
9057 (grub_vbe_bios_get_display_start): ... to this.
9058 (grub_vbe_set_palette_data): Renamed from this...
9059 (grub_vbe_bios_set_palette_data): ... to this.
9060 (grub_vbe_set_pixel_rgb): Removed.
9061 (grub_vbe_set_pixel_index): Likewise.
9062
9063 * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
9064 from this...
9065 (grub_vbe_bios_get_controller_info): ... to this.
9066 (grub_vbe_get_mode_info): Renamed from this...
9067 (grub_vbe_bios_get_mode_info): ... to this.
9068 (grub_vbe_set_mode): Renamed from this...
9069 (grub_vbe_bios_set_mode): ... to this.
9070 (grub_vbe_get_mode): Renamed from this...
9071 (grub_vbe_bios_get_mode): ... to this.
9072 (grub_vbe_set_memory_window): Renamed from this...
9073 (grub_vbe_bios_set_memory_window): ... to this.
9074 (grub_vbe_get_memory_window): Renamed from this...
9075 (grub_vbe_bios_get_memory_window): ... to this.
9076 (grub_vbe_set_scanline_length): Renamed from this...
9077 (grub_vbe_set_scanline_length): ... to this.
9078 (grub_vbe_get_scanline_length): Renamed from this...
9079 (grub_vbe_bios_get_scanline_length): ... to this.
9080 (grub_vbe_set_display_start): Renamed from this...
9081 (grub_vbe_bios_set_display_start): ... to this.
9082 (grub_vbe_get_display_start): Renamed from this...
9083 (grub_vbe_bios_get_display_start): ... to this.
9084 (grub_vbe_set_palette_data): Renamed from this...
9085 (grub_vbe_bios_set_palette_data): ... to this.
9086 (grub_vbe_bios_get_controller_info): Fixed problem with registers
9087 getting corrupted after calling it. Added more pushes and pops.
9088 (grub_vbe_bios_set_mode): Likewise.
9089 (grub_vbe_bios_get_mode): Likewise.
9090 (grub_vbe_bios_get_memory_window): Likewise.
9091 (grub_vbe_bios_set_scanline_length): Likewise.
9092 (grub_vbe_bios_get_scanline_length): Likewise.
9093 (grub_vbe_bios_get_display_start): Likewise.
9094 (grub_vbe_bios_set_palette_data): Likewise.
9095
9096 * normal/cmdline.c (cl_set_pos): Refresh the screen.
9097 (cl_insert): Likewise.
9098 (cl_delete): Likewise.
9099
9100 * term/gfxterm.c: New file.
9101
9102 * term/i386/pc/vesafb.c: Removed file.
9103
9104 * video/video.c: New file.
9105
9106 * video/i386/pc/vbe.c (real2pm): Added new function.
9107 (grub_video_vbe_draw_pixel): Likewise.
9108 (grub_video_vbe_get_video_ptr): Likewise.
9109 (grub_video_vbe_get_pixel): Likewise
9110 (grub_video_vbe_init): Likewise.
9111 (grub_video_vbe_fini): Likewise.
9112 (grub_video_vbe_setup): Likewise.
9113 (grub_video_vbe_get_info): Likewise.
9114 (grub_video_vbe_set_palette): Likewise.
9115 (grub_video_vbe_get_palette): Likewise.
9116 (grub_video_vbe_set_viewport): Likewise.
9117 (grub_video_vbe_get_viewport): Likewise.
9118 (grub_video_vbe_map_color): Likewise.
9119 (grub_video_vbe_map_rgb): Likewise.
9120 (grub_video_vbe_map_rgba): Likewise.
9121 (grub_video_vbe_unmap_color): Likewise.
9122 (grub_video_vbe_fill_rect): Likewise.
9123 (grub_video_vbe_blit_glyph): Likewise.
9124 (grub_video_vbe_blit_bitmap): Likewise.
9125 (grub_video_vbe_blit_render_target): Likewise.
9126 (grub_video_vbe_scroll): Likewise.
9127 (grub_video_vbe_swap_buffers): Likewise.
9128 (grub_video_vbe_create_render_target): Likewise.
9129 (grub_video_vbe_delete_render_target): Likewise.
9130 (grub_video_vbe_set_active_render_target): Likewise.
9131 (grub_vbe_set_pixel_rgb): Remove function.
9132 (grub_vbe_set_pixel_index): Likewise.
9133 (index_color_mode): Remove static variable.
9134 (active_mode): Likewise.
9135 (framebuffer): Likewise.
9136 (bytes_per_scan_line): Likewise.
9137 (grub_video_vbe_adapter): Added new static variable.
9138 (framebuffer): Likewise.
9139 (render_target): Likewise.
9140 (initial_mode): Likewise.
9141 (mode_in_use): Likewise.
9142 (mode_list): Likewise.
9143
5f97350b 91442006-03-10 Marco Gerards <marco@gnu.org>
9145
9146 * configure.ac (AC_INIT): Bumped to 1.93.
9147
9148 * DISTLIST: Added `include/grub/hfs.h'.
9149
a3c5c6f8 91502006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
9151
9152 * boot/i386/pc/boot.S (general_error): Before looping, try INT
9153 18H, which might help the BIOS falling back to next boot media.
9154
6de53d26 91552006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
9156
9157 * util/i386/pc/grub-install.in: Escape a backslash. Reported by
9158 Poe Chen <poe.poechen@gmail.com>.
9159
77c4a393 91602006-01-17 Marco Gerards <marco@gnu.org>
9161
9162 * include/grub/normal.h: Include <grub/script.h>.
9163 (grub_command_list): Removed struct.
9164 (grub_command_list_t): Removed type.
9165 (grub_menu_entry): Remove members `num' and `command_list'. Add
9166 members `commands' and `sourcecode'.
9167 * include/grub/script.h: Add inclusion guards.
9168 (grub_script_cmd_menuentry): New struct.
9169 (grub_script_execute_menuentry): New prototype.
9170 (grub_script_lexer_record_start): Likewise.
9171 (grub_script_lexer_record_stop): Likewise.
9172 * normal/execute.c (grub_script_execute_menuentry): New function.
9173 * normal/lexer.c (record, recording, recordpos, recordlen): New
9174 variables.
9175 (grub_script_lexer_record_start): New function.
9176 (grub_script_lexer_record_stop): Likewise.
9177 (recordchar): Likewise.
9178 (nextchar): Likewise.
9179 (grub_script_yylex): Use `nextchar' to fetch new characters. Use
9180 2048 as the buffer size. Add the tokens `menuentry' and `@'.
9181 * normal/main.c: Include <grub/parser.h> and <grub/script.h>
9182 (current_menu): New variable.
9183 (free_menu): Mainly rewritten.
9184 (grub_normal_menu_addentry): New function.
9185 (read_config_file): Rewritten.
9186 * normal/menu.c (run_menu_entry): Mainly rewritten.
fe987087 9187 * normal/menu_entry.c (make_screen): Rewritten the code to insert
77c4a393 9188 the menu entry.
9189 (run): Mainly rewritten.
9190 * normal/parser.y (menu_entry): New variable.
9191 (GRUB_PARSER_TOKEN_MENUENTRY): New token.
9192 (menuentry): New rule.
9193 (command): Add `menuentry'.
9194 (if_statement): Allow additional returns before `fi'.
9195 * normal/script.c (grub_script_create_cmdmenu): New function.
9196
144f1f98 91972006-01-03 Marco Gerards <marco@gnu.org>
9198
9199 * INSTALL: GNU Bison is required.
9200 * configure.ac: Rewritten the test to detect Bison.
9201 * Makefile.in (YACC): New variable. Reported by Xun Sun
9202 <xun.sun.cn@gmail.com>.
9203
af4b2d89 92042006-01-03 Marco Gerards <marco@gnu.org>
9205
9206 * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
9207 the HFS+ filesystem to filesystem blocks.
9208 (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
9209 GCC warning is silenced.
9210
15643b71 92112006-01-03 Marco Gerards <marco@gnu.org>
9212
9213 * partmap/apple.c (apple_partition_map_iterate): Convert the data
9214 read from disk from big endian to host byte order.
9215
00905879 92162006-01-03 Hollis Blanchard <hollis@penguinppc.org>
9217
9218 * fs/hfs.c: Include <grub/hfs.h>. Added reference to the official
9219 documentation.
9220 (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
9221 (grub_hfs_mount): Grammar fix in error. Make sure this is not an
9222 embedded HFS+ filesystem.
9223 (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
9224 (grub_hfs_sblock): Move from here...
9225 * include/grub/hfs.h: To here... New file.
9226 * fs/hfsplus.c: Include <grub/hfs.h>. Added reference to the official
9227 documentation.
9228 (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
9229 New macros.
9230 (grub_hfsplus_volheader): Change type of member `magic' to
9231 `grub_uint16_t'.
9232 (grub_hfsplus_data): Add new member `embedded_offset'.
9233 (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
9234 returned block.
9235 (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
9236 Calculate the offset.
9237
8899bc3e 92382005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
9239
9240 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
9241 Removed.
9242 (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
9243
ae8c0277 92442005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
9245
9246 * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
9247 ENV->NAME is NULL after allocating ENV->VALUE.
9248
07084456 92492005-12-25 Marco Gerards <marco@gnu.org>
9250
9251 * kern/env.c (grub_env_set): Rewritten the error handling code.
9252
4750f5f1 92532005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
9254
9255 * geninit.sh: Made more robust, and more portable.
9256
50214199 92572005-12-25 Marco Gerards <marco@gnu.org>
9258
9259 Add support for Apple HFS+ filesystems.
f19dbdb7 9260
50214199 9261 * fs/hfsplus.c: New file.
9262
9263 * DISTLIST: Added `fs/hfsplus.c'.
9264
9265 * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
9266 (hfsplus_mod_SOURCES): New variable.
9267 (hfsplus_mod_CFLAGS): Likewise.
9268 (hfsplus_mod_LDFLAGS): Likewise.
9269 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
9270 (grub_setup_SOURCES): Likewise.
9271 (grub_mkdevicemap_SOURCES): Likewise.
9272 (grub_emu_SOURCES): Likewise.
9273 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
9274
9275 * fs/fshelp.c (grub_fshelp_log2blksize): New function.
9276
9277 * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
9278
befaed6c 92792005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
9280
9281 * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
9282 commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
9283 include/grub/parser.h, include/grub/script.h, kern/parser.c,
9284 kern/sparc64/cache.S, normal/execute.c, normal/function.c,
9285 normal/lexer.c, normal/parser.y, normal/script.c, and
9286 partmap/gpt.c.
9287 Removed kern/sparc64/cache.c.
9288
9289 * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
9290 grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
9291 grub_emu_init.c.
9292
9293 * configure.ac (AC_INIT): Bumped to 1.92.
9294
6a124103 92952005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
9296
9297 * kern/err.c (grub_error_push): Added new function to support error
9298 stacks.
9299 (grub_error_pop): Likewise.
9300 (grub_error_stack_items): New local variable to support error stacks.
9301 (grub_error_stack_pos): Likewise.
9302 (grub_error_stack_assert): Likewise.
9303 (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
9304 stack depth.
9305 (grub_print_error): Added support to print errors from error stack.
9306
9307 * include/grub/err.h (grub_error_push): Added function prototype.
9308 (grub_error_pop): Likewise.
9309
be973c1b 93102005-12-09 Hollis Blanchard <hollis@penguinppc.org>
9311
9312 * configure.ac: Accept `powerpc64' as host_cpu.
9313 (amd64): Rename to `biarch32'.
9314
9315 * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
9316 non-cacheline-aligned addresses.
9317
9318 * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
9319 (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
9320 if `size' is non-zero.
9321
b04216ab 93222005-12-03 Marco Gerards <mgerards@xs4all.nl>
9323
9324 * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
9325 and `cd' to make sure the filename is not prefixed with a
9326 directory name.
9327 (pkgdata_MODULES): Add `gpt.mod'.
9328 (gpt_mod_SOURCES): New variable.
9329 (gpt_mod_CFLAGS): Likewise.
9330 (gpt_mod_LDFLAGS): Likewise.
9331
9332 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
9333
9334 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
9335 New macro.
9336
9337 * partmap/gpt.c: New file.
9338
9339 * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
9340 GPT partition map is detected.
9341
41730ed9 93422005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
9343
9344 * commands/i386/pc/play.c: New file.
9345 * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
9346 (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
9347 macros.
f19dbdb7 9348
95dc3643 93492005-11-27 Marco Gerards <mgerards@xs4all.nl>
9350
9351 * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
9352 ((unused))' to silence gcc warning.
9353
1569ec51 93542005-11-26 Hollis Blanchard <hollis@penguinppc.org>
9355
9356 * configure.ac: Correct `AC_PROG_YACC' test.
9357
9abde152 93582005-11-22 Hollis Blanchard <hollis@penguinppc.org>
9359
9360 * util/powerpc/ieee1275/grub-install.in: Run the mount point
9361 check before installing files.
9362
44b83271 93632005-11-22 Mike Small <smallm@panix.com>
9364
9365 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
9366 number regex so multidigit numbers are recognized correctly.
9367
93682005-11-22 Mike Small <smallm@panix.com>
9369
9370 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
9371 debugging message before attempting to claim memory.
9372 (grub_rescue_cmd_initrd): Add a claim debugging message and try
9373 multiple addresses in case of failure.
9374
9c12956b 93752005-11-22 Hollis Blanchard <hollis@penguinppc.org>
9376
9377 * term/tparm.c (get_space): Remove empty `if' statement.
9378
9379 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
9380
9381 * kern/parser.c (check_varstate): Rename `state' to 's'.
9382
aeaf81d9 93832005-11-22 Hollis Blanchard <hollis@penguinppc.org>
9384
9385 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
9386 variable definitions to the beginning of each function. Sort stack
9387 variables by size.
9388 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
9389 `buf' argument to `char *'.
9390
79bbb63f 93912005-11-22 Hollis Blanchard <hollis@penguinppc.org>
9392
9393 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
9394 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 9395 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
79bbb63f 9396 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
9397 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
9398 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
9399 configfile.mod, search.mod, gzio.mod and test.mod.
9400 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
9401 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
9402 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
9403 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
9404 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
9405 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
9406 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
9407 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
9408 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
9409 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
9410 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
9411 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
9412 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
9413 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
9414 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
9415 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
9416 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
9417 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
9418 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
9419 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
9420 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
9421 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
9422 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
9423
9424 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
9425 `grep --include'.
9426 (pkgdata_MODULES): Add test.mod.
9427
233b1628 94282005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
9429
9430 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
9431 appending to variables with "+=".
9432 (PModule): Use full pathname to generate *.lst filenames.
9433
9434 * Makefile.in: Fixed list rules moved from genmk.rb.
9435 (.DELETE_ON_ERROR): New special target.
9436 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
9437
9438 * conf/i386-pc.rmk: Include conf/common.mk.
9439 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 9440 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
233b1628 9441 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
9442 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
9443 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
9444 configfile.mod, search.mod, gzio.mod and test.mod.
9445 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
9446 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
9447 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
9448 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
9449 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
9450 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
9451 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
9452 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
9453 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
9454 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
9455 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
9456 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
9457 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
9458 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
9459 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
9460 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
9461 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
9462 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
9463 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
9464 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
9465 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
9466 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
9467 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
9468 here...
9469 * conf/common.rmk: ... to here. New file.
9470
9471 * conf/common.mk: New file.
9472
16f820c8 94732005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
9474
9475 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
9476 (grub_script.tab.c): ... here.
9477
9478 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
9479 (grub_script.tab.c): ... here.
9480
9481 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
9482 (grub_script.tab.c): ... here.
9483
9484 * normal/command.c (grub_command_find): Fixed a memory leak of
9485 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
9486
63ba1554 94872005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
9488
9489 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
9490 "@" which marks the start of a comment on ARM.
9491 (VARIABLE): Likewise.
9492
7f67dc13 94932005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
9494
79bbb63f 9495 Add support for Linux/ADFS partition tables.
7f67dc13 9496
9497 * partmap/acorn.c: New file.
9498
9499 * include/grub/acorn_filecore.h: Likewise.
9500
9501 * DISTLIST: Added `partmap/acorn.c' and
9502 `include/grub/acorn_filecore.h'.
f19dbdb7 9503
7f67dc13 9504 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
9505 `partmap/acorn.c'.
9506 (pkgdata_MODULES): Add `acorn.mod'.
9507 (acorn_mod_SOURCES): New variable.
9508 (acorn_mod_CFLAGS): Likewise.
9509
9510 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
9511 `partmap/acorn.c'.
9512 (pkgdata_MODULES): Add `acorn.mod'.
9513 (acorn_mod_SOURCES): New variable.
9514 (acorn_mod_CFLAGS): Likewise.
9515
9516 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
9517 (pkgdata_MODULES): Add `acorn.mod'.
9518 (acorn_mod_SOURCES): New variable.
9519 (acorn_mod_CFLAGS): Likewise.
9520 (acorn_mod_LDFLAGS): Likewise.
9521
9522 * include/types.h (grub_disk_addr_t): New typedef.
9523
6d099807 95242005-11-13 Marco Gerards <mgerards@xs4all.nl>
9525
9526 * geninit.sh: New file.
9527
9528 * geninitheader.sh: Likewise.
9529
9530 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
9531 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
9532 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
9533 * commands/configfile.c (grub_configfile_init)
9534 (grub_configfile_fini): Likewise.
9535 * commands/default.c (grub_default_init, grub_default_fini):
9536 Likewise.
9537 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
9538 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
9539 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
9540 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
9541 Likewise.
9542 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
9543 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
9544 Likewise.
9545 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
fe6b695a 9546 * commands/ieee1275/halt.c (grub_halt_init, grub_halt_fini):
6d099807 9547 Likewise.
9548 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
9549 Likewise.
fe6b695a 9550 * commands/ieee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
6d099807 9551 Likewise.
9552 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
9553 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
9554 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
9555 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
9556 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
9557 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
9558 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
9559 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
9560 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
9561 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
9562 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
9563 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
9564 * partmap/amiga.c (grub_amiga_partition_map_init)
9565 (grub_amiga_partition_map_fini): Likewise.
9566 * partmap/apple.c (grub_apple_partition_map_init)
9567 (grub_apple_partition_map_fini): Likewise.
9568 * partmap/pc.c (grub_pc_partition_map_init)
9569 (grub_pc_partition_map_fini): Likewise.
9570 * partmap/sun.c (grub_sun_partition_map_init,
9571 grub_sun_partition_map_fini): Likewise.
9572 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
9573 Likewise.
9574
9575 * util/grub-emu.c: Include <grub_modules_init.h>.
9576 (main): Don't initialize and de-initialize any modules directly,
9577 use `grub_init_all' and `grub_fini_all' instead.
9578
9579 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
9580 `grub_vesafb_mod_init'.
9581 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
9582 all users.
9583 * term/i386/pc/vga.c (grub_vga_init): Renamed to
9584 `grub_vga_mod_init'. Updated all users.
9585 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
f19dbdb7 9586
6d099807 9587 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
9588 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
9589 rules.
9590
9591 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
9592 Generate a function to initialize the module in utilities.
9593 Updated all callers.
9594 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
9595 initialize the module in utilities. Updated all callers.
9596
9046bcf0 95972005-11-09 Hollis Blanchard <hollis@penguinppc.org>
9598
9599 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
9600 escape sequence and a literal ^L to clear the screen.
9601
9602 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
9603 when returning from Open Firmware.
9604
d13ea639 96052005-11-09 Hollis Blanchard <hollis@penguinppc.org>
9606
9607 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
9608 (grub_ofconsole_height): Likewise.
9609 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
9610 manually insert a '\n'.
9611 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
9612 `grub_ofconsole_height'. Return early if these are already set.
9613
a8fcf206 96142005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
9615
9616 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
9617 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
9618 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
9619 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
9620 and `normal/script.c'.
9621 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
9622 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
9623 (test_mod_SOURCES): New variable.
9624 (test_mod_CFLAGS): Likewise.
9625 (test_mod_LDFLAGS): Likewise.
9626 (pkgdata_MODULES): Add `test.mod'.
9627 (grub_script.tab.c): New rule.
9628 (grub_script.tab.h): Likewise.
9629
b6b32745 96302005-11-07 Marco Gerards <mgerards@xs4all.nl>
9631
9632 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
9633 `commands/test.c', `normal/execute.c', `normal/lexer.c',
9634 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
9635 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
9636 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
9637 (test_mod_SOURCES): New variable.
9638 (test_mod_CFLAGS): Likewise.
9639 (pkgdata_MODULES): Add `test.mod'.
9640 (grub_script.tab.c): New rule.
9641 (grub_script.tab.h): Likewise.
9642
daac212a 96432005-11-06 Marco Gerards <mgerards@xs4all.nl>
9644
9645 Add initial scripting support.
9646
9647 * commands/test.c: New file.
9648 * include/grub/script.h: Likewise.
9649 * normal/execute.c: Likewise.
9650 * normal/function.c: Likewise.
9651 * normal/lexer.c: Likewise.
9652 * normal/parser.y: Likewise.
9653 * normal/script.c: Likewise.
9654
9655 * configure.ac: Add `AC_PROG_YACC' test.
f19dbdb7 9656
daac212a 9657 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
9658 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
9659 `normal/function.c' and `normal/script.c'.
9660 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
9661 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
b6b32745 9662 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
9663 variables.
daac212a 9664 (pkgdata_MODULES): Add `test.mod'.
9665 (grub_script.tab.c): New rule.
9666 (grub_script.tab.h): Likewise.
9667
9668 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
9669
9670 * include/grub/normal.h (grub_test_init): New prototype.
9671 (grub_test_fini): Likewise.
f19dbdb7 9672
daac212a 9673 * normal/command.c: Include <grub/script.h>.
9674 (grub_command_execute): Rewritten.
f19dbdb7 9675
daac212a 9676 * util/grub-emu.c (main): Call `grub_test_init' and
9677 `grub_test_fini'.
9678
77500b2b 96792005-11-03 Hollis Blanchard <hollis@penguinppc.org>
9680
9681 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
9682 to 0.
9683 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
9684 there are no pending characters.
9685
e45deb9e 96862005-11-03 Hollis Blanchard <hollis@penguinppc.org>
9687
9688 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
9689 `grub_strndup' to drop device arguments. Replace unnecessary
9690 `grub_strndup' with `grub_strdup'.
9691
4ce32619 96922005-11-03 Hollis Blanchard <hollis@penguinppc.org>
9693
9694 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
9695 `debug' environment variable has been set.
9696
96972005-11-02 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 9698
4ce32619 9699 * Makefile.in (install-local): Use $(DATA).
9700 (uninstall): Likewise.
9701 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
9702 (sbin_UTILITIES): ... to here.
9703 (sbin_SCRIPTS): New variable.
9704 (grub_install_SOURCES): New variable.
9705 * util/powerpc/ieee1275/grub-install.in: New file.
9706 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
9707 variable.
9708 (add_segments): Call `grub_util_get_path'.
9709
25fe6f03 97102005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
9711
9712 From Timothy Baldwin:
9713 * commands/ls.c (grub_ls_list_files): Close FILE with
9714 grub_file_close.
9715 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
9716
04ccf3ec 97172005-10-24 Marco Gerards <mgerards@xs4all.nl>
9718
9719 * include/grub/parser.h: New file.
9720
9721 * kern/parser.c: Likewise.
9722
9723 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
9724 (grub_setup_SOURCES): Likewise.
9725 (grub_probefs_SOURCES): Likewise.
9726 (grub_emu_SOURCES): Likewise.
9727 (kernel_img_HEADERS): Add `parser.h'.
9728
9729 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
9730 (grub_emu_SOURCES): Add `kern/parser.c'.
9731 (grubof_SOURCES): Likewise.
9732
9733 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
9734 (grubof_SOURCES): Add `kern/parser.c'.
9735
9736 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
9737
9738 * kern/misc.c (grub_split_cmdline): Removed function.
9739
9740 * kern/rescue.c: Include <grub/parser.h>.
9741 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
9742 of `grub_split_cmdline'.
9743
9744 * normal/command.c: Include <grub/parser.h>.
9745 (grub_command_execute): Use `grub_parser_split_cmdline' instead
9746 of `grub_split_cmdline'.
9747
9748 * normal/completion.c: Include <grub/parser.h>.
9749 (cmdline_state): New variable.
9750 (iterate_dir): End the filename with a quote depending on the
9751 command line state.
9752 (get_state): new function.
9753 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
9754 split the arguments and determine the current argument. When the
9755 argument string is not quoted, escape all spaces.
9756
6d8f4b0e 97572005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
9758
9759 * normal/sparc64/setjmp.S: New file.
9760
15cf03ed 97612005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
9762
9763 * include/grub/sparc64/libgcc.h: New file.
9764 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
9765 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
9766 normal/sparc64/setjmp.c.
9767
03e8661a 97682005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
9769
9770 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
9771 * kern/sparc64/cache.S: New file.
9772 * kern/sparc64/cache.c: Removed.
9773 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
9774 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
9775 -mtune=ultrasparc.
9776 (COMMON_LDFLAGS): Add -melf64_sparc.
9777 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
9778 (grubof_SOURCES): Use cache.S instead of cache.c.
9779 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
9780 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
9781 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
9782 commented though.
9783 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
9784 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
9785 (linux_mod_CFLAGS): Commented out.
9786 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
9787 out because module isn't built.
9788 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
9789 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
9790 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
9791 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
9792 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
9793 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
9794 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
9795 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
9796 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
9797 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
9798 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
9799 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
9800 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
9801 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
9802
34eeec8a 98032005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
9804
9805 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
9806 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
9807 longer, because HFS should not be used on PC.
9808
708367a3 98092005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
9810
9811 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
9812 consistently within the loop.
9813
6fa1251a 98142005-10-15 Marco Gerards <mgerards@xs4all.nl>
9815
9816 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
9817 directory can not be read.
9818
4801580b 98192005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
9820
9821 * configure.ac (AC_INIT): Increase the version number to 1.91.
9822
9823 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
9824 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
9825 term/i386/pc/serial.c.
9826
219ad426 98272005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
9828
9829 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
9830 file size must be permitted.
9831
9832 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
9833 between %ah and %al.
9834
688e5699 98352005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
9836
9837 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
9838 grub_uint64_t.
9839 Call the hook with a NUL-terminated filename.
9840 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
9841 grub_cpu_to_be32.
9842
9843 * kern/term.c (cursor_state): New variable.
9844 (grub_term_set_current): Reset the cursor state on a new
9845 terminal.
9846 (grub_setcursor): Rewritten to use CURSOR_STATE.
9847 (grub_getcursor): New function.
9848
9849 * include/grub/term.h (grub_getcursor): New prototype.
9850
9851 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
9852 integers on ARM. Reported by Timothy Baldwin
9853 <T.E.Baldwin99@members.leeds.ac.uk>.
9854
bb34586c 98552005-10-11 Marco Gerards <mgerards@xs4all.nl>
9856
9857 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
9858 allocated.
9859 (grub_sfs_dir): Likewise.
9860
9a909877 98612005-10-09 Marco Gerards <mgerards@xs4all.nl>
9862
9863 Add support for the SFS filesystem.
9864
9865 * fs/sfs.c: New file.
9866
9867 * DISTLIST: Added `fs/sfs.c'.
9868
9869 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
9870 (grub_probefs_SOURCES): Likewise.
9871 (grub_emu_SOURCES): Likewise.
9872 (pkgdata_MODULES): Add `sfs.mod'.
9873 (sfs_mod_SOURCES): New variable.
9874 (sfs_mod_CFLAGS): Likewise.
9875 (sfs_mod_LDFLAGS): Likewise.
9876
9877 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
9878 (pkgdata_MODULES): Add `sfs.mod'.
9879 (sfs_mod_SOURCES): New variable.
9880 (sfs_mod_CFLAGS): Likewise.
9881
9882 * util/grub-emu.c (main): Call `grub_sfs_init' and
9883 `grub_sfs_fini'.
9884
9885 * include/grub/fs.h (grub_sfs_init): New prototype.
9886 (grub_sfs_fini): Likewise.
9887
57bdbde3 98882005-10-07 Marco Gerards <mgerards@xs4all.nl>
9889
9890 Add support for the AFFS filesystem.
9891
9892 * fs/affs.c: New file.
9893
9894 * DISTLIST: Added `fs/affs.c'.
9895
9896 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
9897 (grub_probefs_SOURCES): Likewise.
9898 (grub_emu_SOURCES): Likewise.
9899 (pkgdata_MODULES): Add `affs.mod'.
9900 (affs_mod_SOURCES): New variable.
9901 (affs_mod_CFLAGS): Likewise.
9902 (affs_mod_LDFLAGS): Likewise.
9903
9904 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
9905 (pkgdata_MODULES): Add `affs.mod'.
9906 (affs_mod_SOURCES): New variable.
9907 (affs_mod_CFLAGS): Likewise.
9908
9909 * util/grub-emu.c (main): Call `grub_affs_init' and
9910 `grub_affs_fini'.
9911
9912 * include/grub/fs.h (grub_affs_init): New prototype.
9913 (grub_affs_fini): Likewise.
9914
047b67e0 99152005-10-01 Marco Gerards <mgerards@xs4all.nl>
9916
9917 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
9918
59b8208a 99192005-10-01 Marco Gerards <mgerards@xs4all.nl>
9920
9921 * configure.ac: Accept `x86_64' as host_cpu. In that case add
9922 `-m32' to CFLAGS.
9923
9924 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
9925 linking.
f19dbdb7 9926
59b8208a 9927 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
9928 (COMMON_LDFLAGS): New variable.
9929 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
9930 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
9931 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
9932 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
9933 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
9934 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
9935 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
9936 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
9937 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
9938 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
9939 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
9940 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
9941 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
9942 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
9943 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
9944 variables.
9945 (normal_mod_ASFLAGS): Add `-m32'.
9946
9947 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
9948 (grub_host_size_t, grub_host_ssize_t): New types.
9949 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
fe6b695a 9950 dependent of `GRUB_CPU_SIZEOF_VOID_P' instead on
59b8208a 9951 `GRUB_HOST_SIZEOF_VOID_P'.
9952
9953 * include/grub/kernel.h (struct grub_module_header): Type of
9954 member offset changed to `grub_host_off_t'. Type of member size
9955 changed to `grub_host_size_t'.
9956 (struct grub_module_info): Type of member offset changed to
9957 `grub_host_off_t'. Type of member size changed to
9958 `grub_host_size_t'.
9959
b4093103 99602005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
9961
9962 Make GRUB's kernel compliant to Multiboot Specification.
f19dbdb7 9963
b4093103 9964 * kern/i386/pc/startup.S (multiboot_header): New label.
9965 (multiboot_entry): Likewise.
9966 (multiboot_trampoline): Likewise.
9967
9968 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
9969 Increased to 0x4A0.
9970
9971 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
9972 put parentheses after a question mark.
9973 [!GRUB_UTIL] (my_mod): New variable.
9974
9975 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
9976
b2499b29 99772005-09-28 Marco Gerards <mgerards@xs4all.nl>
9978
9979 Adds support for the XFS filesystem. Btrees are not supported
9980 yet.
9981
9982 * fs/xfs.c: New file.
9983
9984 * DISTLIST: Added `fs/xfs.c'.
9985
9986 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
9987 (grub_probefs_SOURCES): Likewise.
9988 (grub_emu_SOURCES): Likewise.
9989 (pkgdata_MODULES): Add `xfs.mod'.
9990 (xfs_mod_SOURCES): New variable.
9991 (xfs_mod_CFLAGS): Likewise.
9992
9993 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
9994 (pkgdata_MODULES): Add `xfs.mod'.
9995 (xfs_mod_SOURCES): New variable.
9996 (xfs_mod_CFLAGS): Likewise.
9997
9998 * util/grub-emu.c (main): Call `grub_xfs_init' and
9999 `grub_xfs_fini'.
10000
10001 * include/grub/fs.h (grub_xfs_init): New prototype.
10002 (grub_xfs_fini): Likewise.
10003
f19dbdb7 10004
83d37a62 100052005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
10006
10007 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
10008 color modes, allow greater than 16 colors to be configured as
10009 a default palette.
10010
47d2d65e 100112005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
10012
10013 * normal/completion.c (complete_arguments): Add the qualifier
10014 const into OPTIONS.
10015
10016 From Omniflux <omniflux+lists@omniflux.com>:
10017 * include/grub/terminfo.h: New file.
10018 * include/grub/tparm.h: Likewise.
10019 * include/grub/i386/pc/serial.h: Likewise.
10020 * term/terminfo.c: Likewise.
10021 * term/tparm.c: Likewise.
10022 * term/i386/pc/serial.c: Likewise.
10023 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
10024 serial.mod.
10025 (terminfo_mod_SOURCES): New variable.
10026 (terminfo_mod_CFLAGS): Likewise.
10027 (serial_mod_SOURCES): Likewise.
10028 (serial_mod_CFLAGS): Likewise.
10029
48b671ff 100302005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
10031
10032 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
10033 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
10034 and kern/powerpc/ieee1275/cmain.c, respectively.
10035
10036 * boot/powerpc/ieee1275/crt0.S: Moved to ...
10037 * kern/powerpc/ieee1275/crt0.S: ... here.
10038
10039 * boot/powerpc/ieee1275/cmain.c: Moved to ...
10040 * kern/powerpc/ieee1275/cmain.c: ... here.
f19dbdb7 10041
48b671ff 10042 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
10043 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
10044 instead of boot/powerpc/ieee1275/crt0.S and
10045 boot/powerpc/ieee1275/cmain.c, respectively.
10046
10047 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
10048 sectors. It was not used anyway.
10049
09fc77a7 100502005-08-30 Hollis Blanchard <hollis@penguinppc.org>
10051
10052 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
10053 `unused parameter' warning.
10054
003789c7 100552005-08-30 Hollis Blanchard <hollis@penguinppc.org>
10056
10057 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
10058 function.
10059 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
10060 getcharwidth.
10061
67f44c86 100622005-08-28 Marco Gerards <metgerards@student.han.nl>
10063
10064 * include/grub/normal.h (enum grub_completion_type): Added
10065 `GRUB_COMPLETION_TYPE_ARGUMENT'.
10066
10067 * normal/cmdline.c (print_completion): Handle
10068 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
10069 * normal/menu_entry.c (store_completion): Likewise.
10070
10071 * normal/completion.c (complete_arguments): New function.
10072 (grub_normal_do_completion): Call `complete_arguments' when the
10073 current words start with a dash.
10074
0b5abe02 100752005-08-27 Marco Gerards <metgerards@student.han.nl>
10076
10077 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
10078 `gzio.mod' instead of `io.mod').
10079
d9864ee1 100802005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
10081
10082 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
10083 (DISTDIRS): Added io and video.
10084 Rewrite the search routine to make an output consistently.
10085
10086 * DISTLIST: Added conf/sparc64-ieee1275.mk,
10087 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
10088 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
10089 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
10090 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
10091 util/powerpc/ieee1275/misc.c.
f19dbdb7 10092
d9864ee1 10093 * include/grub/gzio.h: New file.
10094 * io/gzio.c: Likewise.
f19dbdb7 10095
d9864ee1 10096 * kern/file.c (grub_file_close): Call grub_device_close only if
10097 FILE->DEVICE is not NULL.
10098
10099 * include/grub/mm.h [!NULL] (NULL): New macro.
10100
10101 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
10102
10103 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
10104 (pkgdata_MODULES): Added gzio.mod.
10105 (gzio_mod_SOURCES): New variable.
10106 (gzio_mod_CFLAGS): Likewise.
10107
10108 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
10109 (pkgdata_MODULES): Added gzio.mod.
10110 (gzio_mod_SOURCES): New variable.
10111 (gzio_mod_CFLAGS): Likewise.
10112
10113 * commands/cat.c: Include grub/gzio.h.
10114 (grub_cmd_cat): Use grub_gzfile_open instead of
10115 grub_file_open.
f19dbdb7 10116
d9864ee1 10117 * commands/cmp.c: Include grub/gzio.h.
10118 (grub_cmd_cmp): Use grub_gzfile_open instead of
10119 grub_file_open.
10120
10121 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
10122 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
10123 grub_file_open.
10124 (grub_rescue_cmd_module): Likewise.
10125
fa46f4b5 101262005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
10127
10128 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
10129 kern/sparc64/ieee1275/init.c because it contains _start.
10130 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
10131
e9211b5d 101322005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
10133
10134 * configure.ac: Add support for sparc64 host with ieee1275
10135 firmware.
10136 * configure: Generated from configure.ac.
10137 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
10138 instead of int.
10139 (grub_ofdisk_read): Likewise.
10140 (grub_ofdisk_open): Use %p to print pointer values, and cast the
10141 pointers as (void *) to remove a warning.
10142 (grub_ofdisk_close): Likewise.
10143 (grub_ofdisk_read): Likewise.
10144 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
10145 returns, so make it return void to remove a warning.
10146 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
10147 Corresponding prototype change.
10148 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
10149 values, and cast the pointers as (void *) to remove a warning.
10150 (grub_mm_dump): Likewise.
10151 * conf/sparc64-ieee1275.mk: New file.
10152 * conf/sparc64-ieee1275.rmk: Likewise.
10153 * include/grub/sparc64/setjmp.h: Likewise.
10154 * include/grub/sparc64/types.h: Likewise.
10155 * include/grub/sparc64/ieee1275/console.h: Likewise.
10156 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
10157 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
10158 * include/grub/sparc64/ieee1275/time.h: Likewise.
10159 * kern/sparc64/cache.c: Likewise.
10160 * kern/sparc64/dl.c: Likewise.
10161 * kern/sparc64/ieee1275/init.c: Likewise.
10162 * kern/sparc64/ieee1275/openfw.c: Likewise.
10163
385c6a92 101642005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
10165
10166 * util/console.c (grub_ncurses_putchar): If C is greater than
10167 0x7f, set C to a question mark.
10168 (grub_ncurses_getcharwidth): New function.
10169 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
10170 getcharwidth.
10171
10172 * normal/menu.c (print_entry): Made aware of Unicode. First,
10173 convert TITLE to UCS-4, and predict the cursor position by
10174 grub_getcharwidth.
10175
10176 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
10177 const to SRC.
10178 * kern/misc.c (grub_utf16_to_utf8): Likewise.
10179
16ccb8b1 101802005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
10181
10182 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
10183 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
10184 grub_strcat.
10185
10186 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
10187 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
10188 grub_strcpy and grub_strlen. Take it into account that a space
10189 character is inserted as a delimiter.
10190
6a85ce79 101912005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
10192
10193 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
fe6b695a 10194 invalid magic in the error.
6a85ce79 10195
10196 * commands/search.c: New file.
f19dbdb7 10197
6a85ce79 10198 * util/grub-emu.c (main): Call grub_search_init and
10199 grub_search_fini.
10200
10201 * kern/rescue.c (grub_rescue_print_disks): Removed.
10202 (grub_rescue_print_devices): New function.
10203 (grub_rescue_cmd_ls): Use grub_device_iterate with
10204 grub_rescue_print_devices instead of grub_disk_dev_iterate with
10205 grub_rescue_print_disks.
10206
10207 * kern/partition.c (grub_partition_iterate): Return the result of
10208 PARTMAP->ITERATE instead of GRUB_ERRNO.
10209
10210 * kern/device.c: Include grub/partition.h.
10211 (grub_device_iterate): New function.
10212
10213 * include/grub/partition.h (grub_partition_iterate): Return int
10214 instead of grub_err_t.
10215
10216 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
10217 prototype.
10218 [GRUB_UTIL] (grub_search_fini): Likewise.
10219
10220 * include/grub/device.h (grub_device_iterate): New prototype.
10221
10222 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
10223 commands/search.c.
10224 (pkgdata_MODULES): Added search.mod.
10225 (search_mod_SOURCES): New variable.
10226 (search_mod_CFLAGS): Likewise.
10227
10228 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
10229 (pkgdata_MODULES): Added search.mod.
10230 (search_mod_SOURCES): New variable.
10231 (search_mod_CFLAGS): Likewise.
10232
10233 * commands/ls.c (grub_ls_list_disks): Renamed to ...
10234 (grub_ls_list_devices): ... this, and use grub_device_iterate.
10235 All callers changed.
10236
10237 * DISTLIST: Added commands/search.c.
10238
ef095434 102392005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
10240
10241 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
10242 conversion.
10243 (grub_getcharwidth): New function.
10244
10245 * kern/misc.c (grub_utf8_to_ucs4): New function.
10246
10247 * include/grub/term.h (struct grub_term): Added a new member
10248 "getcharwidth".
10249 (grub_getcharwidth): New prototype.
10250
10251 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
10252
10253 * term/i386/pc/console.c (map_char): New function. Segregated from
10254 grub_console_putchar.
10255 (grub_console_putchar): Use map_char.
10256 (grub_console_getcharwidth): New function.
10257 (grub_console_term): Specified grub_console_getcharwidth as
10258 getcharwidth.
10259
10260 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
10261 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
10262
10263 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
10264 GRUB_ERRNO.
10265 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
10266 on grub_strtoul completely.
10267 (write_char): Declare local variables in the beginning of the
10268 function.
10269 (grub_vesafb_getcharwidth): New function.
10270 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
10271 getcharwidth.
10272
1f0a95e4 102732005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
10274
10275 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
10276 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
10277 commands/i386/pc/vbetest.c.
10278
10279 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
10280 call grub_vbe_get_controller_info again, because the returned
10281 information is volatile.
10282 (grub_vbe_set_video_mode): Mostly rewritten.
10283 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
10284 grub_vbe_status_t correctly.
10285 (grub_vbe_get_video_mode_info): Likewise.
10286 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
10287 several if statements.
10288
10289 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
10290 * commands/i386/pc/vbeinfo.c: ... this.
10291
10292 * commands/i386/pc/vbe_test.c: Renamed to ...
10293 * commands/i386/pc/vbetest.c: ... this.
10294
10295 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
10296 ...
10297 (grub_cmd_vbeinfo): ... this. Save video modes before
10298 iterating. Skip a video mode, if it is not available, not enough
10299 information is given or it is monochrome. Show the memory
10300 model. Leave the interpretation of MODEVAR to grub_strtoul
10301 completely.
10302 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
10303 (GRUB_MOD_FINI): Likewise.
10304
10305 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
10306 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
10307 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
10308 duplicated grub_env_get. Leave the interpretation of MODEVAR to
10309 grub_strtoul completely.
10310 (real2pm): Removed.
10311 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
10312 (GRUB_MOD_FINI): Likewise.
10313
10314 * normal/misc.c: Include grub/mm.h.
10315
10316 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
10317 vbe_list_modes with vbetest.mod and vbeinfo.mod.
10318 (vbe_list_modes_mod_SOURCES): Removed.
10319 (vbe_list_modes_mod_CFLAGS): Likewise.
10320 (vbe_test_mod_SOURCES): Likewise.
10321 (vbe_test_mod_CFLAGS): Likewise.
10322 (vbeinfo_mod_SOURCES): New variable.
10323 (vbeinfo_mod_CFLAGS): Likewise.
10324 (vbetest_mod_SOURCES): Likewise.
10325 (vbetest_mod_CFLAGS): Likewise.
10326
992ffbbe 103272005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
10328
10329 * normal/misc.c: New file.
10330
10331 * DISTLIST: Added normal/misc.c.
f19dbdb7 10332
992ffbbe 10333 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
10334 DISK to HOOK. Call HOOK with DISK.
10335 * partmap/apple.c (apple_partition_map_iterate): Likewise.
10336 * partmap/pc.c (pc_partition_map_iterate): Likewise.
10337 * partmap/sun.c (sun_partition_map_iterate): Likewise.
10338
10339 * normal/menu_entry.c (struct screen): Added a new member
10340 "completion_shown".
10341 (completion_buffer): New global variable.
10342 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
10343 (store_completion): New function.
10344 (complete): Likewise.
10345 (clear_completions): Likewise.
10346 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
10347 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
10348 a tab, call complete.
10349
10350 * normal/completion.c (disk_dev): Removed.
10351 (print_simple_completion): Likewise.
10352 (print_partition_completion): Likewise.
10353 (print_func): New global variable.
10354 (add_completion): Do not take the arguments WHAT or PRINT any
10355 longer. Added a new argument TYPE. Instead of printing directly,
10356 call PRINT_FUNC if not NULL.
10357 All callers changed.
10358 (complete_device): Use a local variable DEV instead of
10359 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
10360 (grub_normal_do_completion): Take a new argument HOOK. Do not
10361 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
10362 empty string, return NULL instead.
10363 All callers changed.
10364
10365 * normal/cmdline.c (print_completion): New function.
10366
10367 * kern/partition.c (grub_partition_iterate): Add an argument DISK
10368 to HOOK.
10369 All callers changed.
10370
10371 * kern/disk.c (grub_print_partinfo): Removed.
10372
10373 * include/grub/partition.h (struct grub_partition_map): Add a new
10374 argument DISK into HOOK of ITERATE.
10375 (grub_partition_iterate): Add a new argument DISK to HOOK.
10376
10377 * include/grub/normal.h (enum grub_completion_type): New enum.
10378 (grub_completion_type_t): New type.
10379 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
10380 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
10381 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
10382 (GRUB_COMPLETION_TYPE_FILE): Likewise.
10383 (grub_normal_do_completion): Added a new argument HOOK.
10384 (grub_normal_print_device_info): New prototype.
10385
10386 * include/grub/disk.h (grub_print_partinfo): Removed.
10387
10388 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
10389 (normal_mod_SOURCES): Likewise.
10390 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
10391 (normal_mod_SOURCES): Likewise.
10392
10393 * commands/ls.c (grub_ls_list_disks): Use
10394 grub_normal_print_device_info instead of grub_print_partinfo. Free
10395 PNAME.
10396 (grub_ls_list_files): Use grub_normal_print_device_info instead of
10397 duplicating the code.
10398
0bd41162 103992005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
10400
10401 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
f19dbdb7 10402 follow GCS more precisely.
10403 * commands/i386/pc/vbe_test.c: Likewise.
10404 * include/grub/i386/pc/vbe.h: Likewise.
10405 * term/i386/pc/vesafb.c: Likewise.
10406 * video/i386/pc/vbe.c: Likewise.
0bd41162 10407
6323696a 104082005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
10409
10410 * DISTLIST: Added term/i386/pc/vesafb.c
10411 DISTLIST: Added video/i386/pc/vbe.c
10412 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
10413 DISTLIST: Added commands/i386/pc/vbe_test.c.
10414 * commands/i386/pc/vbe_list_modes.c: New file.
10415 * commands/i386/pc/vbe_test.c: Likewise.
10416 * term/i386/pc/vesafb.c: Likewise.
10417 * video/i386/pc/vbe.c: Likewise.
10418 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
10419 (grub_vbe_probe) Added prototype.
10420 (grub_vbe_set_video_mode) Likewise.
10421 (grub_vbe_get_video_mode) Likewise.
10422 (grub_vbe_get_video_mode_info) Likewise.
10423 (grub_vbe_set_pixel_rgb) Likewise.
10424 (grub_vbe_set_pixel_index) Likewise.
10425 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
10426 (pkgdata_MODULES): Added vesafb.mod.
10427 (pkgdata_MODULES): Added vbe_list_modes.mod.
10428 (pkgdata_MODULES): Added vbe_test.mod.
10429 (vbe_mod_SOURCES): Added.
10430 (vbe_mod_CFLAGS): Likewise.
10431 (vesafb_mod_SOURCES): Likewise.
10432 (vesafb_mod_CFLAGS): Likewise.
10433 (vbe_list_modes_mod_SOURCES): Likewise.
10434 (vbe_list_modes_mod_CFLAGS): Likewise.
10435 (vbe_test_mod_SOURCES): Likewise.
10436 (vbe_test_mod_CFLAGS): Likewise.
10437
0a74e62f 104382005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
10439
0a74e62f 10440 * normal/command.c (grub_command_execute): If INTERACTIVE is
10441 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
10442 CMDLINE. Disable the pager if INTERACTIVE is true.
10443 All callers are changed.
10444
10445 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
10446 before reading a config file.
10447 * normal/main.c (read_config_file): Even if a command is not
10448 found, register it if it is within an entry.
10449
10450 * util/grub-emu.c: Include sys/types.h and unistd.h.
10451 (options): Added --hold.
10452 (struct arguments): Added a new member "hold".
10453 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
10454 missing.
10455 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
10456 cleared by a debugger, if it is not zero.
10457
10458 * include/grub/normal.h (grub_command_execute): Add an argument
10459 INTERACTIVE.
10460
e51f85ae 104612005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
10462
10463 * DISTLIST: Added include/grub/i386/pc/vbe.h.
10464
e9c6f39b 104652005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
10466
10467 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
10468 program with another one, because the old one didn't detect a bug
10469 in gcc-3.4. Always use regparm 2, because the new test is still
10470 not enough for gcc-4.0. Someone must investigate a simple test
10471 case which detects a bug in gcc-4.0.
10472
8de3495c 104732005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
10474
10475 * DISTLIST: Added normal/completion.c.
10476
10477 * normal/completion.c: New file.
f19dbdb7 10478
8de3495c 10479 * term/i386/pc/console.c (grub_console_getwh): New function.
10480 (grub_console_term): Assign grub_console_getwh to getwh.
10481
10482 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
10483 function is defined in normal/completion.c as
10484 grub_normal_do_completion.
10485 (grub_cmdline_get): Use grub_normal_do_completion instead of
10486 grub_tab_complete.
10487
10488 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
10489 returns non-zero, otherwise return 0.
10490 (grub_partition_iterate): First, probe the partition map. Then,
10491 call ITERATE only for this partition map.
10492
10493 * kern/misc.c (grub_strncmp): Rewritten.
10494
10495 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
10496 returns non-zero. Otherwise return 0.
10497
10498 * include/grub/partition.h (grub_partition_map_iterate): Return
10499 int instead of void.
10500
10501 * include/grub/normal.h (grub_normal_do_completion): New prototype.
10502
10503 * include/grub/misc.h (grub_strncmp): Change the type of N to
10504 grub_size_t.
10505
10506 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
10507 of void.
10508
10509 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
fe6b695a 10510 unsigned explicitly before comparing it with I.
8de3495c 10511
10512 * kern/main.c (grub_env_write_root): Add the attribute unused into
10513 VAR.
10514
10515 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
10516 normal/completion.c.
10517 (normal_mod_SOURCES): Likewise.
10518 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
10519 (normal_mod_SOURCES): Likewise.
10520
10521 * normal/command.c (grub_iterate_commands): If ITERATE returns
10522 non-zero, return one immediately.
10523
e85e144b 105242005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
10525
10526 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
10527 * kern/i386/pc/startup.S: Updated Global Descriptor table's
10528 descriptions.
10529 (grub_vbe_get_controller_info): New function.
10530 (grub_vbe_get_mode_info): Likewise.
10531 (grub_vbe_set_mode): Likewise.
10532 (grub_vbe_get_mode): Likewise.
10533 (grub_vbe_set_memory_window): Likewise.
10534 (grub_vbe_get_memory_window): Likewise.
10535 (grub_vbe_set_scanline_length): Likewise.
10536 (grub_vbe_get_scanline_length): Likewise.
10537 (grub_vbe_set_display_start): Likewise.
10538 (grub_vbe_get_display_start): Likewise.
10539 (grub_vbe_set_palette_data): Likewise.
10540 * include/grub/i386/pc/vbe.h: New file.
10541
c46153d2 105422005-08-08 Hollis Blanchard <hollis@penguinppc.org>
10543
10544 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
10545 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
10546 * DISTLIST: Likewise.
10547 * kern/ieee1275/of.c: Moved to ...
10548 * kern/ieee1275/ieee1275.c: ... here.
10549
0cb90c45 105502005-08-08 Hollis Blanchard <hollis@penguinppc.org>
10551
10552 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
10553 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
10554 Pass 0 as `end' parameter to grub_strtoul().
10555
a19fb360 105562005-08-08 Hollis Blanchard <hollis@penguinppc.org>
10557
10558 * include/grub/powerpc/ieee1275/console.h: Do not include
10559 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
10560 ifdef.
10561 (grub_console_cur_color): Remove i386-specific prototype.
10562 (grub_console_real_putchar): Likewise.
10563 (grub_console_checkkey): Likewise.
10564 (grub_console_getkey): Likewise.
10565 (grub_console_getxy): Likewise.
10566 (grub_console_gotoxy): Likewise.
10567 (grub_console_cls): Likewise.
10568 (grub_console_setcursor): Likewise.
10569 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
10570 Include <grub/machine/console.h>.
10571 * term/ieee1275/ofconsole.c: Likewise.
10572
4ac9bd04 105732005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
10574
10575 * Makefile.in (LIBLZO): New variable.
10576
10577 * configure.ac: Check for LZO version 2.
10578
10579 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
10580 lzo/lzo1x.h instead of lzo1x.h.
10581
10582 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
10583 of -llzo.
10584
10585 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
10586 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
10587
10588 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
10589 copying the data from PARTITION to P.
10590
f4917dfd 105912005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
10592
10593 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
10594 negative, unload the module.
10595
10596 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
10597 map is "pc_partition_map" but not "pc".
10598 (usage): Fix the description. The options are --boot-image and
10599 --core-image but not --boot-file or --core-file.
10600 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
10601 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
10602 DEFAULT_DIRECTORY.
10603
10604 * util/i386/pc/grub-install.in: Do not specify --boot-file or
10605 --core-file. Specify INSTALL_DEVICE as an argument.
10606
10607 * util/console.c: Include config.h.
10608 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
10609 [HAVE_NCURSES_H]: Include ncurses.h.
10610 [HAVE_CURSES_H]: Include curses.h.
10611 [!A_NORMAL] (A_NORMAL): Defined as zero.
10612 [!A_STANDOUT] (A_STANDOUT): Likewise.
10613
10614 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
10615 -lncurses.
10616 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
10617
10618 * configure.ac: Check for curses libraries and headers.
10619
10620 * Makefile.in (LIBCURSES): New variable.
10621
10622 * genmk.rb (Script::rule): Set the executable bits.
10623
10624 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
10625 name of the PC partition map is "pc_partition_map" but not "pc".
10626
0e143073 106272005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
10628
10629 * util/i386/pc/grub-install.in (grub_probefs): New variable.
10630 (modules): Likewise.
10631 (usage): Added descriptions for --modules and --grub-probefs.
10632 Handle --modules and --grub-probefs. Save the arguments in MODULES
10633 and GRUB_PROBEFS, respectively.
10634 Auto-detect a filesystem module against GRUBDIR. If the result is
10635 empty and modules are not specified explicitly, abort the
10636 installation. Add the result to MODULES.
10637
10638 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
10639 disk/powerpc/ieee1275/ofdisk.c,
10640 include/grub/powerpc/ieee1275/init.h and
10641 term/powerpc/ieee1275/ofconsole.c.
10642 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
10643 term/ieee1275/ofconsole.c.
10644
10645 * include/grub/powerpc/ieee1275/console.h: Resurrected.
10646
10647 * COPYING: Upgraded to the latest version. Only the address of the
10648 FSF office has changed.
f19dbdb7 10649
efd6e6d5 106502005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
10651
10652 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
10653 kern/ieee1275.c with kern/ieee1275/of.c.
10654
10655 * kern/ieee1275.c: Moved to ...
10656 * kern/ieee1275/of.c: ... here.
10657
8ceafda2 106582005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
10659
10660 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
fe6b695a 10661 readability.
8ceafda2 10662
10663 * config.guess: Updated to the latest version from gnulib.
10664 * config.sub: Likewise.
10665 * install.sh: Likewise.
10666 * mkinstalldirs: Likewise.
10667
10668 * include/grub/console.h: Removed. This file is arch-specific. Do
10669 not put this in include/grub.
10670
10671 * include/grub/i386/pc/console.h: Resurrected.
10672
10673 * util/console.c: Include grub/machine/console.h instead of
10674 grub/console.h.
10675 * util/grub-emu.c: Likewise.
10676
267f6cd9 106772005-08-04 Marco Gerards <metgerards@student.han.nl>
10678
10679 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
10680 hardcoded value.
f19dbdb7 10681
267f6cd9 10682 From Vincent Pelletier <subdino2004@yahoo.fr>
10683 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
10684 Redefined to use grub_getwh.
10685 (grub_term): New member named getwh.
10686 (grub_getwh): New prototype.
10687 * kern/term.c (grub_getwh): New function.
10688 * term/i386/pc/console.c (grub_console_getwh): New function.
10689 (grub_console_term): New member `getwh'.
10690 * term/i386/pc/vga.c (grub_vga_getwh): New function.
10691 (grub_vga_term): New member `getwh'.
0b5abe02 10692 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
267f6cd9 10693 grub_ssize_t.
10694 (grub_ofconsole_getw): New function.
10695 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
10696 (grub_ofconsole_term): New field named getwh and new initial
10697 value.
10698
3be7266d 106992005-08-03 Hollis Blanchard <hollis@penguinppc.org>
10700
10701 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
10702 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
10703 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
10704 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
10705 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
10706 of <grub/machine/ieee1275.h>.
10707 * commands/ieee1275/reboot.c: Likewise.
10708 * boot/powerpc/ieee1275/ieee1275.c: Move ...
10709 * kern/ieee1275.c: ... to here. All users updated. Change all
10710 parameter structs to use new type `grub_ieee1275_cell_t'.
10711 * term/powerpc/ieee1275/ofconsole.c: Move ...
10712 * term/ieee1275/ofconsole.c: ... to here. All users updated.
10713 * disk/powerpc/ieee1275/ofdisk.c: Move ...
10714 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
10715 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
10716 to return int.
10717 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
10718 Remove unused prototypes. All users updated.
10719 * include/grub/powerpc/ieee1275/console.h: Removed.
10720 * include/grub/powerpc/ieee1275/ieee1275.h: Define
10721 `grub_ieee1275_cell_t'.
10722 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
10723 Cast comparisons with -1 to the correct type.
10724 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
10725 type to match `grub_ieee1275_entry_fn'.
10726
8b5f3938 107272005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
10728
10729 * DISTLIST: Added util/i386/pc/grub-probefs.c.
10730
10731 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
10732 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
10733 partmap/sun.c.
10734 (grub_probefs_SOURCES): New variable.
10735
10736 * util/i386/pc/grub-probefs.c: New file.
10737
10738 * util/i386/pc/grub-setup.c (main): Call
10739 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
10740 grub_hfs_init and grub_jfs_init to initialize the system. Call
10741 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
10742 grub_pc_partition_map_fini to finish the system.
10743
ea409713 107442005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
10745
10746 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
10747 function.
10748 (grub_multiboot_load_elf32): Likewise.
10749 (grub_multiboot_is_elf64): Likewise.
10750 (grub_multiboot_load_elf64): Likewise.
10751 (grub_multiboot_load_elf): Likewise.
10752 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
10753 an ELF32 or ELF64 file.
10754 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
10755
10756 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
10757 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
10758 NULL before calling FS->LABEL.
10759 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
10760 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
10761 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
10762 before calling FS->LABEL.
10763
141a288b 107642005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
10765
10766 * util/i386/pc/grub-install.in (datadir): New variable.
10767 (libdir): Removed.
10768 (pkgdatadir): New variable.
10769 (pkglibdir): Removed.
10770
0d5f8a54 107712005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
10772
10773 * DISTLIST: Added util/i386/pc/grub-install.in.
10774
10775 * util/i386/pc/grub-install.in: New file.
10776
10777 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
10778 (grub_install_SOURCES): Likewise.
10779
10780 * genmk.rb: Added support for scripts.
10781 (Script): New class.
10782 (scripts): New variable.
10783
10784 * Makefile.in (install-local): Install sbin_SCRIPTS by
10785 INSTALL_SCRIPT.
10786 (uninstall): Remove sbin_SCRIPTS.
10787
10788 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
10789 device, try to get a GRUB device by
10790 grub_util_biosdisk_get_grub_dev.
10791 Free DEST_DEV.
10792
10793 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
10794 description for --device-map.
10795
5f968e1e 107962005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
10797
10798 Change the semantics of variable hooks. They now return strings
10799 instead of error values.
f19dbdb7 10800
5f968e1e 10801 * util/i386/pc/grub-setup.c: Include grub/env.h.
10802 (setup): Use grub_device_set_root instead of grub_env_set.
10803
10804 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
10805 grub_env_get instead of grub_device_set_root and
10806 grub_device_get_root, respectively.
10807
10808 * kern/main.c (grub_env_write_root): New function.
10809 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
10810 grub_env_set instead of grub_device_set_root.
10811
10812 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
10813 many variables.
10814 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
10815 rather than calling ENV->WRITE_HOOK afterwards.
10816 (grub_env_get): Return the result of ENV->READ_HOOK rather than
10817 passing a pointer of a pointer.
10818 (grub_register_variable_hook): Change the types of "read_hook" and
10819 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
10820 respectively.
10821 Allocate the default empty string on the heap, because this string
10822 may be freed later.
10823
10824 * kern/device.c: Include grub/env.h.
10825 (grub_device_set_root): Removed.
10826 (grub_device_get_root): Likewise.
10827 (grub_device_open): Use grub_env_get instead of
10828 grub_device_get_root.
10829
10830 * include/grub/env.h (grub_env_read_hook_t): New type.
10831 (grub_env_write_hook_t): Likewise.
10832 (grub_env_var): Change the types of "read_hook" and "write_hook"
10833 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
10834 (grub_register_variable_hook): Likewise.
10835
10836 * include/grub/device.h (grub_device_set_root): Removed.
10837 (grub_device_set_root): Likewise.
10838
10839 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
10840 make sure that DIRNAME terminates with '/', so that
10841 grub_fat_find_dir will fail if PATH is not a directory.
10842
10843 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
10844 from DIRNAME.
10845 Use the qualifier auto for print_files and print_files_long.
10846 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
10847 as a regular file.
10848 Put a newline only if there is no error.
10849 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
10850 used.
10851
896f0afd 108522005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
10853
10854 * kern/partition.c (grub_partition_probe): Initialize PART to
10855 NULL. Otherwise, when no partition map is registered, this returns
10856 a garbage.
10857
b28b81b2 108582005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
10859
10860 * partmap/apple.c (apple_partition_map_iterate): Check if POS
10861 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
10862 valid.
10863
5f3607e0 108642005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
10865
10866 * commands/ls.c (grub_ls_list_disks): Print the filesystem
10867 information on each device, if it does not have partitions. Print
10868 "Device" instead of "Disk", because this function is not specific
10869 to disk devices.
10870
10871 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
10872 static to ensure that it is put on the memory rather than a
10873 register.
10874
502c87e8 108752005-07-17 Yoshinori Okuji <okuji@enbug.org>
10876
10877 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
10878 (grub_cat_init): Likewise.
10879 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
10880 (options): Likewise.
10881 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
10882 (grub_configfile_init): Likewise.
10883 * font/manager.c (GRUB_MOD_INIT): Likewise.
10884 * commands/help.c (GRUB_MOD_INIT): Likewise.
10885 (grub_help_init): Likewise.
10886 * normal/command.c (grub_command_init): Likewise.
10887 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
10888 * disk/loopback.c (grub_loop_init): Likewise.
10889 (GRUB_MOD_INIT): Likewise.
10890 * commands/ls.c (grub_ls_init): Likewise.
10891 (GRUB_MOD_INIT): Likewise.
10892 (options): Likewise.
10893 * commands/boot.c (grub_boot_init): Likewise.
10894 (GRUB_MOD_INIT): Likewise.
10895 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
10896 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
10897 (GRUB_MOD_INIT): Likewise.
10898 * commands/cmp.c (grub_cmp_init): Likewise.
10899 (GRUB_MOD_INIT): Likewise.
10900
10901 * normal/arg.c: Use <> instead of "" to include header files.
10902 (SHORT_ARG_HELP): New macro.
10903 (SHORT_ARG_USAGE): Likewise.
10904 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
10905 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
10906 descriptions.
10907 (find_short): Check if C is 'h' or 'u' explicitly.
10908 (grub_arg_show_help): Use space characters instead of tabs. Treat
10909 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
10910 are shown with --help and --usage only if they are not used for
10911 the command itself.
10912 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
10913 'h' and 'u'.
10914
10915 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
10916 const into "longarg". Change the type of "shortarg" to int.
10917
f806d18e 109182005-07-17 Yoshinori Okuji <okuji@enbug.org>
10919
10920 * boot/i386/pc/boot.S (boot_drive_check): New label.
10921
10922 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
10923 macro.
10924
10925 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
10926 which do not pass a boot drive correctly. Copied from GRUB Legacy.
10927
e293232b 109282005-07-17 Yoshinori Okuji <okuji@enbug.org>
10929
10930 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
10931 When turning off Gate A20, skip the check and return immediately,
10932 because this is not fatal usually.
10933
ebedfd00 109342005-07-17 Yoshinori Okuji <okuji@enbug.org>
10935
10936 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
10937 be 0x7C00 instead of 0x8000.
10938
10939 * boot/i386/pc/pxeboot.S: Rewritten.
10940
10941 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
10942 EXT_C.
10943 (gate_a20_check_state): Read a byte from 0x108000. Invert the
10944 result.
10945
654fc59f 109462005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
10947
10948 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
10949 robustness. This routine now supports a BIOS call and System
10950 Control Port A to modify the gate A20.
10951
10952 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
10953 Increased to 0x440.
10954
09f9923f 109552005-07-12 Hollis Blanchard <hollis@penguinppc.org>
10956
10957 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
10958 device path and resulting ihandle.
10959 (grub_ofdisk_close): dprintf the ihandle being closed.
10960 (grub_ofdisk_read): dprintf function parameters.
10961 * kern/mm.c (grub_mm_init_region): Likewise.
10962 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
10963 (grub_linux_boot): dprintf the Linux entry point, initrd address and
10964 size, and boot arguments.
10965 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
10966 before loading into memory.
10967 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
10968 before loading into memory.
10969
7ef504d8 109702005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
10971
10972 * kern/mm.c: Added much documentation.
10973 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
10974 8, set to 5 instead of 8.
10975
e0f050c2 109762005-07-10 Yoshinori Okuji <okuji@enbug.org>
10977
10978 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
10979
10980 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
10981 (grub_mkdevicemap_SOURCES): New variable.
10982
10983 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
10984 lib/device.c of GRUB Legacy.
10985
7224189a 109862005-07-10 Yoshinori Okuji <okuji@enbug.org>
10987
10988 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
10989 instead of PATH is NULL.
10990
68c864eb 109912005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
10992
10993 * commands/cmp.c (BUFFER_SIZE): New macro.
10994 (grub_cmd_cmp): Close the right file at the right time. Compare
10995 only data just read. Don't report files of different size as
10996 identical. Dynamically allocate buffers. Move variable
10997 declarations at the beginning of function.
10998
e6f3e614 109992005-07-09 Yoshinori Okuji <okuji@enbug.org>
11000
11001 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
11002 reverse.
11003
f8f1559a 110042004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
11005
11006 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
11007 when backspace is pressed at beginning of line.
11008
39c9d41d 110092005-07-03 Yoshinori Okuji <okuji@enbug.org>
11010
11011 * DISTLIST: Added genfslist.sh.
11012
11013 * normal/main.c (fs_module_list): New variable.
11014 (autoload_fs_module): New function.
11015 (read_fs_list): Likewise.
11016 (grub_normal_execute): Call read_fs_list.
11017
11018 * kern/fs.c (grub_fs_autoload_hook): New variable.
11019 (grub_fs_probe): Added support for auto-loading.
11020
11021 * include/grub/normal.h (struct grub_fs_module_list): New struct.
11022 (grub_fs_module_list_t): New type.
11023
11024 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
11025 (grub_fs_autoload_hook): New prototype.
11026
11027 * genfslist.sh: New file.
f19dbdb7 11028
39c9d41d 11029 * genmk.rb: Added a rule to generate a filesystem list.
11030
121c1d83 110312005-06-30 Marco Gerards <metgerards@student.han.nl>
11032
11033 * configure.ac: Fix the test for cross-compiling.
11034
11035 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
11036 define GRUB_UTIL anymore.
11037
11038 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
11039 so this function works on other systems than just big endian.
11040 (load_modules): Likewise.
11041 (add_segments): Likewise.
11042
e75d76e1 110432005-06-23 Hollis Blanchard <hollis@penguinppc.org>
11044
11045 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
11046 contains `l' modifier, get a long from va_arg().
11047
50b5a0a7 110482005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
11049
11050 * kern/mm.c (grub_free): If the next free block which is being
11051 merged is the first free block, set the first block to the block
11052 being freed.
11053 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
11054
89371b20 110552005-05-08 Hollis Blanchard <hollis@penguinppc.org>
11056
11057 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
11058 `grub_ieee1275_chosen'.
11059
168d6e58 110602005-05-08 Hollis Blanchard <hollis@penguinppc.org>
11061
11062 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
11063 (grub_ieee1275_chosen): New variable.
11064 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
11065 `chosen'.
11066 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
11067 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
11068 Rename first argument to `phandle' for consistency.
11069 (grub_ieee1275_get_property_length): Likewise.
11070 (grub_ieee1275_next_property): Likewise. Change type of first argument
11071 to grub_ieee1275_phandle_t.
11072 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
11073 Move export next to declaration.
11074 (grub_ieee1275_chosen): New variable.
11075 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
11076 Correct cosmetic typo.
11077 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
11078 `grub_ieee1275_chosen'.
11079 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
11080 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
11081 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
11082 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
11083 `grub_ieee1275_chosen'.
11084
ca5baa3f 110852005-05-10 Hollis Blanchard <hollis@penguinppc.org>
11086
11087 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
11088 /chosen/bootargs.
11089 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
11090 /chosen/bootargs as "variable=value" pairs.
11091
708b345f 110922005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
11093
11094 * include/grub/misc.h (grub_dprintf): New macro.
11095 (grub_real_dprintf): New prototype.
11096 (grub_strword): Likewise.
11097 (grub_iswordseparator): Likewise.
11098 * kern/misc.c (grub_real_dprintf): New function.
11099 (grub_strword): Likewise.
11100 (grub_iswordseparator): Likewise.
11101
f4c5e67c 111022005-04-30 Hollis Blanchard <hollis@penguinppc.org>
11103
11104 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
11105 (roundup): Remove macro.
11106 (grub_ieee1275_flags): Make static.
11107 (grub_ieee1275_realmode): Remove.
11108 (grub_ieee1275_test_flag): New function.
11109 (grub_ieee1275_set_flag): Likewise.
11110 (find_options): Rename to `grub_ieee1275_find_options'; update
11111 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
11112 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
11113 (cmain): New prototype.
11114 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
11115 `grub_ieee1275_flags' directly.
11116 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
11117 machine/biosdisk.h.
11118 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
11119 Don't include grub/machine/init.h.
11120 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
11121 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
11122 Remove prototype.
11123 (grub_ieee1275_realmode): Likewise.
11124 (grub_ieee1275_flag): New enum.
11125 (grub_ieee1275_test_flag): New prototype.
11126 (grub_ieee1275_set_flag): New prototype.
11127 * include/grub/powerpc/ieee1275/init.h: Remove file.
11128 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
11129 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
11130 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
11131 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
11132 comment.
11133 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
11134 `grub_ieee1275_test_flag'.
11135 (grub_ieee1275_encode_devname): Likewise.
11136
ed16607e 111372005-04-21 Hollis Blanchard <hollis@penguinppc.org>
11138
11139 * include/grub/powerpc/ieee1275/ieee1275.h
11140 (grub_ieee1275_encode_devname): New prototype.
11141 (grub_ieee1275_get_filename): Likewise.
11142 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
11143 function.
11144 (grub_set_prefix): Likewise.
11145 (grub_machine_init): Call grub_set_prefix.
11146 * kern/powerpc/ieee1275/openfw.c: Fix typos.
11147 (grub_parse_type): New enum.
11148 (grub_ieee1275_get_devargs): New function.
11149 (grub_ieee1275_get_devname): Likewise.
11150 (grub_ieee1275_parse_args): Likewise.
11151 (grub_ieee1275_get_filename): Likewise.
11152 (grub_ieee1275_encode_devname): Likewise.
11153
be369920 111542005-03-30 Marco Gerards <metgerards@student.han.nl>
11155
11156 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
11157 `grub_loader_unset'.
11158
a5ce3a4a 111592005-03-26 Hollis Blanchard <hollis@penguinppc.org>
11160
11161 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
11162 instead of grub_ieee1275_interpret.
11163 (grub_halt_init): New function.
11164 (grub_halt_fini): Likewise.
11165 (GRUB_MOD_INIT): Correct message grammar.
11166 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
11167 instead of grub_ieee1275_interpret.
11168 (grub_reboot_init): New function.
11169 (grub_reboot_fini): Likewise.
11170 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
11171 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
11172 util/i386/pc/misc.c with commands/ieee1275/halt.c,
11173 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
11174 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
11175 function.
11176 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
11177 Add prototype.
11178 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
11179 prototype.
11180 (grub_halt): Likewise.
11181 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
11182 (cmain): Remove __attribute__((unused)).
11183 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
11184 (grub_heap_len): Likewise.
11185 (grub_machine_fini): New function.
11186 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
11187 (grub_halt): Likewise.
11188 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
11189 function.
11190 * util/powerpc/ieee1275/misc.c: New file.
11191
0058f771 111922005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
11193
11194 * DISTLIST: New file.
11195 * gendistlist.sh: Likewise.
f19dbdb7 11196
0058f771 11197 * Makefile.in (COMMON_DISTFILES): Removed.
11198 (BOOT_DISTFILES): Likewise.
11199 (CONF_DISTFILES): Likewise.
11200 (DISK_DISTFILES): Likewise.
11201 (FS_DISTFILES): Likewise.
11202 (INCLUDE_DISTFILES): Likewise.
11203 (KERN_DISTFILES): Likewise.
11204 (LOADER_DISTFILES): Likewise.
11205 (TERM_DISTFILES): Likewise.
11206 (UTIL_DISTFILES): Likewise.
11207 (DISTFILES): Likewise.
11208 (uninstall): Uninstall files in $(pkgdata_DATA).
11209 (DISTLIST): New target.
11210 (distdir): Use the contents of the file DISTLIST to get a list of
11211 distributed files.
11212
46b3b8a5 112132005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
11214
11215 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
11216 descriptor. This is ported from GRUB Legacy.
11217
11218 * gencmdlist.sh: Added an extra semicolon to make it work with
11219 old sed versions. Reported by Robert Bihlmeyer
11220 <robbe@orcus.priv.at>.
11221
5822ff87 112222005-03-08 Yoshinori Okuji <okuji@enbug.org>
11223
11224 Automatic loading of commands is supported.
f19dbdb7 11225
5822ff87 11226 * normal/main.c (read_command_list): New function.
11227 (grub_normal_execute): Call read_command_list.
11228
11229 * normal/command.c (grub_register_command): Return zero or CMD.
11230 Allocate CMD->NAME from the heap.
11231 Initialize CMD->MODULE_NAME to zero.
11232 Find the same name as well. If the same command is found and it is
11233 a dummy command, overwrite members. If it is not a dummy command,
11234 return zero.
11235 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
11236 (grub_command_find): If a dummy command is found, load a module
11237 and retry to find a command only once.
11238
11239 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
11240 make sure that each command is loaded.
11241
11242 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
11243 macro.
11244 (struct grub_command): Remove const from the member `name'.
11245 Add a new member `module_name'.
11246 (grub_register_command): Return grub_command_t.
11247
11248 * commands/help.c (grub_cmd_help): Call grub_command_find to make
11249 sure that each command is loaded.
11250
11251 * genmk.rb (PModule::rule): Specify a module name without the
11252 suffix ".mod" to gencmdlist.sh.
11253
7b1f4b57 112542005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
11255
11256 * gencmdlist.sh: New file.
f19dbdb7 11257
7b1f4b57 11258 * genmk.rb (PModule::rule): Generate a rule for a command list.
11259 Clean command.lst.
11260 Generate command.lst from $(COMMANDFILES).
11261
11262 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
11263 (DATA): Added $(pkgdata_DATA).
11264 (install-local): Install files in $(pkgdata_DATA).
11265
062aaf39 112662005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
11267
11268 * term/i386/pc/vga.c (debug_command): Removed.
11269 (GRUB_MOD_INIT): Do not register the command "debug".
11270
11271 From Hollis Blanchard:
11272 * commands/configfile.c: New file.
11273 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
11274 commands/configfile.c.
11275 (pkgdata_MODULES): Added configfile.mod.
11276 (configfile_mod_SOURCES): New variable.
11277 (configfile_mod_CFLAGS): Likewise.
11278 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
11279 commands/configfile.c.
11280 (pkgdata_MODULES): Added configfile.mod.
11281 (configfile_mod_SOURCES): New variable.
11282 (configfile_mod_CFLAGS): Likewise.
11283 * util/grub-emu.c (main): Call grub_configfile_init and
11284 grub_configfile_fini.
11285 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
11286 prototype.
11287 [GRUB_UTIL] (grub_configfile_fini): Likewise.
f19dbdb7 11288
cee01aa6 112892005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
11290
11291 * normal/arg.c (grub_arg_show_help): Do not show the bug report
11292 address.
11293
11294 * commands/help.c (grub_cmd_help): Do not print newlines after
11295 the last command in print_command_help.
11296
93f3a1d8 112972005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
11298
11299 * commands/default.h: New file.
11300 * commands/timeout.h: Likewise.
11301 * normal/context.c: Likewise.
f19dbdb7 11302
93f3a1d8 11303 * util/misc.c: Do not include sys/times.h.
11304 Include sys/time.h and grub/machine/time.h.
11305 (grub_get_rtc): Rewritten with gettimeofday.
11306
11307 * util/grub-emu.c (main): Call grub_default_init and
11308 grub_timeout_init before grub_normal_init, and call
11309 grub_timeout_fini and grub_default_fini after grub_main.
11310
11311 * util/console.c (grub_ncurses_checkkey): Return the read
11312 character or -1.
11313
11314 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
11315 timeouts.
11316
11317 * normal/main.c (read_config_file): Push MENU. If this fails,
11318 print an error and wait for a user input.
11319 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
11320 If a menu is empty or an error occurs, pop MENU.
11321 (grub_normal_execute): Pop and free MENU after grub_menu_run
11322 returns.
11323
11324 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
11325
11326 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
11327 include time.h.
11328 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
11329 without GRUB_UTIL.
11330 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
11331 time.h.
11332 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
11333 without GRUB_UTIL.
11334
11335 * include/grub/normal.h (struct grub_menu_list): New struct.
11336 (grub_menu_list_t): New type.
11337 (struct grub_context): New struct.
11338 (grub_context_t): New type.
11339 (grub_register_command): Got rid of EXPORT_FUNC.
11340 (grub_unregister_command): Likewise.
11341 (grub_context_get): New prototype.
11342 (grub_context_get_current_menu): Likewise.
11343 (grub_context_push_menu): Likewise.
11344 (grub_context_pop_menu): Likewise.
11345 [GRUB_UTIL] (grub_default_init): Likewise.
11346 [GRUB_UTIL] (grub_default_fini): Likewise.
11347 [GRUB_UTIL] (grub_timeout_init): Likewise.
11348 [GRUB_UTIL] (grub_timeout_fini): Likewise.
11349
11350 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
11351 commands/timeout.c and normal/context.c.
11352 (pkgdata_MODULES): Added default.mod and timeout.mod.
11353 (normal_mod_SOURCES): Added normal/context.c.
11354 (default_mod_SOURCES): New variable.
11355 (default_mod_CFLAGS): Likewise.
11356 (timeout_mod_SOURCES): Likewise.
11357 (timeout_mod_CFLAGS): Likewise.
11358 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
11359 conf/i386-pc.rmk.
11360 (pkgdata_MODULES): Added default.mod and timeout.mod.
11361 (normal_mod_SOURCES): Added normal/context.c.
11362 (default_mod_SOURCES): New variable.
11363 (default_mod_CFLAGS): Likewise.
11364 (timeout_mod_SOURCES): Likewise.
11365 (timeout_mod_CFLAGS): Likewise.
11366
11367 * Makefile.in (all-local): Added $(MKFILES).
11368
4ed2e1dd 113692005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
11370
11371 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
11372 (grub_emu_SOURCES): Likewise.
11373 (pkgdata_MODULES): Add `sun.mod'.
11374 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
11375 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
11376 `partmap/sun.c'.
11377 (pkgdata_MODULES): Add `sun.mod'.
11378 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
11379 * include/grub/partition.h (grub_sun_partition_map_init): New
11380 prototype.
11381 (grub_sun_partition_map_fini): Likewise.
11382 * partmap/sun.c: New file.
11383 * util/grub-emu.c (main): Initialize and de-initialize the sun
11384 partitionmap support.
11385
4d4e372e 113862005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
11387
11388 This implements an Emacs-like menu entry editor.
f19dbdb7 11389
4d4e372e 11390 * normal/menu_entry.c: New file.
f19dbdb7 11391
4d4e372e 11392 * util/console.c (grub_ncurses_putchar): Translate some Unicode
11393 characters to ASCII.
11394 (saved_char): New variable.
11395 (grub_ncurses_checkkey): Rewritten completely.
11396 (grub_ncurses_getkey): Likewise.
11397 (grub_ncurses_init): Call raw instead of cbreak.
11398
11399 * normal/menu.c (print_entry): Do not put a space.
11400 (init_page): Renamed to ...
11401 (grub_menu_init_page): ... this. All callers changed.
11402 (edit_menu_entry): Removed.
11403 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
11404
11405 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
11406
11407 * kern/misc.c (grub_vprintf): Call grub_refresh.
11408
11409 * normal/menu.c (DISP_LEFT): Renamed to ...
11410 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
11411 * normal/menu.c (DISP_UP): Renamed to ...
11412 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
11413 * normal/menu.c (DISP_RIGHT): Renamed to ...
11414 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
11415 * normal/menu.c (DISP_DOWN): Renamed to ...
11416 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
11417 * normal/menu.c (DISP_HLINE): Renamed to ...
11418 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
11419 * normal/menu.c (DISP_VLINE): Renamed to ...
11420 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
11421 * normal/menu.c (DISP_UL): Renamed to ...
11422 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
11423 * normal/menu.c (DISP_UR): Renamed to ...
11424 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
11425 * normal/menu.c (DISP_LL): Renamed to ...
11426 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
11427 * normal/menu.c (DISP_LR): Renamed to ...
11428 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
11429 * normal/menu.c (TERM_WIDTH): Renamed to ...
11430 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
11431 * normal/menu.c (TERM_HEIGHT): Renamed to ...
11432 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
11433 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
11434 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
11435 * normal/menu.c (TERM_MARGIN): Renamed to ...
11436 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
11437 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
11438 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
11439 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
11440 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
11441 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
11442 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
11443 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
11444 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
11445 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
11446 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
11447 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
11448 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
11449 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
11450 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
11451 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
11452 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
11453 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
11454 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
11455 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
11456 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
11457 All callers changed.
11458
11459 * include/grub/normal.h: New prototype.
11460
11461 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
11462 normal/menu_entry.c.
11463 (normal_mod_SOURCES): Likewise.
11464 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
11465 (normal_mod_SOURCES): Likewise.
11466
e6b92c8a 114672005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
11468
11469 * include/grub/normal.h (grub_halt_init): New prototype.
11470 (grub_halt_fini): Likewise.
11471 (grub_reboot_init): Likewise.
11472 (grub_reboot_fini): Likewise.
11473
11474 * util/grub-emu.c: Include signal.h.
11475 (main_env): New global variable.
11476 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
11477 catch C-c.
11478 (grub_machine_fini): New function.
11479 (main): Call grub_halt_init and grub_reboot_init before
11480 grub_main, and grub_reboot_fini and grub_halt_fini after it.
11481 Call setjmp with MAIN_ENV to go back afterwards.
11482 Call grub_machine_fini right before return.
11483
11484 * include/grub/util/misc.h: Include setjmp.h.
11485 (main_env): New prototype.
11486
11487 * include/grub/kernel.h (grub_machine_fini): New prototype.
11488 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
11489 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
11490
11491 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
11492 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
11493 * term/i386/pc/console.c (grub_console_fini): Likewise.
f19dbdb7 11494
e6b92c8a 11495 * util/i386/pc/misc.c: New file.
f19dbdb7 11496
e6b92c8a 11497 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
11498 util/i386/pc/misc.c, commands/i386/pc/halt.c and
11499 commands/i386/pc/reboot.c.
11500
c642636f 115012005-02-14 Guillem Jover <guillem@hadrons.org>
11502
11503 * include/grub/dl.h (grub_dl_check_header): New prototype.
11504 (grub_arch_dl_check_header): Change return type to grub_err_t,
11505 remove size parameter and export function. Update all callers.
11506 * kern/dl.c (grub_dl_check_header): New function.
11507 (grub_dl_load_core): Use `grub_dl_check_header' instead of
11508 `grub_arch_dl_check_header'. Check ELF type. Check if sections
11509 are inside the core.
11510 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
11511 independent ELF header checks.
11512 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
11513 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
11514 `grub_dl_check_header' instead of explicit checks. Check for the
11515 ELF type.
11516 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
11517 `grub_dl_check_header' instead of explicit checks. Remove arch
11518 specific ELF header checks.
11519
e6b92c8a 11520 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
11521 argument SIZE.
11522
5eabe94b 115232005-02-13 Hollis Blanchard <hollis@penguinppc.org>
11524
11525 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
11526 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
11527
1b14a681 115282005-02-12 Hollis Blanchard <hollis@penguinppc.org>
11529
11530 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
f19dbdb7 11531 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
1b14a681 11532 (part_map_iterate): Clear `grub_errno' and return 0 if
f19dbdb7 11533 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
1b14a681 11534 * partmap/amiga.c (amiga_partition_map_iterate): Return
11535 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
11536 * partmap/apple.c (apple_partition_map_iterate): Likewise.
11537
aca108aa 115382005-02-01 Guillem Jover <guillem@hadrons.org>
11539
11540 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
11541 help info.
11542
c9f9c556 115432005-01-31 Marco Gerards <metgerards@student.han.nl>
11544
11545 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
11546 Removed prototype.
11547 (grub_rescue_cmd_linux): New prototype.
11548 (grub_rescue_cmd_initrd): Likewise.
11549 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
11550 `bi_rec'.
11551 (grub_linux_release_mem): Release the memory for the initrd.
11552 (grub_load_linux): Renamed from this...
11553 (grub_rescue_cmd_linux): ...To this. Changed all callers.
11554 Changed `entry' not to be static. Loop over memory regions to
11555 find another one when the default fails.
11556 (grub_rescue_cmd_initrd): New function.
11557 (grub_linux_init): Remove function.
11558 (grub_linux_fini): Likewise.
11559 (GRUB_MOD_INIT): Register `initrd'.
11560 (GRUB_MOD_FINI): Unregister `initrd'.
11561 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
11562 Function removed.
11563 (grub_linux_normal_fini): Likewise.
11564 (GRUB_MOD_INIT): Register `initrd'.
11565 (GRUB_MOD_FINI): Unregister `initrd'.
11566
990cf3aa 115672005-01-31 Marco Gerards <metgerards@student.han.nl>
11568
11569 * commands/help.c: New file.
11570 * normal/arg.c (show_help): Renamed to...
11571 (grub_arg_show_help): ... this.
11572 * commands/i386/pc/halt.c: New file.
11573 * commands/i386/pc/reboot.c: Likewise.
11574 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
11575 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
11576 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
11577 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
11578 variables.
11579 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
11580 `commands/help.c'.
11581 (pkgdata_MODULES): Add `help.mod'.
11582 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
11583 * grub/i386/pc/init.h (grub_reboot): New prototype.
11584 (grub_halt): Likewise.
11585 * include/grub/normal.h (grub_arg_show_help): New prototype.
11586 (grub_help_init): Likewise.
11587 (grub_help_fini): Likewise.
11588 * util/grub-emu.c (main): Initialize and deinitialize the help
11589 command.
11590
11591 * normal/cmdline.c (grub_cmdline_get): Doc fix.
11592
11593 * normal/command.c (grub_command_init): Fixed the description of
11594 the `set' and `unset' commands.
11595
115962005-01-31 Marco Gerards <metgerards@student.han.nl>
0f79cdc1 11597
11598 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
11599 function.
11600 * commands/ieee1275/halt.c: New file.
11601 * commands/ieee1275/reboot.c: Likewise.
11602 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
11603 `__attribute__ ((unused))'. Some GCS related fixed.
11604 (grub_suspend_init) [GRUB_UTIL]: Function removed.
11605 (grub_suspend_fini): Likewise.
11606 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
11607 and `halt.mod'.
11608 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
11609 (halt_mod_CFLAGS): New variables.
11610 * include/grub/powerpc/ieee1275/ieee1275.h
11611 (grub_ieee1275_interpret): New prototype.
11612
1ab09cc7 116132005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
11614
11615 * include/grub/misc.h (memmove): New prototype.
11616 (memcpy): Likewise.
11617
8b8cbdb2 116182005-01-22 Hollis Blanchard <hollis@penguinppc.org>
11619
11620 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
11621 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
11622
e3741a27 116232005-01-22 Marco Gerards <metgerards@student.han.nl>
11624
11625 * kern/misc.c (grub_strndup): Function rewritten.
11626
776bd780 116272005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
11628
11629 * normal/menu.c (TERM_WIDTH): Macro redefined.
11630 (TERM_TOP_BORDER_Y): Likewise.
11631 (draw_border): Replaced while-loop by a for-loop. Make the number
11632 of lines consistent with the number of lines displayed in
11633 print_entries. Added a margin below the rectangle.
11634 (print_entry): Make the entry fit in the rectangle.
11635 (print_entries): Display the scroll arrows next to the right
11636 border.
11637
78026bce 116382005-01-21 Marco Gerards <metgerards@student.han.nl>
11639
11640 * fs/minix.c (grub_minix_find_file): Reserve more space for
11641 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
11642 `grub_strncpy' to copy `path' into it.
11643
67bbaf0f 116442005-01-21 Marco Gerards <metgerards@student.han.nl>
11645
11646 Add the loopback device, a device via which files can be accessed
11647 as devices.
f19dbdb7 11648
67bbaf0f 11649 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
11650 (pkgdata_MODULES): Add loopback.mod.
11651 (loopback_mod_SOURCES): New variable.
11652 (loopback_mod_CFLAGS): Likewise.
11653 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
11654 `disk/loopback.c'.
11655 (pkgdata_MODULES): Add loopback.mod.
11656 (loopback_mod_SOURCES): New variable.
11657 (loopback_mod_CFLAGS): Likewise.
11658 * disk/loopback.c: new file.
11659 * include/grub/normal.h (grub_loop_init): New prototype.
11660 (grub_loop_fini): New prototype.
11661 * util/grub-emu.c (main): Initialize and de-initialize loopback
11662 support.
11663 * include/grub/disk.h (grub_disk_dev_id): Add
11664 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
11665
6f1c18bd 116662005-01-20 Hollis Blanchard <hollis@penguinppc.org>
11667
11668 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
11669 function.
11670 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
11671 (suspend_mod_SOURCES): New variable.
11672 (suspend_mod_CFLAGS): Likewise.
11673 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
11674 New prototype.
11675 * commands/ieee1275/suspend.c: New file.
11676
b38551da 116772005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11678
11679 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
f19dbdb7 11680 ((unused))' to `__attribute__ ((used))'.
b38551da 11681 (GRUB_MOD_FINI): Likewise.
11682 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
11683 * genmk.rb (PModule): Assign space to common symbols when linking
11684 modules.
11685
777aff39 116862005-01-20 Marco Gerards <metgerards@student.han.nl>
11687
11688 * include/grub/mm.h (grub_mm_init_region): Change the type of the
11689 `unsigned' arguments to `grub_size_t'.
11690 (grub_malloc): Likewise.
11691 (grub_realloc): Likewise.
11692 (grub_memalign): Likewise.
11693 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
11694 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
11695 * util/misc.c (grub_malloc): Likewise.
11696 (grub_realloc): Likewise.
11697 * kern/mm.c (get_header_from_pointer): Change the casts to
11698 `unsigned' into a cast to `grub_size_t'.
11699
11700 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
11701 point to `currnode' when `currnode' is changed.
11702
11703 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
11704 Schottelius <nico-linux@schottelius.org>.
11705
d0ff18e1 117062005-01-09 Hollis Blanchard <hollis@penguinppc.org>
11707
11708 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
11709 (note_path): Remove variable.
11710 (GRUB_IEEE1275_NOTE_NAME): New macro.
11711 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
11712 (grub_ieee1275_note_hdr): New structure.
11713 (grub_ieee1275_note_desc): Likewise.
11714 (grub_ieee1275_note): Likewise.
11715 (load_note): Remove `dir' argument. All callers updated. Remove
11716 `note_img' and `path'. Do not load a file from `note_path'.
11717 Initialize a struct grub_ieee1275_note and write that to `out'.
11718 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
11719
4ca7004c 117202005-01-05 Marco Gerards <metgerards@student.han.nl>
11721
11722 * util/misc.c (grub_util_read_image): Revert last change. It
11723 called `grub_util_read_at', which seeks from the beginning of the
11724 file.
11725
0b412211 117262005-01-04 Hollis Blanchard <hollis@penguinppc.org>
11727
11728 * TODO: Add note about endianness in grub-mkimage.
11729 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
11730 section.
11731 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
11732 (grub_mkimage_SOURCES): New target.
11733 * include/grub/kernel.h (grub_start_addr): Remove variable.
11734 (grub_end_addr): Likewise.
11735 (grub_total_module_size): Likewise.
11736 (grub_kernel_image_size): Likewise.
11737 (GRUB_MODULE_MAGIC): New constant.
11738 (grub_module_info): New structure.
11739 (grub_arch_modules_addr): New prototype.
11740 (grub_get_end_addr): Remove prototype.
11741 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
11742 * include/grub/powerpc/ieee1275/kernel.h: New file.
11743 * include/grub/util/misc.h (grub_util_get_fp_size): New
11744 prototype.
11745 (grub_util_read_at): Likewise.
11746 (grub_util_write_image_at): Likewise.
11747 * kern/main.c (grub_get_end_addr): Remove function.
11748 (grub_load_modules): Call grub_arch_modules_addr instead of using
11749 grub_end_addr. Look for a grub_module_info struct in memory. Use
11750 the grub_module_info fields instead of calling grub_get_end_addr
11751 as loop conditions. Move grub_add_unused_region code here.
11752 (grub_add_unused_region): Remove function.
11753 * kern/i386/pc/init.c: Include grub/cache.h.
11754 (grub_machine_init): Remove call to grub_get_end_addr. Remove
11755 one call to add_mem_region.
11756 (grub_arch_modules_addr): New function.
11757 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
11758 (grub_total_module_size): Likewise.
11759 Include grub/machine/kernel.h.
11760 (grub_arch_modules_addr): New function.
11761 * util/grub-emu.c (grub_end_addr): Remove variable.
11762 (grub_total_module_size): Likewise.
11763 (grub_arch_modules_addr): New function.
11764 * util/misc.c: Include unistd.h.
11765 (grub_util_get_fp_size): New function.
11766 (grub_util_read_at): Likewise.
11767 (grub_util_write_image_at): Likewise.
11768 (grub_util_read_image): Call grub_util_read_at.
11769 (grub_util_write_image): Call grub_util_write_image_at.
11770 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
11771 additional memory in kernel_img for a struct grub_module_info.
11772 Fill in that grub_module_info.
11773 * util/powerpc/ieee1275/grub-mkimage.c: New file.
11774
458786f8 117752005-01-03 Hollis Blanchard <hollis@penguinppc.org>
11776
11777 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
11778 New function.
11779 * include/grub/powerpc/ieee1275/ieee1275.h
11780 (grub_ieee1275_milliseconds): New prototype.
11781 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
11782 Change to 1000.
11783 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
11784 grub_ieee1275_milliseconds.
11785
ac507d1b 117862005-01-03 Hollis Blanchard <hollis@penguinppc.org>
11787
11788 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
11789 variable.
11790 (find_options): New function.
11791 (cmain): Call find_options.
11792 * include/grub/powerpc/ieee1275/ieee1275.h
11793 (grub_ieee1275_realmode): New extern variable.
11794 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
11795 grub_map if grub_ieee1275_realmode is false.
11796
6b8fd1c4 117972004-12-29 Marco Gerards <metgerards@student.han.nl>
11798
11799 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
11800 lines are inserted and make it work like readline. Reported by
11801 Vincent Pelletier <subdino2004@yahoo.fr>.
11802
8514a1e0 118032004-12-28 Marco Gerards <metgerards@student.han.nl>
11804
11805 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
11806
11807 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
11808 `kern/powerpc/cache.S'.
11809
924b6140 118102004-12-27 Marco Gerards <metgerards@student.han.nl>
11811
11812 * genmk.rb: Handle the `Program' class in the main loop. Written
11813 by Johan Rydberg <jrydberg@gnu.org>.
11814 (Program): New class.
11815 (programs): New variable.
11816 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
11817 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
11818 instead of "grub/kernel.h". Include <grub/machine/init.h>.
11819 (help_arch): Function removed.
11820 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
11821 `powerpc/libgcc.h' and `loader.h'.
11822 (pkgdata_PROGRAMS): New variable.
11823 (sbin_UTILITIES): Variable removed.
11824 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
11825 (grubof_SOURCES): Variable re-defined so it only includes the
11826 core functionality.
11827 (grubof_CFLAGS): Remove `-DGRUBOF'.
11828 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
11829 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
11830 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
11831 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
11832 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
11833 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
11834 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
11835 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
11836 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
11837 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
11838 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
11839 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
11840 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
11841 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
11842 (pc_mod_CFLAGS): New variables.
11843 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
11844 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
11845 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
11846 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
11847 Moved from here...
11848 * include/grub/i386/pc/init.h (grub_os_area_addr)
11849 (rub_os_area_size): ... to here.
11850 * include/grub/powerpc/ieee1275/ieee1275.h
11851 (grub_ieee1275_entry_fn): Export symbol.
11852 * include/grub/powerpc/ieee1275/init.h: New file.
11853 * include/grub/powerpc/libgcc.h: Likewise.
11854 * include/grub/cache.h: Likewise.
11855 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
11856 <hollis@penguinppc.org>.
11857 * kern/dl.c: Include <grub/cache.h>.
11858 (grub_dl_flush_cache): New function.
11859 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
11860 for this module.
11861 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
11862 (grub_console_init): Removed prototypes.
11863 (grub_machine_init): Don't initialize the modules anymore.
11864 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
11865 static.
11866 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
11867 Macro undef removed.
11868 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
11869 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
11870 relocation `R_PPC_REL32'. Return an error when the relocation is
11871 unknown.
11872 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
11873 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
11874 * util/misc.c (grub_arch_sync_caches): Likewise.
11875
e4b47e0c 118762004-12-19 Marco Gerards <metgerards@student.han.nl>
11877
11878 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
11879 `symlist.c', add `grubof_symlist.c'.
11880 (symlist.c): Variable removed.
11881 (grubof_HEADERS): Variable added.
11882 (grubof_symlist.c): New target.
11883 (kernel_syms.lst): Use `grubof_HEADERS' instead of
11884 `kernel_img_HEADERS'.
11885 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
11886 * kern/powerpc/dl.c: New file.
11887 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
11888 Function removed.
11889 (grub_arch_dl_relocate_symbols): Likewise.
11890 (grub_register_exported_symbols): Likewise.
11891
4ceb3636 118922004-12-13 Marco Gerards <metgerards@student.han.nl>
11893
11894 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
11895 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
11896 to fail instead. Reported by Vincent Pelletier
11897 <subdino2004@yahoo.fr>.
11898
11899 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
11900 it is not allocated. Reported by Vincent Pelletier
11901 <subdino2004@yahoo.fr>.
11902
11903 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
11904 output so the output looks better.
f19dbdb7 11905
3f1578fe 119062004-12-04 Marco Gerards <metgerards@student.han.nl>
11907
11908 Modulize the partition map support and add support for the amiga
11909 partition map.
f19dbdb7 11910
3f1578fe 11911 * commands/ls.c: Include <grub/partition.h> instead of
11912 <grub/machine/partition.h>.
11913 * kern/disk.c: Likewise.
11914 * kern/rescue.c: Likewise.
11915 * loader/i386/pc/chainloader.c: Likewise.
11916 * normal/cmdline.c: Likewise.
11917 * kern/powerpc/ieee1275/init.c: Likewise.
11918 (grub_machine_init): Call `grub_pc_partition_map_init',
11919 `grub_amiga_partition_map_init' and
11920 `grub_apple_partition_map_init'.
11921 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
11922 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
11923 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
11924 `partition.h' and `pc_partition.h'.
11925 (grub_setup_SOURCES): Remove
11926 `disk/i386/pc/partition.c'. Add `kern/partition.c',
11927 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
11928 (grub_emu_SOURCES): Likewise.
11929 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
11930 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
11931 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
11932 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
11933 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
11934 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
11935 (grubof_SOURCES): Likewise.
11936 * disk/i386/pc/partition.c: File removed.
11937 * disk/powerpc/ieee1275/partition.c: Likewise.
11938 * include/grub/powerpc/ieee1275/partition.h: Likewise.
11939 * include/grub/i386/pc/partition.h: Likewise.
11940 * kern/partition.c: New file.
11941 * partmap/amiga.c: Likewise.
11942 * partmap/apple.c: Likewise.
11943 * partmap/pc.c: Likewise.
11944 * include/grub/partition.h: Likewise..
11945 * include/grub/pc_partition.h: Likewise.
11946 * util/grub-emu.c: Include <grub/partition.h> instead of
11947 <grub/machine/partition.h>.
11948 (main): Call `grub_pc_partition_map_init',
11949 `grub_amiga_partition_map_init' and
11950 `grub_apple_partition_map_init' and deinitialize afterwards.
11951 * util/i386/pc/biosdisk.c: Include `#include
11952 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
11953 `<grub/machine/partition.h>'.
11954 * util/i386/pc/grub-setup.c: Likewise.
11955 * util/i386/pc/biosdisk.c: Likewise.
11956 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
11957 partition information in case of a PC partition.
11958 * util/i386/pc/grub-setup.c: Include `#include
11959 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
11960 `<grub/machine/partition.h>'.
11961 (setup): Only access the PC specific partition information in case
11962 of a PC partition.
11963
0ef4ced9 119642004-11-17 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 11965
0ef4ced9 11966 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
11967 (grub_longjmp): Likewise.
11968 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
11969 20.
11970 * normal/powerpc/setjmp.S: New file.
11971 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
11972 `normal/powerpc/setjmp.S'.
11973 (grubof_CFLAGS): Add `-DGRUBOF'.
11974 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
11975 [GRUB_UTIL && !GRUBOF].
f19dbdb7 11976
19950e29 119772004-11-16 Marco Gerards <metgerards@student.han.nl>
11978
11979 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
11980 property named `name'. Correctly handle the error returned by
11981 `grub_ieee1275_finddevice' if a device can not be opened.
11982
a2fea427 119832004-11-02 Hollis Blanchard <hollis@penguinppc.org>
11984
11985 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
11986 `actual' for negativity.
11987 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
11988 kern/fshelp.c.
11989
41ea0ea3 119902004-11-01 Marco Gerards <metgerards@student.han.nl>
11991
11992 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
11993 (PAGE_OFFSET): New macro.
11994 (CRTC_ADDR_PORT): Likewise.
11995 (CRTC_DATA_PORT): Likewise.
11996 (START_ADDR_HIGH_REGISTER): Likewise.
11997 (START_ADDR_LOW_REGISTER): Likewise.
11998 (GRAPHICS_ADDR_PORT): Likewise.
11999 (GRAPHICS_DATA_PORT): Likewise.
12000 (READ_MAP_REGISTER): Likewise.
12001 (INPUT_STATUS1_REGISTER): Likewise.
12002 (INPUT_STATUS1_VERTR_BIT): Likewise.
12003 (page): New variable.
12004 (wait_vretrace): New function.
12005 (set_read_map): Likewise.
12006 (set_start_address): Likewise.
12007 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
12008 the right page.
12009 (check_vga_mem): Take the page into account.
12010 (write_char): Likewise.
12011 (write_cursor): Likewise.
12012 (scroll_up): Likewise. Copy the page to the page that is not
12013 shown and switch between both pages.
12014 (grub_vga_putchar): Fix off by one error.
12015 (grub_vga_cls): Wait for the vertical retrace. Take the page into
12016 account.
12017
ad0bd20b 120182004-11-01 Marco Gerards <metgerards@student.han.nl>
12019
12020 Add support for iso9660 (including rockridge).
f19dbdb7 12021
ad0bd20b 12022 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
12023 (iso9660_mod_SOURCES): New variable.
12024 (iso9660_mod_CFLAGS): Likewise.
12025 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
12026 * include/grub/fs.h (grub_iso9660_init): New prototype.
12027 * util/grub-emu.c (main): Call `grub_iso9660_init'.
12028 * fs/iso9660.c: New file.
12029
12030 * include/grub/misc.h (grub_strncat): New prototype.
12031 * kern/misc.c (grub_strncat): New function.
f19dbdb7 12032
ad0bd20b 12033 * fs/hfs.c (grub_hfs_mount): Translate the error
12034 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
12035 * fs/jfs.c (grub_jfs_mount): Likewise.
12036 * fs/ufs.c (grub_ufs_mount): Likewise.
12037
a5477a59 120382004-10-28 Hollis Blanchard <hollis@penguinppc.org>
12039
12040 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
12041 which initialized BAT registers.
12042 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
12043 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
12044 Move from here...
12045 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
12046 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
12047 ... to here.
12048 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
12049 (grub_mapclaim): Likewise.
12050 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
12051 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
12052 hand.
12053
9304c1f8 120542004-10-19 Hollis Blanchard <hollis@penguinppc.org>
12055
12056 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
12057 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
12058 -ffreestanding and -msoft-float.
12059
86f4ae25 120602004-10-15 Hollis Blanchard <hollis@penguinppc.org>
12061
12062 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
12063 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
12064 set in grub_ieee1275_flags.
12065
38912228 120662004-10-14 Hollis Blanchard <hollis@penguinppc.org>
12067
12068 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
12069 prototype.
12070 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
12071 grub_console_init first.
12072 Change the memory range used for grub_ieee1275_claim and
12073 grub_mm_init_region.
12074 Print an error message if the claim fails.
12075 Include <grub/misc.h>.
12076
d1923dc8 120772004-10-13 Hollis Blanchard <hollis@penguinppc.org>
12078
12079 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
12080 Call grub_children_iterate for device nodes of type `scsi',
12081 `ide', or `ata'.
12082 (grub_ofdisk_open): Remove manual device alias resolution.
12083 Fix memory leak when device cannot be opened.
f19dbdb7 12084 * include/grub/powerpc/ieee1275/ieee1275.h
d1923dc8 12085 (grub_children_iterate): New prototype.
12086 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
12087 New function.
12088 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
12089 Return -1 if args.size was -1.
12090
4512e4f3 120912004-10-11 Hollis Blanchard <hollis@penguinppc.org>
12092
12093 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
12094 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
12095 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
12096 Open Firmware's memory for it; claim memory from _start to _end.
12097 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
12098 (_end): New extern.
12099 (_start): Zero BSS from __bss_start to _end.
12100 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
12101 New extern.
12102 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
12103
4d61feb0 121042004-10-11 Hollis Blanchard <hollis@penguinppc.org>
12105
ad0bd20b 12106 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
12107 -1 if args.base was -1.
4d61feb0 12108
026fa2f9 121092004-10-08 Hollis Blanchard <hollis@penguinppc.org>
12110
12111 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
12112 escape sequence instead of a literal ^L. Also call
12113 grub_ofconsole_gotoxy.
12114
9f2220ef 121152004-10-03 Hollis Blanchard <hollis@penguinppc.org>
12116
12117 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
12118 void * arguments to grub_addr_t. All callers updated. Also make
12119 the `result' argument optional.
12120 (grub_ieee1275_release): change void * arguments to grub_addr_t.
12121 All callers updated.
12122
8a572cd7 121232004-09-22 Hollis Blanchard <hollis@penguinppc.org>
12124
12125 * commands/ls.c (grub_ls_list_files): Use the string following the
12126 initial ')', if present, as the filesystem path.
12127 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
12128
12129 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
12130
18aa81f2 121312004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
12132
12133 Make the source code of the menu interface more readable.
f19dbdb7 12134
18aa81f2 12135 * normal/menu.c: Include grub/mm.h.
12136 (TERM_WIDTH): New macro.
12137 (TERM_HEIGHT): Likewise.
12138 (TERM_INFO_HEIGHT): Likewise.
12139 (TERM_MARGIN): Likewise.
12140 (TERM_SCROLL_WIDTH): Likewise.
12141 (TERM_TOP_BORDER_Y): Likewise.
12142 (TERM_LEFT_BORDER_X): Likewise.
12143 (TERM_BORDER_WIDTH): Likewise.
12144 (TERM_MESSAGE_HEIGHT): Likewise.
12145 (TERM_BORDER_HEIGHT): Likewise.
12146 (TERM_NUM_ENTRIES): Likewise.
12147 (TERM_FIRST_ENTRY_Y): Likewise.
12148 (TERM_ENTRY_WIDTH): Likewise.
12149 (TERM_CURSOR_X): Likewise.
12150 (draw_border): Use macros instead of magic numbers.
12151 (print_entry): Likewise.
12152 (print_entries): Likewise.
12153 (run_menu): Likewise. Also, handle the key 'e'.
12154 (run_menu_entry): Ignore empty command lines.
12155 (print_message): Added a new argument EDIT. If EDIT is true,
12156 print a different message.
12157 (init_page): Likewise.
12158 (edit_menu_entry): New function. Not implemented yet.
12159
b47efe30 121602004-09-17 Marco Gerards <metgerards@student.han.nl>
12161
12162 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
12163 can be loaded from normal mode.
f19dbdb7 12164
b47efe30 12165 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
12166 `multiboot.mod'.
12167 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
12168 (multiboot_mod_CFLAGS): New variables.
12169 * loader/i386/pc/linux_normal.c: New file.
f19dbdb7 12170 * loader/i386/pc/multiboot_normal.c: Likewise.
12171
b47efe30 12172 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
12173 attribute `unused'.
f19dbdb7 12174
b47efe30 12175 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
12176 `fdiro' to read the mode information from instead of `diro'.
12177
12178 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
12179 looking up a symlink.
12180
12181 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
12182 macro.
12183 * normal/command.c (grub_command_execute): Don't parse the
12184 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
12185 flags of the command.
12186
12187 * normal/menu.c (grub_menu_run): Fix typo.
12188
da75ac71 121892004-09-14 Hollis Blanchard <hollis@penguinppc.org>
12190
12191 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
12192
12193 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
12194 `y + 1' instead of `y - 1'.
12195
12196 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
f19dbdb7 12197
062b24c2 121982004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
12199
12200 From Hollis Blanchard <hollis@penguinppc.org>:
12201 * kern/misc.c (memmove): New alias for grub_memmove.
12202 (memcmp): New alias for grub_memcmp.
12203 (memset): New alias for grub_memset.
f19dbdb7 12204 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
062b24c2 12205 Change "int handle" to "grub_ieee1275_phandle_t handle".
f19dbdb7 12206 * include/grub/powerpc/ieee1275/ieee1275.h
062b24c2 12207 (grub_ieee1275_get_property): Likewise.
f19dbdb7 12208
8ddad845 122092004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
12210
12211 Added normal mode command `chainloader' as module chain.mod, which
12212 depends on normal.mod and _chain.mod.
f19dbdb7 12213
8ddad845 12214 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
12215 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
12216 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
12217 Deleted prototype.
12218 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
12219 but arguments parsing moved to ...
12220 (grub_chainloader_cmd): ... here. New function.
12221 * include/grub/i386/pc/chainloader.h: New file.
12222 * loader/i386/pc/chainloader_normal.c: Likewise.
12223
2c1f4ce3 122242004-09-11 Marco Gerards <metgerards@student.han.nl>
12225
12226 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
12227 (grub_mkimage_LDFLAGS): Likewise.
12228 (grub_emu_SOURCES): Likewise.
12229 (kernel_img_HEADERS): Added fshelp.h.
12230 * fs/ext2.c: Include <grub/fshelp.h>.
12231 (FILETYPE_REG): New macro.
12232 (FILETYPE_INO_REG): Likewise.
12233 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
12234 Changed all users.
12235 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
12236 all users.
12237 (grub_fshelp_node): New struct.
12238 (grub_ext2_data): Added member `diropen'. Changed member `inode'
12239 to a pointer.
12240 (grub_ext2_get_file_block): Removed function.
12241 (grub_ext2_read_block): New function.
12242 (grub_ext2_read_file): Replaced parameter `data' by `node'.
12243 This function was written.
12244 (grub_ext2_mount): Read the root inode. Create a diropen struct.
12245 (grub_ext2_find_file): Removed function.
12246 (grub_ext2_read_symlink): New function.
12247 (grub_ext2_iterate_dir): Likewise.
12248 (grub_ext2_open): Rewritten.
12249 (grub_ext2_dir): Rewritten.
12250 * include/grub/fshelp.h: New file.
12251 * fs/fshelp.c: Likewise.
12252
3c52136a 122532004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
12254
12255 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
12256 (print_message): Add a missing newline.
12257 (run_menu): Added timeout support.
12258 (run_menu_entry): New local function.
12259 (grub_menu_run): Added support for booting.
12260
12261 * kern/loader.c (grub_loader_is_loaded): New function.
12262
12263 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
12264 (grub_get_rtc): Exported.
12265
12266 * include/grub/i386/pc/time.h: Include grub/symbol.h.
12267 (grub_get_rtc): Exported.
12268
12269 * include/grub/normal.h (struct grub_command_list): Remove
12270 constant from the member `command'.
12271
12272 * include/grub/loader.h (grub_loader_is_loaded): Declared.
12273
12274 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
12275
12276 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
12277
aa033560 122782004-08-28 Marco Gerards <metgerards@student.han.nl>
12279
12280 Add support for the JFS filesystem.
12281
12282 * fs/jfs.c: New file.
12283 * include/grub/fs.h (grub_jfs_init): New prototype.
12284 (grub_jfs_fini): New prototype.
12285 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
12286 (grub_emu_SOURCES): Likewise.
12287 (pkgdata_MODULES): Add jfs.mod.
12288 (jfs_mod_SOURCES): New variable.
12289 (jfs_mod_CFLAGS): Likewise.
12290 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
12291 (grubof_SOURCES): Likewise.
12292 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
12293
12294 * fs/fat.c (grub_fat_find_dir): Convert the filename little
12295 endian to the host endian.
12296 (grub_fat_utf16_to_utf8): Move function from there...
12297 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
fe987087 12298 the endianness of the source string anymore.
aa033560 12299 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
12300
94bc45af 123012004-08-24 Marco Gerards <metgerards@student.han.nl>
12302
12303 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
12304 (grub_boot_fini) [GRUB_UTIL]: Likewise.
12305 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
12306 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
f19dbdb7 12307
94bc45af 12308 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
12309 (grub_hfs_iterate_dir): Make the function static. Add prototypes
12310 for `node_found' and `it_dir'.
12311 (grub_hfs_dir): Add prototype for `dir_hook'.
12312
12313 * fs/minix.c (grub_minix_get_file_block): Add prototype for
12314 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
12315 and `indir32' to silence a gcc warning.
12316
12317 * include/grub/fs.h (grub_hfs_init): New prototype.
12318 (grub_hfs_fini): Likewise.
f19dbdb7 12319
12320
97543f08 123212004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
12322
12323 Each disk device has its own id now. This is useful to make use
12324 of multiple disk devices.
f19dbdb7 12325
97543f08 12326 * include/grub/disk.h (grub_disk_dev_id): New enum.
12327 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
12328 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
12329
12330 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
12331 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
12332
12333 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
12334 GRUB_DISK_DEVICE_OFDISK_ID as an id.
12335
12336 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
12337 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
12338
12339 * include/grub/disk.h (struct grub_disk_dev): Added a new member
12340 "id" which is used by the cache manager.
12341
12342 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
12343 of just "GRUB".
12344
64372eb4 123452004-08-18 Marco Gerards <metgerards@student.han.nl>
12346
12347 * fs/hfs.c: New file.
12348 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
12349 (grub_emu_SOURCES): Likewise.
12350 (pkgdata_MODULES): Add hfs.mod.
12351 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
12352 (grubof_SOURCES): Likewise.
12353 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
12354
12355 * include/grub/misc.h (grub_strncasecmp): Add prototype.
12356 * kern/misc.c (grub_strncasecmp): Add function.
12357
cc61b58f 123582004-08-14 Marco Gerards <metgerards@student.han.nl>
12359
12360 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
12361 with parentheses.
12362
12363 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
12364 (grub_ext2_dir): In case the directory entry type is unknown, read
12365 it from the inode.
12366
0ef123f6 123672004-08-02 Peter Bruin <pjbruin@dds.nl>
12368
12369 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
12370 grub_load_linux instead of grub_rescue_cmd_linux as second
12371 argument of grub_rescue_register_command.
12372
12373 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
12374
a447c5df 123752004-07-27 Marco Gerards <metgerards@student.han.nl>
12376
12377 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
12378 function.
12379 * commands/boot.c: Remove the check for `GRUB_UTIL'.
12380 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
12381 `loader/powerpc/ieee1275/linux.c',
12382 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
12383 * include/grub/powerpc/ieee1275/ieee1275.h
12384 (grub_ieee1275_release): New prototype.
12385 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
12386 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
12387 normal, boot, linux and linux_normal.
12388 * loader/powerpc/ieee1275/linux.c: New file.
12389 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
12390
5a9e3546 123912004-07-12 Marco Gerards <metgerards@student.han.nl>
12392
12393 * normal/arg.c (grub_arg_parse): Correct error handling after
12394 reallocating the argumentlist (check if `argl' is not null instead
12395 of checking if `args' is not null).
12396 * kern/mm.c (grub_realloc): Return the same pointer when using the
12397 same region, instead of returning the header address.
12398
e15199cb 123992004-07-11 Marco Gerards <metgerards@student.han.nl>
12400
12401 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
12402 one block instead of two when looking for the initial partition.
12403 (grub_partition_probe): Initialize the local variable `p' with 0.
12404 Use base 10 for the grub_strtoul call.
12405 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
12406 need for one local variable.
12407 (grub_strtoul): Don't add the new value to `num', instead of that
12408 just assign it.
12409
020616c2 124102004-07-11 Marco Gerards <metgerards@student.han.nl>
12411
12412 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
12413 (pxeboot_img_SOURCES): New variable.
12414 (pxeboot_img_ASFLAGS): Likewise.
12415 (pxeboot_img_LDFLAGS): Likewise.
12416 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
12417 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
12418 <lode_leroy@hotmail.com>.
12419
6c51eb64 124202004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
12421
12422 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
12423 there was no input.
12424
cfb12aff 124252004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
12426
12427 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
12428 the history buffer logic.
12429
6eabba74 124302004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
12431
12432 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
12433 (FILETYPE_INO_SYMLINK): New macros.
12434 (grub_ext2_find_file): Check if the node is a directory using the
12435 inode stat information instead of using the filetype in the
12436 dirent. Exclude the first character of an absolute symlink.
12437 (grub_ext2_dir): Mask out the filetype part of the mode member of
12438 the inode.
12439
66e19ef8 124402004-05-24 Marco Gerards <metgerards@student.han.nl>
12441
12442 Add support for UFS version 1 and 2. Add support for the minix
12443 filesystem version 1 and 2, both the variants with 14 and 30 long
12444 filenames.
f19dbdb7 12445
66e19ef8 12446 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
12447 fs/minix.c.
12448 (grub_emu_SOURCES): Likewise.
12449 (pkgdata_MODULES): Add ufs.mod and minix.mod.
12450 (ufs_mod_SOURCES): New variable.
12451 (ufs_mod_CFLAGS): Likewise.
12452 (minix_mod_SOURCES): Likewise.
12453 (minix_mod_CFLAGS): Likewise.
12454 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
12455 fs/minix.c.
12456 (grubof_SOURCES): Likewise.
12457 * fs/ufs.c: New file.
12458 * fs/minix.c: New file.
12459 * include/grub/fs.h (grub_ufs_init): New prototype.
12460 (grub_ufs_fini): Likewise.
12461 (grub_minix_init): Likewise.
12462 (grub_minix_fini): Likewise.
12463 * util/grub-emu.c (main): Initialize and deinitialize UFS and
12464 minix fs.
12465
cc2e748a 124662004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
12467
12468 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
12469 commands/ls.c, commands/terminal.c, commands/boot.c,
12470 commands/cmp.c and commands/cat.c.
12471 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
12472
12473 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
12474 "env.h"
12475
4b13b216 124762004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
12477
12478 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
12479 and grub_, respectively. Because the conversion is trivial and
12480 mechanical, I omit the details here. Please refer to the CVS
12481 if you need more information.
12482
6a142551 124832004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
12484
12485 * include/pupa: Renamed to ...
12486 * include/grub: ... this.
12487 * util/i386/pc/pupa-mkimage.c: Renamed to ...
12488 * util/i386/pc/grub-mkimage.c: ... this.
12489 * util/i386/pc/pupa-setup.c: Renamed to ...
12490 * util/i386/pc/grub-setup.c: ... this.
12491 * util/pupa-emu.c: Renamed to ...
12492 * util/grub-emu.c: ... this.
12493
e56cdf21 124942004-03-29 Marco Gerards <metgerards@student.han.nl>
12495
12496 Add support for the newworld apple macintosh (PPC). This has been
12497 tested on the powerbook 2000 only. It only adds support for
12498 generic ieee1275 functions, console and disk support. This should
12499 be easy to port to other architectures with support for Open
12500 Firmware.
f19dbdb7 12501
e56cdf21 12502 * configure.ac: Accept the powerpc as host_cpu. In the case of
12503 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
12504 specific tests are only executed while building for the i386.
12505 Inverse test for crosscompile.
12506 * genmk.rb (Utility): Allow assembler files.
12507 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
12508 * conf/powerpc-ieee1275.rmk: New file.
12509 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
12510 * disk/powerpc/ieee1275/partition.c: Likewise.
12511 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
12512 * include/pupa/powerpc/ieee1275/console.h: Likewise.
12513 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
12514 * include/pupa/powerpc/ieee1275/time.h: Likewise.
12515 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
12516 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
12517 * include/pupa/powerpc/ieee1275/loader.h
12518 * include/pupa/powerpc/setjmp.h: Likewise.
12519 * include/pupa/powerpc/types.h: Likewise.
12520 * kern/powerpc/ieee1275/init.c: Likewise.
12521 * kern/powerpc/ieee1275/openfw.c: Likewise.
12522 * term/powerpc/ieee1275/ofconsole.c: Likewise.
12523
12524 These files were written by Johan Rydberg
12525 (jrydberg@night.trouble.net) and I only modified them slightly.
f19dbdb7 12526
e56cdf21 12527 * boot/powerpc/ieee1275/cmain.c: New file.
12528 * boot/powerpc/ieee1275/crt0.S: Likewise.
12529 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
12530 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
12531
8c8cc205 125322004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
12533
12534 * Makefile.in: Update copyright.
12535 * genmodsrc.sh: Likewise.
12536 * gensymlist.sh: Likewise.
12537 * term/i386/pc/vga.c: Indent correctly.
12538
12539 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
12540 bugreporting address.
12541 * util/i386/pc/pupa-setup.c (usage): Likewise,
12542 (main): Call pupa_ext2_init and pupa_ext2_fini.
12543
f19dbdb7 12544 * fs/fat.c (log2): Renamed to ...
8c8cc205 12545 (fat_log2): ... this.
12546 All callers changed.
12547 * kern/misc.c (memcpy): Alias to pupa_memmove.
12548 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
12549 lvalue cast.
12550 * util/console.c (pupa_ncurses_fini): Return 0.
12551
12552 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
12553 Move fail label here.
12554 [__GNU__]: Don't warn when using stat.
12555 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
12556 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
12557 long int. Use strtol instead of strtoul.
f19dbdb7 12558
db1771cf 125592004-03-14 Marco Gerards <metgerards@student.han.nl>
12560
12561 * commands/boot.c: New file.
12562 * commands/cat.c: Likewise.
12563 * commands/cmp.c: Likewise.
12564 * commands/ls.c: Likewise.
12565 * commands/terminal.c: Likewise.
12566 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
12567 (pupa_register_command): Changed interface to match the new
12568 argument parser.
12569 (pupa_command_execute): Changed (almost rewritten) so it uses
12570 pupa_split_command. Added support for setting variables using the
12571 syntax `foo=bar'.
12572 (rescue_command): Changed to work with the new argument parser.
12573 (terminal_command): Moved from here to commands/terminal.c.
12574 (set_command): New function.
12575 (unset_command): New function.
12576 (insmod_command): New function.
12577 (rmmod_command): New function.
12578 (lsmod_command): New function.
12579 (pupa_command_init): Don't initialize the command terminal
12580 anymore. Initialize the commands set, unset, insmod, rmmod and
12581 lsmod.
12582 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
12583 (kernel_img_HEADERS): Add arg.h and env.h.
12584 (pupa_mkimage_LDFLAGS): Add kern/env.c.
12585 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
12586 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
12587 normal/arg.c.
12588 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
12589 terminal.mod.
12590 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
12591 (boot_mod_SOURCES): New variable.
12592 (terminal_mod_SOURCES): Likewise.
12593 (ls_mod_SOURCES): Likewise.
12594 (cmp_mod_SOURCES): Likewise.
12595 (cat_mod_SOURCES): Likewise.
12596
12597 * normal/arg.c: New file.
12598 * kern/env.c: Likewise.
12599 * include/pupa/arg.h: Likewise.
12600 * include/pupa/env.h: Likewise.
12601 * font/manager.c (font_command): Changed to match argument parsing
12602 interface changes.
12603 (PUPA_MOD_INIT): Likewise.
12604 * hello/hello.c (pupa_cmd_hello): Likewise.
12605 (PUPA_MOD_INIT): Likewise.
12606 * include/pupa/disk.h: Include <pupa/device.h>.
12607 (pupa_print_partinfo): New prototype.
12608 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
12609 (pupa_dl_get_prefix): Likewise.
12610 * include/pupa/misc.h: Include <pupa/err.h>.
12611 (pupa_isgraph): New prototype.
12612 (pupa_isdigit): Likewise.
12613 (pupa_split_cmdline): Likewise.
12614 * include/pupa/normal.h: Include <pupa/arg.h>.
12615 (pupa_command): Changed the prototype of the member `func' to
12616 match the argument parsing interface. Added member `options'.
12617 (pupa_register_command): Updated to match function.
12618 (pupa_arg_parse): New prototype.
12619 (pupa_hello_init) [PUPA_UTIL]: New prototype.
12620 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
12621 (pupa_ls_init) [PUPA_UTIL]: Likewise.
12622 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
12623 (pupa_cat_init) [PUPA_UTIL]: Likewise.
12624 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
12625 (pupa_boot_init) [PUPA_UTIL]: Likewise.
12626 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
12627 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
12628 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
12629 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
12630 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
12631 * kern/disk.c: Include <pupa/file.h>.
12632 (pupa_print_partinfo): New function.
12633 * kern/dl.c: Include <pupa/env.h>.
12634 (pupa_dl_dir): Variable removed.
12635 (pupa_dl_load): Use the environment variable `prefix' instead of
12636 the variable pupa_dl_dir.
12637 (pupa_dl_set_prefix): Function removed.
12638 (pupa_dl_get_prefix): Likewise.
12639 * kern/i386/pc/init.c: Include <pupa/env.h>.
12640 (pupa_machine_init): Use the environment variable `prefix' instead of
12641 using pupa_dl_set_prefix to set the prefix.
12642 * kern/main.c: Include <pupa/env.h>.
12643 (pupa_set_root_dev): Use the environment variable `prefix' instead of
12644 using pupa_dl_get_prefix to get the prefix.
12645 * kern/misc.c: Include <pupa/env.h>.
12646 (pupa_isdigit): New function.
12647 (pupa_isgraph): Likewise.
12648 (pupa_ftoa): Likewise.
12649 (pupa_vsprintf): Added support for printing values of the type
12650 `double'. Make it possible to format variable output when using
12651 formatting like `%1.2%f'.
12652 (pupa_split_cmdline): New function.
12653 * kern/rescue.c: Include <pupa/env.h>.
12654 (next_word): Removed function.
12655 (pupa_rescue_cmd_prefix): Likewise.
12656 (pupa_rescue_cmd_set): New function.
12657 (pupa_rescue_cmd_unset): New function.
12658 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
12659 split the command line instead of splitting it here. Added
12660 support for setting variables using the syntax `foo=bar'. Don't
12661 initialize the prefix command anymore. Initialized the set and
12662 unset commands.
12663 * normal/cmdline.c: Include <pupa/env.h>.
12664 (pupa_tab_complete): Added prototypes for print_simple_completion,
12665 print_partition_completion, add_completion, iterate_commands,
12666 iterate_dev, iterate_part and iterate_dir. Moved code to print
12667 partition information from here to kern/disk.c.
fe6b695a 12668 (pupa_cmdline_run): Don't check if the function exists anymore.
db1771cf 12669 * normal/main.c: Include <pupa/env.h>.
12670 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
12671 instead of using pupa_dl_get_prefix to get the prefix.
12672 * term/i386/pc/vga.c: Include <pupa/arg.h>.
12673 (check_vga_mem): Cast pointers to `void *' to silence a gcc
12674 warning.
12675 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
12676 (pupa_vga_setcolor): Declare unused variables with `__attribute__
12677 ((unused))' to silence a gcc warning.
12678 (pupa_vga_setcolor): Likewise.
12679 (debug_command): Changed to match argument parsing
12680 interface changes.
12681 * util/pupa-emu.c: Include <pupa/env.h>.
12682 (options): Added 0's for unused fields to silence a gcc warning.
12683 (argp): Likewise.
12684 (main): Use the environment variable `prefix' instead of using
12685 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
12686 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
12687 and terminal.
12688
12689 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
12690 * util/misc.c: Include <malloc.h>.
12691 (pupa_malloc): Rewritten so errors are correctly reported.
12692 (pupa_realloc): Likewise.
12693 (pupa_memalign): Likewise.
12694 (pupa_mm_init_region): Declare unused variables with
12695 `__attribute__ ((unused))' to silence a gcc warning.
12696 * normal/i386/setjmp.S: Remove tab at the end of the file to
12697 silence a gcc warning.
12698 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
12699 variables with `__attribute__ ((unused))' to silence a gcc
12700 warning.
12701 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
12702 local variable i unsigned to silence a gcc warning.
12703
12704 * kern/term.c: Include <pupa/misc.h>.
12705 (pupa_more_lines): New variable.
12706 (pupa_more): Likewise.
12707 (pupa_putcode): When the pager is active pause at the end of every
12708 screen.
12709 (pupa_set_more): New function.
12710 * include/pupa/term.h (pupa_set_more): New prototype.
12711
12712
3b1139cb 127132004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
12714
12715 Now this project is GRUB 2 rather than PUPA. The location of
12716 the CVS repository was moved to GRUB's.
f19dbdb7 12717
3b1139cb 12718 * configure.ac: Use bug-grub as the reporting address.
12719 Use GRUB instead of PUPA.
12720 Change the version number to 1.90.
12721
8367695c 127222004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
12723
12724 * genkernsyms.sh: Updated copyright information.
12725 * genmk.rb: Likewise.
12726 * genmodsrc.sh: Likewise.
12727 * gensymlist.sh: Likewise.
12728 * boot/i386/pc/boot.S: Likewise.
12729 * boot/i386/pc/diskboot.S: Likewise.
12730 * disk/i386/pc/biosdisk.c: Likewise.
12731 * disk/i386/pc/partition.c: Likewise.
12732 * font/manager.c: Likewise.
12733 * fs/ext2.c: Likewise.
12734 * fs/fat.c: Likewise.
12735 * include/pupa/boot.h: Likewise.
12736 * include/pupa/device.h: Likewise.
12737 * include/pupa/disk.h: Likewise.
12738 * include/pupa/dl.h: Likewise.
12739 * include/pupa/elf.h: Likewise.
12740 * include/pupa/err.h: Likewise.
12741 * include/pupa/file.h: Likewise.
12742 * include/pupa/font.h: Likewise.
12743 * include/pupa/fs.h: Likewise.
12744 * include/pupa/kernel.h: Likewise.
12745 * include/pupa/loader.h: Likewise.
12746 * include/pupa/misc.h: Likewise.
12747 * include/pupa/mm.h: Likewise.
12748 * include/pupa/net.h: Likewise.
12749 * include/pupa/normal.h: Likewise.
12750 * include/pupa/rescue.h: Likewise.
12751 * include/pupa/setjmp.h: Likewise.
12752 * include/pupa/symbol.h: Likewise.
12753 * include/pupa/term.h: Likewise.
12754 * include/pupa/types.h: Likewise.
12755 * include/pupa/i386/setjmp.h: Likewise.
12756 * include/pupa/i386/types.h: Likewise.
12757 * include/pupa/i386/pc/biosdisk.h: Likewise.
12758 * include/pupa/i386/pc/boot.h: Likewise.
12759 * include/pupa/i386/pc/console.h: Likewise.
12760 * include/pupa/i386/pc/init.h: Likewise.
12761 * include/pupa/i386/pc/kernel.h: Likewise.
12762 * include/pupa/i386/pc/linux.h: Likewise.
12763 * include/pupa/i386/pc/loader.h: Likewise.
12764 * include/pupa/i386/pc/memory.h: Likewise.
12765 * include/pupa/i386/pc/multiboot.h: Likewise.
12766 * include/pupa/i386/pc/partition.h: Likewise.
12767 * include/pupa/i386/pc/time.h: Likewise.
12768 * include/pupa/i386/pc/vga.h: Likewise.
12769 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
12770 * include/pupa/util/getroot.h: Likewise.
12771 * include/pupa/util/misc.h: Likewise.
12772 * include/pupa/util/resolve.h: Likewise.
12773 * kern/device.c: Likewise.
12774 * kern/disk.c: Likewise.
12775 * kern/dl.c: Likewise.
12776 * kern/err.c: Likewise.
12777 * kern/file.c: Likewise.
12778 * kern/fs.c: Likewise.
12779 * kern/loader.c: Likewise.
12780 * kern/main.c: Likewise.
12781 * kern/misc.c: Likewise.
12782 * kern/mm.c: Likewise.
12783 * kern/rescue.c: Likewise.
12784 * kern/term.c: Likewise.
12785 * kern/i386/dl.c: Likewise.
12786 * kern/i386/pc/init.c: Likewise.
12787 * kern/i386/pc/lzo1x.S: Likewise.
12788 * kern/i386/pc/startup.S: Likewise.
12789 * loader/i386/pc/chainloader.c: Likewise.
12790 * loader/i386/pc/linux.c: Likewise.
12791 * loader/i386/pc/multiboot.c: Likewise.
12792 * normal/cmdline.c: Likewise.
12793 * normal/command.c: Likewise.
12794 * normal/main.c: Likewise.
12795 * normal/menu.c: Likewise.
12796 * normal/i386/setjmp.S: Likewise.
12797 * term/i386/pc/console.c: Likewise.
12798 * term/i386/pc/vga.c: Likewise.
12799 * util/console.c: Likewise.
12800 * util/genmoddep.c: Likewise.
12801 * util/misc.c: Likewise.
12802 * util/pupa-emu.c: Likewise.
12803 * util/resolve.c: Likewise.
12804 * util/unifont2pff.rb: Likewise.
12805 * util/i386/pc/biosdisk.c: Likewise.
12806 * util/i386/pc/getroot.c: Likewise.
12807 * util/i386/pc/pupa-mkimage.c: Likewise.
12808 * util/i386/pc/pupa-setup.c: Likewise.
12809
e6eced71 128102004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
12811
12812 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
12813 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
12814 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
12815 reading and reset it after reading.
12816 (pupa_ext2_close): Return PUPA_ERR_NONE.
12817
12818 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
12819 Correct value.
12820 (struct linux_kernel_header): Add kernel_version and
12821 initrd_addr_max.
12822 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
12823 pupa_file_read succeeds.
12824 (pupa_rescue_cmd_initrd): Implement.
12825
5aded270 128262003-12-03 Marco Gerards <metgerards@student.han.nl>
12827
12828 * fs/ext2.c (pupa_ext2_label): New function.
12829 (pupa_ext2_fs): Added label.
12830 * fs/fat.c (pupa_fat_label): New function.
12831 (pupa_fat_fs): Added label.
12832 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
12833
12834 * kern/misc.c (pupa_strndup): New function.
12835 * include/pupa/misc.h (pupa_strndup): New prototype.
12836
12837 * include/pupa/normal.h: Include <pupa/err.h>.
12838 (pupa_set_history): New prototype.
12839 (pupa_iterate_commands): New prototype.
12840 * normal/cmdline.c: Include <pupa/machine/partition.h>,
12841 <pupa/disk.h>, <pupa/file.h>.
12842 (hist_size): New variable.
12843 (hist_lines): Likewise.
12844 (hist_end): Likewise.
12845 (hist_used): Likewise.
12846 (pupa_set_history): New function.
12847 (pupa_history_get): Likewise.
12848 (pupa_history_add): Likewise.
12849 (pupa_history_replace): Likewise.
12850 (pupa_tab_complete): Likewise.
12851 (pupa_cmdline_run): Added tab completion and history buffer. Tab
12852 completion shows partitionnames while completing partitions, this
12853 feature was suggested by Jeff Bailey.
12854 * normal/command.c (pupa_iterate_commands): New function.
12855 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
12856 (pupa_normal_init): Initialize history buffer.
12857 (PUPA_MOD_INIT): Likewise.
12858 (pupa_normal_fini): Free the history buffer.
12859 (PUPA_MOD_FINI): Likewise.
12860
12861 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
12862 key.
12863
12864 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
12865 * configure.ac [i386]: Check for regparam bug.
12866 (NESTED_FUNC_ATTR) [! i386]: Defined.
12867
1f7315a3 128682003-11-17 Marco Gerards <metgerards@student.han.nl>
12869
12870 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
12871 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
12872 (pupa_emu_SOURCES): New variable.
12873 (pupa_emu_LDFLAGS): Likewise.
12874 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
12875 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
12876 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
12877 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
12878 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
12879 (pupa_jmp_buf): New typedef.
12880 (pupa_setjmp) [PUPA_UTIL]: New macro.
12881 (pupa_longjmp) [PUPA_UTIL]: Likewise.
12882 * include/pupa/term.h (struct pupa_term): New member `refresh'.
12883 (pupa_refresh): New prototype.
12884 * include/pupa/util/getroot.h: New file.
12885 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
12886 it.
12887 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
12888 (pupa_rescue_cmd_cat): Likewise.
12889 (pupa_rescue_cmd_ls): Likewise.
12890 (pupa_rescue_cmd_testload): Likewise.
12891 (pupa_rescue_cmd_lsmod): Likewise.
12892 * normal/cmdline.c (pupa_cmdline_get): Likewise.
12893 * normal/menu.c (run_menu): Likewise.
12894 * kern/term.c (pupa_cls): Likewise.
12895 (pupa_refresh): New function.
12896 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
12897 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
12898 * util/console.c: New file.
f19dbdb7 12899
1f7315a3 12900 * util/i386/pc/getroot.c: New file.
12901 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
12902 (pupa_putchar): New function.
12903 (pupa_refresh): Likewise.
12904 (xgetcwd): Function moved to ...
12905 (strip_extra_slashes): Likewise.
12906 (get_prefix): Likewise.
f19dbdb7 12907 * util/i386/pc/getroot.c: ... here.
1f7315a3 12908 (find_root_device): Function moved and renamed to...
12909 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
12910 Changed all callers.
12911 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
12912 and renamed to...
12913 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
12914 Changed all callers.
12915 * util/misc.c (pupa_memalign): New function.
12916 (pupa_mm_init_region): Likewise.
12917 (pupa_register_exported_symbols): Likewise.
12918 (pupa_putchar): Function removed.
12919 * util/pupa-emu.c: New file.
12920
9a5c1ade 129212003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
12922
12923 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
12924 (_multiboot_mod_SOURCES): New variable.
12925 (_multiboot_mod_CFLAGS): Likewise.
12926 * loader/i386/pc/multiboot.c: New file.
12927 * include/pupa/i386/pc/multiboot.h: Likewise.
12928 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
12929 (pupa_multiboot_real_boot): New function.
12930 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
12931 (pupa_multiboot_real_boot): New prototype.
12932 (pupa_rescue_cmd_multiboot): Likewise
12933 (pupa_rescue_cmd_module): Likewise.
12934
12935 * kern/loader.c (pupa_loader_set): Continue when
12936 pupa_loader_unload_func() fails.
12937 (pupa_loader_unset): New function.
12938 * include/pupa/loader.h (pupa_loader_unset): New prototype.
12939
12940 * kern/misc.c (pupa_stpcpy): New function.
12941 * include/pupa/misc.h (pupa_stpcpy): New prototype.
12942
8e72a9c0 129432003-11-12 Marco Gerards <metgerards@student.han.nl>
12944
12945 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
12946 for available extensions.
12947
12948 * include/pupa/i386/pc/time.h: New file.
12949 * kern/disk.c: Include <pupa/machine/time.h>.
12950 (PUPA_CACHE_TIMEOUT): New macro.
12951 (pupa_last_time): New variable.
12952 (pupa_disk_open): Flush the cache when there was a timeout.
12953 (pupa_disk_close): Reset the timer.
12954 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
12955 pupa_currticks.
12956 * util/misc.c: Include <sys/times.h>
12957 (pupa_get_rtc): New function.
12958
c4adbd32 129592003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
12960
12961 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
12962 as blocks.
12963 (pupa_ext2_get_file_block): Use blocks member.
12964
12965 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
12966 first block. Return -1 instead of pupa_errno on error.
12967
bfd30f06 129682003-10-27 Marco Gerards <metgerards@student.han.nl>
12969
12970 * README: In the pupa-mkimage example use _chain instead of chain
12971 and ext2 instead of fat.
12972 * TODO: Replace ext2fs with jfs as an example. Add an item for
12973 adding journal playback for ext2fs.
12974 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
12975 (pkgdata_MODULES): Added ext2.mod.
12976 (ext2_mod_SOURCES): New variable.
12977 (ext2_mod_CFLAGS): Likewise.
12978 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
12979 * include/pupa/misc.h (pupa_strncpy): New prototype.
12980 (pupa_strcat): Likewise.
12981 (pupa_strncmp): Likewise.
12982 * kern/misc.c (pupa_strcat): Enable function.
12983 (pupa_strncpy): New function.
12984 (pupa_strncmp): Likewise.
12985 * fs/ext2.c: New file.
f19dbdb7 12986
bfd30f06 12987 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
12988 when the read failed before retrying.
12989 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
12990 (_FILE_OFFSET_BITS): Likewise.
12991 * configure.ac: Added AC_SYS_LARGEFILE.
12992
98d15063 129932003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
12994
12995 * genmk.rb (PModule#rule): Make sure to get only symbol names
12996 from the output of nm.
12997 Reported by Robert Millan <zeratul2@wanadoo.es>.
12998
18d9c7cd 129992003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
13000
13001 I forgot to check in these changes for a long time. This adds
13002 incomplete support for VGA console, and this is still very
13003 buggy. Also, a lot of consideration is required for I18N,
13004 UNICODE, and VGA font issues. Therefore, assume that this is
13005 such that "better than nothing".
f19dbdb7 13006
18d9c7cd 13007 * font/manager.c: New file.
13008 * include/pupa/font.h: Likewise.
13009 * include/pupa/i386/pc/vga.h: Likewise.
13010 * term/i386/pc/vga.c: Likewise.
13011 * util/unifont2pff.rb: Likewise.
13012
13013 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
13014 (pkgdata_MODULES): Added vga.mod and font.mod.
13015 (vga_mod_SOURCES): New variables.
13016 (vga_mod_CFLAGS): Likewise.
13017 (font_mod_SOURCES): Likewise.
13018 (font_mod_CFLAGS): Likewise.
13019
13020 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
13021
13022 * include/pupa/term.h: Include pupa/err.h.
f19dbdb7 13023 (struct pupa_term): Added init and fini.
18d9c7cd 13024 Changed the argument of putchar to pupa_uint32_t.
13025
13026 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
13027 (pupa_console_real_putchar): New prototype.
13028 (pupa_console_putchar): Removed.
13029 (pupa_console_checkkey): Exported.
13030 (pupa_console_getkey): Likewise.
13031
13032 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
13033 characters.
13034
13035 * kern/term.c (pupa_term_set_current): Rewritten.
13036 (pupa_putchar): Likewise.
13037 (pupa_putcode): New function.
13038
13039 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
13040 (pupa_console_real_putchar): ... this.
13041 (pupa_vga_set_mode): New function.
13042 (pupa_vga_get_font): Likewise.
13043
13044 * normal/command.c: Include pupa/term.h.
13045 (terminal_command): New function.
13046 (pupa_command_init): Register the command "terminal".
13047
13048 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
13049 (DISP_UP): Likewise.
13050 (DISP_RIGHT): Likewise.
13051 (DISP_DOWN): Likewise.
13052 (DISP_HLINE): Likewise.
13053 (DISP_VLINE): Likewise.
13054 (DISP_UL): Likewise.
13055 (DISP_UR): Likewise.
13056 (DISP_LL): Likewise.
13057 (DISP_LR): Likewise.
13058
13059 * term/i386/pc/console.c (pupa_console_putchar): New function.
f19dbdb7 13060
977329f5 130612003-02-08 NIIBE Yutaka <gniibe@m17n.org>
13062
13063 * util/resolve.c (pupa_util_resolve_dependencies): BUG
13064 FIX. Reverse the path_list.
13065
13066 * include/pupa/normal.h: Export pupa_register_command and
13067 pupa_unregister_command.
13068
13069 * hello/hello.c (pupa_cmd_hello): New module.
13070 * conf/i386-pc.rmk: Added hello.mod.
13071
1f5ab428 130722003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
13073
13074 * kern/i386/pc/lzo1x.S: New file.
f19dbdb7 13075
1f5ab428 13076 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
13077 (compress_kernel): New variable.
13078 (generate_image): Heavily modified to support compressing a
13079 large part of the core image.
13080
13081 * util/misc.c (pupa_util_read_image): Fix a file descriptor
13082 leak.
13083 (pupa_util_load_image): New function.
13084
13085 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
13086 (pupa_compressed_size): New variable.
13087 (codestart): Enable Gate A20 here.
13088 Decompress the compressed part of the core image.
13089 Rearrange the code to put functions and variables which are
13090 required for initialization in the non-compressed part.
13091 Include lzo1x.S.
13092
13093 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
13094 here.
13095
13096 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
13097
f19dbdb7 13098 * include/pupa/i386/pc/kernel.h
1f5ab428 13099 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
13100 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
13101 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
13102 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
13103 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
13104
13105 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
13106
13107 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
13108 (Utility#rule): Likewise.
13109
13110 * configure.ac: Check if LZO is available.
13111
ce5bf700 131122003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
13113
13114 * include/pupa/normal.h: New file.
13115 * include/pupa/setjmp.h: Likewise.
13116 * include/pupa/i386/setjmp.h: Likewise.
13117 * normal/cmdline.c: Likewise.
13118 * normal/command.c: Likewise.
13119 * normal/main.c: Likewise.
13120 * normal/menu.c: Likewise.
13121 * normal/i386/setjmp.S: Likewise.
f19dbdb7 13122
ce5bf700 13123 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
13124 (pupa_rescue_cmd_initrd): Likewise.
13125
13126 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
13127 Likewise.
13128
13129 * kern/i386/pc/startup.S (translation_table): New variable.
13130 (translate_keycode): New function.
13131 (pupa_console_getkey): Call translate_keycode.
13132
13133 * kern/rescue.c (attempt_normal_mode): New function.
13134 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
13135 it failed, print a message.
13136
13137 * kern/mm.c (pupa_real_malloc): Print more information when a
13138 free magic is broken.
13139 (pupa_free): If the first free header is not free actually, set
13140 it to P.
13141
13142 * kern/main.c (pupa_load_normal_mode): Just load the module
13143 "normal".
13144 (pupa_main): Don't print the message
13145 "Entering into rescue mode..." here.
13146
13147 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
13148 Declared.
13149 (pupa_rescue_cmd_initrd): Likewise.
13150 (pupa_rescue_cmd_initrd): Likewise.
13151
13152 * include/pupa/symbol.h (FUNCTION): Specify the type.
13153 (VARIABLE): Likewise.
13154
13155 * include/pupa/err.h (pupa_err_t): Added
13156 PUPA_ERR_UNKNOWN_COMMAND.
13157
13158 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
13159 (pupa_dl_get_prefix): Likewise.
13160
13161 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
13162 Added _chain.mod and _linux.mod instead of chain.mod and
13163 linux.mod.
13164 (chain_mod_SOURCES): Renamed to ...
13165 (_chain_mod_SOURCES): ... this.
13166 (chain_mod_CFLAGS): Renamed to ...
13167 (_chain_mod_CFLAGS): ... this.
13168 (linux_mod_SOURCES): Renamed to ...
13169 (_linux_mod_SOURCES): ... this.
13170 (linux_mod_CFLAGS): Renamed to ...
13171 (_linux_mod_CFLAGS): ... this.
13172 (normal_mod_SOURCES): New variable.
13173 (normal_mod_CFLAGS): Likewise.
13174 (normal_mod_ASFLAGS): Likewise.
13175
131762003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
13177
13178 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
13179 possible.
13180
fe6b695a 13181 * kern/dl.c (pupa_dl_ref): Refer depending modules
ce5bf700 13182 recursively.
13183 (pupa_dl_unref): Unrefer depending modules recursively.
13184 Don't call pupa_dl_unload implicitly, because PUPA can crash if
13185 a module is unloaded before one depending on that module is
13186 unloaded.
13187 (pupa_dl_unload): Unload depending modules explicitly,
13188 if possible.
13189
c04da074 131902003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
13191
13192 * include/pupa/i386/pc/linux.h: New file.
13193 * loader/i386/pc/linux.c: Likewise.
f19dbdb7 13194
c04da074 13195 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
13196 Removed.
13197 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
13198 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
13199 of PUPA_CHAINLOADER_BOOT_SECTOR.
13200
13201 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
13202 (pupa_linux_prot_size): New variable.
13203 (pupa_linux_tmp_addr): Likewise.
13204 (pupa_linux_real_addr): Likewise.
13205 (pupa_linux_boot_zimage): New function.
13206 (pupa_linux_boot_bzimage): Likewise.
13207
13208 * kern/i386/pc/init.c (struct mem_region): New structure.
13209 (MAX_REGIONS): New macro.
13210 (mem_regions): New variable.
13211 (num_regions): Likewise.
13212 (pupa_os_area_addr): Likewise.
13213 (pupa_os_area_size): Likewise.
13214 (pupa_lower_mem): Likewise.
13215 (pupa_upper_mem): Likewise.
13216 (add_mem_region): New function.
13217 (compact_mem_regions): Likewise.
13218 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
13219 the size of the conventional memory and that of so-called upper
13220 memory (before the first memory hole).
13221 Instead of adding each found region to free memory, use
13222 add_mem_region and add them after removing overlaps.
13223 Also, add only 1/4 of the upper memory to free memory. The rest
13224 is used for loading OS images. Maybe this is ad hoc, but this
13225 makes it much easier to relocate OS images when booting.
13226
13227 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
13228 (pupa_enter_rescue_mode): Don't register initrd and module.
13229
13230 * kern/mm.c: Include pupa/dl.h.
13231
13232 * kern/main.c: Include pupa/file.h and pupa/device.h.
13233
13234 * kern/loader.c (pupa_loader_load_module_func): Removed.
13235 (pupa_loader_load_module): Likewise.
13236
13237 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
13238 ``.o''.
13239
13240 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
13241 (pupa_linux_tmp_addr): Likewise.
13242 (pupa_linux_real_addr): Likewise.
13243 (pupa_linux_boot_zimage): Likewise.
13244 (pupa_linux_boot_bzimage): Likewise.
13245
13246 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
13247 (pupa_upper_mem): Likewise.
13248 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
13249 module is too dangerous.
13250
13251 * include/pupa/loader.h (pupa_os_area_addr): Declared.
13252 (pupa_os_area_size): Likewise.
13253 (pupa_loader_set): Remove the first argument. Loader doesn't
13254 manage modules or initrd any longer.
13255 (pupa_loader_load_module): Removed.
13256
13257 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
13258 (linux_mod_SOURCES): New variable.
13259 (linux_mod_CFLAGS): Likewise.
13260
a13f9237 132612003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
13262
13263 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
13264 the length of a blocklist correctly.
13265
13266 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
13267 Use ioctl only if the OS file is a block device.
13268 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
13269 not very useful for normal files.
13270
13271 * kern/main.c (pupa_set_root_dev): New function.
13272 (pupa_load_normal_mode): Likewise.
13273 (pupa_main): Call those above.
13274
13275 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
13276 pupa_uint16_t.
13277
13278 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
13279
a5ffe966 132802003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
13281
13282 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
13283 (setup): Configure the installed partition information and the
13284 dl prefix.
13285
13286 * loader/i386/pc/chainloader.c (my_mod): New variable.
13287 (pupa_chainloader_unload): New function.
13288 (pupa_rescue_cmd_chainloader): Refer itself.
13289 (PUPA_MOD_INIT): Save its own module in MY_MOD.
13290
13291 * kern/i386/pc/startup.S (install_partition): Removed.
13292 (version_string): Likewise.
13293 (config_file): Likewise.
13294 (pupa_install_dos_part): New variable.
13295 (pupa_install_bsd_part): Likewise.
13296 (pupa_prefix): Likewise.
13297 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
13298
13299 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
13300 and pupa/misc.h.
13301 (make_install_device): New function.
13302 (pupa_machine_init): Set the dl prefix.
13303
13304 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
13305 (buf): Renamed to ...
13306 (linebuf): ... this.
13307 (pupa_rescue_cmd_prefix): New function.
13308 (pupa_rescue_cmd_insmod): Likewise.
13309 (pupa_rescue_cmd_rmmod): Likewise.
13310 (pupa_rescue_cmd_lsmod): Likewise.
13311 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
13312 rmmod and lsmod.
13313
13314 * kern/mm.c (pupa_memalign): If failed even after invalidating
13315 disk caches, unload unneeded modules and retry.
13316
13317 * kern/misc.c (pupa_memmove): New function.
13318 (pupa_memcpy): Removed.
13319 (pupa_strcpy): New function.
13320 (pupa_itoa): Made static.
13321
13322 * kern/dl.c (pupa_dl_iterate): New function.
13323 (pupa_dl_ref): Likewise.
13324 (pupa_dl_unref): Likewise.
13325 (pupa_dl_unload): Return if succeeded or not.
13326 (pupa_dl_unload_unneeded): New function.
13327 (pupa_dl_unload_all): Likewise.
13328 (pupa_dl_init): Renamed to ...
13329 (pupa_dl_set_prefix): ... this.
13330 (pupa_dl_get_prefix): New function.
13331
13332 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
13333 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
13334 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
13335 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
13336 (pupa_install_dos_part): Declared.
13337 (pupa_install_bsd_part): Likewise.
13338 (pupa_prefix): Likewise.
13339 (pupa_boot_drive): Likewise.
13340
13341 * include/pupa/types.h: Fix a typo.
13342
13343 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
13344 pupa_memmove.
13345 (pupa_memmove): Declared.
13346 (pupa_strcpy): Likewise.
13347
13348 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
13349 pupa_mod_init takes one argument, its own module.
13350 (pupa_dl_unload_unneeded): Declared.
13351 (pupa_dl_unload_all): Likewise.
13352 (pupa_dl_ref): Likewise.
13353 (pupa_dl_unref): Likewise.
13354 (pupa_dl_iterate): Likewise.
13355 (pupa_dl_init): Renamed to ...
13356 (pupa_dl_set_prefix): ... this.
13357 (pupa_dl_get_prefix): Declared.
13358
13359 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
f19dbdb7 13360 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
a5ffe966 13361 unloaded.
13362 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
13363 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
13364
13365 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
13366 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
13367
012d7999 133682003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
13369
13370 * util/i386/pc/pupa-setup.c (setup): Define the internal
13371 function find_first_partition_start at the top level, because GCC
13372 3.0.x cannot compile internal functions in deeper scopes
13373 correctly.
13374 (find_root_device): Use lstat instead of stat.
13375 Don't follow symbolic links.
13376 Fix the path-constructing code.
13377
13378 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
13379 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
13380 by a BLKGETSIZE ioctl first, because block devices don't fill
13381 the member st_mode of the structure stat on Linux.
13382 [__linux__] (linux_find_partition): Use a temporary buffer
13383 REAL_DEV for the working space. Copy it to DEV before returning.
13384 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
13385 buffer cache consistent.
13386 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
13387 strncmp. The previous value was merely wrong.
13388 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
13389
13390 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
13391 FAT size is 12. The previous value was merely wrong.
13392
13393 * kern/main.c (pupa_main): Don't split the starting message from
13394 newlines.
13395
13396 * kern/term.c (pupa_putchar): Put CR after LF instead of before
13397 LF, because BIOS goes crazy about character attributes in this
13398 case.
13399
1cc73a62 134002003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
13401
13402 * include/i386/pc/util/biosdisk.h: New file.
13403 * util/i386/pc/biosdisk.c: Likewise.
13404 * util/i386/pc/pupa-setup.c: Likewise.
f19dbdb7 13405
1cc73a62 13406 * Makefile.in (INCLUDE_DISTFILES): Added
13407 include/pupa/i386/pc/util/biosdisk.h.
13408 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
13409 directory util/i386/pc.
13410 (install-local): Added a rule for sbin_UTILITIES.
13411 (uninstall): Likewise.
13412
13413 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
13414
13415 * util/misc.c (xrealloc): New function.
13416 (pupa_malloc): Likewise.
13417 (pupa_free): Likewise.
13418 (pupa_realloc): Likewise.
13419 (pupa_stop): Likewise.
13420 (pupa_putchar): Likewise.
13421
13422 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
13423
13424 * include/pupa/util/misc.h (xrealloc): Declared.
13425
13426 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
13427 macro.
13428 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
13429 (PUPA_BOOT_MACHINE_BPB_END): ... this.
13430
13431 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
13432 [PUPA_UTIL] (pupa_fat_fini): Likewise.
13433
13434 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
13435 way should be implemented.
13436 [PUPA_UTIL] (pupa_fat_fini): Likewise.
13437
13438 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
13439 the size of NAME for safety.
13440 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
13441 0x88.
13442
13443 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
13444 (pupa_setup_SOURCES): Likewise.
13445
13446 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
13447
08b70fe8 134482002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
13449
13450 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
13451 bunch of pushl's from pusha, because this destroys the return
13452 value.
13453
62ddcc8f 134542002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
13455
13456 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
13457 This means that any missing prototypes could be fatal. Also, you
13458 must take care when writing assembly code. See the comments at
13459 the beginning of startup.S, for more details.
f19dbdb7 13460
62ddcc8f 13461 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
13462 compilation mechanism.
13463 (pupa_chainloader_real_boot): Likewise.
13464 (pupa_biosdisk_rw_int13_extensions): Likewise.
13465 (pupa_biosdisk_rw_standard): Likewise.
13466 (pupa_biosdisk_check_int13_extensions): Likewise.
13467 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
13468 (pupa_biosdisk_get_diskinfo_standard): Likewise.
13469 (pupa_get_memsize): Likewise.
13470 (pupa_get_mmap_entry): Likewise.
13471 (pupa_console_putchar): Likewise.
13472 (pupa_console_setcursor): Likewise.
13473 (pupa_getrtsecs): Use pushl instead of push.
13474
13475 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
13476 memory instead of the stack for a mmap entry, because some
13477 BIOSes may ignore the maximum size and overflow.
13478
13479 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
13480
13481 * genmk.rb (PModule#rule): Compile automatically generated
13482 sources with module-specific CFLAGS as well as other sources.
13483
9962ed99 134842002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
13485
13486 * configure.ac: Check ld.
13487 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
13488 respectively, before checking endianness and sizes.
13489
13490 * Makefile.in (LD): New variable.
f19dbdb7 13491
abdfc3c5 134922002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
13493
13494 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
13495
6a161fa9 134962002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
13497
13498 * Changelog: New file.
13499