]> git.proxmox.com Git - grub2.git/blame - ChangeLog
2008-11-12 Robert Millan <rmh@aybabtu.com>
[grub2.git] / ChangeLog
CommitLineData
976b07d0 12008-11-12 Robert Millan <rmh@aybabtu.com>
2
3 Fix build problems on i386-ieee1275 and *-efi (introduced by vga_text
4 split).
5
6 * include/grub/i386/pc/console.h: Include `<grub/i386/vga_common.h>'.
7 (grub_console_cur_color, grub_console_real_putchar)
8 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
9 (grub_console_setcolorstate, grub_console_setcolor)
10 (grub_console_getcolor): Move from here ...
11 * include/grub/i386/vga_common.h: ... to here (new file).
12
13 * term/i386/pc/vga_text.c: Replace `<grub/machine/console.h>' with
14 `<grub/i386/vga_common.h>' and `<grub/cpu/io.h>' with
15 `<grub/i386/io.h>'.
16 * term/i386/vga_common.c: Replace `<grub/machine/console.h>' with
17 `<grub/i386/vga_common.h>'.
18
76679cd3 192008-11-12 Robert Millan <rmh@aybabtu.com>
20
21 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `term/i386/vga_common.c'.
22 * conf/i386.rmk (pkglib_MODULES): Add `vga_text.mod'.
23 (vga_text_mod_SOURCES, vga_text_mod_CFLAGS, vga_text_mod_LDFLAGS): New
24 variables.
25 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
26 `term/i386/pc/console.c' with `term/i386/vga_common.c'.
27
28 * kern/i386/coreboot/init.c (grub_machine_init): Replace call to
29 grub_console_init() with call to grub_vga_text_init().
30 (grub_machine_fini): Replace call to
31 grub_console_fini() with call to grub_vga_text_fini() and
32 grub_at_keyboard_fini().
33
34 * include/grub/i386/pc/console.h: Include `<grub/term.h>'.
35 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
36 (grub_console_setcolorstate, grub_console_setcolor)
37 (grub_console_getcolor): New function prototypes.
38
39 * term/i386/pc/vga_text.c: Include `<grub/dl.h>'.
40 (grub_vga_text_getxy, grub_vga_text_gotoxy, grub_vga_text_cls)
41 (grub_vga_text_setcursor): Static-ize.
42 (grub_vga_text_term): New structure.
43 (GRUB_MOD_INIT(vga_text), GRUB_MOD_FINI(vga_text)): New functions.
44
45 * term/i386/pc/console.c: Remove `<grub/machine/machine.h>'.
46 (grub_console_cur_color, grub_console_standard_color)
47 (grub_console_normal_color, grub_console_highlight_color)
48 (map_char, grub_console_putchar, grub_console_getcharwidth)
49 (grub_console_getwh, grub_console_setcolorstate, grub_console_setcolor)
50 (grub_console_getcolor): Move from here ...
51 * term/i386/vga_common.c: ... to here (same function names).
52
95b841d3 532008-11-12 Robert Millan <rmh@aybabtu.com>
54
55 Use newly-added Multiboot support in coreboot.
56
57 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
58 `kern/i386/coreboot/mmap.c' with `kern/i386/multiboot_mmap.c'.
59
60 * kern/i386/coreboot/startup.S: Enable Multiboot header, fix its
61 alignment, set `MULTIBOOT_MEMORY_INFO' flag.
62 (codestart): Store the MBI in `startup_multiboot_info' when we're
63 being loaded using Multiboot.
64
65 * kern/i386/coreboot/init.c (grub_machine_init): Move
66 grub_at_keyboard_init() call to beginning of function (useful for
67 debugging). Call grub_machine_mmap_init() before attempting to use
68 grub_machine_mmap_iterate().
69 (grub_lower_mem, grub_upper_mem): Move from here ...
70 * kern/i386/multiboot_mmap.c (grub_lower_mem, grub_upper_mem): ... to
71 here (new file).
72
73 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_init): New
74 function prototype.
75
761ca975 762008-11-12 Robert Millan <rmh@aybabtu.com>
77
78 Fix a regression introduced by the at_keyboard.mod split. Because
79 some terminals are default on some platforms and non-default on
80 others, the first terminal being registered determines which is
81 going to be default.
82
83 * kern/term.c (grub_term_register_input): If this is the first
84 terminal being registered, set it as the current one.
85 (grub_term_register_output): Likewise.
86
87 * term/efi/console.c (grub_console_init): Do not call
88 grub_term_set_current_output() or grub_term_set_current_input().
89 * term/ieee1275/ofconsole.c (grub_console_init): Likewise.
90 * term/i386/pc/console.c (grub_console_init): Likewise.
91 (grub_console_fini): Do not call grub_term_set_current_input()
92 (but leave grub_term_set_current_output() to restore text mode).
93
6c529df7 942008-11-10 Robert Millan <rmh@aybabtu.com>
95
96 * util/grub.d/00_header.in: Add backward compatibility check for
97 versions of terminal.mod that don't understand `terminal_input' or
98 `terminal_output'.
99
132e4113 1002008-11-09 Robert Millan <rmh@aybabtu.com>
101
102 * commands/terminal.c (GRUB_MOD_FINI(terminal)): Unregister
103 `terminal_input' / `terminal_output', not `terminal'.
104
ac293d50 1052008-11-08 Robert Millan <rmh@aybabtu.com>
106
107 * Makefile.in (include_DATA): Fix srcdir=. assumption.
2a9c5940 108 (DISTCLEANFILES): Add `build_env.mk'.
ac293d50 109
0025933a 1102008-11-08 Robert Millan <rmh@aybabtu.com>
111
112 * term/i386/pc/vesafb.c (grub_vesafb_term): Change type to
dba3f844 113 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
0025933a 114 members. Update all users.
115 * util/console.c (grub_ncurses_term): Split in ...
116 (grub_ncurses_term_input): ... this, and ...
117 (grub_ncurses_term_output): ... this. Update all users.
dcb6fa0a 118 * term/ieee1275/ofconsole.c: Remove stale `#endif'.
0025933a 119
37c86336 1202008-11-08 Robert Millan <rmh@aybabtu.com>
121
122 * Makefile.in (PKGLIB): Add $(pkglib_BUILDDIR).
123 (PKGDATA): Add $(pkgdata_SRCDIR).
124 (pkglib_BUILDDIR): New variable.
125 (pkgdata_SRCDIR): New variable.
126 (build_env.mk): New target.
127 (include_DATA): New variable.
128 (install-local): Install $(include_DATA) files in $(includedir).
129
b6c15a2d 1302008-11-07 Pavel Roskin <proski@gnu.org>
131
d99d46f1 132 * gendistlist.sh: Use C locale for sorting to ensure consistent
133 output on all systems.
134
b6c15a2d 135 * util/grub.d/00_header.in: Remove incorrect space before
136 "serial".
137
c32ee8c9 1382008-11-07 Robert Millan <rmh@aybabtu.com>
139
140 * include/multiboot2.h (struct multiboot_header): Add `flags' member as
141 per specification.
142 * loader/multiboot2.c (grub_multiboot2): Fix Multiboot2 header check.
143 * loader/multiboot_loader.c (find_multi_boot2_header): New function
144 (based on find_multi_boot1_header).
145 (grub_rescue_cmd_multiboot_loader): Check for Multiboot2 header,
146 using find_multi_boot2_header(), and abort if neither Multiboot or
147 Multiboot headers were found.
148
651c29b7 1492008-11-07 Robert Millan <rmh@aybabtu.com>
150
151 Modularize at_keyboard.mod:
152
153 * conf/i386.rmk (pkglib_MODULES): Add `at_keyboard.mod'.
154 (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS)
155 (at_keyboard_mod_LDFLAGS): New variables.
156
157 Actual terminal split:
158
159 * include/grub/term.h (struct grub_term): Split in ...
160 (struct grub_term_input): ... this, and ...
161 (struct grub_term_output): ... this. Update all users.
162 (grub_term_set_current): Split in ...
163 (grub_term_set_current_input): ... this, and ...
164 (grub_term_set_current_output): ... this.
165 (grub_term_get_current): Split in ...
166 (grub_term_get_current_input): ... this, and ...
167 (grub_term_get_current_output): ... this.
168 (grub_term_register): Split in ...
169 (grub_term_register_input): ... this, and ...
170 (grub_term_register_output): ... this.
171 (grub_term_unregister): Split in ...
172 (grub_term_unregister_input): ... this, and ...
173 (grub_term_unregister_output): ... this.
174 (grub_term_iterate): Split in ...
175 (grub_term_iterate_input): ... this, and ...
176 (grub_term_iterate_output): ... this.
177
178 * kern/term.c (grub_term_list): Split in ...
179 (grub_term_list_input): ... this, and ...
180 (grub_term_list_output): ... this. Update all users.
181 (grub_cur_term): Split in ...
182 (grub_cur_term_input): ... this, and ...
183 (grub_cur_term_output): ... this. Update all users.
184 (grub_term_set_current): Split in ...
185 (grub_term_set_current_input): ... this, and ...
186 (grub_term_set_current_output): ... this.
187 (grub_term_get_current): Split in ...
188 (grub_term_get_current_input): ... this, and ...
189 (grub_term_get_current_output): ... this.
190 (grub_term_register): Split in ...
191 (grub_term_register_input): ... this, and ...
192 (grub_term_register_output): ... this.
193 (grub_term_unregister): Split in ...
194 (grub_term_unregister_input): ... this, and ...
195 (grub_term_unregister_output): ... this.
196 (grub_term_iterate): Split in ...
197 (grub_term_iterate_input): ... this, and ...
198 (grub_term_iterate_output): ... this.
199
200 * kern/misc.c (grub_abort): Split use of grub_term_get_current() into
201 a check for input and one for output (and only attempt to get keys
202 from user when input works).
203
204 * util/grub-probe.c (grub_term_get_current): Split in ...
205 (grub_term_get_current_input): ... this, and ...
206 (grub_term_get_current_output): ... this.
207 * util/grub-fstest.c: Likewise.
208 * util/i386/pc/grub-setup.c: Likewise.
209 * util/grub-editenv.c: Likewise.
210
211 Portability adjustments:
212
213 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Remove
214 `term/i386/pc/at_keyboard.c'.
215 * kern/ieee1275/init.c [__i386__] (grub_machine_init): Remove call to
216 grub_keyboard_controller_init() (now handled by terminal .init).
217 * kern/i386/coreboot/init.c (grub_machine_init): Add call to
218 grub_at_keyboard_init().
219 * include/grub/i386/ieee1275/console.h (grub_keyboard_controller_init)
220 (grub_console_checkkey, grub_console_getkey): Remove (now provided by
221 at_keyboard.mod via input terminal interface).
222 * include/grub/i386/coreboot/console.h: Convert into a stub for
223 `<grub/i386/pc/console.h>'.
224
225 Migrate full terminals to new API:
226
227 * term/efi/console.c (grub_console_term): Split into ...
228 (grub_console_term_input): ... this, and ...
229 (grub_console_term_output): ... this. Update all users.
230 * term/ieee1275/ofconsole.c: Remove __i386__ hack.
231 (grub_ofconsole_init): Split into ...
232 (grub_ofconsole_init_input): ... this, and ...
233 (grub_ofconsole_init_output): ... this.
234 (grub_ofconsole_term): Split into ...
235 (grub_ofconsole_term_input): ... this, and ...
236 (grub_ofconsole_term_output): ... this. Update all users.
237 * term/i386/pc/serial.c (grub_serial_term): Split into ...
238 (grub_serial_term_input): ... this, and ...
239 (grub_serial_term_output): ... this. Update all users.
240 * term/i386/pc/console.c (grub_console_term): Split into ...
241 (grub_console_term_input): ... this, and ...
242 (grub_console_term_output): ... this. Update all users.
243 (grub_console_term_input): Only enable it on PC/BIOS platform.
244 (grub_console_init): Remove grub_keyboard_controller_init() call.
245
246 Migrate input terminals to new API:
247
248 * term/i386/pc/at_keyboard.c: Replace `cpu' and `machine' with
249 `i386' and `i386/pc' to enable build on x86_64 (this driver is
250 i386-specific anyway).
251 (grub_console_checkkey): Rename to ...
252 (grub_at_keyboard_checkkey): ... this. Static-ize. Update all
253 users.
254 (grub_keyboard_controller_orig): New variable.
255 (grub_console_getkey): Rename to ...
256 (grub_at_keyboard_getkey): ... this. Static-ize. Update all
257 users.
258 (grub_keyboard_controller_init): Static-ize. Save original
259 controller value so that it can be restored ...
260 (grub_keyboard_controller_fini): ... here (new function).
261 (grub_at_keyboard_term): New structure.
262 (GRUB_MOD_INIT(at_keyboard), GRUB_MOD_FINI(at_keyboard)): New
263 functions.
264
265 Migrate output terminals to new API:
266
267 * term/i386/pc/vga.c (grub_vga_term): Change type to
268 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
269 members. Update all users.
270 * term/gfxterm.c (grub_video_term): Change type to
271 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
272 members. Update all users.
273 * include/grub/i386/pc/console.h (grub_console_checkkey)
274 (grub_console_getkey): Do not export (no longer needed by gfxterm,
275 etc).
276
277 Migrate `terminal' command and userland tools to new API:
278
279 * commands/terminal.c (grub_cmd_terminal): Split into ...
280 (grub_cmd_terminal_input): ... this, and ...
281 (grub_cmd_terminal_output): ... this.
282 (GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands:
283 `terminal_input' and `terminal_output'.
284 * util/grub.d/00_header.in: Adjust `terminal' calls to new
285 `terminal_input' / `terminal_output' API.
286 * util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and
287 ${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user
288 provided ${GRUB_TERMINAL}, convert it).
289
96e5d876 2902008-11-04 Robert Millan <rmh@aybabtu.com>
291
292 * util/grub.d/10_freebsd.in: New file. Generate grub configuration
293 for FreeBSD.
294 * conf/common.rmk (grub-mkconfig_SCRIPTS): Add 10_freebsd.
295
556f3775 2962008-11-03 Bean <bean123ch@gmail.com>
297
298 * kern/elf.c (grub_elf32_load): Revert to previous code.
299 (grub_elf64_load): Likewise.
300
301 * loader/i386/bsd.c (grub_bsd_elf32_hook): Change return address.
302
926b9823 3032008-11-01 Robert Millan <rmh@aybabtu.com>
304
305 * Makefile.in (CPPFLAGS): Fix builddir=. assumption.
306 (TARGET_CPPFLAGS): Likewise.
307 * genmk.rb (mod_src): Fix builddir=. and srcdir=. assumptions.
308
1432e958 3092008-11-01 Carles Pina i Estany <carles@pina.cat>
310
311 * normal/menu.c (run_menu): Add Previous and Next Page keys in menu.
312
dba3f844 3132008-10-29 Guillem Jover <guillem.jover@nokia.com>
de4fa71c 314
315 * disk/lvm.c (grub_lvm_scan_device): Fix error recovery by delaying the
316 addition of objects until the code is not going to be able to fail.
317
dba3f844 3182008-10-29 Guillem Jover <guillem.jover@nokia.com>
b7279447 319
320 * disk/lvm.c (grub_lvm_scan_device): Fix possible NULL value handling
321 (add a missing NULL check, and correct them by moving the pointer
322 operations after the actual check).
323
7ab28c21 3242008-10-29 Robert Millan <rmh@aybabtu.com>
325
326 * util/i386/pc/grub-install.in: Handle empty string as output from
327 make_system_path_relative_to_its_root().
328
1b7748eb 3292008-10-05 Hans Lambermont <hans@lambermont.dyndns.org>
330
331 * disk/lvm.c (grub_lvm_scan_device): Allocate buffer space for the
332 circular metadata worst case scenario. If the metadata is circular
333 then copy the wrap in place.
334 * include/grub/lvm.h: Add GRUB_LVM_MDA_HEADER_SIZE, from the LVM2
335 project lib/format_text/layout.h
336 Circular metadata bug found and patch debugged by Jan Derk Gerlings.
337
c9618ab2 3382008-10-03 Felix Zielcke <fzielcke@z-51.de>
339
7a36edca 340 * util/i386/pc/grub-install.in: Source grub-mkconfig_lib instead of update-grub_lib.
c9618ab2 341
bf981c62 3422008-10-03 Felix Zielcke <fzielcke@z-51.de>
343
344 * util/update-grub_lib.in: Mention filename in warning message.
345
6d994591 3462008-09-29 Felix Zielcke <fzielcke@z-51.de>
347
348 * NEWS: Update for rename of update-grub to grub-mkconfig.
349
18ade780 3502008-09-29 Felix Zielcke <fzielcke@z-51.de>
351
352 * util/update-grub_lib.in: Copy to ...
353 * util/grub-mkconfig_lib.in: ... this. Update all users.
354 * util/update-grub_lib.in: Make it a stub to `grub-mkconfigig_lib.in'.
355 * util/update-grub.in: Rename to ...
356 * util/grub-mkconfig.in: ... this. Update all users. Remove `-y'
357 option. Add `--output' option to allow users to specify the generated
358 configuration file. Default to stdout.
359 (update_grub_dir): Rename to ...
360 (grub_mkconfig_dir): ... this.
361 (grub_cfg): Default to an empty string.
362 * conf/common.rmk (update-grub): Rename to ...
363 (grub-mkconfig): ... this.
364 (update-grub_lib): Copy to ...
365 (grub-mkconfig_lib): ... this.
366 (update-grub_SCRIPTS): Copy to ...
367 (grub-mkconfig_SCRIPTS): ... this. Update all users.
368 (update-grub_DATA): Rename to ...
369 (grub-mkconfig_DATA): ... this.
370
556ce6ac 3712008-09-28 Robert Millan <rmh@aybabtu.com>
372
373 * fs/iso9660.c (struct grub_iso9660_primary_voldesc): Rename `created'
374 to `modified'. Add the real `created' field.
375 (grub_iso9660_uuid): Use `modified' rather than `created' for
376 constructing the UUID.
377
3782008-09-28 Felix Zielcke <fzielcke@z-51.de>
eb079ba9 379
380 fs/jfs.c (grub_jfs_find_file): Treat multiple slashes like one.
381 Based on code from Tomas Ebenlendr <ebik@ucw.cz>.
382
92274e85 3832008-09-28 Bean <bean123ch@gmail.com>
384
385 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a bug in the previous patch.
386 Thanks to Christian Franke for finding this bug.
387
add6f17a 3882008-09-25 Robert Millan <rmh@aybabtu.com>
389
390 * util/grub-mkdevicemap.c (make_device_map): Actually replace all
391 instances of grub_util_get_disk_name() (see previous commit).
392
d2a367b8 3932008-09-25 Robert Millan <rmh@aybabtu.com>
394
395 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Remove
396 `util/i386/get_disk_name.c'.
397 * conf/i386-efi.rmk: Likewise.
398 * conf/x86_64-efi.rmk: Likewise.
399 * conf/i386-coreboot.rmk: Likewise.
400 * conf/i386-ieee1275.rmk: Likewise.
401 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Remove
402 `util/ieee1275/get_disk_name.c'.
403 * include/grub/util/misc.h (grub_util_get_disk_name): Remove.
404 * util/ieee1275/get_disk_name.c: Remove file.
405 * util/i386/get_disk_name.c: Remove file.
406 * util/grub-mkdevicemap.c (make_device_map): Back to hardcoding
407 "hd%d" for device.map entries, rather than using
408 grub_util_get_disk_name().
409
81a06771 4102008-09-24 Carles Pina i Estany <carles@pina.cat>
b0c301f7 411
412 * disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Fix `unused parameter'
413 warning.
414 * commands/i386/pc/pxecmd.c (dmraid_nvidia): Likewise.
415
5a004279 4162008-09-24 Carles Pina i Estany <carles@pina.cat>
417
418 * include/grub/i386/pc/console.h (GRUB_TERM_NPAGE):
419 Changed to 0x5100.
420 (GRUB_TERM_PPAGE): Changed to 0x4900.
421
397093d3 4222008-09-24 Robert Millan <rmh@aybabtu.com>
423
424 * include/grub/powerpc/ieee1275/console.h (GRUB_CONSOLE_KEY_*): Remove
425 macros (they were i386-pc specific).
426 * include/grub/sparc64/ieee1275/console.h: Likewise.
427 * include/grub/efi/console.h: Likewise.
428
a91b6c7c 4292008-09-22 Bean <bean123ch@gmail.com>
430
431 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a rare case where $BITMAP is
432 resident and in attribute list.
433
434 * include/grub/ntfs.h (BMP_LEN): Removed.
435
c40fd116 4362008-09-22 Bean <bean123ch@gmail.com>
437
81a06771 438 * disk/ata.c (grub_atapi_open): Initialize devfnd, no need to set
c40fd116 439 scsi->name and scsi->luns, as they will be set in grub_scsi_open.
440
441 * disk/scsi.c (grub_scsi_open): Don't call p->close (scsi) here when
442 error occurs, as grub_disk_open will call grub_disk_close, which will
443 call p->close (scsi).
444
81a06771 4452008-09-21 Felix Zielcke <fzielcke@z-51.de>
eb73121d 446
447 * configure.ac (AC_INIT): Quote `GRUB' string and version number.
448 (AC_PREREQ): Bumped to 2.59.
449 (AC_TRY_COMPILE): Replace obsolete macro with ...
450 (AC_COMPILE_IFELSE): ... this.
451 * aclocal.m4 (AC_TRY_LINK): Replace obsolete macro with ...
452 (AC_LINK_IFELSE): ... this.
453
5dc43410 4542008-09-21 Felix Zielcke <fzielcke@z-51.de>
455
456 * autogen.sh: Add a call to `gendistlist.sh'.
457
9035dce4 4582008-09-19 Christian Franke <franke@computer.org>
459
460 * aclocal.m4 (grub_CHECK_ENABLE_EXECUTE_STACK): New function.
461 * configure.ac: Call grub_CHECK_ENABLE_EXECUTE_STACK.
462 * include/grub/misc.h [NEED_ENABLE_EXECUTE_STACK]:
463 Export __enable_execute_stack() to modules.
464 * kern/misc.c [NEED_ENABLE_EXECUTE_STACK] (__enable_execute_stack):
465 New function.
466
7fd75377 4672008-09-09 Felix Zielcke <fzielcke@z-51.de>
468
040030b3 469 * Makefile.in (RMKFILES): Add `i386.rmk' and `x86_64-efi.rmk'.
470 Sort the list.
471
4722008-09-09 Felix Zielcke <fzielcke@z-51.de>
473
474 * util/hostdisk.c: Replace #include <grub/util/biosdisk.h> with
7fd75377 475 #include <grub/util/hostdisk.h>.
476
89d5ffcf 4772008-09-08 Robert Millan <rmh@aybabtu.com>
478
479 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Skip
480 segments when their filesz is zero (grub_file_read() interprets
81a06771 481 zero-size as "read until EOF", which results in memory corruption).
89d5ffcf 482 Use `lowest_segment' rather than 0 for calculating the current
483 segment load address.
484
40da438f 4852008-09-08 Robert Millan <rmh@aybabtu.com>
486
487 * util/hostdisk.c (open_device): Replace a grub_util_info() call
488 with grub_dprintf("hostdisk", ...), as it was so verbose that it
489 clobbered useful information.
490
ddbf5556 4912008-09-08 Robert Millan <rmh@aybabtu.com>
492
493 * include/grub/util/biosdisk.h: Move to ...
494 * include/grub/util/hostdisk.h: ... here. Update all users.
495 * util/biosdisk.c: Move to ...
496 * util/hostdisk.c: ... here. Update all users.
497
783d0f48 4982008-09-07 Robert Millan <rmh@aybabtu.com>
499
500 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): Remove
501 variables.
502 (grub_multiboot): Move `mbi' allocation upwards, so that mmap address
503 and length can be stored directly in the `mbi->mmap_addr' and
504 `mbi->mmap_length' struct fields.
505
548e2ea5 5062008-09-07 Robert Millan <rmh@aybabtu.com>
507
508 * conf/i386.rmk: New file. Provides declaration for building
509 `cpuid.mod'.
510 * conf/i386-pc.rmk (pkglib_MODULES): Remove `cpuid.mod'.
511 (cpuid_mod_SOURCES, cpuid_mod_CFLAGS, cpuid_mod_LDFLAGS): Remove
512 variables.
513 Include `conf/i386.mk'.
514 * conf/i386-efi.rmk: Likewise.
515 * conf/x86_64-efi.rmk: Likewise.
516 * conf/i386-coreboot.rmk: Likewise.
517 * conf/i386-ieee1275.rmk: Likewise.
518
0ea85a37 5192008-09-07 Vesa Jääskeläinen <chaac@nic.fi>
520
521 Based on patch created by Colin D Bennett <colin@gibibit.com>.
522 Adds optimization support for BGR based modes.
523
524 * include/grub/i386/pc/vbeblit.h (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8) Removed.
525 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
526 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
527 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
528 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
529 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
530 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
531 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
532 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
533 (grub_video_i386_vbeblit_index_index): Likewise.
534 (grub_video_i386_vbeblit_replace_directN): Added.
535 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
536 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
537 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
538 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
539 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
540 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
81a06771 541 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
0ea85a37 542 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
543 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
544 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
545 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
546 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
547 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
548
549 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8) Removed.
550 (grub_video_i386_vbefill_R8G8B8): Likewise.
551 (grub_video_i386_vbefill_index): Likewise.
552 (grub_video_i386_vbefill_direct32): Added.
553 (grub_video_i386_vbefill_direct24): Likewise.
554 (grub_video_i386_vbefill_direct16): Likewise.
555 (grub_video_i386_vbefill_direct8): Likewise.
556
81a06771 557 * include/grub/video.h (grub_video_blit_format): Removed
0ea85a37 558 GRUB_VIDEO_BLIT_FORMAT_R8G8B8A8, GRUB_VIDEO_BLIT_FORMAT_R8G8B8.
559 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_RGBA_8888,
560 GRUB_VIDEO_BLIT_FORMAT_BGRA_8888, GRUB_VIDEO_BLIT_FORMAT_RGB_888,
561 GRUB_VIDEO_BLIT_FORMAT_BGR_888, GRUB_VIDEO_BLIT_FORMAT_RGB_565,
562 GRUB_VIDEO_BLIT_FORMAT_BGR_565.
81a06771 563
0ea85a37 564 * video/video.c (grub_video_get_blit_format): Updated to use new
565 blit formats. Added handling for 16 bit color modes.
81a06771 566
567 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Updated to use new
0ea85a37 568 fillers.
569 (common_blitter): Updated to use new blitters.
570
571 * video/i386/pc/vbeblit.c (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8):
572 Removed.
573 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
574 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
575 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
576 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
577 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
578 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
579 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
580 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
581 (grub_video_i386_vbeblit_index_index): Likewise.
582 (grub_video_i386_vbeblit_replace_directN): Added.
583 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
584 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
585 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
586 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
587 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
588 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
589 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
590 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
591 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
592 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
593 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
594 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
595 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
81a06771 596
0ea85a37 597 * video/i386/pc/vbefill.c (grub_video_i386_vbefill_R8G8B8A8): Removed.
598 (grub_video_i386_vbefill_R8G8B8): Likewise.
599 (grub_video_i386_vbefill_index): Likewise.
600 (grub_video_i386_vbefill_direct32): Added.
601 (grub_video_i386_vbefill_direct24): Likewise.
602 (grub_video_i386_vbefill_direct16): Likewise.
603 (grub_video_i386_vbefill_direct8): Likewise.
81a06771 604
0ea85a37 605 * video/readers/jpeg.c (grub_jpeg_decode_sos): Adapt to new blitter
606 types.
81a06771 607
0ea85a37 608 * video/readers/tga.c (grub_video_reader_tga): Adapt to new blitter
609 types.
81a06771 610
0ea85a37 611 * video/readers/png.c (grub_png_decode_image_header): Adapt to new
612 blitter types.
81a06771 613
0ea85a37 614 * video/bitmap.c (grub_video_bitmap_create): Adapt to new blitter
615 types.
616
e8a83df6 6172008-09-06 Felix Zielcke <fzielcke@z-51.de>
618
619 * disk/raid.c (insert_array): Set `array->chunk_size' to 64 for
620 RAID level 1.
621
6bcd8ee5 6222008-09-06 Felix Zielcke <fzielcke@z-51.de>
c375ae58 623
6bcd8ee5 624 * fs/iso9660.c (grub_iso9660_date): New structure.
625 (grub_iso9660_primary_voldesc): Add `grub_iso9660_date' member.
626 (grub_iso9660_uuid): New function.
c375ae58 627
59261157 6282008-09-05 Bean <bean123ch@gmail.com>
629
630 * fs/fshelp.c (grub_fshelp_find_file): Handle case insensitive names.
631
632 * fs/ntfs.c (list_file): Ignore names in DOS namespace, set the case
633 insensitive bit for names in Win32 and Win32 & DOS namespace.
634
635 * include/grub/fshelp.h (GRUB_FSHELP_CASE_INSENSITIVE): New macro.
636
637 * include/grub/types.h (LONG_MAX): Likewise.
638
58b6645a 6392008-09-04 Felix Zielcke <fzielcke@z-51.de>
640
4ee55921 641 * util/getroot.c: Include <config.h>.
642 (grub_util_get_grub_dev): Rewrite to use asprintf for mdraid devices,
643 add support for /dev/md/N devices and handle LVM double dash escaping.
644
6452008-09-04 Felix Zielcke <fzielcke@z-51.de>
646
647 * config.guess: Update to latest version from config git.
648 * config.sub: Likewise.
58b6645a 649
9124f65d 6502008-09-03 Robert Millan <rmh@aybabtu.com>
651
652 * disk/scsi.c (grub_scsi_open): Remove size limit when printing
653 `disk->total_sectors'.
654
81a06771 6552008-09-01 Colin D Bennett <colin@gibibit.com>
a0224a4e 656
657 * include/grub/normal.h: Fixed incorrect comment for
658 GRUB_COMMAND_FLAG_NO_ARG_PARSE.
659
81a06771 6602008-09-01 Colin D Bennett <colin@gibibit.com>
f0619958 661
662 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Replaced constant
663 values with defines.
664
665 * include/grub/i386/pc/vbe.h (GRUB_VBE_MODEATTR_SUPPORTED): Added.
666 (GRUB_VBE_MODEATTR_RESERVED_1): Likewise.
667 (GRUB_VBE_MODEATTR_BIOS_TTY_OUTPUT_SUPPORT): Likewise.
668 (GRUB_VBE_MODEATTR_COLOR): Likewise.
669 (GRUB_VBE_MODEATTR_GRAPHICS): Likewise.
670 (GRUB_VBE_MODEATTR_VGA_COMPATIBLE): Likewise.
671 (GRUB_VBE_MODEATTR_VGA_WINDOWED_AVAIL): Likewise.
672 (GRUB_VBE_MODEATTR_LFB_AVAIL): Likewise.
673 (GRUB_VBE_MODEATTR_DOUBLE_SCAN_AVAIL): Likewise.
674 (GRUB_VBE_MODEATTR_INTERLACED_AVAIL): Likewise.
675 (GRUB_VBE_MODEATTR_TRIPLE_BUF_AVAIL): Likewise.
676 (GRUB_VBE_MODEATTR_STEREO_AVAIL): Likewise.
677 (GRUB_VBE_MODEATTR_DUAL_DISPLAY_START): Likewise.
678 (GRUB_VBE_MEMORY_MODEL_TEXT): Likewise.
679 (GRUB_VBE_MEMORY_MODEL_CGA): Likewise.
680 (GRUB_VBE_MEMORY_MODEL_HERCULES): Likewise.
681 (GRUB_VBE_MEMORY_MODEL_PLANAR): Likewise.
682 (GRUB_VBE_MEMORY_MODEL_NONCHAIN4_256): Likewise.
683 (GRUB_VBE_MEMORY_MODEL_YUV): Likewise.
684
93d5cbf8 6852008-08-31 Robert Millan <rmh@aybabtu.com>
686
687 * loader/i386/pc/multiboot.c (grub_get_multiboot_mmap_len): Fix
688 declaration.
689 (grub_multiboot): Fix a few warnings.
690
21751d50 6912008-08-31 Robert Millan <rmh@aybabtu.com>
692
693 * loader/i386/pc/multiboot.c: Update comment not to say that
694 boot_device support is unimplemented.
695
e27a75c5 6962008-08-31 Robert Millan <rmh@aybabtu.com>
697
698 * loader/i386/pc/multiboot.c: Update comment not to say that a.out
699 or memory map support are unimplemented.
700
81a06771 7012008-08-31 Colin D Bennett <colin@gibibit.com>
64d2d53c 702
703 * util/i386/pc/grub-mkrescue.in: Support multiple overlay directories.
704
81a06771 7052008-08-31 Colin D Bennett <colin@gibibit.com>
c08a6c18 706
707 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Show VBE version and
708 total video memory in 'vbeinfo' output; show color format details for
709 each video mode.
710
7c5d8d95 7112008-08-30 Pavel Roskin <proski@gnu.org>
712
713 * util/genmoddep.c: Remove for real this time.
714 * DISTLIST: Remove util/genmoddep.c.
715
4cebd25a 7162008-08-30 Robert Millan <rmh@aybabtu.com>
717
718 * kern/i386/pc/startup.S (multiboot_header): Force 4-byte alignment
719 as required by Multiboot spec (it was already 4-byte aligned, but
720 only by chance).
721
b497a269 7222008-08-29 Pavel Roskin <proski@gnu.org>
723
e3925185 724 * kern/powerpc/ieee1275/crt0.S: Rename to ...
725 * kern/powerpc/ieee1275/startup.S: ... this.
726 * conf/powerpc-ieee1275.rmk: Adjust for the above.
727 * DISTLIST: Likewise.
728
b497a269 729 * kern/powerpc/ieee1275/crt0.S: Include grub/symbol.h and
730 grub/cpu/kernel.h. Add start label for consistency with other
731 platforms. Add grub_prefix immediately after start. Add jump
732 to the code after grub_prefix.
733 * include/grub/powerpc/kernel.h: Provide valid values for
734 GRUB_KERNEL_CPU_PREFIX and GRUB_KERNEL_CPU_DATA_END.
735
6e5a42fe 7362008-08-29 Bean <bean123ch@gmail.com>
737
738 * configure.ac: Change host_os to cygwin for mingw.
739 (asprintf): New check for function.
740
741 * include/grub/symbol.h: Replace #ifndef __CYGWIN__ with
742 #if ! defined (__CYGWIN__) && ! defined (__MINGW32__).
743
744 * include/grub/util/misc.h: #include <config.h> and <grub/types.h>,
81a06771 745 declare asprintf if HAVE_ASPRINTF is not set, declare fseeko, ftello,
6e5a42fe 746 sync, sleep and grub_util_get_disk_size for mingw.
747
748 * util/biosdisk.c (grub_util_biosdisk_open): Use grub_util_get_disk_size
749 to get size in mingw.
750 (open_device): Use flag O_BINARY if it's defined.
751 (find_root_device): Add dummy code for mingw.
752
753 * util/grub-mkdevicemap.c (get_floppy_disk_name): Return 0 for mingw.
754 (get_ide_disk_name): Return //./PHYSICALDRIVE%d for mingw.
755 (get_scsi_disk_name): Return 0 for mingw.
756
757 * util/hostfs.c: #include <grub/util/misc.h>.
758 (grub_hostfs_open): Use "rb" flag to open file, use
759 grub_util_get_disk_size to get disk size for mingw.
760
761 * util/misc.c: #include <windows.h> and <winioctl.h> in mingw.
762 (asprintf): New function if HAVE_ASPRINTF is not set.
763 (sync): New function for mingw.
764 (sleep): Likewise.
765 (grub_util_get_disk_size): Likewise.
766
ab3f2673 7672008-08-28 Pavel Roskin <proski@gnu.org>
768
769 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
770 kern/time.c.
771
1c282483 7722008-08-28 Robert Millan <rmh@aybabtu.com>
773
774 * util/biosdisk.c (find_grub_drive): Declare missing `i' variable.
775
678e849c 7762008-08-28 Robert Millan <rmh@aybabtu.com>
777
778 Change find_grub_drive() syntax so it doesn't prevent it from
779 detecting NULL names as errors.
780
781 * util/biosdisk.c (find_grub_drive): Move free slot search code
782 from here ...
783 (find_free_slot): ... to here.
784 (read_device_map): Use find_free_slot() to search for free slots.
785
965c75ca 7862008-08-27 Marco Gerards <marco@gnu.org>
787
788 * conf/common.rmk (pkglib_MODULES): Add scsi.mod.
789 (scsi_mod_SOURCES): New variable.
790 (scsi_mod_CFLAGS): Likewise
791 (scsi_mod_LDFLAGS): Likewise.
792
793 * disk/scsi.c: New file.
794
795 * include/grub/scsi.h: Likewise.
796
797 * include/grub/scsicmd.h: Likewise.
798
799 * disk/ata.c: Include <grub/scsi.h>.
800 (grub_atapi_packet): Do not use grub_ata_cmd, use registers
801 instead.
802 (grub_ata_iterate): Skip ATAPI devices.
803 (grub_ata_open): Only handle ATAPI devices.
804 (struct grub_atapi_read): Removed.
805 (grub_atapi_readsector): Likewise.
806 (grub_ata_read): No longer handle ATAPI devices.
807 (grub_ata_write): Likewise.
808 (grub_atapi_iterate): New function.
809 (grub_atapi_read): Likewise.
810 (grub_atapi_write): Likewise.
811 (grub_atapi_open): Likewise.
812 (grub_atapi_close): Likewise.
813 (grub_atapi_dev): New variable.
814 (GRUB_MOD_INIT(ata)): Register ATAPI as SCSI device.
815 (GRUB_MOD_FINI(ata)): Unregister ATAPI.
816
817 * include/grub/disk.h (enum grub_disk_dev_id): Add
818 `GRUB_DISK_DEVICE_SCSI_ID'.
819
c07ae501 8202008-08-26 Robert Millan <rmh@aybabtu.com>
821
822 * util/biosdisk.c (grub_util_biosdisk_open, open_device)
823 (grub_util_biosdisk_get_grub_dev): Make error messages a bit more
824 descriptive.
825
5ed20adc 8262008-08-23 Bean <bean123ch@gmail.com>
827
828 * conf/common.rmk (grub_probe_SOURCES): Add disk/mdraid_linux.c.
829 (grub_fstest_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
830 disk/mdraid_linux.c and disk/dmraid_nvidia.c and lib/crc.c.
831 (pkglib_MODULES): Add raid5rec.mod, raid6rec.mod, mdraid.mod and
832 dm_nv.mod.
833 (raid5rec_mod_SOURCES): New macro.
834 (raid5rec_mod_CFLAGS): Likewise.
835 (raid5rec_mod_LDFLAGS): Likewise.
836 (raid6rec_mod_SOURCES): Likewise.
837 (raid6rec_mod_CFLAGS): Likewise.
838 (raid6rec_mod_LDFLAGS): Likewise.
839 (mdraid_mod_SOURCES): Likewise.
840 (mdraid_mod_CFLAGS): Likewise.
841 (mdraid_mod_LDFLAGS): Likewise.
842 (dm_nv_mod_SOURCES): Likewise.
843 (dm_nv_mod_CFLAGS): Likewise.
844 (dm_nv_mod_LDFLAGS): Likewise.
845
846 * conf/i386-pc.rmk (grub_setup_SOURCES): Add disk/mdraid_linux.c.
847 (grub_emu_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
848 disk/mdraid_linux.c and disk/dmraid_nvidia.c.
849
850 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add disk/raid5_recover.c,
851 disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c.
852
853 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
854
855 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
856
857 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
858
859 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
860
861 * disk/raid5_recover.c: New file.
862
863 * disk/raid6_recover.c: Likewise.
864
865 * disk/mdraid_linux.c: Likewise.
866
867 * disk/dmraid_nvidia.c: Likewise.
868
869 * disk/i386/pc/biosdisk.c: Set total_sectors of cdrom device to
870 ULONG_MAX.
871
872 * disk/raid.c (grub_raid_open): Use the size of the smallest disk to
873 calculate the size of raid device.
874 (grub_raid_read): Simplify raid0 code. Support raid4, raid6 and four
875 different layout of raid5.
876 (grub_raid_scan_device): Remove code specific to mdraid.
877 (grub_raid_list): New variable.
878 (free_array): New function.
879 (grub_raid_register): Likewise.
880 (grub_raid_unregister): Likewise.
881 (grub_raid_rescan): Likewise.
882 (GRUB_MOD_INIT): Don't iterate device here.
883 (GRUB_MOD_FINI): Use free_array to release resource.
884
885 * include/grub/raid.h: Remove macro and structure specific to mdraid.
886 (grub_raid5_recover_func_t): New function variable type.
887 (grub_raid6_recover_func_t): Likewise.
888 (grub_raid5_recover_func): New variable.
889 (grub_raid6_recover_func): Likewise.
890 (grub_raid_register): New function.
891 (grub_raid_unregister): Likewise.
892 (grub_raid_rescan): Likewise.
893 (grub_raid_block_xor): Likewise.
894
895 * util/grub-fstest.c: Add #include <grub/raid.h> and <grub/lib/crc.h>.
896 (CMD_CRC): New macro.
897 (part): Removed.
898 (read_file): Handle device as well as file.
899 (cmd_crc): New function.
900 (fstest): Handle multiple disks.
901 (options): Remove part, raw and long, add root and diskcount.
902 (usage): Add crc, remove -p, -r, -l, add -r and -c.
dba3f844 903 (main): Find the first non option entry and ignore subsequent options,
5ed20adc 904 add handling for the new options, support multiple disks.
905
906 * util/grub-probe.c (probe): Add mdraid to abstraction_name.
907
29c18915 9082008-08-23 Bean <bean123ch@gmail.com>
909
910 * normal/x86_64/setjmp.S (grub_longjmp): Return 1 when val = 0.
911
912 * genfslist.sh: Ignore kernel.mod.
913
914 * genpartmaplist.sh: Likewise.
915
8415f261 9162008-08-23 Robert Millan <rmh@aybabtu.com>
917
918 * util/getroot.c (find_root_device): Skip anything that starts with
919 a dot, not just directories. This avoids things like /dev/.tmp.md0.
920
d5a7dc5b 9212008-08-22 Felix Zielcke <fzielcke@z-51.de>
81a06771 922
d5a7dc5b 923 * util/update-grub.in (GRUB_GFXMODE): Export variable.
924 * util/grub.d/00_header.in: Allow the administrator to change default
925 gfxmode via ${GRUB_GFXMODE}.
926
380cfbb4 9272008-08-21 Felix Zielcke <fzielcke@z-51.de>
928
929 * fs/ntfs.c (grub_ntfs_mount): Fix a memory leak.
930
c9baafe7 9312008-08-21 Robert Millan <rmh@aybabtu.com>
932
933 * loader/i386/linux.c: New file. Implements generic 32-bit Linux
934 loader.
935 * conf/i386-coreboot.rmk (_linux_mod_SOURCES): Replace
936 `loader/i386/pc/linux.c' with `loader/i386/linux.c'.
937
e290bef2 9382008-08-20 Carles Pina i Estany <carles@pina.cat>
939
940 * menu/normal.c (run_menu): Replace hardcoded numbers with macros
941 (16 for GRUB_TERM_UP and 14 for GRUB_TERM_DOWN)
942
f9dbfc96 9432008-08-19 Robert Millan <rmh@aybabtu.com>
944
945 * term/gfxterm.c (DEFAULT_CURSOR_COLOR): Remove.
946 (struct grub_virtual_screen): Remove `cursor_color'.
947 (grub_virtual_screen_setup): Remove `virtual_screen.cursor_color'
948 initialization.
949 (write_cursor): Use `virtual_screen.fg_color' to draw cursor.
950
dd6bd6ab 9512008-08-18 Robert Millan <rmh@aybabtu.com>
952
953 Unify (identical) linux_normal.c files.
954 * loader/i386/efi/linux_normal.c: Move from here ...
955 * loader/linux_normal.c: ... to here. Update all users.
956 * loader/i386/pc/linux_normal.c: Delete. Update all users.
957 * loader/i386/ieee1275/linux_normal.c: Likewise.
958
7f42f83e 9592008-08-18 Robert Millan <rmh@aybabtu.com>
960
961 * include/grub/i386/linux.h (LINUX_LOADER_ID_LILO)
962 (LINUX_LOADER_ID_LOADLIN, LINUX_LOADER_ID_BOOTSECT)
963 (LINUX_LOADER_ID_SYSLINUX, LINUX_LOADER_ID_ETHERBOOT)
964 (LINUX_LOADER_ID_ELILO, LINUX_LOADER_ID_GRUB, LINUX_LOADER_ID_UBOOT)
965 (LINUX_LOADER_ID_XEN, LINUX_LOADER_ID_GUJIN, LINUX_LOADER_ID_QEMU):
966 New macros.
967 (GRUB_LINUX_CL_OFFSET, GRUB_LINUX_CL_END_OFFSET): Move from here ...
968 * loader/i386/pc/linux.c (GRUB_LINUX_CL_OFFSET)
969 (GRUB_LINUX_CL_END_OFFSET): ... to here.
970 * loader/i386/efi/linux.c (GRUB_EFI_CL_OFFSET): Rename to ...
971 (GRUB_LINUX_CL_OFFSET): ... this. Update all users.
972 (GRUB_EFI_CL_END_OFFSET): Rename to ...
973 (GRUB_LINUX_CL_END_OFFSET): ... this. Update all users.
974 (grub_rescue_cmd_linux): Macroify `type_of_loader' initialization.
975 Initialize `params->video_cursor_x' and `params->video_cursor_y'
976 portably using grub_getxy().
977 Replace `-EFI' with `-bzImage' in boot message.
978
38487ddb 9792008-08-17 Robert Millan <rmh@aybabtu.com>
980
981 * include/grub/x86_64/kernel.h: New file (<grub/i386/kernel.h> stub).
982
deceb3ec 9832008-08-17 Robert Millan <rmh@aybabtu.com>
984
985 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pc/mmap.c'.
986
987 * include/grub/i386/pc/init.h (GRUB_MACHINE_MEMORY_AVAILABLE)
988 (GRUB_MACHINE_MEMORY_RESERVED): New macros.
989 (grub_machine_mmap_iterate): New function declaration.
990 * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): New
991 structure.
992 (GRUB_MMAP_MEMORY_AVAILABLE, GRUB_MMAP_MEMORY_RESERVED): New
993 macros.
994
995 * kern/i386/pc/init.c (grub_machine_init): Replace hardcoded region
996 type check value with `GRUB_MACHINE_MEMORY_AVAILABLE'.
997 Move e820 parsing from here ...
998 * kern/i386/pc/mmap.c: New file.
999 (grub_machine_mmap_iterate): ... to here.
1000
1001 * include/grub/i386/coreboot/memory.h: Remove `<grub/err.h>'.
1002 (GRUB_LINUXBIOS_MEMORY_AVAILABLE): Rename (for consistency) to ...
1003 (GRUB_MACHINE_MEMORY_AVAILABLE): ... this. Update all users.
1004 (grub_available_iterate): Redeclare to return `void', and redeclare
1005 its hook to use grub_uint64_t as addr and size parameters, and rename
1006 to ...
1007 (grub_machine_mmap_iterate): ... this. Update all users.
1008
1009 * kern/i386/coreboot/mmap.c (grub_mmap_iterate): Simplify parser loop
1010 to make it more readable. Rename to ...
1011 (grub_machine_mmap_iterate): ... this.
1012
1013 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): New variables.
1014 (grub_get_multiboot_mmap_len, grub_fill_multiboot_mmap): New functions.
1015 (grub_multiboot): Allocate an extra region after the payload, and fill
1016 it with a Multiboot memory map. Adjust a.out loader to calculate size
1017 with the extra space.
1018 (grub_multiboot_load_elf32): Adjust elf32 loader to calculate size
1019 with the extra space.
1020
f8aa0f43 10212008-08-17 Carles Pina i Estany <carles@pina.cat>
1022
9807deb9 1023 * menu/normal.c (run_menu): Add Home and End keys in grub-menu.
f8aa0f43 1024
605f5bb6 10252008-08-17 Felix Zielcke <fzielcke@z-51.de>
1026
1027 * gendistlist.sh: Add *.y, *.tex, *.texi, grub.cfg, README, *.sc,
1028 mdate-sh to the list `find' searches for.
1029 * DISTLIST: Regenerated.
1030
210db6c6 10312008-08-16 Felix Zielcke <fzielcke@z-51.de>
1032
1033 * gendistlist.sh (EXTRA_DISTFILES): Remove gensymlist.sh,
1034 genkernsyms.sh. Add geninit.sh, geninitheader.sh, genkernsyms.sh.in,
48cdbfd4 1035 genmoddep.awk, gensymlist.sh.in.
1036 (DISTDIRS): Add bus, docs, hook, lib.
210db6c6 1037 * DISTLIST: Regenerated.
48cdbfd4 1038 * NEWS: Add cygwin support and change the `os-prober' entry a bit.
210db6c6 1039
1082b929 10402008-08-16 Robert Millan <rmh@aybabtu.com>
1041
1042 * disk/raid.c (grub_raid_init): Handle/report errors set by
1043 grub_device_iterate().
1044 * disk/lvm.c (grub_lvm_init): Likewise.
1045
42ce5170 10462008-08-15 Bean <bean123ch@gmail.com>
1047
1048 * conf/i386-pc.rmk (pkglib_MODULES): Add datetime.mod, date.mod
1049 and datehook.mod.
1050 (datetime_mod_SOURCES): New macro.
1051 (datetime_mod_CFLAGS): Likewise.
1052 (datetime_mod_LDFLAGS): Likewise.
1053 (date_mod_SOURCES): Likewise.
1054 (date_mod_CFLAGS): Likewise.
1055 (date_mod_LDFLAGS): Likewise.
1056 (datehook_mod_SOURCES): Likewise.
1057 (datehook_mod_CFLAGS): Likewise.
1058 (datehook_mod_LDFLAGS): Likewise.
1059
1060 * conf/i386-coreboot.rmk (pkglib_MODULES): Add datetime.mod, date.mod
1061 and datehook.mod.
1062 (datetime_mod_SOURCES): New macro.
1063 (datetime_mod_CFLAGS): Likewise.
1064 (datetime_mod_LDFLAGS): Likewise.
1065 (date_mod_SOURCES): Likewise.
1066 (date_mod_CFLAGS): Likewise.
1067 (date_mod_LDFLAGS): Likewise.
1068 (datehook_mod_SOURCES): Likewise.
1069 (datehook_mod_CFLAGS): Likewise.
1070 (datehook_mod_LDFLAGS): Likewise.
1071
1072 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add datetime.mod, date.mod
1073 and datehook.mod.
1074 (datetime_mod_SOURCES): New macro.
1075 (datetime_mod_CFLAGS): Likewise.
1076 (datetime_mod_LDFLAGS): Likewise.
1077 (date_mod_SOURCES): Likewise.
1078 (date_mod_CFLAGS): Likewise.
1079 (date_mod_LDFLAGS): Likewise.
1080 (datehook_mod_SOURCES): Likewise.
1081 (datehook_mod_CFLAGS): Likewise.
1082 (datehook_mod_LDFLAGS): Likewise.
1083
1084 * conf/i386-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
1085 and datehook.mod.
1086 (datetime_mod_SOURCES): New macro.
1087 (datetime_mod_CFLAGS): Likewise.
1088 (datetime_mod_LDFLAGS): Likewise.
1089 (date_mod_SOURCES): Likewise.
1090 (date_mod_CFLAGS): Likewise.
1091 (date_mod_LDFLAGS): Likewise.
1092 (datehook_mod_SOURCES): Likewise.
1093 (datehook_mod_CFLAGS): Likewise.
1094 (datehook_mod_LDFLAGS): Likewise.
1095
1096 * conf/x86_64-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
1097 and datehook.mod.
1098 (datetime_mod_SOURCES): New macro.
1099 (datetime_mod_CFLAGS): Likewise.
1100 (datetime_mod_LDFLAGS): Likewise.
1101 (date_mod_SOURCES): Likewise.
1102 (date_mod_CFLAGS): Likewise.
1103 (date_mod_LDFLAGS): Likewise.
1104 (datehook_mod_SOURCES): Likewise.
1105 (datehook_mod_CFLAGS): Likewise.
1106 (datehook_mod_LDFLAGS): Likewise.
1107
1108 * kern/env.c (grub_env_insert): Fix a bug in prevp pointer.
1109
1110 * commands/date.c: New file.
1111
1112 * hook/datehook.c: Likewise.
1113
1114 * include/grub/lib/datetime.h: Likewise.
1115
1116 * include/grub/i386/cmos.h: Likewise.
1117
1118 * lib/datetime.c: Likewise.
1119
1120 * lib/i386/datetime.c: Likewise.
1121
1122 * lib/efi/datetime.c: Likewise.
1123
0e9242da 11242008-08-14 Robert Millan <rmh@aybabtu.com>
1125
1126 * conf/common.rmk (bin_UTILITIES): Add `grub-mkelfimage'.
1127 (grub_mkelfimage_SOURCES): New variable.
1128 (util/elf/grub-mkimage.c_DEPENDENCIES): Likewise.
1129
1130 * conf/i386-coreboot.rmk (bin_UTILITIES, grub_mkimage_SOURCES)
1131 (grub_mkimage_LDFLAGS, util/elf/grub-mkimage.c_DEPENDENCIES): Remove.
1132 * conf/powerpc-ieee1275.rmk: Likewise.
1133 * conf/i386-ieee1275.rmk: Likewise.
1134
1135 * kern/ieee1275/init.c: Include `<grub/cpu/kernel.h>'.
1136 * kern/i386/coreboot/init.c: Likewise.
1137
1138 * kern/i386/ieee1275/startup.S: Replace `<grub/machine/kernel.h>'
1139 with `<grub/cpu/kernel.h>'.
1140 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Renamed
1141 to ...
1142 (GRUB_KERNEL_CPU_PREFIX, GRUB_KERNEL_CPU_DATA_END): ... this.
1143 * kern/i386/coreboot/startup.S: Likewise.
1144
1145 * include/grub/powerpc/ieee1275/kernel.h (GRUB_MOD_ALIGN)
1146 (GRUB_MOD_GAP): Remove.
1147 * include/grub/powerpc/kernel.h: New file.
1148 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX)
1149 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
1150 * include/grub/i386/kernel.h: New file.
1151 * include/grub/i386/coreboot/kernel.h (GRUB_MOD_ALIGN)
1152 (GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_PREFIX)
1153 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
1154
1155 * util/ieee1275/grub-install.in (grub_mkimage): Initialize to use
1156 `grub-mkelfimage'.
1157 Use --directory when invoking grub_mkimage.
1158
1159 * util/elf/grub-mkimage.c: Include `<grub/cpu/kernel.h>'.
1160 (add_segments): Replace GRUB_KERNEL_MACHINE_DATA_END and
1161 GRUB_KERNEL_MACHINE_PREFIX with GRUB_KERNEL_CPU_DATA_END
1162 and GRUB_KERNEL_CPU_PREFIX.
1163
b86408f8 11642008-08-14 Felix Zielcke <fzielcke@z-51.de>
1165
d5e619ca 1166 * include/grub/err.h (grub_err_printf): New function prototype.
1167 * util/misc.c (grub_err_printf): New function.
1168 * kern/misc.c [! GRUB_UTIL] (grub_err_printf): New alias for
1169 grub_printf.
1170 * kern/err.c (grub_print_error): Use grub_err_printf.
b86408f8 1171
7161f0e0 11722008-08-13 Robert Millan <rmh@aybabtu.com>
1173
1174 * docs/grub.cfg: Remove `/dev/' prefix in GNU/Hurd boot entry.
1175
a1967522 11762008-08-13 Robert Millan <rmh@aybabtu.com>
1177
1178 * docs/grub.cfg: Use the native device name for the example GNU/Hurd
1179 boot entry.
1180
371458b5 11812008-08-12 Robert Millan <rmh@aybabtu.com>
1182
1183 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Move part
1184 of the relocation code from here ...
1185 (grub_multiboot): ... to here.
1186 (forward_relocator, backward_relocator): Move from here ...
1187 * kern/i386/loader.S (grub_multiboot_forward_relocator)
1188 (grub_multiboot_backward_relocator): ... to here.
1189 (grub_multiboot_real_boot): Use %edx for entry offset. Put Multiboot
1190 magic in %eax. Use %ebp for jumping (so %edx is not trashed).
1191 * include/grub/i386/loader.h (grub_multiboot_forward_relocator)
1192 (grub_multiboot_forward_relocator_end)
1193 (grub_multiboot_backward_relocator)
1194 (grub_multiboot_backward_relocator_end): New variables.
1195
05f9452b 11962008-08-12 Bean <bean123ch@gmail.com>
1197
1198 * disk/raid.c (grub_raid_read): Fix a bug in raid0 code.
1199
20024ab0 12002008-08-11 Robert Millan <rmh@aybabtu.com>
1201
1202 * kern/i386/linuxbios/startup.S: Move from here ...
1203 * kern/i386/coreboot/startup.S: ... to here.
1204
1205 * kern/i386/linuxbios/init.c: Move from here ...
1206 * kern/i386/coreboot/init.c: ... to here.
1207
1208 * kern/i386/linuxbios/table.c: Move from here ...
1209 * kern/i386/coreboot/mmap.c: ... to here.
1210
1211 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Update moved files.
1212
e352e9cd 12132008-08-11 Robert Millan <rmh@aybabtu.com>
1214
1215 * kern/device.c (grub_device_open): Do not handle grub_disk_open()
1216 errors. Leave it to the upper layer to handle them.
1217
2d05bc6a 12182008-08-09 Christian Franke <franke@computer.org>
1219
1220 * Makefile.in: Add `target_os' and `enable_grub_pe2elf'.
1221 * conf/common.rmk: Install `grub-pe2elf' only if requested.
1222 Install `grub.d/10_windows' only on Cygwin.
1223 * configure.ac: Add subst of `target_os'.
1224 Check `target_os' also before setting TARGET_OBJ2ELF.
1225 Add `--enable-grub-pe2elf'.
1226
042bd419 12272008-08-08 Robert Millan <rmh@aybabtu.com>
1228
1229 * kern/disk.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
1230 (grub_last_time): Change type to grub_uint64_t.
1231 (grub_disk_open): Migrate code from to using grub_get_time_ms().
1232 (grub_disk_close): Likewise.
1233
1234 * normal/menu.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
1235 (run_menu): Migrate code from to using grub_get_time_ms().
1236
1237 * util/misc.c (grub_get_time_ms): New function.
1238
7f280db5 12392008-08-08 Marco Gerards <marco@gnu.org>
1240
1241 * disk/ata.c (grub_ata_regget): Change return type to
1242 `grub_uint8_t'.
1243 (grub_ata_regget2): Likewise.
1244 (grub_ata_wait_status): New function.
1245 (grub_ata_wait_busy): Removed function, updated all users to use
1246 `grub_ata_wait_status'.
1247 (grub_ata_wait_drq): Likewise.
1248 (grub_ata_cmd): New function.
1249 (grub_ata_pio_read): Change return type to `grub_uint8_t'. Add
1250 error handling.
1251 (grub_ata_pio_write): Add error handling.
1252 (grub_atapi_identify): Likewise.
1253 (grub_atapi_packet): Use `grub_ata_cmd' and improve error
1254 handling.
1255 (grub_ata_identify): Use `grub_ata_cmd' and improve error
1256 handling. Actually use the detected registers. Reorder the
1257 detection logic such that it is easier to read.
1258 (grub_ata_pciinit): Do not assign the same ID to each controller.
1259 (grub_ata_setaddress): Use `grub_ata_cmd' and improve error
1260 handling.
1261 (grub_atapi_readsector): Check the result of `grub_ata_pio_read'.
1262
1263 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TIMEOUT'.
1264
1fbc5e66 12652008-08-08 Marco Gerards <marco@gnu.org>
1266
1267 * NEWS: Update.
1268
819ce6c0 12692008-08-07 Bean <bean123ch@gmail.com>
1270
1271 * include/grub/x86_64/pci.h: New file.
1272
5c41d44d 12732008-08-07 Christian Franke <franke@computer.org>
1274
1275 * kern/i386/pit.c (TIMER2_SPEAKER): New define.
1276 (TIMER2_GATE): Likewise.
1277 (grub_pit_wait): Add enable/disable of the timer2 gate
1278 bit of port 0x61. This fixes a possible infinite loop.
1279
5ebc275d 12802008-08-07 Bean <bean123ch@gmail.com>
1281
1282 * conf/x86_64-efi.rmk (kernel_mod_SOURCES): Add kern/time.c,
1283 kern/i386/tsc.c and kern/i386/pit.c.
1284
1285 * include/grub/i386/tsc.h (grub_cpu_is_cpuid_supported): Handle
1286 x86_64 platform.
1287
1288 * kern/i386/efi/init.c: Replace <grub/cpu/tsc.h> with
1289 <grub/i386/tsc.h>.
1290
1291 * kern/i386/pit.c: Replace <grub/cpu/io.h> with <grub/i386/io.h>.
1292
e383b3d0 12932008-08-07 Bean <bean123ch@gmail.com>
1294
1295 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add kern/time.c.
1296
1297 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add kern/time.c,
1298
1299 * include/grub/i386/pit.h: Use macro KERNEL_CPU_PIT_HEADER to avoid
1300 multiple inclusion. Add #include <grub/types.h>.
1301
1cbb58ac 13022008-08-06 Christian Franke <franke@computer.org>
1303
1304 * conf/common.rmk: Build and install `10_windows'.
1305 * util/grub.d/10_windows.in: New script.
1306
337f5a1e 13072008-08-06 Pavel Roskin <proski@gnu.org>
1308
1309 * kern/i386/pit.c: Include `<grub/i386/pit.h>'.
1310
057bc4ac 13112008-08-06 Robert Millan <rmh@aybabtu.com>
1312
1313 * conf/i386-coreboot.rmk (kernel_elf_ASFLAGS): New variable.
1314 * kern/i386/tsc.c: Include `<grub/i386/pit.h>'.
1315
2b99f123 13162008-08-06 Bean <bean123ch@gmail.com>
1317
1318 * fs/i386/pc/pxe.c (grub_pxe_data): New member block_size.
1319 (grub_pxefs_fs_int): Remove dummy definition.
1320 (grub_pxefs_open): Use data->block_size to store the current block
1321 size setting.
1322 (grub_pxefs_read): Use block size stored in data->block_size. As the
1323 value of grub_pxe_blksize can be changed after the file is opened.
1324
9f0234cb 13252008-08-06 Bean <bean123ch@gmail.com>
1326
1327 * fs/i386/pc/pxe.c (curr_file): new variable.
1328 (grub_pxefs_open): Simply the handling of pxe file system. Don't
1329 require the dummy internal file system anymore.
1330 (grub_pxefs_read): Removed.
1331 (grub_pxefs_close): Likewise.
1332 (grub_pxefs_fs_int): Likewise.
1333 (grub_pxefs_read_int): Renamed to grub_pxefs_read. Reinitialize tftp
1334 connection when we switch file.
1335 (grub_pxefs_close_int): Renamed to grub_pxefs_close.
1336
a55d42e0 13372008-08-06 Robert Millan <rmh@aybabtu.com>
1338
1339 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and
1340 `halt.mod'.
1341 (reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS)
1342 (halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables.
1343
1344 * kern/i386/halt.c: New file.
1345 * kern/i386/reboot.c: Likewise.
1346 * include/grub/i386/reboot.h: Likewise.
1347 * include/grub/i386/halt.h: Likewise.
1348
1349 * commands/halt.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]:
1350 Include `<grub/cpu/halt.h>'.
1351 * commands/reboot.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]
1352 [! GRUB_MACHINE_PCBIOS]: Include `<grub/cpu/reboot.h>'.
1353
1354 * term/i386/pc/at_keyboard.c: Include `<grub/cpu/at_keyboard.h>'.
1355 (SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA)
1356 (KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ)
1357 (KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT)
1358 (KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY)
1359 (KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move
1360 from here ...
1361 * include/grub/i386/at_keyboard.h: ... to here.
1362
24371d26 13632008-08-05 Robert Millan <rmh@aybabtu.com>
1364
1365 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pit.c'.
1366 * conf/i386-efi.rmk (kernel_mod_SOURCES): Likewise.
1367 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Likewise. Also add
1368 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
1369 `kern/generic/millisleep.c'.
1370
1371 * kern/i386/tsc.c (calibrate_tsc): Rewrite using grub_pit_wait()
1372 instead of grub_get_rtc().
1373 (grub_tsc_init): Initialize `tsc_boot_time'.
1374
1375 * kern/i386/linuxbios/init.c (grub_millisleep): Remove stub.
1376 (grub_machine_init): Use grub_tsc_init() rather than
1377 installing an RTC-based handler via grub_install_get_time_ms().
1378
1379 * kern/i386/pit.c: New file.
1380 * include/grub/i386/pit.h: Likewise.
1381
9e7007b3 13822008-08-05 Bean <bean123ch@gmail.com>
1383
1384 * boot/i386/pc/pxeboot.S (_start): Use drive number 0x7F for pxe.
1385
1386 * conf/i386-pc.rmk (kernel_img_HEADERS): Add machine/pxe.h.
1387 (pkglib_MODULES): Add pxe.mod and pxecmd.mod.
1388 (pxe_mod_SOURCES): New macro.
1389 (pxe_mod_CFLAGS): Likewise.
1390 (pxe_mod_LDFLAGS): Likewise.
1391 (pxecmd_mod_SOURCES): Likewise.
1392 (pxecmd_mod_CFLAGS): Likewise.
1393 (pxecmd_mod_LDFLAGS): Likewise.
1394
1395 * kern/i386/pc/startup.S (grub_pxe_scan): New function.
1396 (grub_pxe_call): Likewise.
1397
1398 * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_PXE_ID.
1399
1400 * commands/i386/pc/pxecmd.c: New file.
1401
9f0234cb 1402 * fs/i386/pc/pxe.c: Likewise.
9e7007b3 1403
1404 * include/grub/i386/pc/pxe.h: Likewise.
1405
6977d49f 14062008-08-05 Bean <bean123ch@gmail.com>
1407
1408 * util/console.c (grub_console_cur_color): New variable.
1409 (grub_console_standard_color): Likewise.
1410 (grub_console_normal_color): Likewise.
1411 (grub_console_highlight_color): Likewise.
1412 (color_map): Likewise.
1413 (use_color): Likewise.
1414 (NUM_COLORS): New macro.
1415 (grub_ncurses_setcolorstate): Handle color properly.
1416 (grub_ncurses_setcolor): Don't change color here, just remember the
1417 settings, color will be set in grub_ncurses_setcolorstate.
1418 (grub_ncurses_getcolor): New function.
1419 (grub_ncurses_init): Initialize color pairs.
1420 (grub_ncurses_term): New member grub_ncurses_getcolor.
1421
9c2ff3ee 14222008-08-05 Colin D Bennett <colin@gibibit.com>
337f5a1e 1423
9c2ff3ee 1424 High resolution timer support. Implemented for x86 CPUs using TSC.
1425 Extracted generic grub_millisleep() so it's linked in only as needed.
1426 This requires a Pentium compatible CPU; if the RDTSC instruction is
1427 not supported, then it falls back on the generic grub_get_time_ms()
1428 implementation that uses the machine's RTC.
1429
1430 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/time.c',
1431 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
1432 `kern/generic/millisleep.c'.
1433
1434 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add `kern/i386/tsc.c',
1435 `kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'.
1436
1437 * conf/x86_64-efi.rml (kernel_mod_SOURCES): Add
1438 `kern/generic/millisleep.c' and `kern/generic/rtc_get_time_ms.c'.
1439
1440 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
1441
1442 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
1443 `kern/generic/millisleep.c'.
1444
1445 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
1446
1447 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Add `kern/time.c'.
1448
1449 * kern/generic/rtc_get_time_ms.c: New file.
1450
1451 * kern/generic/millisleep.c: New file.
337f5a1e 1452
9c2ff3ee 1453 * kern/misc.c: Don't include
1454 <kern/time.h> anymore.
1455 (grub_millisleep_generic): Removed.
1456
1457 * commands/sleep.c (grub_interruptible_millisleep): Uses
1458 grub_get_time_ms() instead of grub_get_rtc().
1459
1460 * include/grub/i386/tsc.h (grub_get_tsc): New file. New inline
1461 function.
1462 (grub_cpu_is_cpuid_supported): New inline function.
1463 (grub_cpu_is_tsc_supported): New inline function.
1464 (grub_tsc_init): New function prototype.
1465 (grub_tsc_get_time_ms): New function prototype.
1466
1467 * kern/i386/tsc.c (grub_get_time_ms): New file.
1468
1469 * include/grub/time.h: Include <grub/types.h.
1470 (grub_millisleep_generic): Removed.
1471 (grub_get_time_ms): New prototype.
1472 (grub_install_get_time_ms): New prototype.
1473 (grub_rtc_get_time_ms): New prototype.
1474
1475 * kern/time.c (grub_get_time_ms): New function.
1476 (grub_install_get_time_ms): New function.
1477
1478 * kern/i386/efi/init.c: Include <grub/cpu/tsc.h>. Don't include
1479 <grub/time.h> anymore.
1480 (grub_millisleep): Removed.
1481 (grub_machine_init): Call grub_tsc_init.
1482
1483 * kern/i386/linuxbios/init.c (grub_machine_init): Install the RTC
1484 get_time_ms() implementation.
1485
1486 * kern/sparc64/ieee1275/init.c (grub_millisleep): Removed.
1487 (ieee1275_get_time_ms): New function.
1488 (grub_machine_init): Install get_time_ms() implementation.
1489
1490 * kern/i386/pc/init.c: Include <grub/cpu/tsc.h>.
1491 (grub_machine_init): Call grub_tsc_init().
1492 (grub_millisleep): Removed.
bf06a93f 1493
9c2ff3ee 1494 * kern/ieee1275/init.c (grub_millisleep): Removed.
1495 (grub_machine_init): Install ieee1275_get_time_ms()
1496 implementation.
1497 (ieee1275_get_time_ms): New function.
1498 (grub_get_rtc): Now calls ieee1275_get_time_ms(), which does the
1499 real work.
1500
9ec92aaf 15012008-08-05 Marco Gerards <marco@gnu.org>
1502
1503 * disk/ata.c: Include <grub/pci.h>.
1504 (enum grub_ata_commands): Add `GRUB_ATA_CMD_EXEC_DEV_DIAGNOSTICS'.
1505 (grub_ata_initialize): Rewritten.
1506 (grub_ata_device_initialize): New function.
1507
8d23f507 15082008-08-04 Pavel Roskin <proski@gnu.org>
1509
1510 * kern/main.c: Include grub/mm.h.
1511
5e15ee3d 15122008-08-04 Robert Millan <rmh@aybabtu.com>
1513
1514 * conf/i386-coreboot.rmk (COMMON_ASFLAGS, COMMON_CFLAGS)
1515 (COMMON_LDFLAGS): Harmonize with i386-pc version (fixes a code
1516 corruption problem).
1517
a9053f8f 15182008-08-04 Robert Millan <rmh@aybabtu.com>
1519
1520 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Fix misc
1521 warnings introduced in my last commit.
1522
dd19c7d7 15232008-08-03 Robert Millan <rmh@aybabtu.com>
1524
1525 Make PCI available on all i386 architectures.
1526
1527 * include/grub/i386/pc/pci.h: Move from here ...
1528 * include/grub/i386/pci.h: ... to here.
1529
1530 * include/grub/i386/pc/pci.h: Remove.
1531 * include/grub/i386/efi/pci.h: Remove.
1532 * include/grub/x86_64/efi/pci.h: Remove.
1533
1534 * include/grub/pci.h: Replace `<grub/machine/pci.h>' with
1535 `<grub/cpu/pci.h>'.
1536
1537 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `pci' and `lspci'.
1538 (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS, lspci_mod_SOURCES)
1539 (lspci_mod_CFLAGS, lspci_mod_LDFLAGS): New variables.
1540
1541 * conf/i386-ieee1275.rmk: Likewise.
1542
e14a6184 15432008-08-03 Robert Millan <rmh@aybabtu.com>
1544
1545 * term/i386/pc/vga_text.c (CRTC_CURSOR_DISABLE): New macro.
1546 (grub_console_setcursor): Make it possible to set cursor off.
1547
52768e37 15482008-08-03 Robert Millan <rmh@aybabtu.com>
1549
1550 * util/grub.d/00_header.in: Be platform-agnostic. Probe for existence
1551 of modules instead of assuming which platform provides what.
1552 * util/update-grub.in: Likewise.
1553
2d52f57f 15542008-08-03 Robert Millan <rmh@aybabtu.com>
1555
1556 * kern/i386/pc/init.c (make_install_device): Check for `grub_prefix'
1557 instead of `grub_install_dos_part' to determine whether a drive needs
1558 to be prepended to prefix (`grub_install_dos_part' is not reliable,
825aa57a 1559 because it can be overridden when loading GRUB via Multiboot).
2d52f57f 1560
2a5cd121 15612008-08-02 Robert Millan <rmh@aybabtu.com>
1562
1563 * util/i386/pc/grub-install.in: Remove trailing slash from prefix.
1564
93808428 15652008-08-02 Robert Millan <rmh@aybabtu.com>
1566
1567 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Add a pair
1568 of informational grub_dprintf() calls.
1569
3bd0a12a 15702008-08-02 Robert Millan <rmh@aybabtu.com>
1571
1572 * disk/memdisk.c (memdisk_size): Don't initialize.
1573 (GRUB_MOD_INIT(memdisk)): Find memdisk using grub_module_iterate().
1574
1575 * include/grub/i386/pc/kernel.h
1576 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): Remove macro.
1577 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Shift.
1578 (grub_memdisk_image_size, grub_arch_memdisk_addr)
1579 (grub_arch_memdisk_size): Remove.
1580
1581 * include/grub/kernel.h (struct grub_module_header): Remove `offset'
1582 field (was only used to transfer a constant). Add `type' field to
1583 support multiple module types.
1584 (grub_module_iterate): New function.
1585
1586 * kern/device.c (grub_device_open): Do not hide error messages
1587 when grub_disk_open() fails. Use grub_print_error() instead.
1588
1589 * kern/i386/pc/init.c (grub_arch_modules_addr)
1590 (grub_arch_memdisk_size): Remove functions.
1591 (grub_arch_modules_addr): Return the module address in high memory
1592 (now that it isn't copied anymore).
1593
1594 * kern/i386/pc/startup.S (grub_memdisk_image_size): Remove variable.
1595 (codestart): Don't add grub_memdisk_image_size to %ecx in LZMA
1596 decompression routine (grub_total_module_size already includes that
1597 now). Don't copy modules back to low memory.
1598
1599 * kern/main.c: Include `<grub/mm.h>'.
1600 (grub_load_modules): Split out (and use) ...
1601 (grub_module_iterate): ... this function, which iterates through
1602 module objects and runs a hook.
1603 Comment out grub_mm_init_region() call, as it would cause non-ELF
1604 modules to be overwritten.
1605
1606 * util/i386/pc/grub-mkimage.c (generate_image): Instead of appending
1607 the memdisk image in its own region, make it part of the module list.
1608 * util/elf/grub-mkimage.c (options): Add "memdisk"|'m' option.
1609 (main): Parse --memdisk|-m option, and pass user-provided path as
1610 parameter to generate_image().
1611 (add_segments): Pass `memdisk_path' down to load_modules().
1612 (load_modules): Embed memdisk image in module section when requested.
1613 * util/i386/efi/grub-mkimage.c (make_mods_section): Initialize
1614 `header.type' instead of `header.offset'.
1615
1616 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add `memdisk.mod'.
1617 (memdisk_mod_SOURCES, memdisk_mod_CFLAGS)
1618 (memdisk_mod_LDFLAGS): New variables.
1619 * conf/i386-coreboot.rmk: Likewise.
1620 * conf/i386-ieee1275.rmk: Likewise.
1621
a927cc73 16222008-08-02 Robert Millan <rmh@aybabtu.com>
1623
1624 * loader/i386/pc/multiboot.c (playground, forward_relocator)
1625 (backward_relocator): New variables. Used to allocate and relocate
1626 the payload, respectively.
1627 (grub_multiboot_load_elf32): Load into heap instead of requested
825aa57a 1628 address, install the appropriate relocator code in each bound of
a927cc73 1629 the payload, and set the entry point such that
1630 grub_multiboot_real_boot() will jump to one of them.
1631
1632 * kern/i386/loader.S (grub_multiboot_payload_size)
1633 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
1634 (grub_multiboot_payload_entry_offset): New variables.
1635 (grub_multiboot_real_boot): Set cpu context to what the relocator
1636 expects, and jump to the relocator instead of the payload.
1637
1638 * include/grub/i386/loader.h (grub_multiboot_payload_size)
1639 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
1640 (grub_multiboot_payload_entry_offset): Export.
1641
b15d8a0c 16422008-08-01 Bean <bean123ch@gmail.com>
1643
1644 * normal/menu_entry.c (editor_getline): Don't return the original
1645 string as result, as it will be released by lexer once it has done
1646 using it.
1647
cdfb3d22 16482008-08-01 Robert Millan <rmh@aybabtu.com>
1649
1650 * util/grub.d/10_linux.in: Use prepare_grub_to_access_device() from
1651 within menuentries, not before them.
1652 util/grub.d/10_hurd.in: Likewise.
1653
9175e93d 16542008-08-01 Bean <bean123ch@gmail.com>
1655
1656 * conf/common.rmk (pkglib_MODULES): Add bufio.mod.
1657 (bufio_mod_SOURCES): New macro.
1658 (bufio_mod_CFLAGS): Likewise.
1659 (bufio_mod_LDFLAGS): Likewise.
1660
1661 * include/grub/bufio.h: New file.
1662
1663 * io/bufio.c: Likewise.
1664
1665 * video/png.c: Replace <grub/file.h> with <grub/bufio.h>.
1666 (grub_video_reader_png): Use grub_buffile_open to open file.
1667
1668 * video/jpeg.c: Replace <grub/file.h> with <grub/bufio.h>.
1669 (grub_video_reader_jpeg): Use grub_buffile_open to open file.
1670
1671 * video/tga.c: Replace <grub/file.h> with <grub/bufio.h>.
1672 (grub_video_reader_tga): Use grub_buffile_open to open file.
1673
1674 * font/manager.c: Include <grub/bufio.h>.
1675 (add_font): Use grub_buffile_open to open file.
1676
3d8383e7 16772008-07-31 Robert Millan <rmh@aybabtu.com>
1678
1679 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): When loading
1680 ELF segments, use a macro for arbitrarily accessing any of them instead
1681 of preparing a pointer that allows access to one at a time.
1682 (grub_multiboot_load_elf64): Likewise.
1683
16e641b6 16842008-07-31 Bean <bean123ch@gmail.com>
1685
1686 * boot/i386/pc/lnxboot.S (real_code_2): Replace 0x50 with
1687 GRUB_KERNEL_MACHINE_DATA_END.
1688
59198b72 16892008-07-30 Robert Millan <rmh@aybabtu.com>
1690
1691 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_DATA_END):
1692 Increase from 0x50 to 0x60.
1693 * util/i386/pc/grub-install.in: Detect cross-disk installs, and
1694 use UUIDs to identify the root drive for them. If that's not
1695 possible, abort.
1696 * util/i386/pc/grub-setup.c (setup): Do not special-case, or even
1697 check, for cross-disk installs.
1698
ae88bca3 16992008-07-30 Robert Millan <rmh@aybabtu.com>
1700
1701 * kern/ieee1275/init.c (grub_machine_set_prefix): If `grub_prefix'
1702 is non-empty, use it to set the `prefix' environment variable instead
1703 of the usual approach.
1704 * kern/i386/linuxbios/init.c (make_install_device): Remove function.
1705 (grub_machine_set_prefix): Use `grub_prefix' to set the `prefix'
1706 environment variable instead of dummy make_install_device().
1707
1708 * kern/i386/ieee1275/startup.S: Include `<grub/machine/kernel.h>'.
1709 (start): Insert a data section, with `grub_prefix' variable.
825aa57a 1710 * kern/i386/linuxbios/startup.S: Likewise.
ae88bca3 1711
1712 * include/grub/powerpc/ieee1275/kernel.h [!ASM_FILE] (grub_prefix):
1713 New variable reference.
1714 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX):
1715 New macro. Defines offset of `grub_prefix' within startup.S (relative
1716 to `start').
1717 (GRUB_KERNEL_MACHINE_DATA_END): New macro. Defines the end of data
1718 section within startup.S (relative to `start').
1719 * include/grub/i386/coreboot/kernel.h: Likewise.
1720
1721 * util/elf/grub-mkimage.c (add_segments): Receive `prefix' parameter.
1722 Overwrite grub_prefix with its contents, at the beginning of the
1723 first segment.
1724 (main): Understand -p|--prefix.
1725
14f41dd1 17262008-07-30 Robert Millan <rmh@aybabtu.com>
1727
1728 * util/grub.d/10_hurd.in: Source ${libdir}/grub/update-grub_lib.
1729
4ca049a3 17302008-07-30 Robert Millan <rmh@aybabtu.com>
1731
1732 * term/i386/pc/vga_text.c (grub_console_cls): Use
1733 grub_console_gotoxy() to go back to beginning of the screen.
1734 Found by Patrick Georgi <patrick.georgi@coresystems.de>
1735
2921d337 17362008-07-29 Christian Franke <franke@computer.org>
1737
1738 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
1739 Add conversion of emulated mount points on Cygwin.
1740
b609876d 17412008-07-29 Christian Franke <franke@computer.org>
1742
1743 * util/update-grub.in: Add a check for admin
1744 group on Cygwin.
1745 Remove old `grub.cfg.new' before creation.
1746 Add `-f' to `mv' to handle the different filesystem
1747 semantics of Windows.
1748
e93e4679 17492008-07-29 Bean <bean123ch@gmail.com>
1750
1751 * normal/main.c (get_line): Fix buffer overflow bug.
1752
41694fd0 17532008-07-28 Robert Millan <rmh@aybabtu.com>
1754
1755 * partmap/apple.c (GRUB_APPLE_HEADER_MAGIC): New macro.
1756 (struct grub_apple_header): New struct. Describes the layout of
1757 the partmap header.
1758 (apple_partition_map_iterate): Check the header magic as well as the
1759 partition magic (which was already being checked).
1760
cfd0b4e6 17612008-07-28 Pavel Roskin <proski@gnu.org>
1762
1763 * genmk.rb: Add a warning to the beginning of the output that
1764 it's a generated file and should not be edited.
1765
93cce016 17662008-07-28 Robert Millan <rmh@aybabtu.com>
1767
1768 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
1769 with the same number are found, just use issue a warning with
1770 grub_dprintf(), as this error has been reported to be non-fatal.
c298def0 1771
cd1df915 17722008-07-27 Robert Millan <rmh@aybabtu.com>
1773
1774 * disk/ata.c (grub_ata_dumpinfo): Use grub_dprintf() for debugging
1775 information.
1776
b70a8427 17772008-07-27 Bean <bean123ch@gmail.com>
1778
1779 * fs/fat.c (GRUB_FAT_MAXFILE): New constant.
1780 (grub_fat_find_dir): Ignore case when comparing filename.
1781
8f5e379f 17822008-07-27 Bean <bean123ch@gmail.com>
1783
1784 * fs/xfs.c (grub_xfs_dir_header): Change field i8count back to
1785 smallino, as it's more descriptive, and i8count can be confused with
1786 the other field count.
1787 (grub_xfs_iterate_dir): Adjust grub_xfs_dir_entry pointer for small
1788 inode type.
1789
a85cd5a0 17902008-07-27 Bean <bean123ch@gmail.com>
1791
1792 * commands/crc.c: New file.
1793
1794 * lib/crc.c: Likewise.
1795
1796 * include/grub/lib/crc.h: Likewise.
1797
1798 * util/grub-fstest.c: grub/hexdump.h => grub/lib/hexdump.h.
1799
1800 * commands/hexdump.c: grub/hexdump.h => grub/lib/hexdump.h.
1801 (hexdump): Move this function to ...
1802
1803 * lib/hexdump.c: ... here.
1804
1805 * include/grub/hexdump.h: Renamed to ...
1806
1807 * include/grub/lib/hexdump.h: ... this.
1808
1809 * commands/loadenv.c: grub/envblk.h => grub/lib/envblk.h
1810
1811 * util/grub-editenv.c: Likewise.
1812
1813 * include/envblk.h: Renamed to ...
1814
1815 * include/lib/envblk.h: ... this.
1816
1817 * util/envblk.c: Renamed to ...
1818
1819 * lib/envblk.c: ... this.
1820
1821 * conf/common.rmk (grub_fstest_SOURCES): commands/hexdump.c =>
1822 lib/hexdump.c.
1823 (grub_editenv_SOURCES): util/envblk.c => lib/envblk.c
1824 (pkglib_MODULES): Add crc.mod.
1825 (hexdump_mod_SOURCES): Add lib/hexdump.c.
1826 (loadenv_mod_SOURCES): util/envblk.c => lib/envblk.c.
1827 (crc_mod_SOURCES): New macro.
1828 (crc_mod_CFLAGS): Likewise.
1829 (crc_mod_LDFLAGS): Likewise.
1830
1831 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add lib/hexdump.c.
1832
1833 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1834
1835 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
1836
1837 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1838
1839 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1840
c298def0 18412008-07-27 Felix Zielcke <fzielcke@z-51.de>
8749e9e5 1842
1843 * commands/help.c: Include <grub/term.h>.
1844 (TERM_WIDTH): Removed. Updated all users.
1845
cc349fb3 18462008-07-27 Pavel Roskin <proski@gnu.org>
1847
1848 * util/getroot.c (find_root_device): Rephrase a comment to avoid
1849 spurious warnings about a comment within a comment.
1850
9051607e 18512008-07-25 Robert Millan <rmh@aybabtu.com>
1852
1853 * util/getroot.c (find_root_device): Skip devices that match
1854 /dev/dm-[0-9]. This lets the real device be found for any type of
1855 abstraction (LVM, EVMS, RAID..).
1856 (grub_guess_root_device): Do not traverse /dev/mapper (for LVM)
1857 and /dev/evms (for EVMS) before traversing /dev. If a /dev/dm-[0-9]
1858 device is found first, find_root_device() will now skip it.
1859
01453bfc 18602008-07-24 Pavel Roskin <proski@gnu.org>
1861
1862 * include/grub/types.h: Use __builtin_bswap32() and
1863 __builtin_bswap64() with gcc 4.3 and newer.
1864
6af9849f 18652008-07-24 Christian Franke <franke@computer.org>
1866
3a0fa256 1867 * util/i386/pc/grub-install.in: If `--debug' is specified,
1868 pass `--verbose' to grub-setup.
1869 Abort script if make_system_path_relative_to_its_root() fails.
1870
7810e747 18712008-07-24 Bean <bean123ch@gmail.com>
1872
1873 * configure.ac: Fixed a bug caused by the previous cygwin patch,
1874 variable `target_platform' should be `platform'.
1875
42290e17 18762008-07-24 Bean <bean123ch@gmail.com>
1877
51cc5193 1878 * video/reader/png.c (DEFLATE_HLIT_MAX): Change value.
42290e17 1879 (grub_png_init_fixed_block): New function.
1880 (grub_png_decode_image_data): Handle fixed huffman code compression.
1881
2a8a80e4 18822008-07-24 Bean <bean123ch@gmail.com>
1883
1884 * common.rmk (bin_UTILITIES): Add grub-pe2elf.
1885 (grub_pe2elf_SOURCES): New macro.
1886 (CLEANFILES): Add grub-pe2elf.
1887
1888 * include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant.
1889 (GRUB_PE32_SCN_ALIGN_2BYTES): Likewise.
1890 (GRUB_PE32_SCN_ALIGN_4BYTES): Likewise.
1891 (GRUB_PE32_SCN_ALIGN_8BYTES): Likewise.
1892 (GRUB_PE32_SCN_ALIGN_16BYTES): Likewise.
1893 (GRUB_PE32_SCN_ALIGN_32BYTES): Likewise.
1894 (GRUB_PE32_SCN_ALIGN_64BYTES): Likewise.
1895 (GRUB_PE32_SCN_ALIGN_SHIFT): Likewise.
1896 (GRUB_PE32_SCN_ALIGN_MASK): Likewise.
1897 (GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise.
1898 (GRUB_PE32_SYM_CLASS_STATIC): Likewise.
1899 (GRUB_PE32_SYM_CLASS_FILE): Likewise.
1900 (GRUB_PE32_DT_FUNCTION): Likewise.
1901 (GRUB_PE32_REL_I386_DIR32): Likewise.
1902 (GRUB_PE32_REL_I386_REL32): Likewise.
1903 (grub_pe32_symbol): New structure.
1904 (grub_pe32_reloc): Likewise.
1905
1906 * util/grub-pe2elf.c: New file.
1907
1908 * configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for
1909 start symbol in non pc platform.
1910
1911 * genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf.
1912
1913 The following patches are from Christian Franke.
1914
1915 * include/grub/dl.h: Remove .previous, gas supports this only
1916 for ELF format.
1917
1918 * include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE):
1919 Remove .type, gas supports this only for ELF format.
1920
1921 * kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing
1922 nullbytes in symbol table. This fixes an infinite loop if table is
1923 zero filled.
1924
1925 * Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT,
1926 TARGET_IMG_LDFLAGS and EXEEXT.
1927
1928 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by
1929 TARGET_IMG_LDFLAGS_AC.
1930 (grub_CHECK_STACK_ARG_PROBE): New function.
1931
1932 * conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS.
1933
1934 * conf/i386-pc-cygwin-ld-img.sc: New linker script.
1935
1936 * configure.ac: Add check for linker script "conf/${target}-img-ld.c"
1937 to set TARGET_IMG_LD* accordingly.
1938 Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly.
1939 Add call to grub_CHECK_STACK_ARG_PROBE.
1940 Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols.
1941
1942 * genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.
1943
1944 * genmk.rb: Add EXEEXT to CLEANFILES.
1945
12ccdb75 19462008-07-23 Robert Millan <rmh@aybabtu.com>
1947
1948 * Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they
1949 define the codes for arrows and lines used for the menu).
1950 (ascii.pff): Generate fonts for $(UNICODE_ARROWS) and $(UNICODE_LINES)
1951 as well.
1952
1953 * util/update-grub_lib.in (font_path): Prefer ascii.pff over complete
1954 fonts, because the latter are too slow.
1955
18eeaf04 19562008-07-21 Bean <bean123ch@gmail.com>
1957
1958 * kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
1959 a20. Run keyboard test last, as it will cause macbook to halt.
1960
b095e2ad 19612008-07-18 Pavel Roskin <proski@gnu.org>
1962
1963 * kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P. We cannot
1964 load foreign architecture modules correctly anyway. Keep
1965 support for loading host architecture modules, whether we
1966 compile them or not.
1967
737feb35 19682008-07-17 Pavel Roskin <proski@gnu.org>
1969
3f4ce737 1970 * configure.ac: Use -m32 or -m64 regardless of whether we had to
1971 change target_cpu. The compiler default can mismatch target_cpu
1972 in any case.
1973
4ad2d049 1974 * disk/efi/efidisk.c: Fix format warnings on x86_64.
1975 * kern/efi/efi.c: Likewise.
1976
f6130a12 1977 * aclocal.m4 (grub_PROG_TARGET_CC): New macro. Check if the
1978 target compiler is functional.
1979 * configure.ac: Call grub_PROG_TARGET_CC once all target flags
1980 are set up.
1981
58393a2d 1982 * configure.ac: Default to efi platform for x86_64-apple. Allow
1983 powerpc64 CPU, default to ieee1275 platform for it. Split CPU
1984 adjustments from the rest, only do them if target is not
1985 explicitly given. Merge other adjustments with the final sanity
1986 check. Remove an extraneous check for supported CPU. Be
1987 specific which CPU and which platform is not supported.
1988
737feb35 1989 * configure.ac: Default to pc platform for x86_64.
1990
546f966a 19912008-07-17 Robert Millan <rmh@aybabtu.com>
1992
1993 Partial LinuxBIOS -> Coreboot rename.
1994
1995 * conf/i386-linuxbios.rmk: Renamed to ...
1996 * conf/i386-coreboot.rmk: ... this.
1997 * Makefile.in (RMKFILES): s/i386-linuxbios.rmk/i386-coreboot.rmk/g.
1998 * configure.ac: Accept "coreboot" as input platform (but maintain
1999 compatibility with "linuxbios").
2000 * include/grub/i386/linuxbios: Renamed to ...
2001 * include/grub/i386/coreboot: ... this.
2002
20011694 20032008-07-17 Bean <bean123ch@gmail.com>
2004
2005 * conf/i386/efi.rmk (pkglib_MODULES): add pci.mod and lspci.mod.
c11f6d16 2006 (appleldr_mod_SOURCE): New variable.
20011694 2007 (appleldr_mod_CFLAGS): Likewise.
2008 (appleldr_mod_LDFLAGS): Likewise.
2009 (pci_mod_SOURCES): Likewise.
2010 (pci_mod_CFLAGS): Likewise.
2011 (pci_mod_LDFLAGS): Likewise.
2012 (lspci_mod_SOURCES): Likewise.
2013 (lspci_mod_CFLAGS): Likewise.
2014 (lspci_mod_LDFLAGS): Likewise.
2015
2016 * conf/x86_64-efi.rmk: New file.
2017
2018 * disk/efi/efidisk.c (grub_efidisk_read): Wrap efi calls with efi_call_N
2019 macro.
2020 (grub_efidisk_write): Likewise.
2021
2022 * include/efi/api.h (efi_call_0): New macro.
2023 (efi_call_1): Likewise.
2024 (efi_call_2): Likewise.
2025 (efi_call_3): Likewise.
2026 (efi_call_4): Likewise.
2027 (efi_call_5): Likewise.
2028 (efi_call_6): Likewise.
2029
2030 * include/grub/efi/chainloader.h (grub_chainloader_cmd): Rename to
2031 grub_rescue_cmd_chainloader.
2032
2033 * include/grub/efi/pe32.h (GRUB_PE32_MACHINE_X86_64): New macro.
2034 (grub_pe32_optional_header): Change some fields based on i386 or
2035 x86_64 platform.
2036 (GRUB_PE32_PE32_MAGIC): Likewise.
2037
2038 * include/grub/efi/uga_draw.h: New file.
2039
2040 * include/grub/elf.h (STN_ABS): New constant.
2041 (R_X86_64_NONE): Relocation constant for x86_64.
2042 (R_X86_64_64): Likewise.
2043 (R_X86_64_PC32): Likewise.
2044 (R_X86_64_GOT32): Likewise.
2045 (R_X86_64_PLT32): Likewise.
2046 (R_X86_64_COPY): Likewise.
2047 (R_X86_64_GLOB_DAT): Likewise.
2048 (R_X86_64_JUMP_SLOT): Likewise.
2049 (R_X86_64_RELATIVE): Likewise.
2050 (R_X86_64_GOTPCREL): Likewise.
2051 (R_X86_64_32): Likewise.
2052 (R_X86_64_32S): Likewise.
2053 (R_X86_64_16): Likewise.
2054 (R_X86_64_PC16): Likewise.
2055 (R_X86_64_8): Likewise.
2056 (R_X86_64_PC8): Likewise.
2057
2058 * include/grub/i386/efi/pci.h: New file.
2059
2060 * include/grub/i386/linux.h (GRUB_LINUX_EFI_SIGNATURE):
2061 Change it value based on platform.
2062 (GRUB_LINUX_EFI_SIGNATURE_0204): New constant.
2063 (GRUB_E820_RAM): Likewise.
2064 (GRUB_E820_RESERVED): Likewise.
2065 (GRUB_E820_ACPI): Likewise.
2066 (GRUB_E820_NVS): Likewise.
2067 (GRUB_E820_EXEC_CODE): Likewise.
2068 (GRUB_E820_MAX_ENTRY): Likewise.
2069 (grub_e820_mmap): New structure.
2070 (linux_kernel_header): Change the efi field according to different
2071 kernel version, also field from linux_kernel_header.
2072
2073 * include/grub/kernel.h (grub_module_info): Add padding for x86_64.
2074
2075 * include/grub/pci.h (GRUB_PCI_ADDR_SPACE_MASK): New constant.
2076 (GRUB_PCI_ADDR_SPACE_MEMORY): Likewise.
2077 (GRUB_PCI_ADDR_SPACE_IO): Likewise.
2078 (GRUB_PCI_ADDR_MEM_TYPE_MASK): Likewise.
2079 (GRUB_PCI_ADDR_MEM_TYPE_32): Likewise.
2080 (GRUB_PCI_ADDR_MEM_TYPE_1M): Likewise.
2081 (GRUB_PCI_ADDR_MEM_TYPE_64): Likewise.
2082 (GRUB_PCI_ADDR_MEM_PREFETCH): Likewise.
2083 (GRUB_PCI_ADDR_MEM_MASK): Likewise.
2084 (GRUB_PCI_ADDR_IO_MASK): Likewise.
2085
2086 * include/grub/x86_64/efi/kernel.h: New file.
2087
2088 * include/grub/x86_64/efi/loader.h: Likewise.
2089
2090 * include/grub/x86_64/efi/machine.h: Likewise.
2091
2092 * include/grub/x86_64/efi/pci.h: Likewise.
2093
2094 * include/grub/x86_64/efi/time.h: Likewise.
2095
2096 * include/grub/x86_64/linux.h: Likewise.
2097
2098 * include/grub/x86_64/setjmp.h: Likewise.
2099
2100 * include/grub/x86_64/time.h: Likewise.
2101
2102 * include/grub/x86_64/types.h: Likewise.
2103
2104 * kern/dl.c (GRUB_CPU_SIZEOF_VOID_P): Changed to
2105 GRUB_TARGET_SIZEOF_VOID_P.
2106
2107 * kern/efi/efi.c (grub_efi_locate_protocol): Wrap efi calls.
2108 (grub_efi_locate_handle): Likewise.
2109 (grub_efi_open_protocol): Likewise.
2110 (grub_efi_set_text_mode): Likewise.
2111 (grub_efi_stall): Likewise.
2112 (grub_exit): Likewise.
2113 (grub_reboot): Likewise.
2114 (grub_halt): Likewise.
2115 (grub_efi_exit_boot_services): Likewise.
2116 (grub_get_rtc): Likewise.
2117
2118 * kern/efi/mm.c (MEMORY_MAP_SIZE): Change to 0x3000 for new models.
2119 (GRUB_CPU_SIZEOF_VOID_P): Changed to GRUB_TARGET_SIZEOF_VOID_P.
2120 (grub_efi_allocate_pages): Wrap efi calls.
2121 (grub_efi_free_pages): Wrap efi calls.
2122 (grub_efi_get_memory_map): Wrap efi calls.
2123
2124 * kern/x86_64/dl.c: New file.
2125
2126 * kern/x86_64/efi/callwrap.S: Likewise.
2127
2128 * kern/x86_64/efi/startup.S: Likewise.
2129
2130 * loader/efi/appleloader.c: Likewise.
2131
2132 * loader/efi/chainloader.c (cmdline): New variable.
2133 (grub_chainloader_unload): Wrap efi calls.
2134 (grub_chainloader_boot): Likewise.
2135 (grub_rescue_cmd_chainloader): Wrap efi calls, handle
2136 command line.
2137
2138 * loader/efi/chainloader_normal.c (chainloader_command):
2139 Change grub_chainloader_cmd to grub_rescue_cmd_chainloader, pass
2140 command line.
2141
2142 * loader/i386/efi/linux.c (allocate_pages): Change allocation
2143 method.
2144 (grub_e820_add_region): New function.
2145 (grub_linux_boot): Construct e820 map from efi map, handle x86_64
2146 booting.
2147 (grub_find_video_card): New function.
2148 (grub_linux_setup_video): New function.
2149 (grub_rescue_cmd_linux): Probe for video information.
2150
2151 * normal/x86_64/setjmp.S: New file.
2152
2153 * term/efi/console.c (map_char): New function.
2154 (grub_console_putchar): Map unicode char.
2155 (grub_console_checkkey): Wrap efi calls.
2156 (grub_console_getkey): Likewise.
2157 (grub_console_getwh): Likewise.
2158 (grub_console_gotoxy): Likewise.
2159 (grub_console_cls): Likewise.
2160 (grub_console_setcolorstate): Likewise.
2161 (grub_console_setcursor): Likewise.
2162
2163 * util/i386/efi/grub-mkimage.c: Add support for x86_64.
2164
59652a20 21652008-07-16 Pavel Roskin <proski@gnu.org>
2166
ef294055 2167 * loader/i386/efi/linux.c (allocate_pages): Fix warnings in
2168 format strings.
2169
59652a20 2170 * util/i386/efi/grub-mkimage.c (get_target_address): Return a
2171 pointer, not an integer. This fixes a warning and prevents
2172 precision loss on 64-bit systems.
2173 (relocate_addresses): Remove unneeded cast.
2174
afc3b5d7 21752008-07-15 Pavel Roskin <proski@gnu.org>
2176
506b2b3e 2177 * kern/i386/ieee1275/init.c: Include grub/cache.h.
2178
62ead89c 2179 * term/ieee1275/ofconsole.c: Disable code unused on i386.
2180
c4cd51d7 2181 * kern/ieee1275/ieee1275.c (grub_ieee1275_get_integer_property):
2182 Fix comparison between signed and unsigned.
2183
0d3d8f28 2184 * include/grub/i386/ieee1275/console.h: Declare
2185 grub_console_init() and grub_console_fini().
2186
8804b286 2187 * loader/i386/ieee1275/linux.c (grub_set_bootpath): Remove.
2188 It's empty and unused.
2189
ee01cf35 2190 * fs/ext2.c (grub_ext2_read_block): Initialize blknr in the
2191 beginning to avoid warnings with some compilers.
2192
afc3b5d7 2193 * loader/ieee1275/multiboot2.c: Include grub/machine/loader.h.
2194 [__i386__] (grub_mb2_arch_boot): Avoid unnecessary cast.
2195
e4e8eaa5 21962008-07-14 Pavel Roskin <proski@gnu.org>
2197
407aceb4 2198 * kern/env.c (grub_register_variable_hook): Don't copy empty
2199 string, it leaks memory. Pass "" to grub_env_set(), it should
2200 handle constant strings.
2201
e4e8eaa5 2202 * commands/blocklist.c (grub_cmd_blocklist): Fix format warning.
2203 * commands/cmp.c (grub_cmd_cmp): Likewise.
2204 * kern/dl.c (grub_dl_flush_cache): Likewise.
2205 (grub_dl_load_core): Likewise.
2206 * kern/elf.c (grub_elf32_load_phdrs): Likewise.
2207 (grub_elf64_load_phdrs): Likewise.
2208
d4e2dad3 22092008-07-13 Pavel Roskin <proski@gnu.org>
2210
2211 * lib/LzmaEnc.c (LzmaEnc_SetProps): Fix warning about comparison
2212 between signed and unsigned.
2213 (LzmaEnc_Finish): Fix warning about an unused parameter.
2214
aa24b516 22152008-07-13 Bean <bean123ch@gmail.com>
2216
2217 * Makefile.in (enable_lzo): New rule.
2218
2219 * conf/i386-pc.rmk (grub_mkimage_SOURCES): New test with enable_lzo.
2220
2221 * configure.ac (ENABLE_LZO): New option --enable-lzo.
2222
2223 * boot/i386/pc/lnxboot.S: #include <config.h>.
2224
2225 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Change
fe987087 2226 its value according to the compression algorithm used, lzo or lzma.
aa24b516 2227
2228 * util/i386/pc/grub-mkimage.c (compress_kernel): Use different
2229 compression algorithm according to configure macro.
2230
2231 * kern/i386/pc/startup.S (codestart): Likewise.
2232
2233 * kern/i386/pc/lzma_decode.S: New file.
2234
2235 * include/grub/lib/LzFind.h: Likewise.
2236
2237 * include/grub/lib/LzHash.h: Likewise.
2238
2239 * include/grub/lib/LzmaDec.h: Likewise.
2240
2241 * include/grub/lib/LzmaEnc.h: Likewise.
2242
2243 * include/grub/lib/LzmaTypes.h: Likewise.
2244
2245 * lib/LzFind.c: Likewise.
2246
2247 * lib/LzmaDec.c: Likewise.
2248
2249 * lib/LzmaEnc.c: Likewise.
2250
4ae821ac 22512008-07-13 Bean <bean123ch@gmail.com>
2252
2253 * fs/ext2.c (EXT4_EXTENTS_FLAG): New macro.
2254 (grub_ext4_extent_header): New structure.
2255 (grub_ext4_extent): Likewise.
2256 (grub_ext4_extent_idx): Likewise.
2257 (grub_ext4_find_leaf): New function.
2258 (grub_ext2_read_block): Handle extents.
2259
9a745147 22602008-07-12 Robert Millan <rmh@aybabtu.com>
2261
2262 * util/i386/pc/grub-mkrescue.in: s/grub-install/grub-mkrescue/g.
2263
d49a4cf6 22642008-07-11 Robert Millan <rmh@aybabtu.com>
2265
2266 * util/grub.d/40_custom.in: New file. Example on how to add custom
2267 entries to /etc/grub.d.
2268 * conf/common.rmk (%, update-grub_SCRIPTS, CLEANFILES): Install
2269 40_custom (implicitly, by merging all the grub.d rules).
2270
947414b4 22712008-07-11 Pavel Roskin <proski@gnu.org>
2272
0059cf6f 2273 * commands/read.c (grub_getline): Fix invalid memory access.
2274 Don't add newline to the variable value.
2275
947414b4 2276 * term/i386/pc/serial.c (GRUB_SERIAL_PORT_NUM): New constant.
2277 [!GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Add COM2 and COM3.
2278 (serial_hw_get_port): Check validity of the port number.
2279 (grub_cmd_serial): Check return value of serial_hw_get_port().
2280
62a02d00 22812008-07-07 Pavel Roskin <proski@gnu.org>
2282
2283 * boot/i386/pc/diskboot.S (notification_string): Replace
2284 "Loading kernel" with just "loading". This is shorter, less
2285 confusing and saves a few bytes for possible future changes.
2286
3e5581b0 22872008-07-05 Pavel Roskin <proski@gnu.org>
2288
ea387a48 2289 * disk/ata.c (grub_ata_dumpinfo): Don't output addressing and
2290 size for ATAPI devices, they are undefined. Output sector
2291 number in decimal form.
2292
3e5581b0 2293 * disk/ata.c: Use named constants for status bits.
2294
fdecb8fd 22952008-07-04 Pavel Roskin <proski@gnu.org>
2296
bcd35b90 2297 * kern/i386/linuxbios/init.c (grub_machine_init): Cast addr to
2298 grub_addr_t before casting it to the void pointer to fix a
2299 warning. Non-addressable regions are discarded earlier.
2300 (grub_arch_modules_addr): Cast _end to grub_addr_t.
2301 * kern/i386/linuxbios/table.c: Include grub/misc.h.
2302 (check_signature): Don't shadow table_header.
2303 (grub_linuxbios_table_iterate): Cast numeric constants to
2304 grub_linuxbios_table_header_t.
2305 * include/grub/i386/linuxbios/init.h: Add noreturn attribute to
2306 grub_stop().
2307
af58ab3d 2308 * kern/ieee1275/init.c: Cast _start and _end to grub_addr_t to
2309 prevent warnings.
2310
1759aa57 2311 * include/grub/misc.h (ALIGN_UP): Avoid unnecessary cast to a
2312 pointer, which can cause warnings. Support 64-bit addresses.
2313
fdecb8fd 2314 * util/elf/grub-mkimage.c: Use GRUB_TARGET_SIZEOF_LONG instead
2315 of sizeof(long). This fixes PowerPC image generation on x86_64.
2316
8516d2a8 23172008-07-04 Robert Millan <rmh@aybabtu.com>
2318
2319 This fixes a performance issue when pc & gpt partmap iterators
2320 didn't abort iteration even after our hook found what it was
fe987087 2321 looking for (often causing expensive probes of non-existent drives).
8516d2a8 2322
2323 Some callers relied on previous buggy behaviour, since they would
2324 rise an error when their own hooks caused early abortion of its
2325 iteration.
2326
2327 * kern/device.c (grub_device_open): Improve error message.
2328 * disk/lvm.c (grub_lvm_open): Likewise.
2329 * disk/raid.c (grub_raid_open): Likewise.
2330
2331 * partmap/pc.c (pc_partition_map_iterate): Abort parent iteration
2332 when hook requests it, independently of grub_errno.
2333 (pc_partition_map_probe): Do not fail when find_func() caused
2334 early abortion of pc_partition_map_iterate().
2335
2336 * partmap/gpt.c (gpt_partition_map_iterate): Abort parent iteration
2337 when hook requests it, independently of grub_errno.
2338 (gpt_partition_map_probe): Do not fail when find_func() caused
2339 early abortion of gpt_partition_map_iterate().
2340
2341 * kern/partition.c (grub_partition_iterate): Abort parent iteration
2342 when hook requests it, independently of grub_errno. Do not fail when
2343 part_map_iterate_hook() caused early abortion of p->iterate().
2344
2345 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail
2346 when grub_partition_iterate() returned with non-zero.
2347
277d0de9 23482008-07-03 Pavel Roskin <proski@gnu.org>
2349
2350 * disk/ata.c (grub_ata_pio_write): Check status before writing,
2351 like we do in grub_ata_pio_read().
2352 (grub_ata_readwrite): Always write individual sectors. Fix the
2353 sector count for the remainder.
2354 (grub_ata_write): Enable writing to ATA devices. Correctly
2355 report error for ATAPI devices.
2356
d4c9b428 23572008-07-02 Pavel Roskin <proski@gnu.org>
2358
e43fc690 2359 * boot/i386/pc/cdboot.S: Add _start entry to fix a linker
2360 warning.
2361
f707af42 2362 * disk/ata.c (grub_ata_readwrite): Don't increment sector number
2363 for every read sector, we already increment it for the whole
2364 batch. This fixes reading more than 256 sectors at once.
2365
11e16b15 2366 * util/grub-editenv.c (cmd_info): Cast argument to long
2367 explicitly. ptrdiff_t reduces to int on i386.
2368
cbabfdd4 2369 * util/grub-editenv.c (main): Be specific which parameter is
2370 missing.
2371
b8fbce0a 2372 * disk/memdisk.c (memdisk_addr): Make a pointer to fix warnings.
2373 (memdisk): Make memdisk_orig_addr a pointer.
2374
c9c8e606 2375 * fs/reiserfs.c (grub_reiserfs_read): Fix misuse of grub_size_t
2376 for file offsets, use grub_off_t instead. Fix printf format
2377 warnings.
2378
ca62e598 2379 * fs/reiserfs.c: Remove #warning, TODO list items don't belong
2380 there. Real unexpected warnings should not drown in the noise
2381 about known problems.
2382
ce8d1766 2383 * commands/hexdump.c (grub_cmd_hexdump): Fix misuse of
2384 grub_disk_addr_t for memory addresses.
2385
00c7a56a 2386 * loader/aout.c (grub_aout_load): Cast load_addr to pointer
2387 explicitly to fix a warning.
2388
08d3ef09 2389 * util/grub-editenv.c (cmd_info): Fix warning in printf format.
2390
cb71ba20 2391 * Makefile.in (MODULE_LDFLAGS): New variable.
2392 * aclocal.m4 (grub_PROG_LD_BUILD_ID_NONE): New macro. Check if
2393 the linker accepts --build-id=none.
2394 * configure.ac: Call grub_PROG_LD_BUILD_ID_NONE. Substitute
2395 MODULE_LDFLAGS.
2396 * genmk.rb: Use MODULE_LDFLAGS when linking modules.
2397
d4c9b428 2398 * fs/xfs.c (struct grub_xfs_dir_header): Use names similar to
2399 those in Linux XFS code. Provide a way to access 64-bit parent
2400 inode.
2401 (grub_xfs_iterate_dir): Use the new names. Avoid reading past
2402 the end of struct grub_xfs_dir_header.
2403
d4156eee 24042008-07-02 Bean <bean123ch@gmail.com>
2405
2406 * include/grub/ieee1275.h (grub_ieee1275_flag): New constant
2407 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
2408 and GRUB_IEEE1275_FLAG_NO_ANSI.
2409
2410 * kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set flag
2411 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
2412 and GRUB_IEEE1275_FLAG_NO_ANSI for Open Hackware.
2413
2414 * kern/ieee1275/ieee1275.c (grub_ieee1275_interpret): Return
2415 immediately if GRUB_IEEE1275_FLAG_CANNOT_INTERPRET is set.
2416
2417 * kern/ieee1275/init.c (grub_claim_heap): Claim memory directly if
2418 GRUB_IEEE1275_FLAG_FORCE_CLAIM is set.
2419
2420 * term/ieee1275/ofconsole.c (grub_ofconsole_writeesc): Don't output
2421 esc sequence on non ANSI terminal.
2422 (grub_ofconsole_gotoxy): Emulate backspace key on non ANSI terminal.
2423
2424 * util/elf/grub-mkimage.c (add_segments): Move ELF header to the
2425 beginning of file.
2426
2270f77b 24272008-07-02 Bean <bean123ch@gmail.com>
2428
2429 * conf/common.rmk (bin_UTILITIES): Add grub-editenv.
2430 (grub_editenv_SOURCES): New variable.
2431 (pkglib_MODULES): Add loadenv.mod.
2432 (loadenv_mod_SOURCES): New variable.
2433 (loadenv_mod_CFLAGS): Likewise.
2434 (loadenv_mod_LDFLAGS): Likewise.
2435
2436 * include/grub/envblk.h: New file.
2437
2438 * util/envblk.c: New file.
2439
2440 * util/grub-editenv.c: New file.
2441
2442 * commands/loadenv.c: New file.
2443
0e9e51ec 24442008-07-01 Pavel Roskin <proski@gnu.org>
2445
d89b7634 2446 * include/multiboot2.h (struct multiboot_tag_module): Use char,
2447 not unsigned char. This fixes warnings and is consistent with
2448 other tags.
2449
bf1835b1 2450 * disk/fs_uuid.c (search_fs_uuid): Correctly increment count.
2451
8222a04b 2452 * normal/parser.y: Define YYENABLE_NLS as 0 to fix warnings.
2453
6a42d99d 2454 * term/tparm.c (analyze): Always set *popcount.
2455
10b159d1 2456 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Remove useless
2457 cast to fix a warning.
2458
b8789f6c 2459 * loader/i386/pc/multiboot2.c (grub_mb2_arch_module_alloc): Use
2460 cast to suppress a warning.
2461
29d7e38a 2462 * fs/afs.c (grub_afs_read_block): Return grub_disk_addr_t, as
2463 grub_fshelp_read_file() expects.
2464
f341f669 2465 * fs/fat.c: Fix UUID calculation on big-endian systems. We
2466 write uuid as a 32-bit value in CPU byte order, so declare and
2467 use it as such.
2468
0e9e51ec 2469 * disk/raid.c: Cast grub_dprintf() arguments to unsigned long
2470 long if the format specifier expects it.
2471 * partmap/gpt.c (gpt_partition_map_iterate): Likewise.
2472 * partmap/pc.c (pc_partition_map_iterate): Likewise.
2473 * fs/ntfs.c (grub_ntfs_uuid): Cast data->uuid to unsigned long
2474 long to fix a warning.
2475 * fs/reiserfs.c (grub_reiserfs_read): Change casts in
2476 grub_dprintf() arguments to fix warnings.
2477
3aefa857 24782008-06-30 Pavel Roskin <proski@gnu.org>
2479
56c7668b 2480 * util/i386/pc/grub-setup.c (setup): Write install_dos_part and
2481 install_bsd_part immediately before core.img is embedded or
2482 modified on disk. This fixes core.img verification if core.img
2483 cannot be embedded.
2484
3aefa857 2485 * util/i386/pc/grub-setup.c (setup): Use core_path_dev, not
2486 core_path to calculate the blocklist.
2487 Patch from Javier Martín <lordhabbit@gmail.com>
2488
5444088d 24892008-06-29 Robert Millan <rmh@aybabtu.com>
2490
2491 * fs/xfs.c (GRUB_XFS_FSB_TO_BLOCK): New macro. Maps filesystem
2492 block to disk block.
2493 (grub_xfs_read_block): Use GRUB_XFS_FSB_TO_BLOCK() on result.
2494 Patch from Niels Böhm <bitbucket@arcor.de>
2495
674835c8 24962008-06-29 Robert Millan <rmh@aybabtu.com>
2497
2498 * util/update-grub_lib.in (font_path): Search for fonts in
2499 /boot/grub first, which is more likely to be readable (we aren't
2500 deciding where fonts live, just looking for them).
2501
f527dbc8 25022008-06-26 Pavel Roskin <proski@gnu.org>
2503
6c2d8df6 2504 * util/biosdisk.c (read_device_map): Don't leave dead map
2505 entries for devices failing stat() check.
2506
f527dbc8 2507 * util/i386/pc/grub-setup.c (setup): Don't reuse core_path, use
2508 core_path_dev for the core.img path on the target device.
2509
aebe3d13 25102008-06-26 Robert Millan <rmh@aybabtu.com>
2511
2512 * disk/fs_uuid.c: New file.
2513 * conf/common.rmk (pkglib_MODULES): Add `fs_uuid.mod'.
2514 (fs_uuid_mod_SOURCES, fs_uuid_mod_CFLAGS)
2515 (fs_uuid_mod_LDFLAGS): New variables.
2516 * include/grub/disk.h (grub_disk_dev_id): Add
2517 `GRUB_DISK_DEVICE_UUID_ID'.
2518 * kern/disk.c (grub_disk_dev_iterate): Allow disk devices not to
2519 implement iterate().
2520
37aaf354 25212008-06-26 Robert Millan <rmh@aybabtu.com>
2522
2523 * util/grub.d/10_linux.in: Avoid passing UUIDs to Linux when either
2524 "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" does not exist, or when a
2525 Linux image includes no initrd.
2526
25ff262a 25272008-06-21 Javier Martín <lordhabbit@gmail.com>
2528
2529 * util/i386/pc/grub-setup.c (setup): Remove literal "core.img" in a
2530 call to resolve the core image location that effectively appended the
2531 name twice.
2532
76a2bd44 25332008-06-21 Robert Millan <rmh@aybabtu.com>
2534
2535 * util/grub.d/00_header.in: Move last prepare_grub_to_access_device()
2536 call from here ...
2537
2538 * util/grub.d/10_hurd.in: ... to here ...
2539 * util/grub.d/10_linux.in: ... and here.
2540
650e1c79 25412008-06-19 Robert Millan <rmh@aybabtu.com>
2542
fe987087 2543 * kern/main.c (grub_main): Export `prefix' variable immediately
650e1c79 2544 after it has been set by grub_machine_set_prefix().
2545
6ce63911 25462008-06-19 Robert Millan <rmh@aybabtu.com>
2547
2548 * commands/search.c (search_label, search_fs_uuid, search_file): Print
2549 search result when not saving to variable, not the other way around.
2550 When saving to variable, abort iteration as soon as a match is found.
2551
73940cec 25522008-06-19 Robert Millan <rmh@aybabtu.com>
2553
2554 * util/update-grub_lib.in (prepare_grub_to_access_device): Remove
2555 check for partition that provides /boot/grub. Its logic is flawed,
2556 as it prevents prepare_grub_to_access_device() from being called
2557 multiple times.
2558
3c62a39d 25592008-06-19 Robert Millan <rmh@aybabtu.com>
2560
2561 * util/update-grub_lib.in (prepare_grub_to_access_device): Issue
2562 "insmod" command directly when abstraction modules are needed,
fe987087 2563 instead of relying on GRUB_PRELOAD_MODULES (which had no effect
3c62a39d 2564 since it had already been processed).
2565
47395a42 25662008-06-19 Pavel Roskin <proski@gnu.org>
2567
2568 * conf/i386-efi.rmk: Recompile grub-mkimage.c if Makefile has
2569 changed. This is needed in case GRUB_LIBDIR changes.
2570 * conf/i386-ieee1275.rmk: Likewise.
2571 * conf/i386-linuxbios.rmk: Likewise.
2572 * conf/i386-pc.rmk: Likewise.
2573 * conf/powerpc-ieee1275.rmk: Likewise.
2574
a145ac2d 25752008-06-18 Pavel Roskin <proski@gnu.org>
2576
2577 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Rename
2578 kernel_elf_symlist.c to symlist.c for consistency with other
2579 architectures. Update all users.
2580 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
2581
7847c51e 25822008-06-18 Robert Millan <rmh@aybabtu.com>
2583
2584 * util/i386/pc/grub-install.in: If the drive is LVM or RAID, prepend
2585 it in prefix.
2586
2587 * util/i386/pc/grub-setup.c (main): Don't handle prefix at all. Set
2588 `must_embed' to 1 when root_dev is a RAID device. When dest_dev is
2589 a RAID device, run setup() for all members independently on whether
2590 LVM abstraction is being used.
2591 (setup): Don't handle prefix at all; let grub-mkimage take care of it.
2592 If grub-mkimage has set `*install_dos_part == -2', don't override this
2593 value.
2594 Perform *install_dos_part adjustments independently on whether
2595 we're embedding or not.
2596 Clarify error message when image is too big for embedding.
2597 Remove duplicate *install_dos_part stanza.
2598
b23e5644 25992008-06-17 Robert Millan <rmh@aybabtu.com>
2600
2601 * term/ieee1275/ofconsole.c (fgcolor, bgcolor): Remove variables.
2602 (grub_ofconsole_normal_color, grub_ofconsole_highlight_color): New
2603 variables.
2604 (grub_ofconsole_setcolor, grub_ofconsole_getcolor): Load/store
2605 values in grub_ofconsole_normal_color and
2606 grub_ofconsole_highlight_color (they're not directly related to
2607 background and foreground).
2608 (grub_ofconsole_setcolorstate): Extract background and foreground
2609 from grub_ofconsole_normal_color and grub_ofconsole_highlight_color.
2610
0aac2f79 26112008-06-17 Robert Millan <rmh@aybabtu.com>
2612
2613 * util/update-grub_lib.in (prepare_grub_to_access_device): Use
2614 /boot/grub for the check in last commit, not /boot (they could be
2615 different partitions).
2616
3cca7ef3 26172008-06-16 Robert Millan <rmh@aybabtu.com>
2618
2619 * util/update-grub_lib.in (prepare_grub_to_access_device): If we were
2620 asked to setup access for the same partition that provides /boot,
2621 don't bother using UUIDs since our root already has the value we
2622 want.
2623
347396d8 26242008-06-16 Robert Millan <rmh@aybabtu.com>
2625
2626 * util/biosdisk.c (convert_system_partition_to_system_disk): Detect
2627 I2O devices.
2628 Patch from Sven Mueller <sven@debian.org>.
2629
991477f8 26302008-06-16 Robert Millan <rmh@aybabtu.com>
2631
2632 * util/update-grub.in: Check for $EUID instead of $UID.
2633 Reported by Vincent Zweije.
2634
d31a32a1 26352008-06-16 Bean <bean123ch@gmail.com>
2636
fe987087 2637 * fs/ext2.c (grub_ext2_blockgroup): Revert to pre-journal state.
d31a32a1 2638 (grub_ext2_read_block): Likewise.
2639 (grub_ext2_read_inode): Likewise.
2640 (grub_ext2_mount): Likewise.
2641 (grub_ext2_close): Likewise.
2642 (grub_ext3_get_journal): Removed.
2643
fe987087 2644 * fs/reiserfs.c (grub_reiserfs_get_item): Revert to pre-journal state.
d31a32a1 2645 (grub_reiserfs_read_symlink): Likewise.
2646 (grub_reiserfs_mount): Likewise.
2647 (grub_reiserfs_open): Likewise.
2648 (grub_reiserfs_read): Likewise.
2649 (grub_reiserfs_close): Likewise.
2650 (grub_reiserfs_get_journal): Removed.
2651
2652 * fs/fshelp.c (grub_fshelp_read): Removed.
2653 (grub_fshelp_map_block): Likewise.
2654
2655 * include/grub/fshelp.h (grub_fshelp_journal_type): Removed.
2656 (grub_fshelp_journal): Likewise.
2657 (grub_fshelp_read): Likewise.
2658 (grub_fshelp_map_block): Likewise.
2659
3540a760 26602008-06-16 Pavel Roskin <proski@gnu.org>
2661
2662 * conf/powerpc-ieee1275.rmk: Remove -msoft-float, we don't use
2663 floating point anymore.
2664 * include/grub/powerpc/libgcc.h: Leave only necessary exports.
2665
95614c84 26662008-06-15 Pavel Roskin <proski@gnu.org>
2667
2668 * commands/ls.c (grub_ls_list_files): Use integer calculations
2669 for human readable format, avoid floating point use.
2670 * kern/misc.c (grub_ftoa): Remove.
2671 (grub_vsprintf): Remove floating point support.
2672
50465dd6 26732008-06-15 Robert Millan <rmh@aybabtu.com>
2674
fe6b695a 2675 * util/grub.d/10_linux.in: Use the underlying device for loop-AES
50465dd6 2676 devices.
2677 Reported by Max Vozeler.
2678
a9207284 26792008-06-15 Robert Millan <rmh@aybabtu.com>
2680
2681 * util/i386/pc/grub-mkimage.c (generate_image): If we included a drive
2682 in our prefix, set install_{dos,bsd}_part = -2 to indicate this can be
2683 skipped later.
2684 (main): If a memdisk was requested, add "(memdisk)" drive explicitly to
2685 the beginning of the prefix.
2686
2687 * kern/i386/pc/init.c (make_install_device): Remove memdisk check.
2688 It is assumed that if we have a memdisk, grub-mkimage has set
2689 grub_prefix to include the "(memdisk)" drive in it.
2690
a7cbd45a 26912008-06-15 Robert Millan <rmh@aybabtu.com>
2692
2693 * term/i386/pc/console.c [GRUB_MACHINE_LINUXBIOS] (grub_console_init):
2694 Initialize keyboard controller after registering the terminal, so that
2695 grub_printf() can be called from grub_keyboard_controller_init().
2696
21cf716a 26972008-06-15 Robert Millan <rmh@aybabtu.com>
2698
2699 * fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in
2700 extent-btree which is written as big endian on disk.
2701 Reported by Alain Greppin <al@chilibi.org>.
2702
23a64d8e 27032008-06-14 Robert Millan <rmh@aybabtu.com>
2704
2705 * util/i386/efi/grub-install.in (modules): Remove `_chain'.
2706 * util/i386/pc/grub-install.in (modules): Likewise.
2707
d687651c 27082008-06-13 Pavel Roskin <proski@gnu.org>
2709
2710 * commands/ls.c (grub_ls_list_files): Fix format warnings.
2711
dfe9ddd4 27122008-06-13 Bean <bean123ch@gmail.com>
2713
2714 * commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.
2715
2716 * fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling.
2717
2718 * fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
2719 to indicate sparse block.
2720
16ae7781 27212008-06-12 Pavel Roskin <proski@gnu.org>
2722
e6d1a308 2723 * fs/ext2.c (grub_ext2_read_inode): Don't normalize block
2724 number, grub_fshelp_read() does it for us.
2725
16ae7781 2726 * fs/fshelp.c (grub_fshelp_read): New function. Implement
2727 linear disk read with journal translation.
2728 * fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
2729 * include/grub/fshelp.h: Declare grub_fshelp_read().
2730
40fd3a2b 27312008-06-09 Pavel Roskin <proski@gnu.org>
2732
2733 * fs/minix.c (grub_minix_mount): Handle error reading
2734 superblock.
2735
f5679726 27362008-06-08 Robert Millan <rmh@aybabtu.com>
2737
2738 * util/i386/pc/grub-setup.c (main): If install drive is an LVM,
2739 don't append the RAID prefix afterwards.
2740 Reported by Clint Adams.
2741
ce525529 27422008-06-08 Robert Millan <rmh@aybabtu.com>
2743
2744 Based on description from Pavel:
2745 * kern/disk.c (grub_disk_check_range): Rename to ...
2746 (grub_disk_adjust_range): ... this. Add a comment explaining the
2747 tasks performed by this function.
2748
ad4936a0 27492008-06-08 Robert Millan <rmh@aybabtu.com>
2750
2751 * include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to
2752 `num_serial' (for consistency with other variables).
2753 (struct grub_ntfs_data): Add `uuid' member.
2754 * fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'.
2755 (grub_ntfs_uuid): New function.
2756 (grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member.
2757
dc20b0f9 27582008-06-07 Pavel Roskin <proski@gnu.org>
2759
2760 * util/biosdisk.c (open_device): Revert last change to the
2761 function, it broke installation. The sector needs to be
2762 different dependent on which device is opened.
2763
c5e3cfba 27642008-06-06 Robert Millan <rmh@aybabtu.com>
2765
2766 Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the
2767 rest of GRUB, and breakage doesn't happen if its value were modified.
2768
2769 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
2770 Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of
2771 a constant (same value).
2772 * kern/i386/pc/startup.S: Replace hardcoded `0x50' with
2773 `GRUB_KERNEL_MACHINE_DATA_END' (same value).
2774
26a1f8c4 27752008-06-06 Robert Millan <rmh@aybabtu.com>
2776
2777 * util/biosdisk.c (open_device): Do not modify sector offset when
2778 accessing a partition. kern/disk.c already handles this for us.
2779
25d6b327 27802008-06-06 Robert Millan <rmh@aybabtu.com>
2781
2782 * util/grub-emu.c (grub_machine_init): Move code in this function from
2783 here ...
2784 (main): ... to here (before grub_util_biosdisk_init() call, to prevent
2785 segfault in case grub_printf() is called).
2786
2787 * util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to
2788 grub_probe. Update all users not to explicitly add it again.
2789 (grub_device): New variable; contains corresponding device for grubdir.
2790 (fs_module, partmap_module, devabstraction_module): Pass
2791 `--device ${grub_device}' to grub_probe to avoid traversing /dev
2792 every time.
2793
9ece62fb 27942008-06-05 Robert Millan <rmh@aybabtu.com>
2795
2796 * normal/misc.c (grub_normal_print_device_info): When a filesystem UUID
2797 is found, print it (same layout as with labels).
2798
1ad36d37 27992008-06-04 Robert Millan <rmh@aybabtu.com>
2800
2801 * util/biosdisk.c (get_drive): Rename to ...
2802 (find_grub_drive): ... this. Update all users.
2803
2804 (get_os_disk): Rename to ...
2805 (convert_system_partition_to_system_disk): ... this. Update all users.
2806
2807 (find_drive): Rename to ...
2808 (find_system_device): ... this. Update all users.
2809
e6a30859 28102008-06-04 Robert Millan <rmh@aybabtu.com>
2811
2812 * util/biosdisk.c (get_os_disk): Handle IDA devices.
2813 * util/grub-mkdevicemap.c (get_mmc_disk_name)
2814 (make_device_map): Likewise.
2815
00c108a4 28162008-06-01 Robert Millan <rmh@aybabtu.com>
2817
2818 * util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL
2819 before dereferencing it.
2820
2821 * fs/fat.c (struct grub_fat_bpb): Move fat32-specific fields into a
2822 union with fat12/fat16-specific ones. Add some new fields, including
2823 `num_serial' for both versions.
2824 (struct grub_fat_data): Add `uuid' member.
2825 (grub_fat_mount): Refer to fat32-specific fields in `bpb' by their new
2826 names. Initialize `data->uuid' using `num_serial'.
2827 (grub_fat_uuid): New function.
2828 (grub_fat_fs): Reference grub_fat_uuid() in `uuid' struct member.
2829
2830 * fs/reiserfs.c (grub_reiserfs_superblock): Add `uuid' field.
2831 (grub_reiserfs_uuid): New function.
2832 (grub_reiserfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct
2833 member.
2834
2835 * fs/xfs.c (grub_xfs_sblock): Add `uuid' field.
2836 (grub_xfs_uuid): New function.
2837 (grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member.
2838
1385c5bb 28392008-06-01 Robert Millan <rmh@aybabtu.com>
2840
2841 * util/update-grub_lib.in (prepare_grub_to_access_device): Generate
2842 code that is backward compatible with pre-uuid search command.
2843
c682dfd7 28442008-05-31 Robert Millan <rmh@aybabtu.com>
2845
2846 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through
2847 floppies after everything else, to ensure floppy drive isn't accessed
2848 unnecessarily (patch from Bean).
2849
b7db5d47 28502008-05-31 Robert Millan <rmh@aybabtu.com>
2851
2852 * commands/search.c (search_label, search_fs_uuid, search_file): Do
2853 not print device names when we were asked to set a variable.
2854
6e037aa9 28552008-05-31 Robert Millan <rmh@aybabtu.com>
2856
2857 * term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement
2858 using "cursor-on" and "cursor-off" commands (understood at least by
2859 the Open Firmware flavour on OLPC).
2860
41305bc8 28612008-05-31 Michael Gorven <michael@gorven.za.net>
2862
2863 * term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor
2864 on and off sequences.
2865
69ba137e 28662008-05-31 Robert Millan <rmh@aybabtu.com>
2867
2868 * util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'.
2869 * util/update-grub.in: Likewise.
2870
520ae21b 28712008-05-30 Pavel Roskin <proski@gnu.org>
2872
2873 * util/biosdisk.c (linux_find_partition): Simplify logic and
2874 make the code more universal. Keep special processing for
2875 devfs, but use a simple rule for all other devices. If the
2876 device ends with a number, append 'p' and the partition number.
2877 Otherwise, append only the partition number.
2878
5786569b 28792008-05-30 Robert Millan <rmh@aybabtu.com>
2880
2881 * util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable.
2882 * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and
2883 GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as
2884 the `root' parameter to Linux.
2885
51500452 28862008-05-30 Robert Millan <rmh@aybabtu.com>
2887
2888 * commands/search.c (options): Rename --fs_uuid to --fs-uuid.
2889 * util/update-grub_lib.in (prepare_grub_to_access_device): Replace
2890 --fs_uuid with --fs-uuid.
2891 * util/update-grub.in: Allow filesystem UUID probes to fail (since not
2892 all filesystems support them).
2893
811d3878 28942008-05-30 Robert Millan <rmh@aybabtu.com>
2895
2896 * fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as
f19dbdb7 2897 grub_printf() flags, since we're printing in units of 2 bytes.
811d3878 2898
cab63c95 28992008-05-30 Robert Millan <rmh@aybabtu.com>
2900
2901 * util/grub.d/00_header.in: Remove obsolete comment referencing
2902 convert_system_path_to_grub_path().
2903 * util/update-grub.in: Likewise.
2904 * util/update-grub_lib.in (is_path_readable_by_grub): New function.
2905 (convert_system_path_to_grub_path): Add a warning message explaining
2906 that this function is deprecated. Rely on is_path_readable_by_grub()
2907 for the readability checks.
2908 (font_path): Use is_path_readable_by_grub() for the readability
2909 check rather than convert_system_path_to_grub_path().
2910
972e2f7a 29112008-05-30 Robert Millan <rmh@aybabtu.com>
2912
2913 * util/update-grub_lib.in (prepare_grub_to_access_device): New function.
2914 * util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without
2915 converting it first.
2916 * util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup
2917 grub.cfg for access to font file, and afterwards call it again to set
2918 the root device.
2919
62191274 29202008-05-30 Robert Millan <rmh@aybabtu.com>
2921
2922 * commands/search.c (options): Add --fs_uuid option.
2923 (search_fs_uuid): New function.
2924 (grub_cmd_search): Fix --set argument passing.
2925 Use search_fs_uuid() when requested via --fs_uuid.
2926 (grub_search_init): Update help message.
2927 * fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid'
2928 and redeclare it as an array of 16-bit words.
2929 (grub_ext2_uuid): New function.
2930 (grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member.
2931 * include/grub/fs.h (struct grub_fs): Add `uuid' struct member.
2932 * util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT)
2933 (GRUB_DEVICE_BOOT_UUID): New variables.
2934 (GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove.
2935 * util/grub.d/00_header.in: Set root using `search --fs_uuid' command
2936 whenever possible.
2937 * util/grub.d/10_hurd.in: Avoid explicit use of root drive. Instead,
2938 just assume `root' variable has the right value.
2939 * util/grub.d/10_linux.in: Likewise.
2940 * util/grub-probe.c (probe): Probe for filesystem UUID when requested
2941 via PRINT_FS_UUID.
2942 (main): Recognise `-t fs_uuid' argument.
2943
01b73ec8 29442008-05-30 Robert Millan <rmh@aybabtu.com>
2945
2946 * util/biosdisk.c (map): Redefine structure to hold information
2947 about GRUB drive name.
fe6b695a 2948 (get_drive): Reimplement without assuming (and verifying) BIOS-like
01b73ec8 2949 drive names.
2950 (call_hook): Remove.
2951 (grub_util_biosdisk_iterate): Access drive names via `.drive' struct
2952 member. Assume drive has partitions.
2953 (grub_util_biosdisk_open): Access device names via `.device' struct
2954 member.
2955 (open_device): Likewise.
2956 (find_drive): Likewise.
2957 (read_device_map): Adjust map[] usage to match the new struct
2958 definition. Don't check for duplicates (still possible, but not cheap
2959 anymore).
2960 (grub_util_biosdisk_fini): Free malloced buffers referenced by map[].
2961 (make_device_name): Remove assumption of BIOS-like drive names.
2962
22f16596 29632008-05-30 Pavel Roskin <proski@gnu.org>
2964
2965 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as
2966 compiling execute.c doesn't need grub_script.tab.h anymore.
2967 (normal/command.c_DEPENDENCIES): Likewise.
2968 (normal/function.c_DEPENDENCIES): Likewise.
2969 * conf/i386-ieee1275.rmk: Likewise.
2970 * conf/i386-linuxbios.rmk: Likewise.
2971 * conf/i386-pc.rmk: Likewise.
2972 * conf/powerpc-ieee1275.rmk: Likewise.
2973 * conf/sparc64-ieee1275.rmk: Likewise.
2974
528ad8f2 29752008-05-29 Pavel Roskin <proski@gnu.org>
2976
d1dff95d 2977 * disk/lvm.c (grub_lvm_scan_device): Check for the buffer end
2978 when scanning metadata for volume group name.
2979
528ad8f2 2980 * include/grub/script.h: Don't include grub_script.tab.h. It's
2981 a generated file, which may only be included from the files with
2982 DEPENDENCIES rules in the makefile. Don't use typedef YYSTYPE,
2983 use union YYSTYPE, as the later allows forward declaration.
2984 * normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.
2985
47248e08 29862008-05-29 Robert Millan <rmh@aybabtu.com>
2987
2988 * term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'.
2989 (OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros.
2990 [GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes
2991 (grub_console_checkkey): Add grub_dprintf() call to report unknown
2992 scan codes.
2993
ee632529 29942008-05-29 Robert Millan <rmh@aybabtu.com>
2995
2996 * term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for
2997 control key combinations.
2998
eee96e08 29992008-05-29 Robert Millan <rmh@aybabtu.com>
3000
3001 * util/powerpc/ieee1275/grub-install.in: Move from here ...
3002 * util/ieee1275/grub-install.in: ... to here.
3003 * powerpc-ieee1275.rmk (grub_install_SOURCES): Update location.
3004 * i386-ieee1275.rmk (sbin_SCRIPTS): New variable.
3005 (grub_install_SOURCES): Likewise.
3006
da9a6a94 30072008-05-29 Robert Millan <rmh@aybabtu.com>
3008
3009 * fs/affs.c: Update copyright year.
3010 * fs/ext2.c: Likewise.
3011 * fs/fshelp.c: Likewise.
3012 * fs/hfsplus.c: Likewise.
3013 * fs/ntfs.c: Likewise.
3014 * fs/xfs.c: Likewise.
3015 * include/grub/fshelp.h: Likewise.
3016 * util/grub-mkdevicemap.c: Likewise.
3017
12e65f3a 30182008-05-28 Robert Millan <rmh@aybabtu.com>
3019
3020 * util/update-grub.in: Allow chmod call to fail, since /boot/grub/
3021 might need to be fatfs to support some firmware implementations
3022 (e.g. OFW or EFI).
3023
23023641 30242008-05-28 Robert Millan <rmh@aybabtu.com>
3025
3026 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC
3027 devices.
3028 * util/grub-mkdevicemap.c (get_mmc_disk_name)
3029 (make_device_map): Likewise.
3030
887d2619 30312008-05-20 Bean <bean123ch@gmail.com>
3032
3033 * fs/fshelp.c (grub_fshelp_map_block): New function.
3034 (grub_fshelp_find_file): Use 64-bit type for pos and block address.
3035 Use `>>' and `&' operator to avoid 64-bit divide and modulo.
3036
3037 * include/grub/fshelp.h (grub_fshelp_journal_type): New enum.
3038 (GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro.
3039 (grub_fshelp_journal): New structure.
3040 (grub_fshelp_map_block): New function prototype.
3041 (grub_fshelp_read_file): Use grub_disk_addr_t as block type.
3042 (grub_fshelp_map_block): Likewise.
3043
3044 * fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro.
3045 (EXT3_JOURNAL_MAGIC_NUMBER): Likewise.
3046 (EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise.
3047 (EXT3_JOURNAL_COMMIT_BLOCK): Likewise.
3048 (EXT3_JOURNAL_SUPERBLOCK_V1): Likewise.
3049 (EXT3_JOURNAL_SUPERBLOCK_V2): Likewise.
3050 (EXT3_JOURNAL_REVOKE_BLOCK): Likewise.
3051 (EXT3_JOURNAL_FLAG_ESCAPE): Likewise.
3052 (EXT3_JOURNAL_FLAG_SAME_UUID): Likewise.
3053 (EXT3_JOURNAL_FLAG_DELETED): Likewise.
3054 (EXT3_JOURNAL_FLAG_LAST_TAG): Likewise.
3055 (grub_ext2_sblock): New members for journal support.
3056 (grub_ext3_journal_header): New structure.
3057 (grub_ext3_journal_revoke_header): Likewise.
3058 (grub_ext3_journal_block_tag): Likewise.
3059 (grub_ext3_journal_sblock): Likewise.
3060 (grub_fshelp_node): New members logfile and journal.
3061 (grub_ext2_read_block): Change block type to grub_disk_addr_t. Use
3062 grub_fshelp_map_block to get real block number.
3063 (grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block
3064 number.
3065 (grub_ext2_read_inode): Likewise.
3066 (grub_ext3_get_journal): New function.
3067 (grub_read_inode): Initialize journal using grub_ext3_get_journal.
3068 (grub_ext2_close): Release memory used by journal.
3069
3070 * fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr".
3071 (REISERFS_MAGIC_DESC_BLOCK): New macro.
3072 (grub_reiserfs_transaction_header): Renamed to
3073 grub_reiserfs_description_block, replace field data with real_blocks.
3074 (grub_reiserfs_commit_block): New structure.
3075 (grub_reiserfs_data): New member journal.
3076 (grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block
3077 number.
3078 (grub_reiserfs_read_symlink): Likewise.
3079 (grub_reiserfs_iterate_dir): Likewise.
3080 (grub_reiserfs_open): Likewise.
3081 (grub_reiserfs_read): Likewise.
3082 (grub_reiserfs_get_journal): New function.
3083 (grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are
3084 three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal
3085 using grub_reiserfs_get_journal.
3086 (grub_reiserfs_close): Release memory used by journal.
3087
3088 * fs/affs.c (grub_affs_read_block): Change block type to
3089 grub_disk_addr_t. Use grub_divmod64 to do 64-bit division.
3090
3091 * fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t.
3092
3093 * fs/hfsplus.c (grub_hfsplus_read_block): Likewise.
3094
3095 * fs/ntfs.c (grub_ntfs_read_block): Likewise.
3096
3097 * fs/udf.c (grub_udf_read_block): Change block type to
3098 grub_disk_addr_t. Use type cast to avoid warning.
3099
3100 * fs/xfs.c (grub_xfs_read_block): Likewise.
3101
b7c6bed5 31022008-05-16 Christian Franke <franke@computer.org>
3103
3104 * commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue
3105 to ensure that break with ESC will always work.
3106 * commands/sleep.c (grub_interruptible_millisleep): Likewise.
3107 Remove ESC from keyboard queue.
3108
eedf167f 31092008-05-16 Christian Franke <franke@computer.org>
3110
3111 * util/biosdisk.c: [__CYGWIN__] Add includes.
3112 (grub_util_biosdisk_open): Use Linux code also for Cygwin.
3113 (get_os_disk): Move variable declarations to OS specific
3114 parts to avoid warning.
3115 [__GNU__] (get_os_disk): Fix /dev/sdXsN case.
3116 [__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names.
3117 (grub_util_biosdisk_get_grub_dev): Use Linux code also for
3118 Cygwin.
3119 * util/getroot.c: [__CYGWIN__] Add includes.
3120 (strip_extra_slashes): Fix "/" case.
3121 [__CYGWIN__] (get_win32_path): New function.
3122 [__CYGWIN__] (grub_get_prefix): Add conversion to win32 path.
3123 [__CYGWIN__] (find_root_device): Disable.
3124 [__CYGWIN__] (get_bootsec_serial): New function.
3125 [__CYGWIN__] (find_cygwin_root_device): Likewise.
3126 [__linux__] (grub_guess_root_device): Add early returns to simplify
3127 structure.
3128 [__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device.
3129 [__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID
3130 check for Linux only.
3131
a079699e 31322008-05-15 Bean <bean123ch@gmail.com>
3133
3134 * kern/i386/pc/startup.S (grub_console_getkey): Workaround for the
3135 keyboard hang problem in apple's intel mac.
3136
1cf4059a 31372008-05-09 Robert Millan <rmh@aybabtu.com>
3138
3139 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio
3140 devices.
3141 * util/grub-mkdevicemap.c (get_virtio_disk_name)
3142 (make_device_map): Likewise.
3143 Reported by Aurelien Jarno <aurel32@debian.org>
3144
ed759390 31452008-05-07 Ian Campbell <ijc@hellion.org.uk>
3146
3147 * util/biosdisk.c (get_os_disk): Recognise xvd type disks.
3148 * util/grub-mkdevicemap.c (get_xvd_disk_name): New function.
3149 (make_device_map): Output entries for xvd type disks.
3150
b56c4eaa 31512008-05-07 Robert Millan <rmh@aybabtu.com>
3152
3153 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS
3154 devices.
3155 * util/grub-mkdevicemap.c (get_cciss_disk_name)
3156 (make_device_map): Likewise.
3157 Reported by Roland Dreier <rdreier@cisco.com>
3158
7f8866ed 31592008-05-07 Robert Millan <rmh@aybabtu.com>
3160
3161 * disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional
3162 grub_strstr() call. Correct a few mistakes in failure path handling.
3163
b0346e0f 31642008-05-06 Robert Millan <rmh@aybabtu.com>
3165
3166 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
3167 Do not print a trailing slash (therefore, the root directory is an
3168 empty string).
3169 (convert_system_path_to_grub_path): Do not remove trailing slash
3170 from make_system_path_relative_to_its_root() output.
3171
3172 * util/i386/pc/grub-install.in: Add trailing slash to output from
3173 make_system_path_relative_to_its_root().
3174
6cf12cbd 31752008-05-06 Robert Millan <rmh@aybabtu.com>
3176
3177 * util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'. This
3178 ensures that output lines aren't intermangled with those sent to
3179 stderr (via grub_util_info()).
3180 * util/grub-probe.c (grub_refresh): Likewise.
3181 * util/i386/pc/grub-setup.c (grub_refresh): Likewise.
3182
0fbb3117 31832008-05-05 Christian Franke <franke@computer.org>
3184
3185 * util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]:
3186 Add Cygwin device names.
3187 (get_ide_disk_name) [__CYGWIN__]: Likewise.
3188 (get_scsi_disk_name) [__CYGWIN__]: Likewise.
3189 (check_device): Return error instead of success on empty name.
3190 (make_device_map): Move label inside linux specific code to
3191 prevent compiler warning.
3192
8124cdb7 31932008-04-30 Robert Millan <rmh@aybabtu.com>
3194
3195 Based on patch from Fabian Greffrath <greffrath@leat.rub.de>
3196 * util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the
3197 first boot option.
3198 * util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT.
3199
094c01d0 32002008-04-29 Robert Millan <rmh@aybabtu.com>
3201
3202 * docs/grub.cfg: New file (example GRUB configuration).
3203
f4b1fc02 32042008-04-26 Robert Millan <rmh@aybabtu.com>
3205
329ce2a5 3206 * DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST). Add
3207 `loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c'
3208 and `disk/ieee1275/nand.c'.
f4b1fc02 3209
25f16ec1 32102008-04-25 Bean <bean123ch@gmail.com>
f19dbdb7 3211
25f16ec1 3212 * Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and
3213 i386-linuxbios.
3214
3215 * commands/hexdump.c (grub_cmd_hexdump): Support dumping of device,
3216 change the buffer size to 4096 for cdrom device.
3217
3218 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add _linux.mod, linux.mod
3219 and nand.mod.
3220 (_linux_mod_SOURCES): New variable.
3221 (_linux_mod_CFLAGS): Likewise.
3222 (_linux_mod_LDFLAGS): Likewise.
3223 (linux_mod_SOURCES): Likewise.
3224 (linux_mod_CFLAGS): Likewise.
3225 (linux_mod_LDFLAGS): Likewise.
3226 (nand_mod_SOURCES): Likewise.
3227 (nand_mod_CFLAGS): Likewise.
3228 (nand_mod_LDFLAGS): Likewise.
3229
3230 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Return
3231 GRUB_ERR_UNKNOWN_DEVICE instead of GRUB_ERR_BAD_DEVICE if no device
3232 type property. (nand device in olpc don't have this property)
3233
3234 * include/grub/disk.h (grub_disk_dev_id): New macro
3235 GRUB_DISK_DEVICE_NAND_ID.
3236
3237 * include/grub/i386/ieee1275/loader.h (grub_rescue_cmd_linux): New
3238 function prototype.
3239 (grub_rescue_cmd_initrd): Likewise.
3240
3241 * include/grub/i386/linux.h (GRUB_LINUX_OFW_SIGNATURE): New macro.
3242 (linux_kernel_params): Add new member ofw_signature, ofw_num_items,
3243 ofw_cif_handler and ofw_idt, adjust padding number.
f19dbdb7 3244
25f16ec1 3245 * include/grub/i386/pc/memory.h (grub_upper_mem): Export it if
3246 GRUB_MACHINE_IEEE1275 is defined.
3247
3248 * include/grub/ieee1275/ieee1275.h (grub_available_iterate):
3249 Use NESTED_FUNC_ATTR attribute on the hook parameter.
3250
3251 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Use NESTED_FUNC_ATTR
3252 on nested function heap_init.
3253 (grub_upper_mem): New variable for i386-ieee1275.
3254 (grub_get_extended_memory): New function for i386-ieee1275.
3255 (grub_machine_init): Call grub_get_extended_memory for i386-ieee1275.
3256
3257 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Use
3258 NESTED_FUNC_ATTR on the hook parameter. Don't quit if no device type
3259 property.
f19dbdb7 3260
25f16ec1 3261 * loader/i386/ieee1275/linux.c: New file.
3262
3263 * loader/i386/ieee1275/linux_normal.c: New file.
3264
3265 * disk/ieee1275/nand.c: New file.
3266
e89d61e9 32672008-04-18 Thomas Schwinge <tschwinge@gnu.org>
3268
3269 * util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct
3270 value.
3271 * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise.
3272
602566f6 32732008-04-18 Robert Millan <rmh@aybabtu.com>
3274
3275 Restructures early code path on ieee1275 to unify grub_main() as
3276 the first C function that is executed in every platform.
3277
3278 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype.
3279 * kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of
3280 cmain().
3281 * kern/powerpc/ieee1275/crt0.S (_start): Likewise.
3282 * kern/ieee1275/cmain.c (cmain): Rename to ...
3283 * kern/ieee1275/cmain.c (grub_ieee1275_init): ... this.
3284 * kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init()
3285 at the beginning.
3286
57490c2b 32872008-04-18 Robert Millan <rmh@aybabtu.com>
3288
3289 * util/update-grub.in: Fix syntax error when setting
3290 `GRUB_PRELOAD_MODULES'.
3291 Reported by Stephane Chazelas <stephane@artesyncp.com>
3292
1977517d 32932008-04-17 Lubomir Kundrak <lkundrak@redhat.com>
3294
3295 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text
3296 section into account, newer toolchains generate unique build ids
3297 * configure.ac: remove the test for --build-id=none acceptance,
e0c5dacb 3298 we want build ids to be preserved
1977517d 3299 * genmk.rb: add -R .note.gnu.build-id to objcopy, so build id
3300 far from other sections don't cause the raw binary images grow
3301 size
3302
bfb1f1a2 33032008-04-15 Robert Millan <rmh@aybabtu.com>
3304
3305 * disk/lvm.c: Update copyright year.
3306 * kern/misc.c: Likewise.
3307
01979850 33082008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
3309
3310 * disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when
f19dbdb7 3311 there is no memory left for physical volume name.
01979850 3312
0a1150e2 33132008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
3314
3315 * disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical
3316 volume name mapping to support bigger than 9 character names properly.
3317
82ead3fe 33182008-04-13 Robert Millan <rmh@aybabtu.com>
3319
3320 * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
3321 as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm
3322
e54a72f5 33232008-04-13 Christian Franke <franke@computer.org>
3324
3325 * util/i386/pc/grub-mkrescue.in: Add --emulation=floppy
3326 to create a floppy emulation boot CD when non emulation mode
3327 does not work.
3328 Enable Joliet CD filesystem extension.
3329
9fe86034 33302008-04-13 Robert Millan <rmh@aybabtu.com>
3331
3332 * kern/misc.c (grub_strncat): Fix off-by-one error.
3333 Reported by Zhang Huan <zhanghuan@nrchpc.ac.cn>
3334
3335 * kern/env.c (grub_env_context_close): Clear current context, not
3336 previous one.
3337 Patch from Zhang Huan <zhanghuan@nrchpc.ac.cn>
3338
3339 * kern/misc.c (grub_strcat): Minor speed optimization (same code size).
3340
7ceeee39 33412008-04-13 Robert Millan <rmh@aybabtu.com>
3342
3343 Improve robustness when handling LVM.
3344
3345 * disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL
f19dbdb7 3346 (and leave `*p' unmodified).
7ceeee39 3347 (grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating
3348 through it.
3349 (grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when
3350 iterating through it.
3351 (grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating
3352 through it.
fe6b695a 3353 (grub_lvm_scan_device): Check the return value (and fail gracefully
7ceeee39 3354 when due) on each grub_lvm_getvalue() or grub_strstr() call.
3355 Don't assume `vg->pvs != NULL' when iterating through it.
3356
58cd3d85 33572008-04-13 Robert Millan <rmh@aybabtu.com>
3358
3359 * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
3360 * genmk.rb (partmap): New variable.
3361 (CLEANFILES, PARTMAPFILES): Add #{partmap}.
3362 (#{partmap}): New target rule.
3363 * genpartmaplist.sh: New file.
3364 * Makefile.in (pkglib_DATA): Add partmap.lst.
3365 (partmap.lst): New target rule.
3366 * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
3367 modules (including all partition maps), instead of preloading them.
3368
78b51059 33692007-04-13 Fabian Greffrath <fabian.greffrath@web.de>
3370
3371 * util/grub.d/30_os-prober.in: New script. Use `os-prober' and
3372 `linux-boot-prober' (if installed) to detect other operating
3373 systems which are installed on the computer and add them to
3374 the boot menu.
3375 * conf/common.rmk: Build and install 30_os-prober.
3376
a91627b4 33772008-04-12 Robert Millan <rmh@aybabtu.com>
3378
3379 * kern/powerpc/ieee1275/init.c: Move from here ...
3380 * kern/ieee1275/init.c: ... to here. Update all users.
3381
3382 * kern/powerpc/ieee1275/cmain.c: Move from here ...
3383 * kern/ieee1275/cmain.c: ... to here. Update all users.
3384
3385 * kern/powerpc/ieee1275/openfw.c: Move from here ...
3386 * kern/ieee1275/openfw.c: ... to here. Update all users.
3387
3388 * loader/powerpc/ieee1275/multiboot2.c: Move from here ...
3389 * loader/ieee1275/multiboot2.c: ... to here. Update all users.
3390
322562ea 33912008-04-10 Pavel Roskin <proski@gnu.org>
3392
3393 * configure.ac: Always use "_cv_" in cache variables for
3394 compatibility with Autoconf 2.62.
3395
a02a73c5 33962008-04-07 Robert Millan <rmh@aybabtu.com>
3397
3398 Revert grub/machine/init.h addition by Pavel (since it breaks on
3399 i386-ieee1275 and others):
3400 * util/i386/pc/misc.c: Remove grub/machine/init.h.
3401 * util/powerpc/ieee1275/misc.c: Likewise.
3402
25c024b1 34032008-04-07 Robert Millan <rmh@aybabtu.com>
3404
3405 * util/grub-probe.c (probe): Improve error message.
3406
3cbd2f98 34072008-04-07 Robert Millan <rmh@aybabtu.com>
3408
3409 * util/biosdisk.c (read_device_map): Skip devices that don't exist
3410 (this prevents the presence of a bogus entry from ruining the whole
3411 thing).
3412
87a297bf 34132008-04-06 Pavel Roskin <proski@gnu.org>
3414
36747a62 3415 * util/biosdisk.c: Include grub/util/biosdisk.h.
3416 * util/grub-fstest.c (execute_command): Make static.
3417 * util/grub-mkdevicemap.c (check_device): Likewise.
3418 * util/i386/pc/misc.c: Include grub/machine/init.h.
3419 * util/powerpc/ieee1275/misc.c: Likewise.
3420 * util/lvm.c: Include grub/util/lvm.h.
3421 * util/misc.c: Include grub/kernel.h, grub/misc.h and
3422 grub/cache.h.
3423 * util/raid.c: Include grub/util/raid.h.
3424 (grub_util_getdiskname): Make static.
3425
87a297bf 3426 * util/grub-emu.c (main): Remove calls to grub_hostfs_init() and
3427 grub_hostfs_fini(), as they are called from grub_init_all() and
3428 grub_fini_all() respectively. This fixes an infinite loop in
3429 grub-fstest due to double registration of hostfs.
3430 Reported by Christian Franke <Christian.Franke@t-online.de>
3431
f6ce7629 34322008-04-05 Pavel Roskin <proski@gnu.org>
3433
3434 * bus/pci.c (grub_pci_iterate): For multifunction devices, probe
3435 all 8 functions. Otherwise, probe function 0 only.
3436
070e49e4 34372008-04-04 Pavel Roskin <proski@gnu.org>
3438
8b088a4c 3439 * commands/lspci.c (grub_lspci_iter): Print the bus number
3440 correctly.
3441
4f657021 3442 * commands/lspci.c (grub_pci_classes): Fix typos.
3443 (grub_lspci_iter): Don't print func twice. Print vendor ID
3444 before device ID, as it's normally done.
3445
070e49e4 3446 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
3447 Fix signedness warnings.
3448 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate):
3449 Likewise.
3450 * util/ieee1275/get_disk_name.c: Include config.h so that
3451 _GNU_SOURCE is defined and getline() is declared. Mark an
3452 unused argument as such. Fix a signedness warning.
3453
ba7328dc 34542008-04-02 Pavel Roskin <proski@gnu.org>
3455
26887f22 3456 * genkernsyms.sh.in: Use more robust assignments for CC and
3457 srcdir. Quote srcdir.
3458 * gensymlist.sh.in: Likewise. Assert at the compile time that
3459 the symbol table is not empty.
3460
ba7328dc 3461 * disk/raid.c (grub_raid_memberlist): Fix a signedness warning.
3462 * fs/cpio.c (grub_cpio_read): Likewise.
3463
0f582c6b 34642008-04-01 Pavel Roskin <proski@gnu.org>
3465
4b6e1995 3466 * disk/ata.c (grub_ata_open): Don't lose precision in disk->id.
3467 * disk/host.c (grub_host_open): Likewise.
3468 * disk/loopback.c (grub_loopback_open): Likewise.
3469 * disk/memdisk.c (grub_memdisk_open): Use a string pointer for
3470 disk->id as in disk/host.c, not a multi-character constant.
3471
828a2768 3472 * util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek(). The
3473 later is obsolete, potentially dangerous and sets a bad example.
3474 * util/i386/efi/grub-mkimage.c (make_header): Likewise.
3475 * util/misc.c (grub_util_get_image_size): Likewise.
3476
2bb4fb47 3477 * disk/loopback.c (options): Improve help for "--partitions".
3478
0f582c6b 3479 * normal/arg.c (grub_arg_show_help): Fix spacing of the long
3480 options to align them with the short options, e.g. "echo -e".
3481
a33224e0 34822008-03-31 Bean <bean123ch@gmail.com>
3483
3484 * video/reader/png.c (grub_png_data): New member is_16bit and
3485 image_data.
3486 (grub_png_decode_image_header): Detect 16 bit png image.
3487 (grub_png_convert_image): New function to convert 16 bit image to 8 bit.
3488 (grub_png_decode_png): Call grub_png_convert_image for 16 bit image.
3489 (grub_video_reader_png): Release memory occupied by image_data.
3490
3491 * fs/ntfs.c (find_attr): Handle non-resident attribute list larger than
3492 4096 bytes.
3493 (grub_nfs_mount): Skip the test for sector per cluster.
3494
3495 * include/grub/ntfs.h (MAX_SPC): Removed.
3496
86cb4f54 34972008-03-31 Bean <bean123ch@gmail.com>
3498
3499 * conf/common.rmk (pkgdata_MODULES): Add afs.mod.
3500 (grub_probe_SOURCES): Add fs/afs.c.
3501 (grub_fstest_SOURCES): Likewise.
3502 (afs_mod_SOURCES): New variable.
3503 (afs_mod_CFLAGS): Likewise.
3504 (afs_mod_LDFLAGS): Likewise.
3505
3506 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/afs.c.
3507 (grub_emu_SOURCES): Likewise.
3508
3509 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
3510
3511 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3512
3513 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
3514
3515 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3516
3517 * fs/afs.c: New file.
3518
17c74c21 35192008-03-30 Pavel Roskin <proski@gnu.org>
3520
4cb68e89 3521 * disk/host.c: Include grub/misc.h to fix a warning.
3522 * util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix
3523 warnings about implicit declarations.
3524
8790bb04 3525 * fs/udf.c (grub_udf_mount): Fix warning about a shadowing a
3526 variable.
3527 * include/grub/i386/loader.h: Change declaration of
3528 grub_linux_boot() to match what grub_loader_set() expects.
3529 * util/getroot.c (grub_guess_root_device): Return const char* to
3530 fix a warning.
3531 * util/grub-probe.c (probe): Fix a warning about uninitialized
3532 abstraction_name variable.
3533 * util/i386/get_disk_name.c (grub_util_get_disk_name): Mark
3534 second argument as unused to fix a warning.
3535
9a3f3296 3536 * loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add
3537 missing grub_error() call.
3538
0ecef90d 3539 * util/update-grub_lib.in: Define datarootdir, since Autoconf
3540 2.60 and newer uses it to define datadir.
3541
0bf6d401 3542 * commands/sleep.c: Fix warning about implicit declaration.
3543 * disk/memdisk.c: Likewise.
3544 * loader/aout.c: Likewise.
3545 * loader/i386/bsd_normal.c: Likewise.
3546 * util/grub-probe.c: Likewise.
3547
7cdacf97 3548 * commands/i386/cpuid.c (has_longmode): Make static.
3549 * disk/i386/pc/biosdisk.c (cd_drive): Likewise.
3550 * include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused.
3551
17c74c21 3552 * kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
3553 GDT. This is more robust, as %ds can change.
3554 (grub_biosdisk_rw_int13_extensions): Don't clear %ds before
3555 calling real_to_prot().
3556 (grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
3557
80a3e68b 35582008-03-28 Pavel Roskin <proski@gnu.org>
3559
3560 * kern/i386/pc/startup.S: Assert that uncompressed functions
3561 don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
3562 * kern/i386/pc/lzo1x.S: Remove all .align directives in the
3563 code, as they push parts of the code (error handlers) beyond
3564 GRUB_KERNEL_MACHINE_RAW_SIZE. Speed is not as important in this
3565 code as correctness and size.
3566
77bcd272 35672008-03-28 Pavel Roskin <proski@gnu.org>
3568
3569 * kern/i386/pc/startup.S
3570 (grub_biosdisk_get_diskinfo_int13_extensions): When converting
3571 data block address to the real mode, keep offset minimal. This
3572 works around a bug in AWARD BIOS on old Athlon systems, which
3573 makes CD detection hang.
3574
c5dfd43b 35752008-03-26 Pavel Roskin <proski@gnu.org>
3576
3577 * normal/color.c (grub_parse_color_name_pair): Make `name' a
3578 const.
3579 * include/grub/normal.h: Add grub_parse_color_name_pair()
3580 declaration.
3581
bf962df2 35822008-03-24 Bean <bean123ch@gmail.com>
3583
3584 * disk/i386/pc/biosdisk.c (cd_start): Removed.
3585 (cd_count): Removed.
3586 (cd_drive): New variable.
3587 (grub_biosdisk_get_drive): Don't check for (cdN) device.
3588 (grub_biosdisk_call_hook): Likewise.
3589 (grub_biosdisk_iterate): Change cdrom detection method.
3590 (grub_biosdisk_open): Replace cd_start with cd_drive.
3591 (GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to
3592 detect cdrom device.
3593
3594 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_MACHINE_CDROM_START):
3595 Removed.
3596 (GRUB_BIOSDISK_MACHINE_CDROM_END): Removed.
3597 (GRUB_BIOSDISK_CDTYPE_NO_EMUL): New macro.
3598 (GRUB_BIOSDISK_CDTYPE_1_2_M): Likewise.
3599 (GRUB_BIOSDISK_CDTYPE_1_44_M): Likewise.
3600 (GRUB_BIOSDISK_CDTYPE_2_88_M): Likewise.
3601 (GRUB_BIOSDISK_CDTYPE_HARDDISK): Likewise.
3602 (GRUB_BIOSDISK_CDTYPE_MASK): Likewise.
3603 (grub_biosdisk_cdrp): New structure.
3604 (grub_biosdisk_get_cdinfo_int13_extensions): New function.
3605
3606 * include/grub/i386/pc/kernel.h (grub_boot_drive): Export this variable.
3607
3608 * kern/i386/pc/init.c (make_install_device): Don't use (cdN) as root
3609 device.
3610
3611 * kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions):
3612 New function.
3613
68e7fc7a 36142008-03-20 Robert Millan <rmh@aybabtu.com>
3615
3616 Remove 2 TiB limit in ata.mod.
3617 * disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t.
3618 (grub_ata_dumpinfo): Print sector count with 0x%llx.
3619 (grub_ata_identify): Interpret `&info16[100]' as a pointer to
3620 grub_uint64_t instead of grub_uint32_t.
3621
38ad2cf5 36222008-03-05 Bean <bean123ch@gmail.com>
3623
3624 * loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function.
3625 (grub_multiboot): Set boot device.
3626
3627 * boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF.
3628
2b89344e 36292008-03-02 Bean <bean123ch@gmail.com>
3630
3631 * fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of
3632 symlink_buffer.
3633
87a95d1f 36342008-03-01 Yoshinori K. Okuji <okuji@enbug.org>
3635
3636 * DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and
3637 texinfo.tex.
3638
3639 * docs/grub.texi: New file. Copied from GRUB Legacy, and slightly
3640 modified.
3641
3642 * docs/fdl.texi: New file.
f19dbdb7 3643
87a95d1f 3644 * docs/mdate-sh: New file. Copied from gnulib.
3645 * docs/texinfo.tex: Likewise.
3646
3647 * config.guess: Updated from gnulib.
3648 * install-sh: Likewise.
3649
7dc15d8e 36502008-02-28 Robert Millan <rmh@aybabtu.com>
3651
3652 * conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod.
3653 (aout_mod_SOURCES): New variable.
3654 (aout_mod_CFLAGS): Likewise.
3655 (aout_mod_LDFLAGS): Likewise.
3656
3657 * conf/i386-ieee1275.rmk: Likewise.
3658
b00ab696 36592008-02-28 Robert Millan <rmh@aybabtu.com>
3660
3661 * util/update-grub.in: Reorganise terminal validity check. Accept
3662 `ieee1275:console' (OLPC) and `*:gfxterm' as valid too.
3663 Based on suggestion by Franklin PIAT.
3664
79ca2d78 36652008-02-28 Fabian Greffrath <greffrath@leat.rub.de>
3666
3667 * include/grub/util/getroot.h (grub_util_check_block_device): Export new
3668 function.
3669 * util/getroot.c (grub_util_check_block_device): New function that
3670 returns the given argument if it is a block device and returns NULL else.
3671 * util/grub-probe.c (argument_is_device): New variable.
3672 (probe): Promote device_name from a variable to an argument. Receive
3673 device_name from grub_util_check_block_device() if path is NULL and from
3674 grub_guess_root_device() else. Do not free() device_name anymore.
f19dbdb7 3675 (options): Introduce new parameter '-d, --device'.
79ca2d78 3676 (main): Add description of the new parameter to the help screen.
3677 Rename path variable to argument. Set argument_is_device if the '-d'
3678 option is given. Pass argument to probe() depending on
3679 argument_is_device.
3680
0d16e571 36812008-02-24 Bean <bean123ch@gmail.com>
3682
3683 * fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro.
3684 (GRUB_ISO9660_VOLDESC_PRIMARY): Likewise.
3685 (GRUB_ISO9660_VOLDESC_SUPP): Likewise.
3686 (GRUB_ISO9660_VOLDESC_PART): Likewise.
3687 (GRUB_ISO9660_VOLDESC_END): Likewise.
3688 (grub_iso9660_primary_voldesc): New member escape.
3689 (grub_iso9660_data): New member joliet.
3690 (grub_iso9660_convert_string): New function.
3691 (grub_iso9660_mount): Detect joliet extension.
3692 (grub_iso9660_iterate_dir): Convert filename when joliet is detected.
3693 (grub_iso9660_iso9660_label): Likewise.
3694
3695 * conf/common.rmk (pkgdata_MODULES): Add udf.mod.
3696 (grub_setup_SOURCES): Add fs/udf.c.
3697 (grub_fstest_SOURCES): Likewise.
3698 (udf_mod_SOURCES): New variable.
3699 (udf_mod_CFLAGS): Likewise.
3700 (udf_mod_LDFLAGS): Likewise.
3701
3702 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/udf.c.
3703 (grub_emu_SOURCES): Likewise.
3704
3705 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
3706
3707 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3708
3709 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
3710
3711 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3712
3713 * fs/udf.c: New file.
3714
8a594a17 37152008-02-24 Robert Millan <rmh@aybabtu.com>
3716
3717 * conf/i386-efi.rmk (normal/function.c_DEPENDENCIES)
3718 (normal/lexer.c_DEPENDENCIES): New variables.
3719 * conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES)
3720 (normal/lexer.c_DEPENDENCIES): Likewise.
3721 * conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES)
3722 (normal/lexer.c_DEPENDENCIES): Likewise.
3723 * conf/i386-pc.rmk (normal/function.c_DEPENDENCIES)
3724 (normal/lexer.c_DEPENDENCIES): Likewise.
3725 * conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES)
3726 (normal/lexer.c_DEPENDENCIES): Likewise.
3727 * conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES)
3728 (normal/lexer.c_DEPENDENCIES): Likewise.
3729
2dc33c03 37302008-02-23 Robert Millan <rmh@aybabtu.com>
3731
3732 * partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member,
3733 since they were intended to be in hex. This didn't break previously
3734 because of a bug in gpt_partition_map_iterate() (see below).
3735
3736 (gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp'
3737 when checking the validity of GPT header.
3738 Remove `partno', since it always provides the same information as `i'.
3739
f6f4cfb0 37402008-02-21 Yoshinori K. Okuji <okuji@enbug.org>
3741
3742 * include/grub/efi/time.h: Fix a wrong comment.
3743
79ff665f 37442008-02-19 Pavel Roskin <proski@gnu.org>
3745
3746 * kern/rescue.c (grub_enter_rescue_mode): Improve initial
3747 message.
3748
d38e24c2 37492008-02-19 Bean <bean123ch@gmail.com>
3750
3751 * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
3752 (aout_mod_SOURCES): New variable.
3753 (aout_mod_CFLAGS): Likewise.
3754 (aout_mod_LDFLAGS): Likewise.
3755 (_bsd_mod_SOURCES): New variable.
3756 (_bsd_mod_CFLAGS): Likewise.
3757 (_bsd_mod_LDFLAGS): Likewise.
3758 (bsd_mod_SOURCES): New variable.
3759 (bsd_mod_CFLAGS): Likewise.
3760 (bsd_mod_LDFLAGS): Likewise.
3761
3762 * include/grub/aout.h: New file.
3763
3764 * include/grub/i386/loader.h (grub_unix_real_boot): New function.
3765
3766 * include/grub/i386/bsd.h: New file.
3767
3768 * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
3769 to make it public.
3770
3771 * kern/elf.c (grub_elf32_load): Get the physical address after the hook
3772 function is called, so that it's possible to change it inside the hook.
3773 (grub_elf64_load): Likewise.
3774 (grub_elf_file): Don't close the file if elf header is not found.
3775 (grub_elf_close): Close the file if grub_elf_file fails (The new
3776 grub_elf_file won't close it).
3777 (grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize.
3778 (grub_elf64_size): Likewise.
3779
3780 * kern/i386/loader.S (grub_unix_real_boot): New function.
3781
3782 * loader/aout.c: New file.
3783
3784 * loader/i386/bsd.c: New file.
3785
3786 * loader/i386/bsd_normal.c: New file.
3787
3788 * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.
3789
3790 * loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
fe987087 3791 can test other formats.
d38e24c2 3792
b93bdb0f 37932008-02-19 Robert Millan <rmh@aybabtu.com>
3794
3795 * partmap/gpt.c: Include `<grub/gpt_partition.h>'.
3796 (grub_gpt_partition_type_empty): Redefine with macro from
3797 `<grub/gpt_partition.h>'.
3798 (gpt_partition_map_iterate): Adjust partition type comparison.
3799
3800 Export `entry' as partmap-specific `part.data' struct.
3801 (grub_gpt_header, grub_gpt_partentry): Move from here ...
3802
3803 * include/grub/gpt_partition.h (grub_gpt_header)
3804 (grub_gpt_partentry): ... to here (new file).
3805
3806 * util/i386/pc/grub-setup.c: Include `<grub/gpt_partition.h>'.
3807
3808 (grub_gpt_partition_type_bios_boot): New const variable, defined
3809 with macro from `<grub/gpt_partition.h>'.
3810
3811 (setup): Replace `first_start' with `embed_region', which keeps
3812 track of the embed region (and is partmap-agnostic).
3813
3814 Replace find_first_partition_start() with find_usable_region(),
3815 which finds a usable region for embedding using partmap-specific
3816 knowledge (supports PC/MSDOS and GPT).
3817
3818 Fix all assumptions that the embed region start at sector 1, using
3819 `embed_region.start' from now on. Similarly, use `embed_region.end'
3820 rather than `first_start' to calculate available size.
3821
3822 In grub_util_info() message, replace "into after the MBR" with an
3823 indication of the specific sector our embed region starts at.
3824
66cb40f6 38252008-02-19 Robert Millan <rmh@aybabtu.com>
3826
3827 * DISTLIST: Replace `commands/ieee1275/halt.c' and
3828 `commands/ieee1275/reboot.c' with `commands/halt.c' and
3829 `commands/reboot.c'.
3830 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
3831 (halt_mod_SOURCES): Likewise.
3832 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
3833 (halt_mod_SOURCES): Likewise.
3834
b7202015 38352008-02-17 Christian Franke <franke@computer.org>
3836
3837 * commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key.
3838
32b0fc49 38392008-02-17 Robert Millan <rmh@aybabtu.com>
3840
3841 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
3842 set `first_start' to 0 for non-PC/MSDOS partition maps.
3843
aca63502 38442008-02-16 Robert Millan <rmh@aybabtu.com>
3845
3846 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
3847 do not assume partition map is PC/MSDOS before performing checks that
3848 are specific to that layout.
3849
0de8be86 38502008-02-13 Robert Millan <rmh@aybabtu.com>
3851
3852 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove
3853 `commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'.
3854 * kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs.
3855
c3db8364 38562008-02-13 Yoshinori K. Okuji <okuji@enbug.org>
3857
3858 * configure.ac: Only a cosmetic change on the handling of
3859 -fno-stack-protector.
3860
f714229e 38612008-02-12 Alexandre Boeglin <alex@boeglin.org>
3862
c3db8364 3863 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace
3864 commands/i386/pc/halt.c and reboot.c by commands/halt.c and
3865 reboot.c.
f714229e 3866 (grub_install_SOURCES): Add halt.mod and reboot.mod.
3867 (halt_mod_SOURCES): New variable.
3868 (halt_mod_CFLAGS): Likewise.
3869 (halt_mod_LDFLAGS): Likewise.
3870 (reboot_mod_SOURCES): Likewise.
3871 (reboot_mod_CFLAGS): Likewise.
3872 (reboot_mod_LDFLAGS): Likewise.
3873
c3db8364 3874 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace
3875 commands/ieee1275/halt.c and reboot.c by commands/halt.c and
3876 reboot.c.
f714229e 3877 (halt_mod_SOURCES): Likewise.
3878 (reboot_mod_SOURCES): Likewise.
3879
c3db8364 3880 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace
3881 commands/i386/pc/reboot.c by commands/reboot.c.
f714229e 3882 (reboot_mod_SOURCES): Likewise.
3883
3884 * commands/i386/pc/reboot.c: merge this file ...
3885
3886 * commands/ieee1275/reboot.c: ... and this file ...
3887
3888 * commands/reboot.c: ... to this file.
c3db8364 3889 Add some precompiler directive to include the correct header for
3890 each machine.
f714229e 3891
3892 * commands/ieee1275/halt.c: move this file ...
3893
3894 * commands/halt.c: ... to here.
c3db8364 3895 Add some precompiler directive to include the correct header for
3896 each machine.
f714229e 3897
3898 * include/grub/efi/efi.h (grub_reboot): New function declaration.
3899 (grub_halt): Likewise.
3900
3901 * kern/efi/efi.c (grub_reboot): New function.
3902 (grub_halt): Likewise.
3903
c74493e0 39042008-02-12 Robert Millan <rmh@aybabtu.com>
3905
3906 * util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
3907 /dev (like it is done for /dev/mapper). This doesn't provide support
3908 for EVMS, but at least it is now easy to identify the problem when it
3909 arises.
3910
d0db4b04 39112008-02-11 Robert Millan <rmh@aybabtu.com>
3912
3913 * util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition)
3914 (grub_util_biosdisk_get_grub_dev): Check open() exit status by
3915 comparing it with -1, not 0.
3916
bf748642 39172008-02-10 Robert Millan <rmh@aybabtu.com>
3918
3919 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and
3920 `disk/lvm.c'.
3921 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3922 * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
3923
3924 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and
3925 `disk/lvm.c' to the end of the list.
3926 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
3927 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
3928
b5db202a 39292008-02-10 Robert Millan <rmh@aybabtu.com>
3930
3931 * kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'. Call
3932 grub_print_error() instead. This will let user know why we're entering
3933 rescue mode.
3934 Based on suggestions from Sam Morris.
3935
83abee31 39362008-02-10 Alexandre Boeglin <alex@boeglin.org>
3937
3938 * normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg()
3939 on remaining N args, instead of "--" arg N times.
3940
78d5a08b 39412008-02-09 Vesa Jaaskelainen <chaac@nic.fi>
3942
3943 * font/manager.c (unknown_glyph): Added variable for unknown glyph.
3944 (fill_with_default_glyph): Changed to use unknown_glyph for fill
3945 pattern for unknown glyphs.
3946
68807e5f 39472008-02-09 Robert Millan <rmh@aybabtu.com>
3948
3949 * configure.ac: Probe for `help2man'.
3950 * Makefile.in (builddir): New variable.
3951 (HELP2MAN): Likewise. Set to `true' when @HELP2MAN@ doesn't provide it,
3952 or otherwise add a few flags/options to it.
3953 (install-local): For every executable utility or script that is
3954 installed, invoke $(HELP2MAN) to install a manpage based on --help
3955 output.
3956
3957 * util/i386/pc/grub-install.in: Move down `update-grub_lib' sourcing, so
3958 that it doesn't prevent --help from working in build tree.
3959
3960 * util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org'
3961 with `bug-grub@gnu.org'.
3962 * util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise.
3963 * util/update-grub.in (usage): New function.
3964 Implement proper argument check, with support for --help and --version
3965 (as well as existing -y).
3966
39672008-02-09 Christian Franke <franke@computer.org>
0d9ff7f0 3968
3969 * commands/cat.c (grub_cmd_cat): Print '\r' as hex to
3970 avoid overwriting previous output.
3971 * kern/rescue.c (grub_rescue_cmd_cat): Likewise.
3972
c1962162 39732008-02-09 Robert Millan <rmh@aybabtu.com>
3974
3975 * normal/menu.c (run_menu): If timeout is set to zero, don't bother
3976 drawing the menu.
3977
3dac2e3f 39782008-02-09 Robert Millan <rmh@aybabtu.com>
3979
3980 * commands/sleep.c: New file.
3981 * conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'.
3982 (sleep_mod_SOURCES): New variable.
3983 (sleep_mod_CFLAGS): Likewise.
3984 (sleep_mod_LDFLAGS): Likewise.
3985
7a634e08 39862008-02-09 Robert Millan <rmh@aybabtu.com>
3987
3988 * disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for
3989 situations in which we can deduce the RAID size and the superblock
3990 doesn't match it.
3991
b92f0c18 39922008-02-09 Robert Millan <rmh@aybabtu.com>
3993
3994 * disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function. Construct
3995 and return a grub_diskmemberlist_t composed of LVM physical volumes.
3996 [GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member.
3997
3998 * disk/raid.c [GRUB_UTIL] (grub_raid_memberlist): New function. Construct
3999 and return a grub_diskmemberlist_t composed of physical array members.
4000 [GRUB_UTIL] (grub_raid_dev): Add `memberlist' member.
4001
4002 * include/grub/disk.h [GRUB_UTIL] (grub_disk_memberlist): New struct
4003 prototype.
4004 [GRUB_UTIL] (struct grub_disk_dev): Add `memberlist' function pointer.
4005 [GRUB_UTIL] (struct grub_disk_memberlist): New struct declaration.
4006 [GRUB_UTIL] (grub_disk_memberlist_t): New typedef.
4007
4008 * util/grub-probe.c (probe): Move partmap probing code from here ...
4009 (probe_partmap): ... to here.
4010 (probe): Use probe_partmap() once for the disk we're probing, and
4011 additionally, when such disk contains a memberlist() struct member,
4012 once for each disk that is contained in the structure returned by
4013 memberlist().
4014
91a4bf68 40152008-02-09 Robert Millan <rmh@aybabtu.com>
4016
4017 * util/grub-probe.c (main): When `verbosity > 1', set `debug'
4018 environment variable to 'all' in order to obtain debug output from
4019 non-util/ code.
4020 * util/i386/pc/grub-setup.c (main): Likewise.
4021
a96f9caa 40222008-02-08 Robert Millan <rmh@aybabtu.com>
4023
4024 * disk/raid.c (grub_raid_scan_device): Check for
4025 `array->device[sb.this_disk.number]' rather than for
4026 `array->device[sb.this_disk.number]->name', since the latter is not
fe6b695a 4027 guaranteed to be accessible.
a96f9caa 4028
b37a9222 40292008-02-08 Robert Millan <rmh@aybabtu.com>
4030
4031 * disk/raid.c: Update copyright.
4032 * fs/cpio.c: Likewise.
4033 * include/grub/raid.h: Likewise.
4034 * loader/i386/pc/multiboot.c: Likewise.
4035 * util/hostfs.c: Likewise.
4036
5626aee1 40372008-02-08 Robert Millan <rmh@aybabtu.com>
4038
4039 * include/grub/raid.h (struct grub_raid_array): Change type of `device'
4040 to a grub_disk_t array.
4041 * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
4042 `device[x]'.
4043 (grub_raid_scan_device): Replace `device[x].name' accesses with
4044 `device[x]->name'. Simplify initialization of `array->device[x]'.
4045
554f0187 40462008-02-08 Robert Millan <rmh@aybabtu.com>
4047
4048 * disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
4049 grub_dprintf() calls.
4050 * kern/disk.c (grub_disk_read): Include grub_errmsg in out of range
4051 error message.
4052
1ec8425d 40532008-02-07 Christian Franke <franke@computer.org>
4054
4055 * util/hostfs.c (grub_hostfs_open): Use fseeko and ftello
4056 instead of fseek and ftell to support large files.
4057 (grub_hostfs_read): Likewise.
4058
f2156fda 40592008-02-07 Robert Millan <rmh@aybabtu.com>
4060
4061 Patch from Jeroen Dekkers.
4062 * disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk
fe6b695a 4063 failure, since successfully reading all array members might not be
f2156fda 4064 required.
4065
9216e0e7 40662008-02-06 Robert Millan <rmh@aybabtu.com>
4067
4068 * util/grub-probe.c (probe): Simplify partmap probing (with the
4069 assumption that the first word up to the underscore equals to
4070 the module name).
4071
b0dfd29a 40722008-02-06 Christian Franke <franke@computer.org>
4073
4074 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE
4075 (and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on
4076 last block of a cpio or tar stream.
4077 Check for "TRAILER!!!" instead of any empty data
4078 block to detect last block of a cpio stream.
4079 (grub_cpio_dir): Fix constness of variable np.
4080 (grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if
4081 cpio or tar trailer is detected. This fixes a crash
4082 on open of a non existing file.
4083
c32865bf 40842008-02-05 Bean <bean123ch@gmail.com>
4085
4086 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical
4087 address of entry.
4088 (grub_multiboot_load_elf64): Likewise.
4089 (grub_multiboot): Initialize mbi structure.
4090
4091 * util/grub-fstest.c: Don't include unused header file script.h.
4092
fe6b695a 4093 * conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the beginning
c32865bf 4094 of file.
4095 (grub_fstest_SOURCES): Likewise.
4096
409480b7 40972008-02-05 Robert Millan <rmh@aybabtu.com>
4098
4099 * include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT)
4100 (GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END)
4101 (GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC)
4102 (GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros.
4103
4104 * kern/i386/pc/startup.S: Include `<grub/term.h>'.
4105 (translation_table): Replace hardcoded values with macros
4106 provided by `<grub/term.h>'.
4107
4108 * term/i386/pc/at_keyboard.c: Include `<grub/term.h>'.
4109 (keyboard_map): Correct/add a few values, with macros provided
4110 by `<grub/term.h>'.
4111 (keyboard_map_shift): Zero values that don't differ from their
4112 `keyboard_map' equivalents.
4113 (grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling.
4114 Discard the second scan code that is always sent by Caps lock.
4115 Only use `keyboard_map_shift' when it provides a non-zero value,
4116 otherwise fallback to `keyboard_map'.
4117
99fadbaa 41182008-02-04 Bean <bean123ch@gmail.com>
4119
4120 * Makefile.in (enable_grub_fstest): New variable.
4121
4122 * conf/common.rmk (grub_fstest_init.lst): New rule.
4123 (grub_fstest_init.h): Likewise.
4124 (grub_fstest_init.c): Likewise.
4125 (util/grub-fstest.c_DEPENDENCIES): New variable.
4126 (grub_fstest_SOURCES): Likewise.
4127
4128 * configure.ac (enable_grub_fstest): Check for --enable-grub-fstest.
4129
4130 * util/grub-fstest.c: New file.
4131
bf567c50 41322008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
4133
4134 Make grub-setup handle a separate root device.
f19dbdb7 4135
bf567c50 4136 * util/i386/pc/grub-setup.c (setup): Always open the root device,
4137 so that the root device can be compared with the destination
4138 device.
4139 When embedding the core image, if the root and destination devices
4140 are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to
4141 0xFF.
4142 When not embedding, set ROOT_DRIVE to 0xFF.
f19dbdb7 4143
9be6b98b 41442008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
4145
4146 Add support for having a grub directory in a different drive. This
4147 is still only the data handling part.
f19dbdb7 4148
9be6b98b 4149 * kern/i386/pc/startup.S (multiboot_trampoline): Set %dh to 0xFF.
4150 (codestart): Save %dh in GRUB_ROOT_DRIVE.
4151 (grub_root_drive): New variable.
4152
4153 * kern/i386/pc/init.c (make_install_device): Use GRUB_ROOT_DRIVE
4154 instead of GRUB_BOOT_DRIVE to construct a device name. Set
4155 GRUB_ROOT_DRIVE to GRUB_BOOT_DRIVE if it is 0xFF, otherwise use it
4156 as it was.
4157
4158 * include/grub/i386/pc/kernel.h (grub_root_drive): New prototype.
4159
4160 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_ROOT_DRIVE): New
4161 macro.
4162 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Set to 0x4f.
4163
4164 * boot/i386/pc/pxeboot.S (_start): Set %dh to 0xFF. For now, this
4165 is bogus, because PXE booting does not specify any drive
4166 correctly.
4167
4168 * boot/i386/pc/lnxboot.S (reg_edx): Set the second byte to 0xFF. I
4169 am not sure if this is really correct.
4170
4171 * boot/i386/pc/cdboot.S: Set %dh to 0xFF, because the root drive
4172 is always identical to the boot drive when booting from a CD.
4173
4174 * boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any
4175 longer.
4176 (root_drive): New variable.
4177 (real_start): Unconditionally set %dh to ROOT_DRIVE.
4178 (setup_sectors): Push %dx right after popping it, because %dh will
4179 be modified later.
4180 (copy_buffer): Restore %dx.
4181
e0ca0677 41822008-02-03 Robert Millan <rmh@aybabtu.com>
4183
4184 * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
4185 use `cdboot.img' for cdrom images.
4186
3b3f6629 41872008-02-03 Robert Millan <rmh@aybabtu.com>
4188
4189 * util/grub.d/00_header.in: Issue scripting commands for GRUB to
4190 only setup gfxterm when `font' command has succeeded.
4191
d42b3672 41922008-02-03 Robert Millan <rmh@aybabtu.com>
4193
4194 * loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS]
4195 (grub_rescue_cmd_multiboot_loader)
4196 (grub_rescue_cmd_module_loader): Enable multiboot1 calls.
4197
fa370ea6 41982008-02-03 Pavel Roskin <proski@gnu.org>
4199
e0c5dacb 4200 * kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop
fa370ea6 4201 %edx and %esi from stack only after grub_gate_a20() is called.
4202 grub_gate_a20() clobbers %edx.
4203
f2a76e1d 42042008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
4205
4206 * configure.ac (AC_INIT): Bumped to 1.96.
4207
4208 * DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c,
4209 commands/lspci.c,disk/memdisk.c, include/grub/pci.h,
4210 include/grub/i386/pc/pci.h, video/readers/jpeg.c, and
4211 video/readers/png.c.
4212
90fd32d1 42132008-02-03 Bean <bean123ch@gmail.com>
9be665dd 4214
4215 * conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img.
4216 (cdboot_img_SOURCES): New variable.
4217 (cdboot_img_ASFLAGS): New variable.
4218 (cdboot_img_LDFLAGS): New variable.
4219
4220 * boot/i386/pc/cdboot.S: New file.
4221
4222 * disk/i386/pc/biosdisk.c (cd_start): New variable.
4223 (cd_count): Likewise.
4224 (grub_biosdisk_get_drive): Add support for cd device.
4225 (grub_biosdisk_call_hook): Likewise.
4226 (grub_biosdisk_iterate): Likewise.
4227 (grub_biosdisk_open): Likewise.
4228 (GRUB_BIOSDISK_CDROM_RETRY_COUNT): New macro.
4229 (grub_biosdisk_rw): Support reading from cd device.
4230 (GRUB_MOD_INIT): Iterate cd devices.
4231
4232 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_FLAG_CDROM): New macro.
4233 (GRUB_BIOSDISK_MACHINE_CDROM_START): Likewise.
4234 (GRUB_BIOSDISK_MACHINE_CDROM_END): Likewise.
4235
4236 * kern/i386/pc/init.c (make_install_device): Check for cd device.
4237
4020aa53 42382008-02-02 Robert Millan <rmh@aybabtu.com>
4239
4240 * commands/read.c: New file.
4241 * conf/common.rmk (pkglib_MODULES): Add `commands/read.c'.
4242 (read_mod_SOURCES): New variable.
4243 (read_mod_CFLAGS): Likewise.
4244 (read_mod_LDFLAGS): Likewise.
4245
e03a1132 42462008-02-02 Robert Millan <rmh@aybabtu.com>
4247
4248 * normal/main.c (grub_normal_execute): Check for `menu->size' when
4249 determining whether menu has to be displayed.
4250
58c69220 42512008-02-02 Marco Gerards <marco@gnu.org>
4252
4253 * bus/pci.c: New file.
4254
4255 * include/grub/pci.h: Likewise.
4256
4257 * include/grub/i386/pc/pci.h: Likewise.
4258
4259 * commands/lspci.c: Likewise.
4260
4261 * conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and
4262 `lspci.mod'.
4263 (pci_mod_SOURCES): New variable.
4264 (pci_mod_CFLAGS): Likewise.
4265 (pci_mod_LDFLAGS): Likewise.
4266 (lspci_mod_SOURCES): Likewise.
4267 (lspci_mod_CFLAGS): Likewise.
f19dbdb7 4268 (lspci_mod_LDFLAGS): Likewise.
58c69220 4269
c004e1b4 42702008-02-02 Bean <bean123ch@gmail.com>
4271
4272 * fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
4273 (grub_ufs_get_file_block): Fix indirect block calculation problem.
4274
4275 * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk.
4276 (grub_xfs_btree_node): New structure.
4277 (grub_xfs_btree_root): New structure.
4278 (grub_xfs_inode): New members nblocks, extsize, nextents and btree.
4279 (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents.
4280 (GRUB_XFS_EXTENT_BLOCK): Likewise.
4281 (GRUB_XFS_EXTENT_SIZE): Likewise.
4282 (grub_xfs_read_block): Support btree format type.
4283 (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook.
4284 Use directory block as basic unit.
4285
4286 * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block.
4287
4288 * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
4289 __attribute__ ((__regparm__ (1))).
4290
f95562bf 42912008-02-01 Robert Millan <rmh@aybabtu.com>
4292
4293 Correct a mistake in previous commit.
4294
4295 * conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the
4296 top.
4297 (normal/command.c_DEPENDENCIES): New variable.
4298
7d31f41f 42992008-02-01 Robert Millan <rmh@aybabtu.com>
4300
4301 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the
4302 top.
4303 (normal/command.c_DEPENDENCIES): New variable.
4304 (grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables.
4305 * conf/i386-ieee1275.rmk: Likewise.
4306 * conf/i386-linuxbios.rmk: Likewise.
4307 * conf/i386-pc.rmk: Likewise.
4308 * conf/sparc64-ieee1275.rmk: Likewise.
4309 * conf/powerpc-ieee1275.rmk: Likewise.
4310 (grub_emu_SOURCES): Add `fs/fshelp.c'.
4311
4312 * genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it.
4313
60b6be74 43142008-02-01 Robert Millan <rmh@aybabtu.com>
4315
4316 * kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf()
4317 call at beginning of function.
4318
078522ab 43192008-01-31 Pavel Roskin <proski@gnu.org>
4320
4321 * util/powerpc/ieee1275/grub-mkrescue.in: New file.
d2c11005 4322 * conf/powerpc-ieee1275.rmk (bin_SCRIPTS): New variable.
4323 (grub_mkrescue_SOURCES): Likewise.
078522ab 4324 * DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in.
4325
ccaa8a5f 43262008-01-30 Robert Millan <rmh@aybabtu.com>
4327
4328 * conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'.
4329 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ...
4330 * conf/common.rmk (util/grub-probe.c_DEPENDENCIES)
4331 (grub_probe_SOURCES): ... to here.
4332
4333 * conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'.
4334 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove.
4335 * conf/i386-ieee1275.rmk: Likewise.
4336 * conf/i386-linuxbios.rmk: Likewise.
4337 * conf/powerpc-ieee1275.rmk: Likewise.
4338
ae5a9cd7 43392008-01-30 Tristan Gingold <gingold@free.fr>
4340
4341 * kern/rescue.c: Silently accept empty lines.
4342
70bc2ef2 43432008-01-29 Bean <bean123ch@gmail.com>
4344
4345 * boot/i386/pc/lnxboot.S (data_start): Code cleanup.
4346 (real_code_2): Code cleanup and change comment style.
4347 (move_memory): Avoid using 32-bit address mode.
4348
6a4d50ea 43492008-01-29 Bean <bean123ch@gmail.com>
4350
4351 * conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'.
4352 (png_mod_SOURCES): New variable.
4353 (png_mod_CFLAGS): Likewise.
4354 (png_mod_LDFLAGS): Likewise.
4355
4356 * video/readers/png.c: New file.
4357
11cc30ac 43582008-01-28 Robert Millan <rmh@aybabtu.com>
4359
4360 * include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro.
4361 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove
4362 `ifndef GRUB_MOD_GAP' hack.
4363 * util/elf/grub-mkimage.c (add_segments): Likewise.
4364
3abc589f 43652008-01-27 Robert Millan <rmh@aybabtu.com>
4366
4367 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip
4368 `GRUB_MOD_GAP' for platforms in which it's not defined.
962ca133 4369 * util/elf/grub-mkimage.c (add_segments): Likewise.
3abc589f 4370
e1907778 43712008-01-27 Robert Millan <rmh@aybabtu.com>
4372
4373 Get grub-emu to build again (including parallel builds).
4374
4375 * conf/i386-pc.rmk (util/grub-emu.c_DEPENDENCIES): Remove variable.
4376 Split into ...
4377 (util/grub-emu.c_DEPENDENCIES): ... this, ...
4378 (normal/execute.c_DEPENDENCIES): ... this, ...
4379 (grub-emu_DEPENDENCIES): ... and this.
4380
4381 * conf/i386-efi.rmk: Likewise.
4382 * conf/i386-linuxbios.rmk: Likewise.
4383 * conf/i386-ieee1275.rmk: Likewise.
4384 * conf/powerpc-ieee1275.rmk: Likewise.
4385 (grub_emu_SOURCES): Remove duplicated `kern/file.c'.
4386
2216b101 43872008-01-27 Robert Millan <rmh@aybabtu.com>
4388
4389 * NEWS: Add a few items.
4390
f75172d9 43912008-01-27 Robert Millan <rmh@aybabtu.com>
4392
4393 Fix parallel builds with grub-emu. Based on earlier commit for
4394 grub-probe and grub-setup.
4395
4396 * conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ...
4397 (util/grub-emu.c_DEPENDENCIES): ... this.
4398 * conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ...
4399 (util/grub-emu.c_DEPENDENCIES): ... this.
4400 * conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ...
4401 (util/grub-emu.c_DEPENDENCIES): ... this.
4402 * conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
4403 (util/grub-emu.c_DEPENDENCIES): ... this.
4404 * conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
4405 (util/grub-emu.c_DEPENDENCIES): ... this.
4406
3f51de77 44072008-01-27 Pavel Roskin <proski@gnu.org>
4408
4409 * include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
4410 to create a gap between _end and the modules added to the image
4411 with grub-mkrescue. That fixes "CLAIM failed" on PowerMAC.
4412 * kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
4413 * util/elf/grub-mkimage.c (add_segments): Likewise.
4414
2033f53e 44152008-01-26 Pavel Roskin <proski@gnu.org>
4416
4417 * kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
4418 just return an error.
4419
22da1f6f 44202008-01-26 Bean <bean123ch@gmail.com>
4421
4422 * fs/reiserfs.c (grub_fshelp_node): New member next_offset.
4423 (grub_reiserfs_get_item): Save offset of the next item.
4424 (grub_reiserfs_iterate_dir): Use next_offset to find next item.
4425
2a9525e6 44262008-01-25 Robert Millan <rmh@aybabtu.com>
4427
4428 * conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to
4429 make all filesystem sources appear together (possibly fixing omissions
4430 while at it).
4431 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
4432 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4433 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
4434 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4435
4436 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise. Additionally,
4437 add `kern/file.c'.
4438 * conf/i386-efi.rmk (grub_probe_SOURCES): Likewise.
4439 * conf/i386-ieee1275.rmk (grub_probe_SOURCES): Likewise.
4440 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Likewise.
4441 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Likewise.
4442
4443 * util/grub-probe.c: Include `<grub/file.h>' and `<sys/stat.h>'.
4444 (probe): Add a sanity check to make sure of our ability to read
4445 requested files when probing for filesystem type.
4446
4447 * genmk.rb: Update copyright year (2007).
4448
4449 * include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init)
4450 (grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init)
4451 (grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init)
4452 (grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init)
4453 (grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init)
4454 : Remove function prototypes.
4455
b95f71b5 44562008-01-25 Robert Millan <rmh@aybabtu.com>
4457
4458 Revert my previous commits (based on wrong assumption of how grub_errno
4459 works).
4460
fe6b695a 4461 * kern/disk.c (grub_disk_open): Stop resetting grub_errno.
b95f71b5 4462 * kern/file.c (grub_file_open): Likewise.
4463
d08bbb49 44642008-01-24 Pavel Roskin <proski@gnu.org>
4465
4466 * include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares
4467 that hang if GRUB tries to setup colors.
4468 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set
4469 colors for firmwares that don't support it.
4470 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag):
4471 Recognize Open Hack'Ware, set flags to work around its
4472 limitations.
4473
605e36ed 44742008-01-24 Robert Millan <rmh@aybabtu.com>
4475
4476 * kern/file.c (grub_file_open): Do not account previous failures of
4477 unrelated functions when grub_errno is checked for.
4478 Reported by Oleg Strikov.
4479
bac332a1 44802008-01-24 Bean <bean123ch@gmail.com>
4481
4482 * fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro.
4483 (grub_ufs_sblock): New member volume name.
4484 (grub_ufs_find_file): Fix string copy bug.
4485 (grub_ufs_label): Implement this function properly.
4486
4487 * fs/hfs.c (grub_hfs_cnid_type): New enum.
4488 (grub_hfs_iterate_records): Use the correct file number for extents
4489 and catalog file. Fix problem in next index calculation.
4490 (grub_hfs_find_node): Replace recursive function call with loop.
4491 (grub_hfs_iterate_dir): Replace recursive function call with loop.
4492
15c80c09 44932008-01-23 Robert Millan <rmh@aybabtu.com>
4494
4495 * include/grub/i386/ieee1275/loader.h: Include `<grub/types.h>',
4496 `<grub/symbol.h>' and `<grub/multiboot.h>'.
4497 (grub_multiboot2_real_boot): New function prototype.
4498
4499 * include/grub/i386/pc/memory.h: Include `<grub/machine/machine.h>'.
4500 [!GRUB_MACHINE_IEEE1275] (grub_lower_mem, grub_upper_mem): Disable.
4501
4502 * kern/i386/ieee1275/init.c (grub_os_area_addr)
4503 (grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables.
4504
305338fd 45052008-01-23 Robert Millan <rmh@aybabtu.com>
4506
4507 * kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with
4508 #ifdef'ed out grub_printf().
4509
3ea52685 45102008-01-23 Robert Millan <rmh@aybabtu.com>
4511
4512 * term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out
4513 grub_dprintf calls, since they make "debug=all" mode unusable.
4514 (grub_console_checkkey): Likewise.
4515
5882ae4b 45162008-01-23 Robert Millan <rmh@aybabtu.com>
4517
4518 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
4519 `term/i386/pc/at_keyboard.c'.
4520 (pkglib_MODULES): Add `serial.mod'.
4521 (serial_mod_SOURCES): New variable.
4522 (serial_mod_CFLAGS): Likewise.
4523 (serial_mod_LDFLAGS): Likewise.
4524
4525 * include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'. Remove
4526 `<grub/powerpc/ieee1275/console.h>'.
4527 (grub_keyboard_controller_init): New function prototype.
4528 (grub_console_checkkey): Likewise.
4529 (grub_console_getkey): Likewise.
4530
4531 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT
4532 keyboard on i386.
4533
4534 * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
4535 grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
4536
06ab5303 45372008-01-23 Robert Millan <rmh@aybabtu.com>
4538
4539 * kern/i386/pc/init.c (make_install_device): When memdisk image is
4540 present, "(memdisk)/boot/grub" becomes the default prefix.
4541
4542 * util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus
4543 a memdisk tarball with all the modules. Add --overlay=DIR option that
4544 allows users to overlay additional files into the image.
4545
dbb475a4 45462008-01-23 Robert Millan <rmh@aybabtu.com>
4547
4548 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h'
4549 and `machine/memory.h'.
4550 (pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'.
4551 (_multiboot_mod_SOURCES): New variable.
4552 (_multiboot_mod_CFLAGS): Likewise.
4553 (_multiboot_mod_LDFLAGS): Likewise.
4554 (multiboot_mod_SOURCES): Likewise.
4555 (multiboot_mod_CFLAGS): Likewise.
4556 (multiboot_mod_LDFLAGS): Likewise.
4557
4558 * include/grub/i386/ieee1275/loader.h: New file.
4559
4560 * include/grub/i386/ieee1275/machine.h: Likewise.
4561
4562 * include/grub/i386/ieee1275/memory.h: Likewise.
4563
4564 * include/grub/i386/pc/init.h (grub_os_area_addr): Remove (redundant)
4565 variable declaration.
4566 (grub_os_area_size): Likewise.
4567
4568 * kern/i386/ieee1275/init.c (grub_os_area_addr, grub_os_area_size)
4569 (grub_lower_mem, grub_upper_mem): New variables.
4570 (grub_stop_floppy): New function (just to make
4571 grub_multiboot2_real_boot() happy).
4572
4573 * kern/i386/ieee1275/startup.S: Include `<grub/machine/memory.h>',
4574 `<grub/cpu/linux.h>', `<multiboot.h>' and `<multiboot2.h>'.
4575 (grub_stop): New function.
4576 Include `"../realmode.S"' and `"../loader.S"'.
4577
4578 * loader/multiboot_loader.c: Include `<grub/machine/machine.h>'.
4579 Replace `__i386__' #ifdefs with `GRUB_MACHINE_PCBIOS'.
4580
4581 * loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386,
4582 rely on grub_multiboot2_real_boot() for final boot.
4583
25638629 45842008-01-22 Robert Millan <rmh@aybabtu.com>
4585
4586 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When
4587 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any
4588 device that doesn't look like an SD card.
4589 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
4590 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag.
4591 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect
4592 OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when
4593 found.
4594
9dad816d 45952008-01-22 Robert Millan <rmh@aybabtu.com>
4596
4597 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
4598 avoid claiming over our own code.
4599
34842f2d 46002008-01-22 Bean <bean123ch@gmail.com>
4601
4602 * conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
4603 (jpeg_mod_SOURCES): New variable.
4604 (jpeg_mod_CFLAGS): Likewise.
4605 (jpeg_mod_LDFLAGS): Likewise.
4606
4607 * video/readers/jpeg.c : New file.
4608
44023a28 46092008-01-22 Bean <bean123ch@gmail.com>
4610
4611 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
4612 there are no more items.
4613
bc2d8ac6 46142008-01-21 Robert Millan <rmh@aybabtu.com>
4615
4616 * kern/mm.c (grub_mm_init_region): Improve debug message.
4617
261bd4bc 46182008-01-21 Robert Millan <rmh@aybabtu.com>
4619
4620 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
4621 (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
4622 address.
4623 (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
4624 a C macro.
4625 * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
4626 Indicates start of upper memory.
4627 * util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
4628 (generate_image): Abort when image size is big enough to corrupt
4629 upper memory.
4630
4631 * include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
4632 (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
4633 * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
4634 instead of hardcoding 0xA0000.
4635 * video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
4636 (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
4637 instead of hardcoding 0xA0000.
4638
f970b55e 46392008-01-21 Robert Millan <rmh@aybabtu.com>
4640
4641 * disk/memdisk.c (memdisk_size): New variable.
4642 (grub_memdisk_open): Replace grub_arch_memdisk_size() call with
4643 `memdisk_size'.
4644 (grub_memdisk_init): Initialize `memdisk_size'. Reallocate memdisk
4645 image to dynamic memory.
4646 (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
4647 `memdisk_size'. Free memdisk block.
4648
1a8b0526 46492008-01-21 Robert Millan <rmh@aybabtu.com>
4650
4651 Fix detection of very small filesystems (like tar).
4652
4653 * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
4654 contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
4655 GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
4656 a problem with this disk).
4657
6e9b4aab 46582008-01-21 Robert Millan <rmh@aybabtu.com>
4659
4660 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
4661 on grub_biosdisk_rw_standard() error.
4662
0d8837b2 46632008-01-21 Robert Millan <rmh@aybabtu.com>
4664
4665 * include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
4666 recent changes.
4667 * kern/elf.c: Likewise.
4668 * kern/ieee1275/ieee1275.c: Likewise.
4669 * kern/powerpc/ieee1275/openfw.c: Likewise.
4670 * term/ieee1275/ofconsole.c: Likewise.
4671
ffd36e34 46722008-01-21 Robert Millan <rmh@aybabtu.com>
4673
4674 * include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.
4675
3f0093d0 4676 * include/grub/kernel.h (grub_arch_memdisk_addr)
4677 (grub_arch_memdisk_size): Moved from here ...
ffd36e34 4678
3f0093d0 4679 * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr)
4680 (grub_arch_memdisk_size): ... to here.
ffd36e34 4681
6c391b21 46822008-01-21 Robert Millan <rmh@aybabtu.com>
4683
4684 Mostly based on bugfix from Bean.
4685
4686 * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
4687 attribute with hook() parameter.
4688 (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
4689 declaration.
4690 (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
4691 attribute with hook() parameter.
4692 (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
4693 declaration.
4694
55a581dc 46952008-01-21 Robert Millan <rmh@aybabtu.com>
4696
4697 * conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
4698 (pkglib_MODULES): Add `memdisk.mod'.
4699 (memdisk_mod_SOURCES): New variable.
4700 (memdisk_mod_CFLAGS): Likewise.
4701 (memdisk_mod_LDFLAGS): Likewise.
4702
4703 * disk/memdisk.c: New file.
4704
4705 * include/grub/disk.h (grub_disk_dev_id): Add
4706 `GRUB_DISK_DEVICE_MEMDISK_ID'.
4707
4708 * include/grub/i386/pc/kernel.h
4709 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro.
4710 (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4.
4711 (grub_kernel_image_size): New variable declaration.
4712 (grub_total_module_size): Likewise.
4713 (grub_memdisk_image_size): Likewise.
4714
4715 * include/grub/i386/pc/memory.h
4716 (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro.
4717
4718 * include/grub/kernel.h: Include `<grub/symbol.h>'.
4719 (grub_arch_memdisk_addr): New variable declaration.
4720 (grub_arch_memdisk_size): Likewise.
4721
4722 * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function.
4723 (grub_arch_memdisk_size): Likewise.
4724
4725 * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable.
4726 (codestart): Replace hardcoded `0x100000' with
4727 `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro.
4728
4729 * util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
4730 (generate_image): Add `memdisk_path' parameter. When `memdisk_path' is
4731 not NULL, append the contents of the file it refers to, at the end of
4732 the compressed kernel image. Initialize `grub_memdisk_image_size'
4733 variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
4734 (options): Add "memdisk"|'m' option.
4735 (main): Parse --memdisk|-m option, and pass user-provided path as
4736 parameter to generate_image().
4737
3d7f54c9 47382008-01-20 Robert Millan <rmh@aybabtu.com>
4739
4740 * kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
4741 grub_dprintf() calls from here ...
4742 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.
4743
0bf74728 47442008-01-20 Robert Millan <rmh@aybabtu.com>
4745
4746 Fix detection of "real mode" when /options/real-mode? doesn't exist.
4747
4748 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
4749 declaration.
4750 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
4751 (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
4752 `GRUB_IEEE1275_FLAG_REAL_MODE'.
fe6b695a 4753 (cmain): Initialize `grub_ieee1275_mmu' (using /chosen/mmu integer
0bf74728 4754 property).
4755 * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
4756 `grub_ieee1275_mmu' rather than obtaining a handler on every call.
4757
33bf70a7 47582008-01-19 Robert Millan <rmh@aybabtu.com>
4759
fe6b695a 4760 Get rid of confusing function (superseded by
33bf70a7 4761 `grub_ieee1275_get_integer_property')
4762 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
4763 prototype.
4764 * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
4765 function.
4766 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
4767 grub_ieee1275_decode_int_4(), by obtaining integer properties directly
fe987087 4768 in native endianness from grub_ieee1275_get_integer_property().
33bf70a7 4769
e2da7d26 47702008-01-19 Robert Millan <rmh@aybabtu.com>
4771
4772 * kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
4773 command after "shut-down", since implementations differ on which
4774 the command for halt is.
4775
59f1fd8d 47762008-01-19 Robert Millan <rmh@aybabtu.com>
4777
4778 * include/grub/i386/linuxbios/console.h: Add header protection.
4779 (grub_keyboard_controller_init): New function prototype.
4780 * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
4781 (KEYBOARD_COMMAND_READ): Likewise.
4782 (KEYBOARD_COMMAND_WRITE): Likewise.
4783 (KEYBOARD_SCANCODE_SET1): Likewise.
4784 (grub_keyboard_controller_write): New function.
4785 (grub_keyboard_controller_read): Likewise.
4786 (grub_keyboard_controller_init): Likewise.
4787
4788 * term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
4789 (grub_console_init): On coreboot/LinuxBIOS, call
4790 grub_keyboard_controller_init().
4791
5f5a7c15 47922008-01-19 Robert Millan <rmh@aybabtu.com>
4793
4794 PowerPC changes provided by Pavel Roskin.
4795
4796 * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
4797 * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
4798 don't rely on cmain() doing it.
4799 * kern/i386/ieee1275/startup.S (_start): Store %eax in
4800 grub_ieee1275_entry_fn, don't rely on cmain() doing it.
4801
1210e168 48022008-01-16 Robert Millan <rmh@aybabtu.com>
4803
4804 * include/grub/i386/linuxbios/memory.h
4805 (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
4806 * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
4807 receive `table_header' as argument. Instead, probe for it in the
4808 known memory ranges where it can be present.
4809 (grub_available_iterate): Do not pass a fixed `table_header' address
4810 to grub_linuxbios_table_iterate().
4811
3d04eab8 48122008-01-15 Robert Millan <rmh@aybabtu.com>
4813
4814 * configure.ac: Add `i386-ieee1275' to the list of supported targets.
4815 * conf/i386-ieee1275.rmk: New file.
4816 * include/grub/i386/ieee1275/console.h: Likewise.
4817 * include/grub/i386/ieee1275/ieee1275.h: Likewise.
4818 * include/grub/i386/ieee1275/kernel.h: Likewise.
4819 * include/grub/i386/ieee1275/time.h: Likewise.
4820 * kern/i386/ieee1275/init.c: Likewise.
4821 * kern/i386/ieee1275/startup.S: Likewise.
4822
d1bc1b73 48232008-01-15 Robert Millan <rmh@aybabtu.com>
4824
4825 * kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
4826 when pointers are 32-bit (but still do set it to one when they are
4827 64-bit).
4828
66a65807 48292008-01-15 Robert Millan <rmh@aybabtu.com>
4830
4831 * include/grub/ieee1275/ieee1275.h
4832 (grub_ieee1275_get_integer_property): New function prototype.
4833
4834 * kern/ieee1275/ieee1275.c: Include `<grub/types.h>'.
4835 (grub_ieee1275_get_integer_property): New function. Wraps around
fe987087 4836 grub_ieee1275_get_property() to handle endianness.
66a65807 4837
4838 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
4839 grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
fe6b695a 4840 where appropriate.
66a65807 4841 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
4842 (grub_map): Likewise.
4843 * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.
4844
a83ccafd 48452008-01-15 Bean <bean123ch@gmail.com>
4846
4847 * normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
4848 (grub_script_execute_cmdline): Reset grub_errno.
4849
4850 * normal/main.c (read_config_file): Reset grub_errno.
4851
4852 * normal/parse.y (script_init): New.
4853 (script): Move function and menuentry here.
4854 (delimiter): New.
4855 (command): Add delimiter at the end of command.
4856 (commands): Adjust to match the new command.
4857 (commandblock): Remove grub_script_lexer_record_start.
f19dbdb7 4858 (menuentry): Add grub_script_lexer_record_start, use the new commands.
a83ccafd 4859 (if): Use the new commands.
4860
4861 * conf/common.rmk (pkgdata_MODULES): Add echo.mod.
4862
df6ecfc6 48632008-01-15 Robert Millan <rmh@aybabtu.com>
4864
4865 * normal/menu.c (run_menu): Move timeout message from here ...
4866 (print_timeout): ... to here.
4867 (run_menu): Use print_timeout() once during initial draw to print
4868 the whole message, and again in every clock tick to update only
4869 the number of seconds.
4870
87ae25eb 48712008-01-15 Robert Millan <rmh@aybabtu.com>
4872
4873 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
4874 actual size of `available' from grub_ieee1275_get_property(), and
4875 restrict parsing to that bound.
4876
47bf09a4 48772008-01-15 Christian Franke <franke@computer.org>
4878
4879 * util/grub-emu.c: Replace <argp.h> by <getopt.h>.
4880 (argp_program_version): Remove variable.
4881 (argp_program_bug_address): Likewise.
4882 (options): Convert from struct argp_option to struct option.
4883 (struct arguments): Remove.
4884 (parse_opt): Remove.
4885 (usage): New function.
4886 (main): Replace struct args members by simple variables.
4887 Replace argp_parse() by getopt_long().
4888 Add switch to evaluate options.
4889 Add missing "(...)" around root_dev in prefix string.
4890
c86f1469 48912008-01-14 Robert Millan <rmh@aybabtu.com>
4892
4893 * kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
4894 for grub_ieee1275_exit(), in order to improve portability.
4895
e622c559 48962008-01-14 Robert Millan <rmh@aybabtu.com>
4897
4898 * util/grub.d/10_linux.in (prefix): Define.
4899 (exec_prefix): Likewise. Both definitions are later used by `libdir'.
4900
44cb1ec8 49012008-01-13 Pavel Roskin <proski@gnu.org>
4902
4903 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
4904 grub_errno if no errors have been detected.
4905
1eb8c802 49062008-01-12 Robert Millan <rmh@aybabtu.com>
4907
4908 * include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
4909 (grub_util_get_dev_abstraction): New function prototype.
4910
4911 * util/getroot.c: Include `<grub/util/getroot.h>'
4912 (grub_util_get_grub_dev): Move detection of abstraction type to ...
4913 (grub_util_get_dev_abstraction): ... here (new function).
4914
4915 * util/grub-probe.c: Convert PRINT_* to an enum. Add
4916 `PRINT_ABSTRACTION'.
4917 (probe): Probe for abstraction type when requested.
4918 (main): Understand `--target=abstraction'.
4919
4920 * util/i386/efi/grub-install.in: Add abstraction module to core
4921 image when it is found to be necessary.
4922 * util/i386/pc/grub-install.in: Likewise.
4923 * util/powerpc/ieee1275/grub-install.in: Likewise.
4924
4925 * util/update-grub_lib.in (font_path): Return system path without
4926 converting to GRUB path.
4927 * util/update-grub.in: Convert system path returned by font_path()
4928 to a GRUB path. Use `grub-probe -t abstraction' to determine what
4929 abstraction module is needed for loading fonts (if any). Export
4930 that as `GRUB_PRELOAD_MODULES'.
4931 * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
4932 insmod commands).
4933
52bd3de9 49342008-01-12 Yoshinori K. Okuji <okuji@enbug.org>
4935
4936 Remove some unused code from reiserfs.
f19dbdb7 4937
52bd3de9 4938 * fs/reiserfs.c (struct grub_reiserfs_key)
4939 [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
4940 (struct grub_reiserfs_node_body): Removed.
4941 (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
4942 Likewise.
4943 (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
4944 Likewise.
4945 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
4946 Likewise.
4947 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
4948 Likewise.
4949 (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
4950 Likewise.
4951 (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
4952 Likewise.
4953 (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
4954 (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
4955 (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
4956
2f80039d 49572008-01-10 Robert Millan <rmh@aybabtu.com>
4958
4959 * util/update-grub_lib.in (grub_file_is_not_garbage): New function.
4960 Determines if a file is garbage left by packaging systems, etc.
4961 * util/update-grub.in: Use grub_file_is_not_garbage() as a condition
4962 for processing /etc/grub.d scripts.
4963 * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
4964 * util/grub.d/10_linux.in: Likewise. Use grub_file_is_not_garbage()
4965 as a condition for processing Linux images.
4966
87888032 49672008-01-10 Pavel Roskin <proski@gnu.org>
4968
4969 * include/grub/powerpc/libgcc.h (__ucmpdi2): New export. Needed
4970 to compile reiserfs.c on PowerPC.
4971
7e54fced 49722008-01-10 Robert Millan <rmh@aybabtu.com>
de9993e0 4973
4974 * kern/device.c (grub_device_iterate): Do not abort device iteration
4975 when one of the devices cannot be opened.
4976 * kern/disk.c (grub_disk_open): Do not account previous failures of
4977 unrelated functions when grub_errno is checked for.
4978
5aa541e6 49792008-01-08 Robert Millan <rmh@aybabtu.com>
4980
4981 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
4982 `! grub_linux_is_bzimage', change order of address comparison to make
4983 it more intuitive, and improve "too big zImage" error message.
4984
7076340d 49852008-01-08 Robert Millan <rmh@aybabtu.com>
4986
4987 * Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
4988 `$(update-grub_DATA)'.
4989 (distcheck): Fix race condition when invoking `$(MAKE)' on multiple
4990 targets.
4991
9ca70333 49922008-01-07 Robert Millan <rmh@aybabtu.com>
4993
4994 * boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
4995 which instruction is modified by grub-setup during installation
4996 (since it wasn't obvious by only looking at this file).
4997
38ccf575 49982008-01-07 Robert Millan <rmh@aybabtu.com>
4999
5000 * TODO: Rewrite. Just refer to the wiki and the BTS instead of
5001 listing actual TODO items.
5002
f5db4291 50032008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
5004
868967cf 5005 * fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
5006 correctly.
5007 (grub_reiserfs_get_key_offset): Likewise.
5008 (grub_reiserfs_set_key_offset): Likewise.
5009 (grub_reiserfs_set_key_type): Likewise.
fe6b695a 5010 (grub_reiserfs_iterate_dir): Return 1 if found, otherwise 0.
868967cf 5011
5012 (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
5013 better to remove the bitfield version completely.
f19dbdb7 5014
868967cf 50152008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 5016
f5db4291 5017 * fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
5018 allocated from the heap, due to the fshelp implementation.
5019 (grub_reiserfs_dir): Free NODE, due to the same reason.
5020
492e6d9d 50212008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
5022
5023 Mostly from Vincent Pelletier:
f19dbdb7 5024
492e6d9d 5025 * fs/reiserfs.c: New file.
f19dbdb7 5026
492e6d9d 5027 * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod.
5028 (reiserfs_mod_SOURCES): New variable.
5029 (reiserfs_mod_CFLAGS): Likewise.
5030 (reiserfs_mod_LDFLAGS): Likewise.
5031
5032 * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
5033 disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
5034 include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
5035 normal/color.c.
5036
9ce3e7c1 50372008-01-06 Robert Millan <rmh@aybabtu.com>
5038
5039 * normal/color.c: Remove `<grub/env.h>'.
5040
f3b58148 50412008-01-05 Jeroen Dekkers <jeroen@dekkers.cx>
5042
5043 * include/grub/normal.h: Include <grub/env.h>.
5044
7ac3bcfa 50452008-01-05 Robert Millan <rmh@aybabtu.com>
5046
5047 * util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
5048 usage example with `(hd0,1)'.
fb358190 5049 Reported by Samuel Thibault.
7ac3bcfa 5050
c8ee99d7 50512008-01-05 Robert Millan <rmh@aybabtu.com>
5052
5053 * kern/i386/loader.S (grub_linux_is_bzimage): New variable.
5054 (grub_linux_boot_zimage): Rename to ...
5055 (grub_linux_boot): ... this.
5056 (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
5057 (grub_linux_boot_zimage): Conditionalize zImage copy.
5058
5059 * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype.
5060 (grub_linux_boot_bzimage): Remove prototype.
5061 (grub_linux_boot_zimage): Rename to ...
5062 (grub_linux_boot): ... this.
5063
5064 * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
5065 (grub_linux_boot): Remove function.
5066
0ece25b1 50672008-01-05 Robert Millan <rmh@aybabtu.com>
5068
5069 * include/grub/normal.h (grub_env_write_color_normal): New prototype.
5070 (grub_env_write_color_highlight): Likewise.
5071 (grub_wait_after_message): Likewise.
5072
5073 * normal/color.c: New file.
5074
5075 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'.
5076 (normal_mod_DEPENDENCIES): Likewise.
5077
5078 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'.
5079 (normal_mod_DEPENDENCIES): Likewise.
5080
5081 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'.
5082 (normal_mod_DEPENDENCIES): Likewise.
5083
5084 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'.
5085 (normal_mod_DEPENDENCIES): Likewise.
5086
5087 * normal/menu_entry.c (run): Rely on grub_wait_after_message()
5088 for waiting after a message is printed.
5089 * normal/main.c (read_config_file): Likewise.
5090 (grub_normal_init): Register grub_env_write_color_normal() and
5091 grub_env_write_color_highlight() hooks. Mark `color_normal' and
5092 `color_highlight' variables as global.
5093
5094 * normal/menu.c (grub_wait_after_message): New function.
5095 (grub_color_menu_normal): New variable. Replaces ...
5096 (GRUB_COLOR_MENU_NORMAL): ... this macro.
5097 (grub_color_menu_highlight): New variable. Replaces ...
5098 (GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
5099 (draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
5100 `GRUB_TERM_COLOR_STANDARD'.
5101 (print_message): Use `grub_setcolorstate' to reload colors. Rename
5102 `normal_code' and `highlight_code' to `old_color_normal' and
5103 `old_color_highlight', respectively.
5104 (grub_menu_init_page): Update colors when drawing the menu, based on
5105 `menu_color_normal' and `menu_color_highlight' variables.
5106 (grub_menu_run): Rely on grub_wait_after_message() for waiting after
5107 a message is printed.
5108
182dd4e5 51092008-01-05 Robert Millan <rmh@aybabtu.com>
5110
5111 * kern/env.c (grub_env_context_open): Propagate hooks for global
5112 variables to new context.
5113
5114 * kern/main.c (grub_set_root_dev): Export `root' variable.
5115
ddf8f6ad 51162008-01-05 Robert Millan <rmh@aybabtu.com>
5117
5118 * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
fe6b695a 5119 discs unconditionally, since udev and others have options to provide
ddf8f6ad 5120 them.
5121
d8b43d9b 51222008-01-05 Robert Millan <rmh@aybabtu.com>
5123
5124 * normal/completion.c (iterate_dir): Skip `.' and `..' directories.
5125
2bff2de3 51262008-01-04 Christian Franke <franke@computer.org>
5127
5128 * kern/i386/pc/init.c (grub_machine_init): Fix evaluation
5129 of eisa_mmap.
5130
97eab917 51312008-01-03 Pavel Roskin <proski@gnu.org>
5132
5133 * kern/i386/linuxbios/init.c: Put "void" to all function
5134 declarations with no arguments.
5135 * kern/powerpc/ieee1275/init.c: Likewise.
5136 * term/i386/pc/at_keyboard.c: Likewise.
5137 * term/i386/pc/vga_text.c: Likewise.
5138 * util/grub-mkdevicemap.c: Likewise.
5139
b9416d00 51402008-01-02 Robert Millan <rmh@aybabtu.com>
5141
5142 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
5143 message when loaded image is out of bounds.
5144 (grub_multiboot_load_elf64): Likewise.
5145
92695df9 51462008-01-02 Pavel Roskin <proski@gnu.org>
5147
5148 * util/grub.d/10_linux.in: Try version without ".old" when
5149 looking for initrd. It's better to use initrd from the newer
5150 kernel of the same version than no initrd at all.
5151
d98d9cad 51522008-01-01 Robert Millan <rmh@aybabtu.com>
5153
5154 * util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.
5155
dbfdce36 51562008-01-01 Vesa Jaaskelainen <chaac@nic.fi>
5157
f19dbdb7 5158 * include/grub/video.h: Added grub_video_unmap_color and
dbfdce36 5159 grub_video_get_active_render_target.
5160 (grub_video_adapter): Added unmap_color and get_active_render_target.
5161
f19dbdb7 5162 * video/video.c: Added grub_video_unmap_color and
dbfdce36 5163 grub_video_get_active_render_target.
5164 (grub_video_get_info): Changed method to accept NULL pointer as an
5165 argument to allow detection of active video adapter.
5166
5167 * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as
5168 grub_video_vbe_unmap_color_int.
5169 Added grub_video_vbe_unmap_color and
5170 grub_video_vbe_get_active_render_target.
5171 (grub_video_vbe_adapter): Added unmap_color and
5172 get_active_render_target.
5173
f19dbdb7 5174 * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage
dbfdce36 5175 with grub_video_vbe_unmap_color_int.
5176
5177 * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
5178 (DEFAULT_NORMAL_COLOR): Likewise.
5179 (DEFAULT_HIGHLIGHT_COLOR) Likewise.
5180 (DEFAULT_FG_COLOR): Removed.
5181 (DEFAULT_BG_COLOR): Likewise.
5182 (DEFAULT_CURSOR_COLOR): Changed value.
5183 (grub_virtual_screen): Added standard_color_setting,
5184 normal_color_setting, highlight_color_setting and term_color.
5185 (grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
5186 (bitmap_width): Added.
5187 (bitmap_height): Likewise.
5188 (bitmap): Likewise.
5189 (set_term_color): Likewise.
5190 (grub_virtual_screen_setup): Changed to use new terminal coloring
5191 settings.
5192 (grub_gfxterm_init): Added init for bitmap.
5193 (grub_gfxterm_fini): Added destroy for bitmap.
5194 (redraw_screen_rect): Updated to use background bitmap and new
5195 terminal coloring.
5196 (scroll_up): Added optimization for case when there is no bitmap.
5197 (grub_gfxterm_cls): Fixed to use correct background color.
5198 (grub_virtual_screen_setcolorstate): Changed to use new terminal
5199 coloring.
5200 (grub_virtual_screen_setcolor): Likewise.
5201 (grub_virtual_screen_getcolor): Added.
5202 (grub_gfxterm_background_image_cmd): Likewise.
5203 (grub_video_term): Added setcolor and getcolor.
5204 (MOD_INIT): Added registration of background_image command.
5205 (MOD_TERM): Added unregistration for background_image command.
5206
c3c20931 52072007-12-30 Pavel Roskin <proski@gnu.org>
5208
5209 * loader/multiboot_loader.c: Fix multiboot command
5210 unregistration. Fix all typos in the word "multiboot".
5211
df266716 52122007-12-29 Pavel Roskin <proski@gnu.org>
94239199 5213
5214 * util/grub.d/10_linux.in: Refactor search for initrd. Add
5215 support for initrd names used in Fedora.
5216
fc6e896c 52172007-12-26 Bean <bean123ch@gmail.com>
5218
5219 * conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
5220 (cpio_mod_SOURCES): New variable.
5221 (cpio_mod_CFLAGS): Likewise.
5222 (cpio_mod_LDFLAGS): Likewise.
5223
5224 * fs/cpio.c: New file.
5225
5226 * conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c.
5227
5228 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
5229
5230 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
5231
5232 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5233
533110ad 52342007-12-25 Robert Millan <rmh@aybabtu.com>
5235
5236 * include/grub/term.h (struct grub_term): Add `getcolor' function.
5237 (grub_getcolor): New function.
5238
5239 * kern/term.c (grub_getcolor): New function.
5240 * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
5241 (GRUB_COLOR_MENU_HIGHLIGHT): New macro.
5242 (print_entry): Set normal and highlight colors to
5243 `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
5244 respectively, before printing and restore them to old
5245 values afterwards.
5246 (grub_menu_init_page): Likewise. Fill an additional colored space
5247 that would otherwise be left blank.
5248
5249 * term/efi/console.c (grub_console_getcolor): New function.
5250 (struct grub_console_term.getcolor): New variable.
5251 * term/i386/pc/console.c (grub_console_getcolor): New function.
5252 (struct grub_console_term.getcolor): New variable.
5253 * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
5254 (struct grub_console_term.getcolor): New variable.
5255
5256 * term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
5257 (struct grub_console_term.setcolor): Remove variable.
5258 * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
5259 (struct grub_console_term.setcolor): Remove variable.
5260 * term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
5261 (struct grub_console_term.setcolor): Remove variable.
5262 * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
5263 (struct grub_console_term.setcolor): Remove variable.
5264
4931827f 52652007-12-25 Robert Millan <rmh@aybabtu.com>
5266
5267 * configure.ac: Search for possible unifont.hex locations, and
5268 define UNIFONT_HEX if found.
5269
5270 * Makefile.in (UNIFONT_HEX): Define variable.
5271 (DATA): Rename to ...
5272 (PKGLIB): ... this. Update all users.
5273 (PKGDATA): New variable.
5274 (pkgdata_IMAGES): Rename to ...
5275 (pkglib_IMAGES): ... this. Update all users.
5276 (pkgdata_MODULES): Rename to ...
5277 (pkglib_MODULES): ... this. Update all users.
5278 (pkgdata_PROGRAMS): Rename to ...
5279 (pkglib_PROGRAMS): ... this. Update all users.
5280 (pkgdata_DATA): Rename to ...
5281 (pkglib_DATA): ... this. Update all users.
5282 (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
5283 (unicode.pff, ascii.pff): New rules.
5284 (all-local): Add `$(PKGDATA)' dependency.
5285 (install-local): Process `$(PKGDATA)'.
5286
5287 * util/update-grub_lib.in (font_path): Search for *.pff files in
5288 a few more locations, including `${pkgdata}'.
5289
57e57e31 52902007-12-23 Robert Millan <rmh@aybabtu.com>
5291
5292 Patch from Bean <bean123ch@gmail.com>:
5293 * disk/loopback.c (grub_loopback_read): Add missing bit shift to
5294 `size'.
5295
4bc72aa9 52962007-12-21 Bean <bean123ch@gmail.com>
5297
5298 * conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
5299 (ntfscomp_mod_SOURCES): New variable.
5300 (ntfscomp_mod_CFLAGS): Likewise.
5301 (ntfscomp_mod_LDFLAGS): Likewise.
5302
5303 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c.
5304 (grub_probe_SOURCES): Likewise.
5305 (grub_emu_SOURCES): Likewise.
5306
5307 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
5308 (grub_emu_SOURCES): Likewise.
5309
5310 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
5311 (grub_emu_SOURCES): Likewise.
5312
5313 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
5314 (grub_emu_SOURCES): Likewise.
5315
5316 * fs/ntfs.c (grub_ntfscomp_func): New variable.
5317 (read_run_list): Renamed to grub_ntfs_read_run_list.
5318 (decomp_nextvcn): Moved to ntfscomp.c.
5319 (decomp_getch): Likewise.
5320 (decomp_get16): Likewise.
5321 (decomp_block): Likewise.
5322 (read_block): Likewise.
5323 (read_data): Partially moved to ntfscomp.c.
5324 (fixup): Change unsigned to grub_uint16_t.
5325 (read_mft): Change unsigned long to grub_uint32_t.
5326 (read_attr): Likewise.
5327 (read_data): Likewise.
5328 (read_run_data): Likewise.
5329 (read_run_list): Likewise.
5330 (read_mft): Likewise.
5331
5332 * fs/ntfscomp.c: New file.
5333
5334 * include/grub/ntfs.h: New file.
5335
af680a87 53362007-12-16 Robert Millan <rmh@aybabtu.com>
5337
5338 * util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
5339 IDE disk check, since Linux is known to support 20 IDE disks.
5340 Reported by Colin Watson.
5341
84be7599 53422007-12-15 Bean <bean123ch@gmail.com>
5343
5344 * conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
5345 (lnxboot_img_SOURCES): New variable.
5346 (lnxboot_img_ASFLAGS): Likewise.
5347 (lnxboot_img_LDFLAGS): Likewise.
5348
5349 * boot/i386/pc/lnxboot.S: New file.
5350
6af9db01 53512007-11-24 Pavel Roskin <proski@gnu.org>
5352
5353 * configure.ac: Test if '--build-id=none' is supported by the
5354 linker. If yes, add it to TARGET_LDFLAGS. Build ID causes
5355 objcopy to generate incorrect binary files (binutils
5356 2.17.50.0.18-1 as shipped by Fedora 8).
5357 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
5358 linking, so that build ID doesn't break the test.
5359
7361cfe6 53602007-11-24 Pavel Roskin <proski@gnu.org>
5361
5362 * include/grub/i386/time.h: use "void" in the argument list
5363 of grub_cpu_idle().
5364 * include/grub/powerpc/time.h: Likewise.
5365 * include/grub/sparc64/time.h: Likewise.
5366
1593e10c 53672007-11-18 Christian Franke <franke@computer.org>
5368
5369 * util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
5370 now return control chars instead of GRUB_CONSOLE_KEY_* constants.
5371 This fixes the problem that function keys did not work in grub-emu.
5372
3b8db1a8 53732007-11-18 Christian Franke <franke@computer.org>
5374
5375 * disk/host.c (grub_host_open): Remove attribute unused from
5376 name parameter. Add check for "host". This fixes the problem
5377 that grub-emu does not find partitions.
5378
2e29408d 53792007-11-18 Christian Franke <franke@computer.org>
5380
5381 * util/hostfs.c (is_dir): New function.
5382 (grub_hostfs_dir): Handle missing dirent.d_type case.
5383 (grub_hostfs_read): Add missing fseek().
5384 (grub_hostfs_label): Clear label pointer. This fixes a crash
5385 of grub-emu on "ls (host)".
5386
398cd047 53872007-11-18 Christian Franke <franke@computer.org>
5388
5389 * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
5390 Add attribute packed, gcc 3.4.4 on Cygwin aligns this
5391 to 64 bit boundary by default.
5392
c405c391 53932007-11-18 Bean <bean123ch@gmail.com>
5394
5395 * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
5396 (hexdump_mod_SOURCES): New variable.
5397 (hexdump_mod_CFLAGS): Likewise.
5398 (hexdump_mod_LDFLAGS): Likewise.
f19dbdb7 5399
c405c391 5400 * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.
5401
5402 * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.
5403
5404 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.
5405
5406 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.
5407
5408 * include/grub/hexdump.h: New file.
5409
5410 * commands/hexdump.c: New file.
5411
5cced7fd 54122007-11-10 Robert Millan <rmh@aybabtu.com>
5413
5414 * commands/i386/pc/play.c (beep_off): Switch order of arguments
5415 in grub_outb() calls.
5416 (beep_on): Likewise.
5417
8b714eb0 54182007-11-10 Christian Franke <franke@computer.org>
5419
5420 * normal/menu.c (run_menu): Check for empty menu to avoid crash.
5421 (grub_menu_run): Likewise.
5422
ce0f1839 54232007-11-10 Robert Millan <rmh@aybabtu.com>
5424
5425 * include/grub/i386/efi/machine.h: New file.
5426 * include/grub/i386/linuxbios/machine.h: Likewise.
5427 * include/grub/i386/pc/machine.h: Likewise.
5428 * include/grub/powerpc/ieee1275/machine.h: Likewise.
5429 * include/grub/sparc64/ieee1275/machine.h: Likewise.
5430
5431 * term/i386/pc/serial.c: Include <grub/machine/machine.h>.
5432 (serial_hw_io_addr): New variable.
5433 (serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
5434 instead of `(unsigned short *) 0x400'.
5435
270c237d 54362007-11-10 Bean <bean123ch@gmail.com>
5437
5438 * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
5439
a87783bf 54402007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
5441
5442 * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
5443 (vga_mod_SOURCES): Added.
5444 (vga_mod_CFLAGS): Likewise.
5445 (vga_mod_LDFLAGS): Likewise.
5446
5447 * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
5448 grub_outb() calls.
5449 (set_map_mask): Likewise.
5450 (set_read_map): Likewise.
5451 (set_read_address): Likewise.
5452 (vga_font): Removed variable.
5453 (get_vga_glyph): Removed function.
5454 (invalidate_char): Likewise.
5455 (write_char): Changed to use grub_font_get_glyph() for font
5456 information.
5457 (grub_vga_putchar): Likewise.
5458 (grub_vga_getcharwidth): Likewise.
5459
6433b448 54602007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
5461
5462 * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
5463 flags.
5464 (pxeboot_img_LDFLAGS): Likewise.
5465 (diskboot_img_LDFLAGS): Likewise.
5466 (kernel_img_LDFLAGS): Likewise.
5467
49178511 54682007-11-06 Robert Millan <rmh@aybabtu.com>
5469
5470 * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
5471 in grub_outb() calls.
5472 (serial_hw_init): Likewise.
5473
53b052de 54742007-11-05 Robert Millan <rmh@aybabtu.com>
5475
5476 * util/update-grub.in: Allow files in ${update_grub_dir} to contain
5477 spaces. Skip non-regular files.
5478
5ab33bba 54792007-11-05 Robert Millan <rmh@aybabtu.com>
5480
5481 * kern/disk.c (grub_disk_firmware_fini)
5482 (grub_disk_firmware_is_tainted): New variables.
5483
5484 * include/grub/disk.h (grub_disk_firmware_fini)
5485 (grub_disk_firmware_is_tainted): Likewise.
5486
5487 * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
5488 (grub_disk_biosdisk_fini): ... to here.
5489 (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
5490 (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
5491 is set. Register grub_disk_biosdisk_fini() in
5492 `grub_disk_firmware_fini'.
5493
5494 * disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
5495 (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
5496 Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
5497 to finish existing firmware disk interface.
5498
5499 * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
5500 (ata_mod_SOURCES): New variable.
5501 (ata_mod_CFLAGS): Likewise.
5502 (ata_mod_LDFLAGS): Likewise.
5503
0149ab7c 55042007-11-05 Robert Millan <rmh@aybabtu.com>
5505
5506 * disk/ata.c: Remove `<grub/machine/time.h>'. Include `<grub/time.h>'.
5507 (grub_ata_wait): Reimplement using grub_millisleep().
5508
5509 * include/grub/misc.h (grub_div_roundup): Fix parenthesization.
5510 * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
5511
be7ac41e 55122007-11-03 Marco Gerards <marco@gnu.org>
5513
5514 * term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
5515 (CRTC_ADDR_PORT): New macro.
5516 (CRTC_DATA_PORT): Likewise.
5517 (CRTC_CURSOR): Likewise.
5518 (CRTC_CURSOR_ADDR_HIGH): Likewise.
5519 (CRTC_CURSOR_ADDR_LOW): Likewise.
5520 (update_cursor): New function.
5521 (grub_console_real_putchar): Call `update_cursor'.
5522 (grub_console_gotoxy): Likewise.
5523 (grub_console_cls): Set the default color when clearing the
5524 screen.
5525 (grub_console_setcursor): Implemented.
5526
bb06ab2e 55272007-11-03 Marco Gerards <marco@gnu.org>
5528
5529 * disk/ata.c (grub_ata_pio_read): Don't wait for the command to
5530 become activate.
5531 (grub_ata_pio_write): Likewise.
5532
5533 (grub_atapi_identify): Wait after issuing an ATA command.
5534 (grub_atapi_packet): Likewise.
5535 (grub_ata_identify): Likewise.
5536 (grub_ata_readwrite): Likewise.
5537
cf8f780b 55382007-11-03 Marco Gerards <marco@gnu.org>
5539
5540 * disk/ata.c (grub_ata_pio_read): Detect and return the error code.
5541 (grub_ata_pio_write): Likewise.
5542 (grub_ata_readwrite): Use `grub_error', instead of
5543 returning `grub_errno'.
5544
ed649e54 55452007-11-03 Marco Gerards <marco@gnu.org>
5546
5547 * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
5548 grub_ata_pio_write once for every single sector, instead of for
5549 multiple sectors.
5550
ca25d8f0 55512007-10-31 Robert Millan <rmh@aybabtu.com>
5552
5553 * configure.ac: Add `i386-linuxbios' to the list of supported targets.
5554
5555 * conf/i386-linuxbios.rmk: New file.
5556
5557 * kern/i386/pc/hardware.c: Likewise.
5558 * term/i386/pc/at_keyboard.c: Likewise.
5559 * term/i386/pc/vga_text.c: Likewise.
5560
5561 * include/grub/i386/linuxbios/boot.h: Likewise.
5562 * include/grub/i386/linuxbios/console.h: Likewise.
5563 * include/grub/i386/linuxbios/init.h: Likewise.
5564 * include/grub/i386/linuxbios/kernel.h: Likewise.
5565 * include/grub/i386/linuxbios/loader.h: Likewise.
5566 * include/grub/i386/linuxbios/memory.h: Likewise.
5567 * include/grub/i386/linuxbios/serial.h: Likewise.
5568 * include/grub/i386/linuxbios/time.h: Likewise.
5569
5570 * kern/i386/linuxbios/init.c: Likewise.
5571 * kern/i386/linuxbios/startup.S: Likewise.
5572 * kern/i386/linuxbios/table.c: Likewise.
5573
e911ecc1 55742007-10-31 Marco Gerards <marco@gnu.org>
5575
5576 * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
5577 (ata_mod_SOURCES): New variable.
5578 (ata_mod_CFLAGS): Likewise.
5579 (ata_mod_LDFLAGS): Likewise.
5580
5581 * disk/ata.c: New file.
5582
5583 * include/grub/disk.h (grub_disk_dev_id): Add
5584 `GRUB_DISK_DEV_ATA_ID'.
f19dbdb7 5585
7f66d0e0 55862007-10-31 Robert Millan <rmh@aybabtu.com>
5587
5588 * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
5589 * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.
5590
5591 * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
5592 * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.
5593
5594 * include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
5595 `<grub/types.h>'.
5596
5597 * loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
5598
5cd7dd46 55992007-10-27 Robert Millan <rmh@aybabtu.com>
5600
3236ca65 5601 * include/grub/types.h (ULONG_MAX): Define macro.
5cd7dd46 5602
2ebfc90f 56032007-10-22 Robert Millan <rmh@aybabtu.com>
5604
5605 * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'. Include
5606 `"../realmode.S"'.
5607 Remove `"kern/i386/loader.S"'. Include `"../loader.S"'.
5608
73fcb0f3 56092007-10-22 Robert Millan <rmh@aybabtu.com>
5610
5611 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
5612 (pkgdata_MODULES): Add `biosdisk.mod'.
5613 (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
5614 variables.
5615
5616 * disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
5617 (grub_biosdisk_init): Replace with ...
5618 (GRUB_MOD_INIT(biosdisk)): ... this.
5619 (grub_biosdisk_fini): Replace with ...
5620 (GRUB_MOD_FINI(biosdisk)): ... this.
5621
5622 * kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
5623 (grub_machine_init): Remove call to grub_biosdisk_init().
5624 (grub_machine_fini): Remove call to grub_machine_fini().
5625
5626 * util/i386/pc/grub-install.in (modules): Add `biosdisk'.
5627
3381d274 56282007-10-22 Robert Millan <rmh@aybabtu.com>
5629
5630 * include/grub/time.h: New file.
5631 * include/grub/i386/time.h: Likewise.
5632 * include/grub/powerpc/time.h: Likewise.
5633 * include/grub/sparc64/time.h: Likewise.
5634
5635 * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
5636 instances to ...
5637 (KERNEL_MACHINE_TIME_HEADER): ... this.
5638 * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
5639 instances to ...
5640 (KERNEL_MACHINE_TIME_HEADER): ... this.
5641 * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
5642 instances to ...
5643 (KERNEL_MACHINE_TIME_HEADER): ... this.
5644
5645 * kern/i386/efi/init.c: Include `<grub/time.h>'.
5646 (grub_millisleep): New function.
5647 * kern/i386/pc/init.c: Include `<grub/time.h>'.
5648 (grub_millisleep): New function.
5649 * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
5650 Remove `grub/machine/time.h' include.
5651 (grub_millisleep): New function.
5652 * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
5653 Remove `grub/machine/time.h' include.
5654 (grub_millisleep): New function.
5655
5656 * include/grub/misc.h (grub_div_roundup): New function.
5657
5658 * kern/misc.c: Include `<grub/time.h>'.
5659 (grub_millisleep_generic): New function.
5660
5661 * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
5662 Add `time.h'.
5663 * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
5664 Add `time.h'.
5665 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
5666 `machine/time.h'. Add `time.h'.
5667 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
5668
a39a0312 56692007-10-21 Robert Millan <rmh@aybabtu.com>
5670
5671 * include/grub/misc.h (grub_max): New function.
5672
2aad70e2 56732007-10-21 Robert Millan <rmh@aybabtu.com>
5674
5675 * util/misc.c (grub_util_info): Call fflush() before returning.
5676
54b71c4b 56772007-10-20 Robert Millan <rmh@aybabtu.com>
5678
5679 * genmk.rb (Image): Copy `extra_flags' from here ...
5680 (PModule): ... to here. Use it in `#{obj}: #{src}' rule.
5681
5682 * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
5683 to `argc' and `args' arguments.
5684
a979f513 56852007-10-17 Robert Millan <rmh@aybabtu.com>
5686
5687 * kern/i386/loader.S: New file.
5688
5689 * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
5690 * kern/i386/loader.S (grub_linux_prot_size)... to here.
5691 * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
5692 * kern/i386/loader.S (grub_linux_tmp_addr)... to here.
5693 * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
5694 * kern/i386/loader.S (grub_linux_real_addr)... to here.
5695 * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
5696 * kern/i386/loader.S (grub_linux_boot_zimage)... to here.
5697 * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
5698 * kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
5699 * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
5700 * kern/i386/loader.S (grub_multiboot_real_boot)... to here.
5701 * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
5702 * kern/i386/loader.S (grub_multiboot2_real_boot)... to here.
5703
5704 * kern/i386/realmode.S: New file.
5705
5706 * kern/i386/pc/startup.S (protstack): Moved from here ...
5707 * kern/i386/realmode.S (protstack)... to here.
5708 * kern/i386/pc/startup.S (gdt): Moved from here ...
5709 * kern/i386/realmode.S (gdt)... to here.
5710 * kern/i386/pc/startup.S (prot_to_real): Moved from here ...
5711 * kern/i386/realmode.S (prot_to_real)... to here.
5712
5713 * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
5714 `kern/i386/realmode.S'.
5715
825fc8fd 57162007-10-17 Robert Millan <rmh@aybabtu.com>
5717
5718 * include/grub/i386/loader.h: New file.
5719
5720 * include/grub/i386/pc/loader.h (grub_linux_prot_size)
5721 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
5722 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
5723 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
5724 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
5725 * include/grub/i386/loader.h (grub_linux_prot_size)
5726 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
5727 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
5728 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
5729 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.
5730
5731 * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
5732
e179b2f4 57332007-10-15 Robert Millan <rmh@aybabtu.com>
5734
5735 * normal/misc.c (grub_normal_print_device_info): Do not probe for
5736 filesystem when dev->disk is unset.
5737 Do probe for filesystem even when dev->disk->has_partitions is set.
5738 In case a filesystem is found, always report it.
5739 In case it isn't, if dev->disk->has_partitions is set, report that
5740 a partition table was found instead of reporting that no filesystem
5741 could be identified.
5742
5db82af6 57432007-10-12 Robert Millan <rmh@aybabtu.com>
5744
5745 * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
5746 to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.
5747
68f6ac74 5748 * include/grub/types.h (grub_host_to_target16): New macro.
5749 (grub_host_to_target32): Likewise.
5750 (grub_host_to_target64): Likewise.
5751 (grub_target_to_host16): Likewise.
5752 (grub_target_to_host32): Likewise.
5753 (grub_target_to_host64): Likewise.
5db82af6 5754
5755 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
5756 Renamed from to ...
5757 (GRUB_MOD_ALIGN): ...this. Update all users.
5758
68f6ac74 5759 * util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with
5760 grub_host_to_target32.
5761 Replace grub_be_to_cpu32 with grub_target_to_host32.
5762 (load_modules): Likewise.
5763 (add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16.
5764 Replace grub_be_to_cpu32 with grub_target_to_host32.
5765 Replace grub_cpu_to_be16 with grub_host_to_target16.
5766 Replace grub_cpu_to_be32 grub_host_to_target32.
5db82af6 5767
3cf497cc 57682007-10-12 Robert Millan <rmh@aybabtu.com>
5769
5770 * util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
5771 * util/elf/grub-mkimage.c: ... here.
5772
5773 * DISTLIST: Add `util/elf/grub-mkimage.c'. Remove
5774 `util/powerpc/ieee1275/grub-mkimage.c'.
5775
c8cc3692 57762007-10-07 Robert Millan <rmh@aybabtu.com>
adbc4c9d 5777
c8cc3692 5778 * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
5779 and make it easier to figure out.
5780 Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
5781 (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
5782 Do not avoid claiming a region above HEAP_MAX_ADDR if that would
5783 leave us with less than HEAP_MIN_SIZE total heap.
5784 Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
adbc4c9d 5785
5c58b791 57862007-10-03 Robert Millan <rmh@aybabtu.com>
5787
5788 * include/grub/i386/io.h: New file.
5789 * commands/i386/pc/play.c (inb): Removed.
5790 (outb): Removed.
5791 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
5792 with grub_outb().
afcd2ef8 5793 * term/i386/pc/serial.c (inb): Removed.
5794 (outb): Removed.
5795 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
5796 with grub_outb().
5797 * term/i386/pc/vga.c (inb): Removed.
5798 (outb): Removed.
5799 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
5800 with grub_outb().
5c58b791 5801
1a477ed6 58022007-10-02 Robert Millan <rmh@aybabtu.com>
5803
5804 * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
5805 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5806 Reported by Marcin Kurek.
5807
6b5d80fa 58082007-09-07 Robert Millan <rmh@aybabtu.com>
5809
5810 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
5811 SmartFirmware version updates (as released by Sven Luther), and avoid
5812 setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
5813 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
5814 known broken.
5815
5618afbf 58162007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
5817
5818 From Hitoshi Ozeki:
5819 * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
5820 when merging two regions.
5821
6139dcd9 58222007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
5823
508e39ee 5824 * kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
5825 * normal/completion.c (grub_normal_do_completion): Likewise.
5826 Reported by Hitoshi Ozeki.
5827
58282007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 5829
6139dcd9 5830 Do not use devices at boot in chainloading.
f19dbdb7 5831
6139dcd9 5832 * loader/i386/pc/chainloader.c (boot_drive): New variable.
5833 (boot_part_addr): Likewise.
5834 (grub_chainloader_boot): Simply call grub_chainloader_real_boot
5835 with BOOT_DRIVE and BOOT_PART_ADDR.
5836 (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
5837 Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
5838
38da6516 58392007-08-29 Robert Millan <rmh@aybabtu.com>
5840
5841 Patch from Simon Peter <dn.tlp@gmx.net>:
5842 * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
5843 * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
5844 util/grub-probe.c_DEPENDENCIES. Replace grub-setup_DEPENDENCIES with
5845 util/i386/pc/grub-setup.c_DEPENDENCIES.
5846 * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
5847 util/grub-probe.c_DEPENDENCIES.
5848 * conf/powerpc-ieee1275.rmk: Likewise.
5849
29d0928c 58502007-08-28 Robert Millan <rmh@aybabtu.com>
5851
5852 * util/i386/get_disk_name.c: New. Implement grub_util_get_disk_name()
5853 to tell grub-mkdevicemap how to name devices.
5854 * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
5855 feature).
5856
5857 * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
5858 util/i386/get_disk_name.c.
5859 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
5860 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
5861 util/ieee1275/get_disk_name.c.
5862
5863 * include/grub/util/misc.h: grub_util_get_disk_name() declaration.
5864
5865 * DISTLIST: Add util/i386/get_disk_name.c and
5866 util/ieee1275/get_disk_name.c.
5867
5868 * util/grub-mkdevicemap.c: Replace device naming logic with
5869 grub_util_get_disk_name() calls.
5870
5a0d3cca 58712007-08-20 Robert Millan <rmh@aybabtu.com>
5872
5873 * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
5874 (so that it works for both plural and singular quantities).
5875
8b72db2f 58762007-08-05 Robert Millan <rmh@aybabtu.com>
5877
5878 * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
5879 so that [xz] isn't taken into account when determining order.
5880
352466bf 58812007-08-02 Marco Gerards <marco@gnu.org>
5882
5883 * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
5884 `include/multiboot2.h', `include/grub/elfload.h',
5885 `include/multiboot.h', `include/grub/multiboot.h',
5886 `include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
5887 `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
5888 `kern/elf.c', `loader/multiboot_loader.c',
5889 `loader/multiboot_loader_normal.c', `loader/multiboot2.c',
5890 `loader/i386/pc/multiboot2.c',
5891 `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
5892 `util/i386/pc/grub-mkrescue.in'. Remove
5893 `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
5894 `include/grub/i386/pc/util/biosdisk.h' and
5895 `include/grub/powerpc/ieee1275/multiboot.h'.
5896
8f096014 58972007-08-02 Bean <bean123ch@gmail.com>
5898
5899 * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
5900 (ntfs_mod_SOURCES): New variable.
5901 (ntfs_mod_CFLAGS): Likewise.
5902 (ntfs_mod_LDFLAGS): Likewise.
5903
5904 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c.
5905 (grub_probe_SOURCES): Likewise.
5906 (grub_emu_SOURCES): Likewise.
5907
5908 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
5909 (grub_emu_SOURCES): Likewise.
5910
5911 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
5912 (grub_emu_SOURCES): Likewise.
f19dbdb7 5913
8f096014 5914 * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.
5915
5916 * fs/ntfs.c: New file.
5917
9959f7db 59182007-08-02 Bean <bean123ch@gmail.com>
5919
5920 * disk.h (grub_disk): Use NESTED_FUNC_ATTR.
5921
5922 * file.h (grub_file): Likewise.
5923
5924 * fshelp.h (grub_fshelp_read_file): Likewise.
5925
5926 * util/i386/pc/grub-setup.c (setup): Likewise.
5927 (save_first_sector): Likewise.
5928 (save_blocklists): Likewise.
f19dbdb7 5929
9959f7db 5930 * fs/affs.c (grub_affs_read_file): Likewise.
5931
5932 * fs/ext2.c (grub_ext2_read_file): Likewise.
5933
5934 * fs/fat.c (grub_fat_read_data): Likewise.
5935
5936 * fs/fshelp.c (grub_fshelp_read_file): Likewise.
5937
5938 * fs/hfs.c (grub_hfs_read_file): Likewise.
5939
5940 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
5941
5942 * fs/jfs.c (grub_jfs_read_file): Likewise.
5943
5944 * fs/minix.c (grub_minix_read_file): Likewise.
5945
5946 * fs/sfs.c (grub_sfs_read_file): Likewise.
5947
5948 * fs/ufs.c (grub_ufs_read_file): Likewise.
f19dbdb7 5949
9959f7db 5950 * fs/xfs.c (grub_xfs_read_file): Likewise.
5951
5952 * command/blocklist.c (read_blocklist): Likewise.
5953 (print_blocklist): Likewise.
5954
0a203f83 59552007-08-02 Marco Gerards <marco@gnu.org>
5956
5957 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
5958 `util/hostfs.c'.
5959
5960 * disk/host.c: New file.
5961
5962 * util/hostfs.c: Likewise.
5963
5964 * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
5965 return `GRUB_ERR_BAD_FS'.
5966 * fs/sfs.c (grub_sfs_mount): Likewise.
5967 * fs/xfs.c (grub_xfs_mount): Likewise.
5968
5969 * include/grub/disk.h (enum grub_disk_dev_id): Add
5970 `GRUB_DISK_DEVICE_HOST_ID'.
5971
5972 * util/grub-emu.c (main): Initialize and de-initialize hostfs.
5973
e5dfe777 59742007-07-24 Jerone Young <jerone@gmail.com>
5975
f19dbdb7 5976 * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
e5dfe777 5977 modules for compilation.
5978 * conf/powerpc-ieee1275.rmk: Likewise.
5979
5980 * include/multiboot.h: Move multiboot definitions to one file. Rename
5981 many definitions to not get grub specific.
5982 * include/multiboot2.h: Create header with multiboot 2 definitions.
5983 * include/grub/multiboot.h: Header for grub specific function
5984 prototypes and definitions.
5985 * include/grub/multiboot2.h: Likewise.
5986 * include/grub/multiboot_loader.h: Likewise.
5987 * include/grub/i386/pc/multiboot.h: Removed.
5988 * include/grub/powerpc/ieee1275/multiboot.h: Removed.
5989
5990 * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
5991 and 2 to allow for one multiboot and module commands.
5992 * loader/multiboot2.c: Add multiboot2 functionality.
5993 * loader/i386/pc/multiboot.c: Modify for new multiboot header location
5994 and definition names.
5995 * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
5996 2 functions.
5997 * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
5998 ieee1275 specific multiboot2 code.
5999
6000 * kern/i386/pc/startup.S: Change headers and definition names for
6001 multiboot. Add function grub_multiboot2_real_boot for multiboot 2.
6002
daf0f0ba 60032007-07-22 Robert Millan <rmh@aybabtu.com>
6004
6005 * geninitheader.sh: Process file specified in first parameter rather
6006 than hardcoding grub_modules_init.lst.
fe6b695a 6007 * geninit.sh: Likewise. Also, construct header name dynamically rather
daf0f0ba 6008 than hardcoding grub_modules_init.h.
6009
6010 * conf/common.rmk: Rename grub_modules_init.[ch] files associated with
6011 grub-emu to grub_emu_init.[ch]. Add rules to build analogous
6012 grub_probe_init.[ch] and grub_setup_init.[ch].
6013
6014 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
6015 grub_modules_init.h with grub_emu_init.h.
6016 (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
6017 grub_probe_init.[ch] files.
6018 * conf/i386-efi.rmk: Likewise.
6019 * conf/i386-pc.rmk: Likewise.
6020 (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
6021 grub_setup_init.[ch] files.
6022
6023 * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
6024 * util/grub-probe.c: Include grub_probe_init.h. Use grub_init_all()
6025 to initialize modules rather than a list of hardcoded functions.
6026 * util/i386/pc/grub-setup.c: Include grub_setup_init.h. Use
6027 grub_init_all() to initialize modules rather than a list of hardcoded
6028 functions.
6029
54cdc1cc 60302007-07-22 Robert Millan <rmh@aybabtu.com>
6031
6032 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
6033 GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
6034
ad0686cc 60352007-07-22 Robert Millan <rmh@aybabtu.com>
6036
6037 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
6038 GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
6039 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
6040 flag when running on SmartFirmware.
6041 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
6042 "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
6043 was set.
6044
6045 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
6046 Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
6047 rather than decreasing it.
6048
6049 * util/i386/pc/grub-setup.c (setup): When embedding is required, but
6050 there's not enough space to do it, fail in the same way as when it
6051 can't be done because there are no partitions.
6052
6053 * util/powerpc/ieee1275/grub-install.in: Improve error message shown
6054 when nvsetenv failed.
6055
969c02ec 60562007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
6057
6058 * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
6059 because this rule is automatically generated.
6060 (grub-mkrescue): Removed for the same reason as above.
6061
5a79f472 60622007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
6063
6064 Migrate to GNU General Public License Version 3.
f19dbdb7 6065
5a79f472 6066 * COPYING: Replaced with the plain text version of GPLv3.
6067
6068 * config.guess: Updated from gnulib.
6069 * config.sub: Likewise.
6070
6071 * geninit.sh: Output a GPLv3 copyright notice.
6072 * geninitheader.sh: Likewise.
6073 * genmodsrc.sh: Likewise.
6074 * gensymlist.sh.in: Likewise.
6075
6076 * boot/i386/pc/boot.S: Upgraded to GPLv3.
6077 * boot/i386/pc/diskboot.S: Likewise.
6078 * boot/i386/pc/pxeboot.S: Likewise.
6079 * commands/blocklist.c: Likewise.
6080 * commands/boot.c: Likewise.
6081 * commands/cat.c: Likewise.
6082 * commands/cmp.c: Likewise.
6083 * commands/configfile.c: Likewise.
6084 * commands/echo.c: Likewise.
6085 * commands/help.c: Likewise.
6086 * commands/ls.c: Likewise.
6087 * commands/search.c: Likewise.
6088 * commands/terminal.c: Likewise.
6089 * commands/test.c: Likewise.
6090 * commands/videotest.c: Likewise.
6091 * commands/i386/cpuid.c: Likewise.
6092 * commands/i386/pc/halt.c: Likewise.
6093 * commands/i386/pc/play.c: Likewise.
6094 * commands/i386/pc/reboot.c: Likewise.
6095 * commands/i386/pc/vbeinfo.c: Likewise.
6096 * commands/i386/pc/vbetest.c: Likewise.
6097 * commands/ieee1275/halt.c: Likewise.
6098 * commands/ieee1275/reboot.c: Likewise.
6099 * commands/ieee1275/suspend.c: Likewise.
6100 * disk/loopback.c: Likewise.
6101 * disk/lvm.c: Likewise.
6102 * disk/raid.c: Likewise.
6103 * disk/efi/efidisk.c: Likewise.
6104 * disk/i386/pc/biosdisk.c: Likewise.
6105 * disk/ieee1275/ofdisk.c: Likewise.
6106 * font/manager.c: Likewise.
6107 * fs/affs.c: Likewise.
6108 * fs/ext2.c: Likewise.
6109 * fs/fat.c: Likewise.
6110 * fs/fshelp.c: Likewise.
6111 * fs/hfs.c: Likewise.
6112 * fs/hfsplus.c: Likewise.
6113 * fs/iso9660.c: Likewise.
6114 * fs/jfs.c: Likewise.
6115 * fs/minix.c: Likewise.
6116 * fs/sfs.c: Likewise.
6117 * fs/ufs.c: Likewise.
6118 * fs/xfs.c: Likewise.
6119 * hello/hello.c: Likewise.
6120 * include/grub/acorn_filecore.h: Likewise.
6121 * include/grub/arg.h: Likewise.
6122 * include/grub/bitmap.h: Likewise.
6123 * include/grub/boot.h: Likewise.
6124 * include/grub/cache.h: Likewise.
6125 * include/grub/device.h: Likewise.
6126 * include/grub/disk.h: Likewise.
6127 * include/grub/dl.h: Likewise.
6128 * include/grub/elfload.h: Likewise.
6129 * include/grub/env.h: Likewise.
6130 * include/grub/err.h: Likewise.
6131 * include/grub/file.h: Likewise.
6132 * include/grub/font.h: Likewise.
6133 * include/grub/fs.h: Likewise.
6134 * include/grub/fshelp.h: Likewise.
6135 * include/grub/gzio.h: Likewise.
6136 * include/grub/hfs.h: Likewise.
6137 * include/grub/kernel.h: Likewise.
6138 * include/grub/loader.h: Likewise.
6139 * include/grub/lvm.h: Likewise.
6140 * include/grub/misc.h: Likewise.
6141 * include/grub/mm.h: Likewise.
6142 * include/grub/net.h: Likewise.
6143 * include/grub/normal.h: Likewise.
6144 * include/grub/parser.h: Likewise.
6145 * include/grub/partition.h: Likewise.
6146 * include/grub/pc_partition.h: Likewise.
6147 * include/grub/raid.h: Likewise.
6148 * include/grub/rescue.h: Likewise.
6149 * include/grub/script.h: Likewise.
6150 * include/grub/setjmp.h: Likewise.
6151 * include/grub/symbol.h: Likewise.
6152 * include/grub/term.h: Likewise.
6153 * include/grub/terminfo.h: Likewise.
6154 * include/grub/tparm.h: Likewise.
6155 * include/grub/types.h: Likewise.
6156 * include/grub/video.h: Likewise.
6157 * include/grub/efi/api.h: Likewise.
6158 * include/grub/efi/chainloader.h: Likewise.
6159 * include/grub/efi/console.h: Likewise.
6160 * include/grub/efi/console_control.h: Likewise.
6161 * include/grub/efi/disk.h: Likewise.
6162 * include/grub/efi/efi.h: Likewise.
6163 * include/grub/efi/pe32.h: Likewise.
6164 * include/grub/efi/time.h: Likewise.
6165 * include/grub/i386/linux.h: Likewise.
6166 * include/grub/i386/setjmp.h: Likewise.
6167 * include/grub/i386/types.h: Likewise.
6168 * include/grub/i386/efi/kernel.h: Likewise.
6169 * include/grub/i386/efi/loader.h: Likewise.
6170 * include/grub/i386/efi/time.h: Likewise.
6171 * include/grub/i386/pc/biosdisk.h: Likewise.
6172 * include/grub/i386/pc/boot.h: Likewise.
6173 * include/grub/i386/pc/chainloader.h: Likewise.
6174 * include/grub/i386/pc/console.h: Likewise.
6175 * include/grub/i386/pc/init.h: Likewise.
6176 * include/grub/i386/pc/kernel.h: Likewise.
6177 * include/grub/i386/pc/loader.h: Likewise.
6178 * include/grub/i386/pc/memory.h: Likewise.
6179 * include/grub/i386/pc/multiboot.h: Likewise.
6180 * include/grub/i386/pc/serial.h: Likewise.
6181 * include/grub/i386/pc/time.h: Likewise.
6182 * include/grub/i386/pc/vbe.h: Likewise.
6183 * include/grub/i386/pc/vbeblit.h: Likewise.
6184 * include/grub/i386/pc/vbefill.h: Likewise.
6185 * include/grub/i386/pc/vbeutil.h: Likewise.
6186 * include/grub/i386/pc/vga.h: Likewise.
6187 * include/grub/ieee1275/ieee1275.h: Likewise.
6188 * include/grub/ieee1275/ofdisk.h: Likewise.
6189 * include/grub/powerpc/libgcc.h: Likewise.
6190 * include/grub/powerpc/setjmp.h: Likewise.
6191 * include/grub/powerpc/types.h: Likewise.
6192 * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
6193 * include/grub/powerpc/ieee1275/console.h: Likewise.
6194 * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
6195 * include/grub/powerpc/ieee1275/kernel.h: Likewise.
6196 * include/grub/powerpc/ieee1275/loader.h: Likewise.
6197 * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
6198 * include/grub/powerpc/ieee1275/time.h: Likewise.
6199 * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
6200 * include/grub/sparc64/libgcc.h: Likewise.
6201 * include/grub/sparc64/setjmp.h: Likewise.
6202 * include/grub/sparc64/types.h: Likewise.
6203 * include/grub/sparc64/ieee1275/console.h: Likewise.
6204 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
6205 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
6206 * include/grub/sparc64/ieee1275/time.h: Likewise.
6207 * include/grub/util/biosdisk.h: Likewise.
6208 * include/grub/util/getroot.h: Likewise.
6209 * include/grub/util/lvm.h: Likewise.
6210 * include/grub/util/misc.h: Likewise.
6211 * include/grub/util/raid.h: Likewise.
6212 * include/grub/util/resolve.h: Likewise.
6213 * io/gzio.c: Likewise.
6214 * kern/device.c: Likewise.
6215 * kern/disk.c: Likewise.
6216 * kern/dl.c: Likewise.
6217 * kern/elf.c: Likewise.
6218 * kern/env.c: Likewise.
6219 * kern/err.c: Likewise.
6220 * kern/file.c: Likewise.
6221 * kern/fs.c: Likewise.
6222 * kern/loader.c: Likewise.
6223 * kern/main.c: Likewise.
6224 * kern/misc.c: Likewise.
6225 * kern/mm.c: Likewise.
6226 * kern/parser.c: Likewise.
6227 * kern/partition.c: Likewise.
6228 * kern/rescue.c: Likewise.
6229 * kern/term.c: Likewise.
6230 * kern/efi/efi.c: Likewise.
6231 * kern/efi/init.c: Likewise.
6232 * kern/efi/mm.c: Likewise.
6233 * kern/i386/dl.c: Likewise.
6234 * kern/i386/efi/init.c: Likewise.
6235 * kern/i386/efi/startup.S: Likewise.
6236 * kern/i386/pc/init.c: Likewise.
6237 * kern/i386/pc/lzo1x.S: Likewise.
6238 * kern/i386/pc/startup.S: Likewise.
6239 * kern/ieee1275/ieee1275.c: Likewise.
6240 * kern/powerpc/cache.S: Likewise.
6241 * kern/powerpc/dl.c: Likewise.
6242 * kern/powerpc/ieee1275/cmain.c: Likewise.
6243 * kern/powerpc/ieee1275/crt0.S: Likewise.
6244 * kern/powerpc/ieee1275/init.c: Likewise.
6245 * kern/powerpc/ieee1275/openfw.c: Likewise.
6246 * kern/sparc64/cache.S: Likewise.
6247 * kern/sparc64/dl.c: Likewise.
6248 * kern/sparc64/ieee1275/init.c: Likewise.
6249 * kern/sparc64/ieee1275/openfw.c: Likewise.
6250 * loader/efi/chainloader.c: Likewise.
6251 * loader/efi/chainloader_normal.c: Likewise.
6252 * loader/i386/efi/linux.c: Likewise.
6253 * loader/i386/efi/linux_normal.c: Likewise.
6254 * loader/i386/pc/chainloader.c: Likewise.
6255 * loader/i386/pc/chainloader_normal.c: Likewise.
6256 * loader/i386/pc/linux.c: Likewise.
6257 * loader/i386/pc/linux_normal.c: Likewise.
6258 * loader/i386/pc/multiboot.c: Likewise.
6259 * loader/i386/pc/multiboot_normal.c: Likewise.
6260 * loader/powerpc/ieee1275/linux.c: Likewise.
6261 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
6262 * normal/arg.c: Likewise.
6263 * normal/cmdline.c: Likewise.
6264 * normal/command.c: Likewise.
6265 * normal/completion.c: Likewise.
6266 * normal/execute.c: Likewise.
6267 * normal/function.c: Likewise.
6268 * normal/lexer.c: Likewise.
6269 * normal/main.c: Likewise.
6270 * normal/menu.c: Likewise.
6271 * normal/menu_entry.c: Likewise.
6272 * normal/misc.c: Likewise.
6273 * normal/parser.y: Likewise.
6274 * normal/script.c: Likewise.
6275 * normal/i386/setjmp.S: Likewise.
6276 * normal/powerpc/setjmp.S: Likewise.
6277 * normal/sparc64/setjmp.S: Likewise.
6278 * partmap/acorn.c: Likewise.
6279 * partmap/amiga.c: Likewise.
6280 * partmap/apple.c: Likewise.
6281 * partmap/gpt.c: Likewise.
6282 * partmap/pc.c: Likewise.
6283 * partmap/sun.c: Likewise.
6284 * term/gfxterm.c: Likewise.
6285 * term/terminfo.c: Likewise.
6286 * term/efi/console.c: Likewise.
6287 * term/i386/pc/console.c: Likewise.
6288 * term/i386/pc/serial.c: Likewise.
6289 * term/i386/pc/vesafb.c: Likewise.
6290 * term/i386/pc/vga.c: Likewise.
6291 * term/ieee1275/ofconsole.c: Likewise.
6292 * util/biosdisk.c: Likewise.
6293 * util/console.c: Likewise.
6294 * util/genmoddep.c: Likewise.
6295 * util/getroot.c: Likewise.
6296 * util/grub-emu.c: Likewise.
6297 * util/grub-mkdevicemap.c: Likewise.
6298 * util/grub-probe.c: Likewise.
6299 * util/lvm.c: Likewise.
6300 * util/misc.c: Likewise.
6301 * util/raid.c: Likewise.
6302 * util/resolve.c: Likewise.
6303 * util/update-grub.in: Likewise.
6304 * util/update-grub_lib.in: Likewise.
6305 * util/grub.d/00_header.in: Likewise.
6306 * util/grub.d/10_hurd.in: Likewise.
6307 * util/grub.d/10_linux.in: Likewise.
6308 * util/i386/efi/grub-install.in: Likewise.
6309 * util/i386/efi/grub-mkimage.c: Likewise.
6310 * util/i386/pc/grub-install.in: Likewise.
6311 * util/i386/pc/grub-mkimage.c: Likewise.
6312 * util/i386/pc/grub-mkrescue.in: Likewise.
6313 * util/i386/pc/grub-setup.c: Likewise.
6314 * util/i386/pc/misc.c: Likewise.
6315 * util/powerpc/ieee1275/grub-install.in: Likewise.
6316 * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
6317 * util/powerpc/ieee1275/misc.c: Likewise.
6318 * video/bitmap.c: Likewise.
6319 * video/video.c: Likewise.
6320 * video/i386/pc/vbe.c: Likewise.
6321 * video/i386/pc/vbeblit.c: Likewise.
6322 * video/i386/pc/vbefill.c: Likewise.
6323 * video/i386/pc/vbeutil.c: Likewise.
6324 * video/readers/tga.c: Likewise.
6325
3572d015 63262007-07-02 Robert Millan <rmh@aybabtu.com>
6327
6328 * conf/i386-efi.rmk: Replace obsolete reference to
6329 util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
6330 with util/getroot.c.
6331 * conf/powerpc-ieee1275.rmk: Likewise.
6332 * conf/sparc64-ieee1275.rmk: Likewise.
6333
6334 * util/grub-emu.c (main): Fix unchecked pointer handling.
6335
2c2a681b 63362007-07-02 Robert Millan <rmh@aybabtu.com>
6337
6338 * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
6339 invocation to fail, in order to support partition-less media.
6340
6341 * util/i386/pc/grub-install.in: Likewise.
6342
6343 * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
6344 which fs or partmap modules are needed (akin to its sister scripts).
6345
6346 Also use grub-probe to get rid of unportable /proc/mounts check.
6347
6348 Print the same informational message that the other scripts do, before
fe6b695a 6349 exiting.
2c2a681b 6350
6193defe 63512007-06-23 Robert Millan <rmh@aybabtu.com>
6352
fe6b695a 6353 * util/update-grub_lib.in (font_path): New function. Determine whether
6193defe 6354 a font file can be found and, if so, echo the GRUB path to it.
6355
6356 * util/update-grub.in: Handle multiple terminals depending on user
6357 input, platform availability and font file presence. Propagate
6358 variables of our findings to /etc/grub.d/ children.
6359
6360 * util/grub.d/00_header.in: Handle multiple terminals, based on
6361 environment setup by update-grub.
6362
eface1dc 63632007-06-23 Robert Millan <rmh@aybabtu.com>
6364
ba50d28f 6365 * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.
eface1dc 6366
bf697e28 63672007-06-21 Robert Millan <rmh@aybabtu.com>
6368
6369 * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
6370 indicate end of data section in kernel image.
6371 * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
6372 GRUB_KERNEL_MACHINE_DATA_END.
6373
6374 * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
6375 space for it.
6376 * kern/i386/efi/startup.S: Likewise.
6377
6378 * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
6379 during image generation. Implement --prefix option to override this
6380 patch.
6381 * util/i386/efi/grub-mkimage.c: Likewise.
6382
6383 * util/update-grub_lib.in (convert_system_path_to_grub_path): Split
6384 code to make path relative to its root into a separate function.
6385
6386 * util/i386/pc/grub-install.in: Use newly provided
6387 make_system_path_relative_to_its_root() to convert ${grubdir}, then
6388 pass the result to grub-install --prefix.
6389
baa574b4 63902007-06-13 Robert Millan <rmh@aybabtu.com>
6391
6392 * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
6393 DEFAULT_DEVICE_MAP.
6394 * util/grub-emu.c: Use above definitions from misc.h instead of
6395 defining them.
6396 * util/grub-mkdevicemap.c: Likewise.
6397 * util/i386/pc/grub-setup.c: Likewise.
6398 * util/grub-probe.c: Likewise.
6399 (probe): Abort with grub_util_error() when either
6400 grub_guess_root_device or grub_util_get_grub_dev fails.
6401
0215dcbf 64022007-06-12 Robert Millan <rmh@aybabtu.com>
6403
6404 * normal/command.c (grub_command_execute): Use NULL rather than 0 for
6405 "pager" assignment.
6406 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
6407 "pcdata".
6408 * util/grub-probe.c (probe): Likewise for "drive_name".
6409
8af2ab7b 64102007-06-11 Robert Millan <rmh@aybabtu.com>
6411
6412 * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
6413 not just the cdrom one.
6414
59d31694 64152007-06-11 Robert Millan <rmh@aybabtu.com>
6416
6417 * util/i386/pc/grub-mkrescue.in: Add "set -e".
6418 Add --pkglibdir=DIR option to override pkglibdir.
6419 Mention --image-type=TYPE in help output.
6420 Fix --grub-mkimage (it was a no-op).
fe6b695a 6421 Abort gracefully when no parameter is given.
59d31694 6422
7ee367e4 64232007-06-11 Robert Millan <rmh@aybabtu.com>
6424
6425 * util/i386/pc/grub-mkrescue.in: New file.
6426 * conf/i386-pc.rmk: Add its build declarations. Put it in bin_SCRIPTS.
6427 * Makefile.in: Handle bin_SCRIPTS.
6428
29b0ed46 64292007-06-10 Vesa Jaaskelainen <chaac@nic.fi>
6430
6431 * term/gfxterm.c (grub_gfxterm_init): Added support for specifying
6432 list of video modes.
6433
c0f90770 64342007-06-06 Robert Millan <rmh@aybabtu.com>
6435
6436 * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
6437 file doesn't exist, or if it is in a filesystem grub can't read.
6438
6439 * util/update-grub.in: Set fallback for GRUB_FS check to "unknown". Do
6440 not abort if GRUB_DRIVE could not be defined. Rearrange generated
6441 header comment to fit in 80 columns when the variables are resolved.
6442
6443 * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
6444 could be identified by update-grub. Remove redundant check for
fe6b695a 6445 unifont.pff existence (since convert_system_path_to_grub_path now
c0f90770 6446 handles that).
6447
fb36dc26 64482007-06-04 Robert Millan <rmh@aybabtu.com>
6449
6450 * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.
6451
6452 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.
6453
6454 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
6455
0c68c93e 64562007-06-04 Robert Millan <rmh@aybabtu.com>
6457
6458 * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.
6459
6460 * include/grub/partition.h: Declare grub_apple_partition_map_init and
6461 grub_apple_partition_map_fini.
6462
6463 * util/biosdisk.c
6464 (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
6465 to access >2 TiB disks).
6466
6467 Print disk->total_sectors with %llu instead of %lu, since this
6468 variable is always 64-bit (prevents wrong disk size from being displayed
6469 on either >2 TiB disk or big-endian CPU).
6470
6471 (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
6472 into a generic case that supports all (sane) partition maps.
6473
6474 Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
6475 breaks big-endian.
6476
6477 * util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
6478 and grub_apple_partition_map_fini() after that.
6479
0f23eb74 64802007-06-01 Robert Millan <rmh@aybabtu.com>
6481
6482 * util/update-grub.in: Export GRUB_CMDLINE_LINUX.
6483
6484 * util/grub.d/00_header.in: Only enable gfxterm when
6485 convert_system_path_to_grub_path() succeeds.
6486
42c71976 64872007-05-20 Robert Millan <rmh@aybabtu.com>
6488
6489 * util/update-grub_lib.in: New file.
6490 * DISTLIST: Add update-grub_lib.in.
6491 * conf/common.rmk: Generate update-grub_lib and install it in
6492 $(lib_DATA).
6493 * Makefile.in: Add install routine for $(lib_DATA).
6494
6495 * util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
6496 function provided by update-grub_lib to support arbitrary paths of
6497 unifont.pff.
6498 * util/update-grub.in: Use convert_system_path_to_grub_path() to
6499 initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
6500
5beb2291 65012007-05-19 Robert Millan <rmh@aybabtu.com>
6502
6503 * commands/i386/cpuid.c: New module.
6504 * DISTLIST: Add it.
6505 * conf/i386-efi.rmk: Enable cpuid.mod.
6506 * conf/i386-pc.rmk: Likewise.
6507
7262eca1 65082007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
6509
6510 * kern/disk.c (grub_disk_read): Check return value of
6511 grub_realloc().
6512
260ba823 65132007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
6514
6515 * util/getroot.c (grub_util_get_grub_dev): Support partitionable
6516 arrays.
6517 * disk/raid.c (grub_raid_open): Likewise.
6518
1ecb6cf2 65192007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
6520
6521 * util/biosdisk.c (linux_find_partition): Allocate real_dev on the
6522 stack instead of on the heap.
6523
6524 * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
6525 before doing a read on it.
6526
6527 * configure.ac: Only use -fno-stack-protector for the target
6528 environment.
f19dbdb7 6529
21c8cbb1 65302007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
6531
6532 * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
6533 __attribute_ ((unused)) to mode_type argument.
6534
6535 * util/getroot.c (grub_guess_root_device): Fix #endif.
f19dbdb7 6536
21c8cbb1 6537 * kern/misc.c (memcmp): Fix prototype.
6538
6539 * include/grub/partition.h [GRUB_UTIL]
6540 (grub_gpt_partition_map_init): Add prototype.
6541 (grub_gpt_partition_map_fini): Likewise.
6542
6543 * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
6544 at the right place.
6545
6546 * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
6547 (grub_fat_read_data): Likewise.
6548 (grub_fat_find_dir): Likewise.
6549
6550 * font/manager.c (find_glyph): Make table a const.
6551 (grub_font_get_glyph): Remove bitmap from if statement.
f19dbdb7 6552
849d55d3 65532007-05-16 Jeroen Dekkers <jeroen@dekkers.cx>
6554
6555 * util/getroot.c (grub_guess_root_device): Remove RAID and LVM
6556 code, first search for device in /dev/mapper, then in /dev.
6557 (grub_util_get_grub_dev): New function.
6558 * include/grub/util/getroot.h (grub_util_get_grub_dev): Add
6559 prototype.
6560 * util/grub-probe.c (probe): Remove check for RAID, call
6561 grub_util_get_grub_dev() instead of
6562 grub_util_biosdisk_get_grub_dev().
6563 * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
6564 grub_util_biosdisk_get_grub_dev().
6565 * util/i386/pc/grub-setup.c (main): Likewise.
6566
8fff7c2f 65672007-05-16 Robert Millan <rmh@aybabtu.com>
6568
6569 * DISTLIST: Update for the latest changes.
6570 * conf/i386-pc.rmk: Use the new paths for util/getroot.c,
6571 util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
6572 * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
6573 grub/util/biosdisk.h.
6574 * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
6575 grub/util/biosdisk.h.
6576
48e12b52 65772007-05-16 Robert Millan <rmh@aybabtu.com>
6578
6579 * util/grub.d/00_header.in: Set default gfxmode to `640x480'.
6580
46b9d128 65812007-05-16 Robert Millan <rmh@aybabtu.com>
6582
6583 * util/i386/efi/grub-install.in: New.
6584 * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
6585 newly added grub-install.
6586 * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
6587 include.
6588 * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
6589 grub/util/biosdisk.h.
6590 * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
6591 grub/util/biosdisk.h.
6592
2d1a40a9 65932007-05-16 Robert Millan <rmh@aybabtu.com>
6594
6595 * include/grub/i386/pc/util/biosdisk.h: Moved to ...
6596 * include/grub/util/biosdisk.h: ... here.
6597 * util/i386/pc/biosdisk.c: Moved to ...
6598 * util/biosdisk.c: ... here.
6599 * util/i386/pc/getroot.c: Moved to ...
6600 * util/getroot.c: ... here.
6601 * util/i386/pc/grub-mkdevicemap.c: Moved to ...
6602 * util/grub-mkdevicemap.c: ... here.
6603 * util/i386/pc/grub-probe.c: Moved to ...
6604 * util/grub-probe.c: ... here.
6605
9e26e3bc 66062007-05-15 Robert Millan <rmh@aybabtu.com>
6607
6608 * util/update-grub.in: Remove duplicated line in grub.cfg header
6609 message.
6610
57f96397 66112007-05-13 Robert Millan <rmh@aybabtu.com>
6612
6613 * util/update-grub.in: Fix a few assumptions about the devices holding
6614 /, /boot and /boot/grub being the same.
6615 * util/grub.d/00_header.in: Likewise.
6616 * util/grub.d/10_hurd.in: Likewise.
6617 * util/grub.d/10_linux.in: Likewise.
6618
6619 * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
6620 patterns. Use that to define the `.old' suffix as older than `'.
6621
6622 * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.
6623
6624 * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
6625 the grub.cfg header message.
6626
2e610d62 66272007-05-11 Robert Millan <rmh@aybabtu.com>
6628
6629 * util/update-grub.in: Create device.map if it doesn't already exist,
6630 before attempting to run grub-probe.
6631 Check for grub-probe and grub-mkdevicemap with the same code
6632 grub-install is using.
6633 Remove test mode.
6634
3f6a10ef 66352007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
6636
6637 * Makefile.in: Add the datarootdir autoconf variable.
6638
02e7b75e 66392007-05-09 Robert Millan <rmh@aybabtu.com>
6640
6641 * util/i386/pc/grub-probe.c (probe): When detecting partition map,
f19dbdb7 6642 fail gracefully if dev->disk->partition == NULL.
02e7b75e 6643
75f396cc 66442007-05-07 Robert Millan <rmh@aybabtu.com>
6645
6646 * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
6647 determine partition map module.
6648 * util/i386/pc/grub-install.in: Use this feature to decide which
6649 partition module to load, instead of hardcoding pc and gpt.
6650
da65cb36 66512007-05-07 Robert Millan <rmh@aybabtu.com>
6652
6653 * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
6654 source directory differs from build directory.
6655
b57d6a91 66562007-05-05 Robert Millan <rmh@aybabtu.com>
6657
6658 * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
6659 initialisation.
6660
509d00f1 66612007-05-05 Robert Millan <rmh@aybabtu.com>
6662
6663 * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
6664
c48f23ef 66652007-05-05 Robert Millan <rmh@aybabtu.com>
6666
6667 * util/grub.d/10_linux.in: Allow the administrator to insert Linux
6668 command-line arguments via ${GRUB_CMDLINE_LINUX}.
6669
20b97658 66702007-05-05 Robert Millan <rmh@aybabtu.com>
6671
6672 * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
6673 (grub_probe_SOURCES): Likewise.
6674 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
6675 GPT and initialize dos_part and bsd_part accordingly.
6676 * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
6677 install_bsd_part.
6678 (main): Activate gpt module for use during partition identification,
6679 and deactivate it afterwards.
6680 * util/i386/pc/grub-install.in: Add gpt module to core.img.
6681 * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
6682 partition identification, and deactivate it afterwards.
6683
99123174 66842007-05-05 Robert Millan <rmh@aybabtu.com>
6685
6686 * term/i386/pc/console.c (grub_console_fini): Call
6687 grub_term_set_current() before grub_term_unregister().
6688
ebd97f6e 66892007-05-04 Robert Millan <rmh@aybabtu.com>
6690
6691 * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
6692 util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
6693 * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS
6694 and update-grub_DATA.
6695 * conf/common.rmk: Build and install update-grub components.
6696 * conf/common.mk: Regenerate.
6697 * util/update-grub.in: New. Core of update-grub.
6698 * util/grub.d/00_header.in: New. Generates grub.cfg header.
6699 * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd.
6700 * util/grub.d/10_linux.in: New. Generates boot entries for Linux.
6701 * util/grub.d/README: New. Document grub.d directory layout.
6702
b06a264d 67032007-05-01 Robert Millan <rmh@aybabtu.com>
6704
6705 * util/grub-emu.c: Move initialization functions
6706 grub_util_biosdisk_init() and grub_init_all() before
6707 grub_util_biosdisk_get_grub_dev(), which relies on them.
6708
41f0050e 67092007-04-19 Robert Millan <rmh@aybabtu.com>
6710
6711 * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
6712 it is used later.
6713
04582bb3 67142007-04-18 Jerone Young <jerone@gmail.com>
6715
f19dbdb7 6716 * kernel/elf.c: Add missing parenthesis for conditional statement
04582bb3 6717 stanza.
6718
08db4632 67192007-04-10 Jerone Young <jerone@gmail.com>
49892fdf 6720
08db4632 6721 * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
6722 continue on and look for device node with real device name.
6723
801b76be 67242007-04-10 Jerone Young <jerone@gmail.com>
f19dbdb7 6725
fe6b695a 6726 * configure.ac: Add argument for autoconf to use transformation
1d543c3e 6727 ability.
6728 * Makefile.in: Add autoconf package transformation code.
6729 * util/i386/pc/grub-install.in: Likewise.
6730 * util/powerpc/ieee1275/grub-install.in: Likewise.
6731
6795c4e1 67322007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
6733
6734 * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
6735 (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
6736 (EXT2_REVISION): Likewise.
6737 (EXT2_INODE_SIZE): Likewise.
6738 (struct grub_ext2_block_group): Added a missing member
6739 "used_dirs".
6740 (grub_ext2_read_inode): Divide by the inode size in a superblock
6741 instead of 128 to obtain INODES_PER_BLOCK.
6742 Use the macro EXT2_INODE_SIZE instead of directly using
6743 SBLOCK->INODE_SIZE.
6744
d70af616 67452007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
6746
6747 * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
6748 superblock instead of the structure size to compute an
6749 offset. This fixes the problem that GRUB could not read a
6750 filesystem when inode size is different from 128-byte.
6751
3b801603 67522007-03-05 Marco Gerards <marco@gnu.org>
6753
6754 * normal/main.c (read_config_file): When "menu" is not set, create
6755 an initial context.
6756
4785bfe4 67572007-02-21 Hollis Blanchard <hollis@penguinppc.org>
6758
6759 * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
6760 (HEAP_LIMIT): New macro.
6761 (grub_claim_heap): Claim memory up to `heaplimit'.
6762
a0cbb023 67632007-02-21 Hollis Blanchard <hollis@penguinppc.org>
6764
6765 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
6766 * kern/powerpc/ieee1275/init.c (_end): Add declaration.
6767 (_start): Likewise.
6768 (grub_arch_modules_addr): Return address after `_end'.
6769 * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
6770 (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
6771 (add_segments): Calculate `_end' from phdr size and location.
6772 (ALIGN_UP): Moved to ...
6773 * include/grub/misc.h: here.
6774 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
6775 New macro.
6776 (GRUB_IEEE1275_MODULE_BASE): Removed.
6777
fd7d8eba 67782007-02-20 Hollis Blanchard <hollis@penguinppc.org>
6779
6780 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
6781 loop boundary.
6782
9b09e6fc 67832007-02-20 Hollis Blanchard <hollis@penguinppc.org>
6784
6785 * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
6786 All users updated.
6787 (grub_elf64_load_hook_t): Likewise.
6788 * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
6789 debug output.
6790
3ce27299 67912007-02-20 Hollis Blanchard <hollis@penguinppc.org>
6792
6793 * kern/mm.c: Update copyright.
6794 (grub_mm_debug): Correct syntax error.
6795 (grub_mm_dump_free): New function.
6796 (grub_debug_free): Call `grub_free'.
6797 * include/grub/mm.h: Update copyright.
6798 (grub_mm_dump_free): Add declaration.
6799
077d5fee 68002007-02-12 Hollis Blanchard <hollis@penguinppc.org>
6801
6802 * include/grub/ieee1275/ieee1275.h: Update copyright.
6803 * kern/powerpc/ieee1275/init.c: Likewise.
6804 * kern/powerpc/ieee1275/openfw.c: Likewise.
6805
6806 * loader/powerpc/ieee1275/linux.c: Likewise.
6807 * include/grub/elfload.h: Likewise.
6808 * kern/elf.c: Likewise.
6809 (grub_elf32_load): Pass `base' and `size' parameters. Update all
6810 callers.
6811 (grub_elf64_load): Likewise.
6812 (grub_elf32_load_segment): Move to a nested function.
6813 (grub_elf64_load_segment): Likewise.
6814
dc946850 68152007-02-12 Hollis Blanchard <hollis@penguinppc.org>
6816
6817 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
6818 prototype.
6819 * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
6820 (grub_heap_len): Likewise.
6821 (HEAP_SIZE): New macro.
6822 (grub_claim_heap): New function.
6823 (grub_machine_init): Don't claim heap directly. Call
6824 `grub_claim_heap'.
6825 * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
6826 (grub_available_iterate): New function.
6827
baa2a121 68282007-02-03 Thomas Schwinge <tschwinge@gnu.org>
6829
6830 * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
6831 * configure.ac: Use it for testing the HOST and TARGET compilers.
6832
4fe9862e 68332006-12-13 Thomas Schwinge <tschwinge@gnu.org>
6834
6835 * Makefile.in (enable_grub_emu): New variable.
6836 * configure.ac (--enable-grub-emu): New option.
6837 Do the checks for (n)curses only if `--enable-grub-emu' is requested.
6838 * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
6839 * conf/i386-pc.rmk: Likewise.
6840 * conf/powerpc-ieee1275.rmk: Likewise.
6841 * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
6842
a8aa5762 68432006-12-12 Marco Gerards <marco@gnu.org>
6844
6845 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
6846
6847 * kern/env.c (grub_env_unset): Don't free the member `value' when
6848 the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
6849 pointer.
6850
6851 * normal/main.c (current_menu): Removed.
6852 (free_menu): Unset the `menu' environment variable.
6853 (grub_normal_menu_addentry): Make use of the environment variable
6854 `menu', instead of using the global `current_menu'. Allocate
6855 memory for the sourcecode of this entry.
6856 (read_config_file): New argument `nested', changed all callers.
6857 Only in the case of a new context, initialize a new menu. Set the
6858 `menu' environment variable.
6859 (grub_normal_execute): Don't set and unset the environment
6860 variable `menu' here anymore. Only free the menu when leaving the
6861 context.
6862
6863 * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
6864 leak.
6865
957b3a3e 68662006-12-11 Marco Gerards <marco@gnu.org>
6867
6868 * normal/menu_entry.c (run): Fix off by one bug so the last line
6869 is executed. Move the loader check to outside the loop.
6870
ef875714 68712006-12-08 Hollis Blanchard <hollis@penguinppc.org>
6872
6873 * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
6874
4e739985 68752006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
6876
6877 * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
6878 the number of sectors. Reported by Andrey Shuvikov
6879 <mr_hyro@yahoo.com>.
f19dbdb7 6880
790707f2 68812006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
6882
6883 * kern/disk.c (grub_disk_read): When there is a read error, always
6884 try to read only the necessary data.
f19dbdb7 6885
790707f2 6886 * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
6887 disk/raid.c.
6888 * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
6889 prototype.
6890 [GRUB_UTIL] (grub_raid_fini): Likewise.
6891 [GRUB_UTIL] (grub_lvm_init): Likewise.
f19dbdb7 6892 [GRUB_UTIL] (grub_lvm_fini): Likewise.
790707f2 6893 * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
6894 RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
6895 (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
6896 and grub_raid_fini().
f19dbdb7 6897
03e58196 68982006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
6899
6900 * include/grub/types.h (__unused): Rename to UNUSED.
6901 * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
6902 (grub_elf64_size): Likewise.
f19dbdb7 6903
ae4f23bf 69042006-11-03 Hollis Blanchard <hollis@penguinppc.org>
6905
6906 * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
6907 grub_error_push and grub_error_pop in the error-handling path.
6908 (grub_elf32_load_segment): Only call grub_file_read with non-zero
6909 length.
6910
2166cc83 69112006-11-03 Hollis Blanchard <hollis@penguinppc.org>
6912
6913 * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
6914 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
6915 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6916 (kernel_elf_SOURCES): Likewise.
6917 * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
6918 * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
6919 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
6920 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
6921 * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
6922 (elf_mod_SOURCES): New variable.
6923 (elf_mod_CFLAGS): Likewise.
6924 (elf_mod_LDFLAGS): Likewise.
6925 * include/grub/types.h (__unused): New macro.
6926 * include/grub/elfload.h: New file.
6927 * kern/elf.c: Likewise.
6928 * loader/powerpc/ieee1275/linux.c: Include elfload.h.
6929 (ELF32_LOADMASK): New macro.
6930 (ELF64_LOADMASK): Likewise.
6931 (vmlinux): Removed.
6932 (grub_linux_load32): New function.
6933 (grub_linux_load64): Likewise.
6934 (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
6935 Use grub_elf_t instead of grub_file_t.
6936
a09d5aa5 69372006-11-02 Hollis Blanchard <hollis@penguinppc.org>
6938
6939 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
6940 `catch_result' to struct set_color_args.
6941
d976fc51 69422006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
6943
6944 * normal/menu.c: Include grub/script.h.
6945 * normal/menu_entry.c: Likewise.
6946 * include/grub/normal.h: Do not include grub/script.h.
6947
67507549 69482006-10-27 Hollis Blanchard <hollis@penguinppc.org>
6949
6950 * kern/disk.c (grub_disk_read): Correct debug printf formatting.
6951
69203a99 69522006-10-27 Hollis Blanchard <hollis@penguinppc.org>
6953
6954 * kern/disk.c (grub_disk_open): Print debug messages when opening a
6955 disk.
6956 (grub_disk_close): Print debug messages when closing a disk.
6957 (grub_disk_read): Print debug messages when disk read fails.
6958 * kern/fs.c (grub_fs_probe): Print debug messages when detecting
6959 filesystem type.
6960 * kern/partition.c: Include misc.h.
6961 (grub_partition_iterate): Print debug messages when detecting
6962 partition type.
6963
e2b8278c 69642006-10-27 Hollis Blanchard <hollis@penguinppc.org>
6965
6966 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
6967 is negative.
6968 * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
6969
97b2f2ff 69702006-10-26 Hollis Blanchard <hollis@penguinppc.org>
6971
6972 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
6973 Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
6974
6555d655 69752006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
6976
6977 * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
6978 instead of sizeof(lv). Patch by Michael Guntsche.
6979
4d42b77f 69802006-10-18 Jeroen Dekkers <jeroen@dekkers.cx>
6981
6982 * disk/lvm.c: Rename VGS to VG_LIST.
6983 (grub_lvm_iterate): Change VGS->LV to VG-LV.
6984 (grub_lvm_open): Likewise.
6985 Thanks to Michael Guntsche for finding this bug.
6986
5d74d927 69872006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
6988
6989 * configure.ac (AC_INIT): Bumped to 1.95.
6990
a1bb27e4 69912006-10-14 Robert Millan <rmh@aybabtu.com>
6992
6993 * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
6994 with "/dev/.static/dev/md".
6995
e0994b8b 69962006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
6997
6998 * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
6999 DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
7000 DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
7001 DRIVE_NAME are always freed.
7002
7003 * util/i386/pc/biosdisk.c (make_device_name): Add one into
7004 DOS_PART, as a DOS partition is counted from one instead of zero
7005 now. Reported by Robert Millan.
7006
ddd5cee9 70072006-10-14 Robert Millan <rmh@aybabtu.com>
7008
7009 * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
7010 grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
7011 * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
7012 string returned by grub_guess_root_device.
7013 * util/i386/pc/grub-setup.c: Likewise.
7014 * util/i386/pc/grub-probefs.c: Likewise.
7015
7016 * util/i386/pc/grub-probefs.c: Rename to ...
7017 * util/i386/pc/grub-probe.c: ... this.
7018 * DISTLIST: Remove grub-probefs, add grub-probe.
7019 * conf/i386-efi.rmk: Likewise.
7020 * conf/i386-pc.rmk: Likewise.
7021 * util/i386/pc/grub-install.in: Likewise.
7022
7023 * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
7024 choose which information we want to print.
7025
2b002173 70262006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
7027
7028 * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
7029 include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
7030 include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
7031 include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
7032 video/readers/tga.c and video/i386/pc/vbeutil.c.
7033
70342006-10-14 Jeroen Dekkers <jeroen@dekkers.cx>
7035
7036 Added support for RAID and LVM.
f19dbdb7 7037
2b002173 7038 * disk/lvm.c: New file.
7039 * disk/raid.c: Likewise.
7040 * include/grub/lvm.h: Likewise.
f19dbdb7 7041 * include/grub/raid.h: Likewise.
2b002173 7042 * include/grub/util/lvm.h: Likewise.
7043 * include/grub/util/raid.h: Likewise.
7044 * util/lvm.c: Likewise.
7045 * util/raid.c: Likewise.
7046
7047 * include/grub/disk.h (grub_disk_dev_id): Add
7048 GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
7049 (grub_disk_get_size): New prototype.
7050 * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
7051 returns a partition.
7052 (grub_disk_get_size): New function.
f19dbdb7 7053
2b002173 7054 * kern/i386/pc/init.c (make_install_device): Copy the prefix
7055 verbatim if grub_install_dos_part is -2.
7056
7057 * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
7058 and LVM devices.
7059
7060 * util/i386/pc/grub-setup.c (setup): New argument
7061 MUST_EMBED. Force embedding of GRUB when the argument is
7062 true. Close FILE before returning.
7063 (main): Add support for RAID and LVM.
f19dbdb7 7064
2b002173 7065 * conf/common.rmk: Add RAID and LVM modules.
7066 * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
7067 util/lvm.c.
7068 (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
7069
7070 * kern/misc.c (grub_strstr): New function.
7071 * include/grub/misc.h (grub_strstr): New prototype.
7072
050548d0 70732006-10-10 Tristan Gingold <tristan.gingold@bull.net>
7074
7075 * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
7076
da849d2d 70772006-10-05 Tristan Gingold <tristan.gingold@bull.net>
7078
7079 * kern/misc.c (grub_strtoull): Guess the base only if not
7080 specified.
7081
97b2f2ff 70822006-10-01 Hollis Blanchard <hollis@penguinppc.org>
4f0acd39 7083
7084 * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
7085 PowerMac support.
7086
97b2f2ff 70872006-10-01 Hollis Blanchard <hollis@penguinppc.org>
fba51f48 7088
7089 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
7090
7091 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
7092 Remove `flags' argument. All callers changed.
7093 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
7094 (IEEE1275_IHANDLE_INVALID): New variable.
7095 (IEEE1275_CELL_INVALID): New variable.
7096 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
7097 grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
7098 grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
7099 grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
7100 grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
7101 codes from Open Firmware. All callers updated.
7102 (grub_ieee1275_next_property): Directly return Open Firmware return
7103 code.
7104 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
7105 Standardize error checking from `grub_ieee1275_get_property'.
7106 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
7107 `devalias' to `aliases'. Correct comments. Consolidate error paths.
7108
97b2f2ff 71092006-10-01 Hollis Blanchard <hollis@penguinppc.org>
cc6d3df3 7110
7111 * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
7112 `instance_to_package_args' to `instance_to_path_args'.
7113
7114 * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
7115 `grub_ieee1275_chosen'.
7116
7117 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
7118 `grub_ieee1275_interpret'.
7119
97b2f2ff 71202006-09-25 Hollis Blanchard <hollis@penguinppc.org>
02bb8acc 7121
7122 * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
7123
97b2f2ff 71242006-09-25 Hollis Blanchard <hollis@penguinppc.org>
663b72f0 7125
7126 * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
7127 (__cmpdi): Likewise.
7128
7129 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
7130 `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type
7131 `grub_ssize_t'.
7132
02bb8acc 7133 * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
663b72f0 7134
7135 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
7136 to type `grub_ssize_t'.
7137 (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
7138
7f9a8531 71392006-09-22 Marco Gerards <marco@gnu.org>
7140
7141 * normal/script.c (grub_script_create_cmdmenu): Skip leading
7142 newlines.
7143
b5ef1102 71442006-09-22 Marco Gerards <marco@gnu.org>
7145
7146 * commands/echo.c: New file.
7147
7148 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
7149
7150 * conf/common.rmk (echo_mod_SOURCES): New variable.
7151 (echo_mod_CFLAGS): Likewise.
7152 (echo_mod_LDFLAGS): Likewise.
7153
2cff3677 71542006-09-22 Marco Gerards <marco@gnu.org>
7155
7156 * normal/main.c (get_line): Malloc memory instead of using
7157 preallocated memory. Removed the arguments `cmdline' and
7158 `max_len'. Updated all callers.
7159
6ba4688b 71602006-09-22 Marco Gerards <marco@gnu.org>
7161
7162 * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
7163 (normal_mod_DEPENDENCIES): Likewise.
7164
7165 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
7166 (normal_mod_DEPENDENCIES): Likewise.
7167
7168 * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
7169
e02ac02c 71702006-09-22 Johan Rydberg <jrydberg@gnu.org>
7171
7172 * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
7173 programs.
7174 * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
7175 (normal_mod_DEPENDENCIES): Likewise.
7176 * conf/i386-pc.mk: Regenerate.
7177 * conf/i386-efi.mk: Likewise
7178 * conf/common.mk: Likewise.
7179 * conf/powerpc-ieee1275.mk: Likewise.
7180 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 7181
8d252e44 71822006-09-22 Robert Millan <rmh@aybabtu.com>
7183
7184 Sync with i386 version.
7185 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
7186 * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
7187
209bf7ac 71882006-09-21 Robert Millan <rmh@aybabtu.com>
7189
7190 Import from GRUB Legacy (lib/device.c):
7191 * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
7192 (init_device_map) [__linux__]: Add support for I2O devices.
7193
6b146090 71942006-09-14 Marco Gerards <marco@gnu.org>
7195
7196 * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
7197 `-melf_i386'.
7198
e38600a8 71992006-09-14 Robert Millan <rmh@aybabtu.com>
2952da5d 7200
7201 * util/i386/pc/grub-install.in: Skip menu.lst when removing
7202 /boot/grub/*.lst.
78fa1790 7203
2952da5d 7204 * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
6b146090 7205
2952da5d 7206 * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
7207 before adding it to device.map.
7208
01b82a64 72092006-08-15 Johan Rydberg <jrydberg@gnu.org>
7210
fe6b695a 7211 * genmk.rb: Let GCC generate dependencies the first time it
01b82a64 7212 compiles a file; using the -MD option.
7213 * conf/common.mk: Regenerate.
7214 * conf/i386-pc.mk: Likewise.
7215 * conf/i386-efi.mk: Likewise.
7216 * conf/powerpc-ieee1275.mk: Likewise.
7217 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 7218
1064790d 72192006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
7220
7221 Move the prototypes of grub_setjmp and grub_longjmp to
7222 cpu/setjmp.h, so that each architecture may specify different
7223 attributes.
f19dbdb7 7224
1064790d 7225 * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
7226 (grub_longjmp): Likewise.
7227 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
7228 (grub_longjmp): Likewise.
7229 * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
7230 (grub_longjmp): Likewise.
7231
7232 * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
7233 [!GRUB_UTIL] (grub_longjmp): Removed.
7234
29dda3ed 72352006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
7236
7237 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
7238 "color!" method does not return any value.
7239
ad2a06ed 72402006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
7241
7242 * include/grub/bitmap.h: New file.
7243
7244 * include/grub/i386/pc/vbeutil.h: Likewise.
7245
7246 * video/bitmap.c: Likewise.
7247
7248 * video/readers/tga.c: Likewise.
7249
7250 * video/i386/pc/vbeutil.c: Likewise.
7251
7252 * commands/videotest.c: Code cleanup and updated to reflect to new
7253 video API.
7254
7255 * term/gfxterm.c: Likewise.
7256
7257 * video/video.c: Likewise.
7258
7259 * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
7260 (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
7261 (bitmap_mod_SOURCES): New entry.
7262 (bitmap_mod_CFLAGS): Likewise.
7263 (bitmap_mod_LDFLAGS): Likewise.
7264 (tga_mod_SOURCES): Likewise.
7265 (tga_mod_CFLAGS): Likewise.
7266 (tga_mod_LDFLAGS): Likewise.
7267
7268 * include/grub/video.h (grub_video_blit_operators): New enum type.
7269 (grub_video_render_target): Changed as forward declaration and moved
7270 actual definition to be video driver specific.
7271 (grub_video_adapter.blit_bitmap): Added blitting operator.
7272 (grub_video_adapter.blit_render_target): Likewise.
7273 (grub_video_blit_bitmap): Likewise.
7274 (grub_video_blit_render_target): Likewise.
7275
7276 * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
7277 driver specific render target definition.
7278 (grub_video_vbe_map_rgba): Added driver internal helper.
7279 (grub_video_vbe_unmap_color): Updated to use
7280 grub_video_i386_vbeblit_info.
7281 (grub_video_vbe_get_video_ptr): Likewise.
7282
7283 * include/grub/i386/pc/vbeblit.h
7284 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
7285 grub_video_i386_vbeblit_info.
7286 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
7287 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
7288 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
7289 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
7290 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
7291 (grub_video_i386_vbeblit_index_index): Likewise.
7292 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
7293 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
7294 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
7295 (grub_video_i386_vbeblit_blend): Added generic blitter for blend
7296 operator.
7297 (grub_video_i386_vbeblit_replace): Added generic blitter for replace
7298 operator.
7299
7300 * video/i386/pc/vbeblit.c: Updated to reflect changes on
7301 include/grub/i386/pc/vbeblit.h.
7302
7303 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
7304 Updated to use grub_video_i386_vbeblit_info.
7305 (grub_video_i386_vbefill_R8G8B8): Likewise.
7306 (grub_video_i386_vbefill_index): Likewise.
7307 (grub_video_i386_vbefill): Added generic filler.
7308
7309 * video/i386/pc/vbefill.c: Updated to reflect changes on
7310 include/grub/i386/pc/vbefill.h.
7311
7312 * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
7313 grub_video_i386_vbeblit_info.
7314 (grub_video_vbe_unmap_color): Likewise.
7315 (grub_video_vbe_blit_glyph): Likewise.
7316 (grub_video_vbe_scroll): Likewise.
7317 (grub_video_vbe_draw_pixel): Removed function.
7318 (grub_video_vbe_get_pixel): Likewise.
7319 (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
7320 updated code to use it.
7321 (common_blitter): Added common blitter for render target and bitmap.
7322 (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
7323 (grub_video_vbe_blit_render_target): Likewise.
7324
bc8c036d 73252006-07-30 Johan Rydberg <jrydberg@gnu.org>
7326
7327 * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
7328 is in text mode if there is no console control protocol instance
7329 available.
7330
684a8eff 73312006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
7332
7333 * include/grub/video.h: Code cleanup.
7334
7335 * include/grub/i386/pc/vbe.h: Likewise.
7336
7337 * video/i386/pc/vbe.c: Likewise.
7338
7339 * video/i386/pc/vbeblit.c: Likewise.
7340
7341 * video/i386/pc/vbefill.c: Likewise.
7342
7343 * video/video.c: Likewise. Also added more comments.
7344
5915059b 73452006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
7346
7347 * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
7348 (struct grub_biosdisk_dap): Likewise.
7349
7350 * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected
7351 linkage settings for all functions.
7352
90ce5d56 73532006-07-12 Marco Gerards <marco@gnu.org>
7354
7355 * configure.ac (--enable-mm-debug): Fix typo.
7356
7357 * genkernsyms.sh.in: Use proper quoting for `CC'.
7358
43e7f879 73592006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
7360
7361 * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
7362 (normal_mod_ASFLAGS): Remove "-m32".
7363
4889bdec 73642006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
7365
7366 * util/misc.c: Include config.h.
7367 [!HAVE_MEMALIGN]: Do not include malloc.h.
7368 (grub_memalign): Use posix_memalign, if present. Then, use
7369 memalign, if present. Otherwise, emit an error.
7370
7371 * util/grub-emu.c: Do not include malloc.h.
7372
7373 * include/grub/util/misc.h: Include unistd.h. This is required for
7374 FreeBSD, because off_t is defined in unistd.h. Reported by Harley
7375 D. Eades III <hde@foobar-qux.org>.
7376
7377 * configure.ac (AC_GNU_SOURCE): Added.
7378 (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
7379 type.
7380
fd39d4da 73812006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
7382
7383 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
7384 ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
7385
b786f3b5 73862006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
7387
7388 * include/grub/types.h (grub_host_addr_t): Rename to
7389 grub_target_addr_t.
7390 (grub_host_off_t): Rename to grub_target_off_t.
7391 (grub_host_size_t): Rename to grub_target_size_t.
7392 (grub_host_ssize_t): Rename to grub_target_ssize_t.
7393 Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
7394
7395 * include/grub/kernel.h (struct grub_module_header): Change type
7396 of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
7397 (grub_module_info): Likewise.
f19dbdb7 7398
051988bb 73992006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
7400
7401 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
7402 of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
7403 Velazquez <jesus.velazquez@gmail.com>.
7404
deae281b 74052006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
7406
7407 Count partitions from 1 instead of 0 in the string representation
7408 of partitions. Still use 0-based internally.
f19dbdb7 7409
deae281b 7410 * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
7411 (sun_partition_map_iterate): Use grub_partition_t instead of
7412 struct grub_partition *. Cast DESC->START_CYLINDER to
7413 grub_uint64_t after converting the endian.
7414 (sun_partition_map_probe): Subtract 1 for PARTNUM.
7415 (sun_partition_map_get_name): Add 1 to P->INDEX.
7416
7417 * partmap/pc.c (grub_partition_parse): Subtract 1 for
7418 PCDATA->DOS_PART.
7419 (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
7420
7421 * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
7422 zero instead of one.
7423 (gpt_partition_map_probe): Subtract 1 for PARTNUM.
7424 (gpt_partition_map_get_name): Add 1 into P->INDEX.
7425
7426 * partmap/apple.c (apple_partition_map_iterate): Change the type
7427 of POS to unsigned.
7428 (apple_partition_map_probe): Subtract 1 for PARTNUM.
7429 (apple_partition_map_get_name): Add 1 into P->INDEX.
7430
7431 * partmap/amiga.c (amiga_partition_map_iterate): Change the type
7432 of POS to unsigned.
7433 (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
7434 calculate the offset of a partition.
7435 (amiga_partition_map_probe): Subtract 1 for PARTNUM.
7436 (amiga_partition_map_get_name): Add 1 into P->INDEX.
7437
7438 * partmap/acorn.c (acorn_partition_map_find): Change the type of
7439 SECTOR to grub_disk_addr_t.
7440 (acorn_partition_map_iterate): Likewise.
7441 (acorn_partition_map_probe): Subtract 1 for PARTNUM.
7442 Change the type of SECTOR to grub_disk_addr_t. Declare P on the
7443 top.
7444 (acorn_partition_map_get_name): Add 1 into P->INDEX.
7445
7446 * kern/i386/pc/init.c (make_install_device): Add 1 into
7447 GRUB_INSTALL_DOS_PART.
7448
7449 * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
7450 conditional.
7451
524a1e6a 74522006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
7453
7454 Clean up the code to support 64-bit addressing in disks and
7455 files. This change is not enough for filesystems yet.
f19dbdb7 7456
524a1e6a 7457 * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
7458 type of "start" to grub_uint64_t.
7459 (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
7460 grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
7461 save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
7462 convert addresses.
7463
7464 * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
7465 to grub_disk_addr_t.
7466
7467 * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
7468 string.
7469
7470 * partmap/pc.c (pc_partition_map_iterate): Likewise.
7471
7472 * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
7473 to char *.
7474
7475 * normal/script.c (grub_script_parse): Remove unused MEMFREE.
7476
7477 * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
7478
7479 * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
7480
7481 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
7482 to grub_off_t, to detect an error from grub_file_seek.
7483 (grub_multiboot_load_elf32): Likewise.
7484
7485 * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
7486 maximum unsigned long value when an overflow is detected.
7487 (grub_strtoull): New function.
7488 (grub_divmod64): Likewise.
7489 (grub_lltoa): use grub_divmod64.
7490
7491 * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
7492 grub_disk_addr_t.
7493 (grub_fs_blocklist_open): Increase P if P is not NULL to advance
7494 the pointer to next character. Use grub_strtoull instead of
7495 grub_strtoul.
7496 (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
7497 SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
7498 respectively.
7499
fe6b695a 7500 * kern/file.c (grub_file_read): Prevent an overflow of LEN, as the
524a1e6a 7501 return value is signed.
7502 (grub_file_seek): Change the type of OLD to grub_off_t. Do not
7503 test if OFFSET is less than zero, as OFFSET is unsigned now.
7504
7505 * kern/disk.c (struct grub_disk_cache): Change the type of
7506 "sector" to grub_disk_addr_t.
7507 (grub_disk_cache_get_index): Change the type of SECTOR to
7508 grub_disk_addr_t. Calculate the hash with SECTOR casted to
7509 unsigned after shifting.
7510 (grub_disk_cache_invalidate): Change the type of SECTOR to
7511 grub_disk_addr_t.
7512 (grub_disk_cache_unlock): Likewise.
7513 (grub_disk_cache_store): Likewise.
7514 (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
7515 START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
7516 grub_disk_addr_t and grub_uint64_t, respectively.
7517 (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
7518 body, as the value of OFFSET is tweaked by
7519 grub_disk_check_range. Change the types of START_SECTOR, LEN and
7520 POS to grub_disk_addr_t, grub_size_t and grub_size_t,
7521 respectively.
7522 (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
7523 body, as the value of OFFSET is tweaked by
7524 grub_disk_check_range. Change the types of LEN and N to
7525 grub_size_t.
7526
7527 * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
7528 and "saved_offset" to grub_off_t.
7529 (test_header): Cast BUF to char *.
7530 (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
7531 to char *.
7532 (grub_gzio_read): Change the types of OFFSET and SIZE to
7533 grub_off_t and grub_size_t, respectively.
7534
7535 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
7536 Removed.
7537 (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
7538 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
7539 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
7540 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
7541 (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
7542
7543 * include/grub/types.h (grub_off_t): Unconditionally set to
7544 grub_uint64_t.
7545 (grub_disk_addr_t): Changed to grub_uint64_t.
7546
7547 * include/grub/partition.h (struct grub_partition): Change the
7548 types of "start", "len" and "offset" to grub_disk_addr_t,
7549 grub_uint64_t and grub_disk_addr_t, respectively.
7550 (grub_partition_get_start): Return grub_disk_addr_t.
7551 (grub_partition_get_len): Return grub_uint64_t.
7552
7553 * include/grub/misc.h (grub_strtoull): New prototype.
7554 (grub_divmod64): Likewise.
7555
7556 * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
7557 of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
7558 grub_off_t, respectively.
7559 All callers and references changed.
7560
7561 * include/grub/fs.h (struct grub_fs): Change the type of LEN to
7562 grub_size_t in "read".
7563 All callers and references changed.
7564
7565 * include/grub/file.h (struct grub_file): Change the types of
7566 "offset" and "size" to grub_off_t and grub_off_t,
7567 respectively. Change the type of SECTOR to grub_disk_addr_t in
7568 "read_hook".
7569 (grub_file_read): Change the type of LEN to grub_size_t.
7570 (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
7571 grub_off_t.
7572 (grub_file_size): Return grub_off_t.
7573 (grub_file_tell): Likewise.
7574 All callers and references changed.
7575
7576 * include/grub/disk.h (struct grub_disk_dev): Change the types of
7577 SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
7578 "write".
7579 (struct grub_disk): Change the type of "total_sectors" to
7580 grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
f19dbdb7 7581 "read_hook".
524a1e6a 7582 (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
7583 grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
7584 (grub_disk_write): Likewise.
7585 All callers and references changed.
7586
7587 * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
7588 char * for grub_strncmp to silence gcc.
7589 (grub_iso9660_mount): Likewise.
7590 (grub_iso9660_mount): Likewise.
7591 (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
7592 return statement.
7593 (grub_iso9660_iterate_dir): Likewise.
7594 (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
7595
7596 * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
7597 LEN to grub_disk_addr_t and grub_size_t, respectively.
7598
7599 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
7600
7601 * fs/jfs.c (grub_jfs_read_file): Likewise.
7602
7603 * fs/minix.c (grub_jfs_read_file): Likewise.
7604
7605 * fs/sfs.c (grub_jfs_read_file): Likewise.
7606
7607 * fs/ufs.c (grub_jfs_read_file): Likewise.
7608
7609 * fs/xfs.c (grub_jfs_read_file): Likewise.
7610
7611 * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
7612 and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
7613 respectively.
7614
7615 * fs/ext2.c (grub_ext2_read_block): When an error happens, set
7616 BLKNR to -1 instead of returning GRUB_ERRNO.
7617 (grub_ext2_read_file): Change the types of SECTOR and
7618 LEN to grub_disk_addr_t and grub_size_t, respectively.
7619
7620 * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
7621 LEN to grub_disk_addr_t and grub_size_t, respectively.
7622
7623 * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
7624 grub_file_read.
7625
7626 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
7627 string. Do not cast SECTOR explicitly.
7628
7629 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
7630 TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
7631 (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
7632 grub_disk_addr_t and grub_size_t, respectively. If the sector is
7633 over 2TB and LBA mode is not supported, raise an error.
7634 (get_safe_sectors): New function.
7635 (grub_biosdisk_read): Use get_safe_sectors.
7636 (grub_biosdisk_write): Likewise.
7637
7638 * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
7639 (grub_efidisk_write): Likewise.
7640
7641 * disk/loopback.c (delete_loopback): Cosmetic changes.
7642 (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
7643 correctly.
7644 (grub_loopback_open): Likewise.
7645 (grub_loopback_read): Likewise. Also, change the type of POS to
7646 grub_off_t, and fix the usage of grub_memset.
7647
7648 * commands/i386/pc/play.c: Include grub/machine/time.h.
7649
7650 * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
7651 print FILE->SIZE.
7652
7653 * commands/configfile.c: Include grub/env.h.
7654
7655 * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
7656 GRUB_ERRNO directly instead. Change the type of POS to
7657 grub_off_t. Follow the coding standard.
7658
7659 * commands/blocklist.c: Include grub/partition.h.
7660 (grub_cmd_blocklist): Return an error if the underlying device is
7661 not a disk. Take the starting sector of a partition into account,
7662 if a partition is used.
7663
7664 * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
7665 a length field.
7666 (lba_mode): Support 64-bit addresses.
7667 (chs_mode): Likewise.
7668 (copy_buffer): Adapted to the new offsets of a length field and a
7669 segment field.
7670 (blocklist_default_start): Allocate 64-bit space.
7671
7672 * boot/i386/pc/boot.S (force_lba): Removed.
7673 (boot_drive): Moved to under KERNEL_SECTOR.
fe987087 7674 (kernel_sector): Moved to under KERNEL_SEGMENT. Allocate 64-bit
524a1e6a 7675 space.
7676 (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
7677 is useless.
7678 (lba_mode): Refactored to support a 64-bit address. More size
7679 optimization.
7680 (setup_sectors): Likewise.
7681
53af98ad 76822006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
7683
7684 * DISTLIST: Added include/grub/i386/linux.h. Removed
7685 include/grub/i386/pc/linux.h
7686
7687 * configure.ac (AC_INIT): Bumped to 1.94.
7688
7689 * config.guess: Updated from gnulib.
7690 * config.sub: Likewise.
7691 * install-sh: Likewise.
7692 * mkinstalldirs: Likewise.
7693
b4c1940a 76942006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
7695
7696 * conf/common.rmk (grub_modules_init.lst): Depended on
7697 grub_emu_SOURCES, excluding grub_emu_init.c, instead of
7698 MODSRCFILES.
7699
7700 * genmk.rb (PModule::rule): Reverted the previous change.
7701
cfca1cfd 77022006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
7703
7704 * conf/common.rmk (grub_modules_init.lst): Depends on
7705 $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
7706 that the target does not exist before producing.
7707 (grub_modules_init.h): Remove the target before generating.
7708 (grub_emu_init.c): Likewise.
7709
7710 * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
7711
aa6d7826 77122006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
7713
7714 * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
7715 for the target-specific tests. Make sure that we also have the
7716 up-to-date target variables for those tests.
7717
26c607b9 77182006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
7719
7720 * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
7721 (PModule::rule): Likewise.
7722
0162321a 77232006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
7724
7725 * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
7726 TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
7727 target-specific flags should be prefixed.
7728 (PModule::rule): Likewise.
7729
6c826348 77302006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
7731
7732 * configure.ac (CMP): Check if cmp is available explicitly.
7733
b977bf01 77342006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
7735
7736 * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
7737 (target_cpu): New variable.
7738 (pkglibdir): Use target_cpu instead of host_cpu.
f19dbdb7 7739
b977bf01 7740 * util/i386/pc/grub-install.in (host_cpu): Removed.
7741 (target_cpu): New variable.
7742 (pkglibdir): Use target_cpu instead of host_cpu.
7743
7744 * util/genmoddep.c: Removed.
f19dbdb7 7745
b977bf01 7746 * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
7747 instead of GRUB_HOST_SIZEOF_VOID_P.
7748 * kern/dl.c: Likewise.
7749
7750 * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
7751 ...
7752 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
7753 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
7754 (GRUB_TARGET_SIZEOF_LONG): ... this.
7755 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
7756 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
7757 * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
7758 to ...
7759 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
7760 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
7761 (GRUB_TARGET_SIZEOF_LONG): ... this.
7762 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
7763 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
7764 * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
7765 to ...
7766 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
7767 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
7768 (GRUB_TARGET_SIZEOF_LONG): ... this.
7769 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
7770 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
7771
7772 * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
7773 GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
7774 [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
7775 instead of GRUB_HOST_SIZEOF_LONG.
7776 [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
7777 GRUB_HOST_WORDS_BIGENDIAN to define or undefine
7778 GRUB_CPU_WORDS_BIGENDIAN.
7779 Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
7780 define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
7781 grub_host_ssize_t.
7782
7783 * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
7784 (genmoddep_SOURCES): Likewise.
7785 * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
7786 (genmoddep_SOURCES): Likewise.
7787 * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
7788 (genmoddep_SOURCES): Likewise.
7789 * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
7790 Likewise.
7791 (genmoddep_SOURCES): Likewise.
7792
7793 * genmoddep.awk: New file.
7794
7795 * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
7796 TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
7797 CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
7798 (PModule::rule): Likewise.
7799 (Program::rule): Likewise.
7800 (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
7801 BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
7802 respectively.
7803
7804 * configure.ac: Rewritten intensively to use host and target
7805 instead of build and host, respectively.
7806
7807 * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
7808 (host_cpu): Removed.
7809 (target_cpu): New variable.
7810 (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
7811 (BUILD_CC): Removed.
7812 (BUILD_CFLAGS): Likewise.
7813 (BUILD_CPPFLAGS): Likewise.
7814 (TARGET_CC): New variable.
7815 (TARGET_CFLAGS): Likewise.
7816 (TARGET_CPPFLAGS): Likewise.
7817 (TARGET_LDFLAGS): Likewise.
7818 (AWK): Likewise.
7819 (include): Use target_cpu instead of host_cpu.
7820 (moddep.lst:): Use genmoddep.awk instead of genmoddep.
f19dbdb7 7821
b977bf01 7822 * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
7823
f09771a1 78242006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
7825
7826 * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
7827 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed
7828 field 'false' to 'exec_on_false'.
7829 (grub_script_create_cmdif): Renamed argument names to reflect above
7830 changes.
7831
7832 * normal/execute.c (grub_script_execute_cmdif): Likewise.
7833
7834 * normal/script.c (grub_script_create_cmdif): Likewise.
7835
118f4fb3 78362006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
7837
7838 * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
7839 top.
7840 (grub_hfsplus_btree_recptr): Likewise.
7841 (grub_hfsplus_find_block): Do not take RETRY any longer. Use
7842 FILEBLOCK both to pass a block number and store next block
7843 number.
7844 (grub_hfsplus_read_block): Rewritten heavily to support an extent
7845 overflow file correctly. Specify errors appropriately, because
7846 fshelp expects that GRUB_ERRNO is set when fails. Reuse
7847 grub_hfsplus_btree_recptr to get the pointer to a found key.
7848 (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
7849 is found.
7850
7851 * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
7852 linux.mod.
7853 (_linux_mod_SOURCES): New variable.
7854 (_linux_mod_CFLAGS): Likewise.
7855 (_linux_mod_LDFLAGS): Likewise.
7856 (linux_mod_SOURCES): Likewise.
7857 (linux_mod_CFLAGS): Likewise.
7858 (linux_mod_LDFLAGS): Likewise.
7859
7860 * DISTLIST: Added loader/i386/efi/linux.c,
7861 loader/i386/efi/linux_normal.c and
7862 include/grub/i386/efi/loader.h.
7863
7864 * loader/i386/efi/linux.c: New file.
7865 * loader/i386/efi/linux_normal.c: Likewise.
7866 * include/grub/i386/efi/loader.h: Likewise.
7867
89a7d726 78682006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
7869
7870 * commands/blocklist.c: New file.
7871
7872 * DISTLIST: Added commands/blocklist.c.
7873
7874 * term/efi/console.c (grub_console_highlight_color): Use a lighter
43b553ad 7875 color for the background, and a darker color for the foreground.
89a7d726 7876 (grub_console_checkkey): Return READ_KEY.
7877 (grub_console_cls): Set the background to
7878 GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
7879
7880 * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
7881
7882 * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
7883 the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
7884
7885 * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
7886 prototype.
7887
7888 * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
7889 BG. The spec is wrong again.
7890
7891 * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
7892 prototype.
7893 [GRUB_UTIL] (grub_blocklist_fini): Likewise.
7894
7895 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
7896 commands/blocklist.c.
7897 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
f19dbdb7 7898
89a7d726 7899 * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
7900 (blocklist_mod_SOURCES): New variable.
7901 (blocklist_mod_CFLAGS): Likewise.
7902 (blocklist_mod_LDFLAGS): Likewise.
7903
75c8f258 79042006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
7905
7906 * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
7907 duplication.
7908 (lba_mode): Use %eax more intensively to reduce the code size.
7909
da2eb181 79102006-05-20 Marco Gerards <marco@gnu.org>
7911
7912 * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
7913
7914 * normal/parser.y (commandblock): Defined as <cmd>. A subroutine
7915 for `menuentry'.
7916 (script): Accept leading newlines.
7917 (newlines): New rule to describe 0 or more newlines.
7918 (commands): Accept `command' with trailing newline. Fixed the
7919 order in which arguments were passed to `grub_script_add_cmd'.
7920 Accept commands separated by newlines.
7921 (function): Changed to accept newlines.
7922 (menuentry) Rewritten.
7923
7924 * normal/script.c (grub_script_create_cmdmenu): Add new entries in
7925 front of the list, instead of to the end.
7926
577b4050 79272006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
7928
7929 * util/i386/pc/grub-install.in (bindir): New variable.
7930 (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
7931 Shaver <lbgwjl@gmail.com>.
7932
0d6e1189 79332006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
7934
7935 * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
7936 grub/machine/linux.h
7937 * loader/i386/pc/linux.c: Likewise.
7938
7939 * include/grub/i386/pc/linux.h: Moved to ...
7940 * include/grub/i386/linux.h: ... here.
7941
7942 * include/grub/i386/linux.h (struct linux_kernel_params): New
7943 struct.
f19dbdb7 7944
31b86e9f 79452006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
7946
7947 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
7948 checking.
7949 (grub_video_vbe_blit_glyph): Likewise.
7950 (grub_video_vbe_blit_bitmap): Likewise.
7951 (grub_video_vbe_blit_render_target): Likewise.
7952
83b984de 79532006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
7954
7955 * configure.ac (--with-platform): Properly quote the square
7956 brackets.
7957
5f0413bd 79582006-05-08 Marco Gerards <marco@gnu.org>
7959
7960 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
7961 this...
7962 (kernel_elf_HEADERS): ...to this. Updated all users.
7963 (grubof_symlist.c): Renamed from this...
7964 (kernel_elf_symlist.c): ...to this. Updated all users.
7965 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
7966 (grubof_SOURCES): Renamed from this...
7967 (kernel_elf_SOURCES): ...to this.
7968 (grubof_HEADERS): Renamed from this...
7969 (kernel_elf_HEADERS): ...to this.
7970 (grubof_CFLAGS): Renamed from this...
7971 (kernel_elf_CFLAGS): ...to this.
7972 (grubof_ASFLAGS): Renamed from this...
7973 (kernel_elf_ASFLAGS): ...to this.
7974 (grubof_LDFLAGS): Renamed from this...
7975 (kernel_elf_LDFLAGS): ...to this.
7976
7977 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
7978 this...
7979 (kernel_elf_HEADERS): ...to this. Updated all users.
7980 (grubof_symlist.c): Renamed from this...
7981 (kernel_elf_symlist.c): ...to this. Updated all users.
7982 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
7983 (grubof_SOURCES): Renamed from this...
7984 (kernel_elf_SOURCES): ...to this.
7985 (grubof_HEADERS): Renamed from this...
7986 (kernel_elf_HEADERS): ...to this.
7987 (grubof_CFLAGS): Renamed from this...
7988 (kernel_elf_CFLAGS): ...to this.
7989 (grubof_ASFLAGS): Renamed from this...
7990 (kernel_elf_ASFLAGS): ...to this.
7991 (grubof_LDFLAGS): Renamed from this...
7992 (kernel_elf_LDFLAGS): ...to this.
7993
7994 * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
7995 `kernel.elf' instead of `grubof'.
7996
05568c2e 79972006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
7998
7999 Add --with-platform to configure. Use pkglibdir instead of
8000 pkgdatadir. This is reported by Roger Leigh.
8001
8002 * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
8003 (host_vendor): Likewise.
8004 (host_os): Likewise.
8005 (pkgdatadir): Likewise.
8006 (platform): New variable.
8007 (pkglibdir): Likewise.
8008 Use PKGLIBDIR instead of PKGDATADIR.
f19dbdb7 8009
05568c2e 8010 * util/i386/pc/grub-install.in (datadir): Removed.
8011 (host_vendor): Likewise.
8012 (host_os): Likewise.
8013 (pkgdatadir): Likewise.
8014 (platform): New variable.
8015 (pkglibdir): Likewise.
8016 Use PKGLIBDIR instead of PKGDATADIR.
8017
8018 * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
8019 instead of GRUB_DATADIR.
8020 (main): Likewise.
8021 * util/i386/pc/grub-mkimage.c (usage): Likewise.
8022 (main): Likewise.
8023 * util/i386/efi/grub-mkimage.c (usage): Likewise.
8024 (main): Likewise.
8025
8026 * configure.ac (--with-platform): New option.
8027 Use PLATFORM instead of HOST_VENDOR to specify a platform.
8028
8029 * Makefile.in: Include a makefile based on PLATFORM instead of
8030 HOST_VENDOR.
8031 (pkgdatadir): Not appended by the machine type.
8032 (pkglibdir): Appended by the machine type.
8033 (host_vendor): Removed.
8034 (platform): New variable.
8035 (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
8036 (install-local): Use PKGLIBDIR instead of PKGDATADIR.
8037 (uninstall): Likewise.
8038
4e93851c 80392006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
8040
8041 Use the environment context in the menu. Remove the commands
8042 "default" and "timeout", and use variables instead.
f19dbdb7 8043
4e93851c 8044 * normal/menu.c: Include grub/env.h.
8045 (print_entry): Cast TITLE to silence gcc.
8046 (get_timeout): New function.
8047 (set_timeout): Likewise.
8048 (get_entry_number): Likewise.
8049 (run_menu): Use a default entry, a fallback entry and a timeout
8050 in the environment variables "default", "fallback" and
8051 "timeout". Also, tweak the default entry if it is not within the
8052 current menu entries.
8053 (grub_menu_run): Use a fallback entry in the environment variable
8054 "fallback".
8055
8056 * normal/main.c (read_config_file): Do not initialize
8057 NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
8058 NEWMENU->TIMEOUT.
8059 (grub_normal_execute): Use a data slot to store the menu.
8060
8061 * include/grub/normal.h (struct grub_menu): Removed default_entry,
8062 fallback_entry and timeout.
8063 (struct grub_menu_list): Removed.
8064 (grub_menu_list_t): Likewise.
8065 (struct grub_context): Likewise.
8066 (grub_context_t): Likewise.
8067 (grub_context_get): Likewise.
8068 (grub_context_get_current_menu): Likewise.
8069 (grub_context_push_menu): Likewise.
8070 (grub_context_pop_menu): Likewise.
8071 (grub_default_init): Likewise.
8072 (grub_default_fini): Likewise.
8073 (grub_timeout_init): Likewise.
8074 (grub_timeout_fini): Likewise.
8075
8076 * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
8077 and timeout.mod.
8078 (normal_mod_SOURCES): Removed normal/context.c.
8079
8080 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
8081 commands/default.c, commands/timeout.c and normal/context.c.
8082 (normal_mod_SOURCES): Removed normal/context.c.
8083
8084 * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
8085 commands/timeout.c and normal/context.c.
8086 (normal_mod_SOURCES): Removed normal/context.c.
8087
8088 * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
8089 commands/default.c, commands/timeout.c and normal/context.c.
8090 (normal_mod_SOURCES): Removed normal/context.c.
8091
8092 * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
8093 timeout.mod.
8094 (default_mod_SOURCES): Removed.
8095 (default_mod_CFLAGS): Likewise.
8096 (default_mod_LDFLAGS): Likewise.
8097 (timeout_mod_SOURCES): Removed.
8098 (timeout_mod_CFLAGS): Likewise.
8099 (timeout_mod_LDFLAGS): Likewise.
8100
8101 * DISTLIST: Removed commands/default.c, commands/timeout.c and
8102 normal/context.c.
8103
8104 * commands/default.c: Removed.
8105 * commands/timeout.c: Likewise.
8106 * normal/context.c: Likewise.
8107
1eb9cc1d 81082006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
8109
8110 * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
8111
385bd9c1 81122006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
8113
8114 * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
8115 "next" to "prev" for readability.
8116 (struct grub_env_sorted_var): New struct.
8117 (grub_env_context): Renamed to ...
8118 (initial_context): ... this.
8119 (grub_env_var_context): Renamed to ...
8120 (current_context): ... this.
8121 (grub_env_find): Look only at CURRENT_CONTEXT.
8122 (grub_env_context_open): Rewritten to copy exported variables from
8123 previous context.
8124 (grub_env_context_close): Rewritten according to the new
8125 scheme. Also, add an assertion to prevent the initial context from
8126 removed.
8127 (grub_env_insert): Removed the code for the sorted list.
8128 (grub_env_remove): Likewise.
8129 (grub_env_export): Simply mark the variable with
8130 GRUB_ENV_VAR_GLOBAL.
8131 (grub_env_set): A cosmetic change for naming consistency.
8132 (grub_env_get): Likewise.
8133 (grub_env_unset): Likewise.
8134 (grub_env_iterate): Rewritten to sort variables within this
8135 function.
8136 (grub_register_variable_hook): Fixed for naming consistency. Call
8137 grub_env_find again, only if NAME is not found at the first time.
8138 (mangle_data_slot_name): New function.
8139 (grub_env_set_data_slot): Likewise.
8140 (grub_env_get_data_slot): Likewise.
8141 (grub_env_unset_data_slot): Likewise.
8142
8143 * include/grub/env.h (grub_env_var_type): New enum.
8144 (GRUB_ENV_VAR_LOCAL): New constant.
8145 (GRUB_ENV_VAR_GLOBAL): Likewise.
8146 (GRUB_ENV_VAR_DATA): Likewise.
8147 (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
8148 "type".
8149 (grub_env_set): Replace VAR with NAME for consistency.
8150 (grub_register_variable_hook): Likewise.
8151 (grub_env_export): Specify the name of the argument.
8152 (grub_env_set_data_slot): New prototype.
8153 (grub_env_get_data_slot): Likewise.
8154 (grub_env_unset_data_slot): Likewise.
8155
7f362539 81562006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
8157
8158 Extend the loader so that GRUB can accept a loader which comes
8159 back to GRUB when a loaded image exits. Also, this change adds
8160 support for a chainloader on EFI.
f19dbdb7 8161
7f362539 8162 * term/efi/console.c: Include grub/misc.h.
8163 (grub_console_checkkey): Display a scan code on the top for
8164 debugging. This will be removed once the EFI port gets stable.
8165 Correct the scan code mapping.
8166
8167 * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
8168 allocate memory from larger regions, in order to reduce the number
8169 of allocated regions. Otherwise, the MacOSX loader panics.
8170 (filter_memory_map): Avoid less than 1MB for compatibility with
8171 other loaders.
8172 (add_memory_regions): Allocate from the tail of a region, if
8173 possible, to avoid allocating a region near to 1MB, for the MacOSX
8174 loader.
8175
8176 * kern/efi/init.c (grub_efi_set_prefix): Specify
8177 GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
8178
8179 * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
8180 argument IMAGE_HANDLE and specify it to get a loaded image.
8181 (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
8182 grub_efi_get_loaded_image.
fe6b695a 8183 (grub_efi_get_filename): Divide the length by the size of
7f362539 8184 grub_efi_char16_t.
8185 (grub_efi_get_device_path): New function.
8186 (grub_efi_print_device_path): Print End Device Path nodes. Divide
8187 the length by the size of grub_efi_char16_t for a file path device
8188 path node.
8189
8190 * kern/loader.c (grub_loader_noreturn): New variable.
8191 (grub_loader_set): Accept a new argument NORETURN. Set
8192 GRUB_LOADER_NORETURN to NORETURN.
8193 All callers changed.
8194 (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
8195 grub_machine_fini.
8196
8197 * include/grub/efi/efi.h (grub_efi_get_device_path): New
8198 prototype.
8199 (grub_efi_get_loaded_image): Take an argument to specify an image
8200 handle.
8201
8202 * include/grub/loader.h (grub_loader_set): Added one more argument
8203 NORETURN.
8204
8205 * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
8206 instead of grub_efi_open_protocol.
8207 (grub_efidisk_get_device_name): Likewise.
8208 (grub_efidisk_close): Print a newline.
8209 (grub_efidisk_get_device_handle): Fixed to use
8210 GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
8211 GRUB_EFI_DEVICE_PATH_TYPE.
8212
8213 * disk/efi/efidisk.c (device_path_guid): Moved to ...
8214 * kern/efi/efi.c (device_path_guid): ... here.
8215
8216 * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
8217 chain.mod.
8218 (kernel_mod_HEADERS): Added efi/disk.h.
8219 (_chain_mod_SOURCES): New variable.
8220 (_chain_mod_CFLAGS): Likewise.
8221 (_chain_mod_LDFLAGS): Likewise.
8222 (chain_mod_SOURCES): Likewise.
8223 (chain_mod_CFLAGS): Likewise.
8224 (chain_mod_LDFLAGS): Likewise.
8225
8226 * DISTLIST: Added include/grub/efi/chainloader.h,
8227 loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
8228
8229 * include/grub/efi/chainloader.h: New file.
8230 * loader/efi/chainloader.c: Likewise.
8231 * loader/efi/chainloader_normal.c: Likewise.
8232
c0111d6e 82332006-04-30 Marco Gerards <marco@gnu.org>
8234
8235 * commands/configfile.c (grub_cmd_source): New function.
8236 (GRUB_MOD_INIT): Register the commands `source' and `.'.
8237 (GRUB_MOD_FINI): De-register the commands `source' and `.'.
8238
df5341da 82392006-04-30 Marco Gerards <marco@gnu.org>
8240
8241 * normal/execute.c (grub_script_execute_cmd): Change the return
8242 type to `grub_err_t'. Correctly return the error.
8243 (grub_script_execute_cmdline): In case a command line is not a
8244 command or a function, try to interpret it as an assignment.
8245
f85934bd 82462006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
8247
8248 * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
8249 (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
8250 skip a node whose name is obviously invalid as UTF-16,
8251 i.e. contains a NUL character. Stop the iteration when the last
8252 directory entry is found. Instead of using the return value of
8253 grub_hfsplus_btree_iterate_node, store the value in RET and use
8254 it, because the iterator can be stopped by the last directory
8255 entry.
8256
8f8a2cf8 82572006-04-30 Marco Gerards <marco@gnu.org>
8258
8259 * include/grub/env.h (grub_env_export): New prototype. Reported
8260 by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
8261
a27e84ce 82622006-04-30 Marco Gerards <marco@gnu.org>
8263
8264 * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
8265 size of the extents in a catalog file record.
8266
eaef0553 82672006-04-29 Marco Gerards <marco@gnu.org>
8268
8269 * commands/configfile.c (grub_cmd_configfile): Execute the
8270 configfile within its own context.
8271
8272 * include/grub/env.h (grub_env_context_open): New prototype.
8273 (grub_env_context_close): Likewise.
8274
8275 * kern/env.c (grub_env): Removed.
8276 (grub_env_sorted): Likewise.
8277 (grub_env_context): New variable.
8278 (grub_env_var_context): Likewise.
8279 (grub_env_find): Search both the active context and the global
8280 context.
8281 (grub_env_context_open): New function.
8282 (grub_env_context_close): Likewise.
8283 (grub_env_insert): Likewise.
8284 (grub_env_remove): Likewise.
8285 (grub_env_export): Likewise.
8286 (grub_env_set): Changed to use helper functions to avoid code
8287 duplication.
8288 (grub_env_iterate): Rewritten so both the current context and the
8289 global context are being used.
8290
8291 * normal/command.c (export_command): New function.
8292 (grub_command_init): Register the `export' function.
8293
7b455f4d 82942006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
8295
8296 * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
8297 explicitly to suppress gcc's warnings.
8298 * fs/fat.c (grub_fat_find_dir): Likewise.
8299 (grub_fat_label): Likewise.
8300 * fs/xfs.c (grub_xfs_read_inode): Likewise.
8301 (grub_xfs_mount): Likewise.
8302 (grub_xfs_label): Likewise.
8303 * fs/affs.c (grub_affs_mount): Likewise.
8304 (grub_affs_label): Likewise.
8305 (grub_affs_iterate_dir): Likewise.
8306 * fs/sfs.c (grub_sfs_mount): Likewise.
8307 (grub_sfs_iterate_dir): Likewise.
8308 * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
8309 * fs/hfs.c (grub_hfs_mount): Likewise.
8310 (grub_hfs_cmp_catkeys): Likewise.
8311 (grub_hfs_find_dir): Likewise.
8312 (grub_hfs_dir): Likewise.
8313 (grub_hfs_label): Likewise.
8314 * fs/jfs.c (grub_jfs_mount): Likewise.
8315 (grub_jfs_opendir): Likewise.
8316 (grub_jfs_getent): Likewise.
8317 (grub_jfs_lookup_symlink): Likewise.
8318 (grub_jfs_label): Likewise.
8319 * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
8320 (grub_hfsplus_iterate_dir): Likewise.
8321 (grub_hfsplus_btree_iterate_node): Made static.
8322
8323 * util/grub-emu.c (prefix): New variable.
8324 (grub_machine_set_prefix): New function.
8325 (main): Do not set the environment variable "prefix" here. Only
8326 set PREFIX, which is used later by grub_machine_set_prefix.
8327
8328 * include/grub/video.h: Do not include grub/symbol.h.
8329 (grub_video_register): Not exported. This symbol is not defined in
8330 the kernel.
8331 (grub_video_unregister): Likewise.
8332 (grub_video_iterate): Likewise.
8333 (grub_video_setup): Likewise.
8334 (grub_video_restore): Likewise.
8335 (grub_video_get_info): Likewise.
8336 (grub_video_get_blit_format): Likewise.
8337 (grub_video_set_palette): Likewise.
8338 (grub_video_get_palette): Likewise.
8339 (grub_video_set_viewport): Likewise.
8340 (grub_video_get_viewport): Likewise.
8341 (grub_video_map_color): Likewise.
8342 (grub_video_map_rgb): Likewise.
8343 (grub_video_map_rgba): Likewise.
8344 (grub_video_fill_rect): Likewise.
8345 (grub_video_blit_glyph): Likewise.
8346 (grub_video_blit_bitmap): Likewise.
8347 (grub_video_blit_render_target): Likewise.
8348 (grub_video_scroll): Likewise.
8349 (grub_video_swap_buffers): Likewise.
8350 (grub_video_create_render_target): Likewise.
8351 (grub_video_delete_render_target): Likewise.
8352 (grub_video_set_active_render_target): Likewise.
8353
8354 * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
8355 Undefined.
8356 [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
8357
8358 * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
8359 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
8360 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
8361 instead of $(srcdir)/genkernsyms.sh.
8362
8363 * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
8364 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
8365 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
8366 instead of $(srcdir)/genkernsyms.sh.
8367
8368 * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
8369 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
8370 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
8371 instead of $(srcdir)/genkernsyms.sh.
8372
8373 * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
8374 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
8375 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
8376 instead of $(srcdir)/genkernsyms.sh.
8377
8378 * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
8379 genkernsyms.sh.
8380
8381 * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
8382 genkernsyms.sh.
8383 (gensymlist.sh): New target.
8384 (genkernsyms.sh): Likewise.
8385
8386 * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
8387 genkernsyms.sh.in and gensymlist.sh.in.
8388
8389 * genkernsyms.sh: Removed.
8390 * gensymlist.sh: Likewise.
f19dbdb7 8391
7b455f4d 8392 * genkernsyms.sh.in: New file.
8393 * gensymlist.sh.in: Likewise.
8394
1885bb27 83952006-04-25 Hollis Blanchard <hollis@penguinppc.org>
8396
8397 * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
8398 clobber "prefix", since we may have already set it manually.
8399
71538dff 84002006-04-25 Hollis Blanchard <hollis@penguinppc.org>
8401
8402 * kern/misc.c (abort): New alias for grub_abort.
8403
2965c7cc 84042006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
8405
8406 A new machine-specific function "grub_machine_set_prefix" is
8407 defined. This is called after loading modules, so that a prefix
8408 initialization can use modules. Also, this change adds an
8409 intensive debugging feature for the memory manager via the
8410 configure option "--enable-mm-debug".
f19dbdb7 8411
2965c7cc 8412 * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
8413 PART.LEN.
8414
8415 * kern/sparc64/ieee1275/init.c (abort): Removed.
8416 (grub_stop): Likewise.
8417 (grub_exit): New function.
8418 (grub_set_prefix): Renamed to ...
8419 (grub_machine_set_prefix): ... this.
8420 (grub_machine_init): Do not call grub_set_prefix.
8421
8422 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
8423 (grub_machine_set_prefix): ... this.
8424 (grub_machine_init): Do not call grub_set_prefix.
8425
8426 * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
8427 (grub_machine_init): Do not set the prefix here.
8428
8429 * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
8430
8431 * kern/efi/init.c: Include grub/mm.h.
8432 (grub_efi_set_prefix): New function.
8433
8434 * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
8435 (grub_efi_get_filename): New function.
8436 (grub_print_device_path): Renamed to ...
8437 (grub_efi_print_device_path): ... this.
8438
8439 * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
8440 [MM_DEBUG] (grub_realloc): Likewise.
8441 [MM_DEBUG] (grub_free): Likewise.
8442 [MM_DEBUG] (grub_memalign): Likewise.
8443 [MM_DEBUG] (grub_mm_debug): New variable.
8444 [MM_DEBUG] (grub_debug_malloc): New function.
8445 [MM_DEBUG] (grub_debug_free): New function.
8446 [MM_DEBUG] (grub_debug_realloc): New function.
8447 [MM_DEBUG] (grub_debug_memalign): New function.
8448
8449 * kern/misc.c (grub_abort): Print a newline to distinguish
8450 the message.
8451
8452 * kern/main.c (grub_main): Call grub_machine_set_prefix and
8453 grub_set_root_dev after loading modules. This is necessary when
8454 setting a prefix depends on modules.
8455
8456 * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
8457 (grub_efi_print_device_path): ... this.
8458 (grub_efi_get_filename): New prototype.
8459 (grub_efi_set_prefix): Likewise.
8460
8461 * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
8462 and grub/disk.h.
8463 (grub_efidisk_get_device_handle): New prototype.
8464 (grub_efidisk_get_device_name): Likewise.
8465
8466 * include/grub/mm.h: Include config.h.
8467 (MM_DEBUG): Removed.
8468 [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
8469 [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
8470 [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
8471 [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
8472 [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
8473 [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
8474 [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
8475 [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
8476 [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
8477
8478 * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
8479
8480 * disk/efi/efidisk.c: Include grub/partition.h.
8481 (iterate_child_devices): New function.
8482 (add_device): First, compare only last device path nodes, so that
8483 devices are sorted by the types.
8484 (grub_efidisk_get_device_handle): New function.
8485 (grub_efidisk_get_device_name): Likewise.
8486
8487 * configure.ac (--enable-mm-debug): New option to enable the
8488 memory manager debugging feature. This makes the binary much
8489 bigger, so is disabled by default.
8490
9cacaa17 84912006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
8492
8493 Use grub_abort instead of grub_stop, and grub_exit must be
8494 define in each architecture now. Also, this change adds support
8495 for EFI disks.
f19dbdb7 8496
9cacaa17 8497 * util/i386/pc/grub-probefs.c: Include grub/term.h.
8498 (grub_getkey): New function.
8499 (grub_term_get_current): Likewise.
8500
8501 * util/i386/pc/grub-setup.c: Include grub/term.h.
8502 (grub_getkey): New function.
8503 (grub_term_get_current): Likewise.
8504
8505 * util/misc.c (grub_stop): Renamed to ...
8506 (grub_exit): ... this.
8507
8508 * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
8509 (grub_exit): ... this.
8510 (grub_machine_init): Use grub_abort instead of abort.
8511 (grub_stop): Removed.
8512
8513 * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
8514 abort.
8515
8516 * kern/i386/pc/startup.S (grub_exit): New function.
8517 (cold_reboot): New label.
8518
8519 * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
8520 (grub_efi_init): Call grub_efidisk_init.
8521 (grub_efi_fini): Call grub_efidisk_fini.
8522
8523 * kern/efi/efi.c: Include grub/mm.h.
8524 (grub_efi_console_control_guid): Renamed to ...
8525 (console_control_guid): ... this.
8526 (grub_efi_loaded_image_guid): Renamed to ...
8527 (loaded_image_guid): ... this.
8528 (grub_efi_locate_handle): New function.
8529 (grub_efi_open_protocol): Likewise.
8530 (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
8531 GRUB_EFI_CONSOLE_CONTROL_GUID.
8532 (grub_efi_exit): Removed.
8533 (grub_stop): Likewise.
8534 (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
8535 (grub_exit): New function.
8536 (grub_print_device_path): Likewise.
8537
8538 * kern/rescue.c (grub_rescue_cmd_exit): New function.
8539 (grub_enter_rescue_mode): Register "exit".
8540
8541 * kern/misc.c (grub_real_dprintf): A cosmetic change.
8542 (grub_abort): New function.
8543
8544 * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
8545
8546 * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
8547
8548 * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
8549
8550 * include/grub/efi/efi.h (grub_efi_exit): Removed.
8551 (grub_print_device_path): New prototype.
8552 (grub_efi_locate_handle): Likewise.
8553 (grub_efi_open_protocol): Likewise.
8554
8555 * include/grub/efi/disk.h (grub_efidisk_fini): New file.
8556 * disk/efi/efidisk.c: Likewise.
8557
8558 * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
8559
8560 * include/grub/efi/console_control.h
8561 (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
8562
8563 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
8564 last 8 bytes as an array.
8565 (GRUB_EFI_DISK_IO_GUID): New macro.
8566 (GRUB_EFI_BLOCK_IO_GUID): Likewise.
8567 (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
8568 (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
8569 grub_uint8_t.
8570 (struct grub_efi_guid): Use an array to specify the last 8 bytes.
8571 (struct grub_efi_device_path): Rename the member "sub_type" to
8572 "subtype".
8573 (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
8574 (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
8575 (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
8576 (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
8577 (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
8578 (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
8579 (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
8580 (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
8581 (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
8582 (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
8583 (struct grub_efi_pci_device_path): New structure.
8584 (grub_efi_pci_device_path_t): New type.
8585 (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
8586 (struct grub_efi_pccard_device_path): New structure.
8587 (grub_efi_pccard_device_path_t): New type.
8588 (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
8589 (struct grub_efi_memory_mapped_device_path): New structure.
8590 (grub_efi_memory_mapped_device_path_t): New type.
8591 (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
8592 (struct grub_efi_vendor_device_path): New structure.
8593 (grub_efi_vendor_device_path_t): New type.
8594 (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
8595 (struct grub_efi_controller_device_path): New structure.
8596 (grub_efi_controller_device_path_t): New type.
8597 (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
8598 (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
8599 (struct grub_efi_acpi_device_path): New structure.
8600 (grub_efi_acpi_device_path_t): New type.
8601 (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
8602 (struct grub_efi_expanded_acpi_device_path): New structure.
8603 (grub_efi_expanded_acpi_device_path_t): New type.
8604 (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
8605 (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
8606 (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
8607 (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
8608 (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
8609 (struct grub_efi_atapi_device_path): New structure.
8610 (grub_efi_atapi_device_path_t): New type.
8611 (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
8612 (struct grub_efi_fibre_channel_device_path): New structure.
8613 (grub_efi_fibre_channel_device_path_t): New type.
8614 (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
8615 (struct grub_efi_1394_device_path): New structure.
8616 (grub_efi_1394_device_path_t): New type.
8617 (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
8618 (struct grub_efi_usb_device_path): New structure.
8619 (grub_efi_usb_device_path_t): New type.
8620 (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
8621 (struct grub_efi_usb_class_device_path): New structure.
8622 (grub_efi_usb_class_device_path_t): New type.
8623 (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
8624 (struct grub_efi_i2o_device_path): New structure.
8625 (grub_efi_i2o_device_path_t): New type.
8626 (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
8627 (struct grub_efi_mac_address_device_path): New structure.
8628 (grub_efi_mac_address_device_path_t): New type.
8629 (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
8630 (struct grub_efi_ipv4_device_path): New structure.
8631 (grub_efi_ipv4_device_path_t): New type.
8632 (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
8633 (struct grub_efi_ipv6_device_path): New structure.
8634 (grub_efi_ipv6_device_path_t): New type.
8635 (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
8636 (struct grub_efi_infiniband_device_path): New structure.
8637 (grub_efi_infiniband_device_path_t): New type.
8638 (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
8639 (struct grub_efi_uart_device_path): New structure.
8640 (grub_efi_uart_device_path_t): New type.
8641 (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
8642 (struct grub_efi_vendor_messaging_device_path): New structure.
8643 (grub_efi_vendor_messaging_device_path_t): New type.
8644 (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
8645 (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
8646 (struct grub_efi_hard_drive_device_path): New structure.
8647 (grub_efi_hard_drive_device_path_t): New type.
8648 (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
8649 (struct grub_efi_cdrom_device_path): New structure.
8650 (grub_efi_cdrom_device_path_t): New type.
8651 (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
8652 (struct grub_efi_vendor_media_device_path): New structure.
8653 (grub_efi_vendor_media_device_path_t): New type.
8654 (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
8655 (struct grub_efi_file_path_device_path): New structure.
8656 (grub_efi_file_path_device_path_t): New type.
8657 (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
8658 (struct grub_efi_protocol_device_path): New structure.
8659 (grub_efi_protocol_device_path_t): New type.
8660 (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
8661 (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
8662 (struct grub_efi_bios_device_path): New structure.
8663 (grub_efi_bios_device_path_t): New type.
8664 (struct grub_efi_disk_io): New structure.
8665 (grub_efi_disk_io_t): New type.
8666 (struct grub_efi_block_io_media): New structure.
8667 (grub_efi_block_io_media_t): New type.
8668 (struct grub_efi_block_io): New structure.
8669 (grub_efi_block_io_t): New type.
8670
8671 * include/grub/misc.h (grub_stop): Removed.
8672 (grub_exit): New prototype.
8673 (grub_abort): Likewise.
8674
8675 * include/grub/disk.h (enum grub_disk_dev_id): Added
8676 GRUB_DISK_DEVICE_EFIDISK_ID.
8677
8678 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
8679 disk/efi/efidisk.c.
8680 (kernel_syms.lst): Remove the target if an error occurs.
8681
49986a9f 86822006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
8683
8684 * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
8685 as it was simply too buggy.
8686
970d3b8a 86872006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
8688
8689 * kern/misc.c (grub_lltoa): New function.
8690 (grub_vsprintf): Added support for the long long suffix,
8691 i.e. "ll".
8692
ff04ec24 86932006-04-20 Hollis Blanchard <hollis@penguinppc.org>
8694
8695 * Makefile.in (LDFLAGS): Add variable.
8696 (LD): Remove variable.
8697 * configure.ac: Add -m32 to LDFLAGS.
8698 * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
8699 * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
8700 (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
8701 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
8702 suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
8703 variables.
8704 * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
8705 * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
8706 * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
8707
37e5e1a4 87082006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
8709
8710 * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
8711 length for unknown glyph.
8712
c352d8dd 87132006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
8714
2eab1c0d 8715 Add support for pre-loaded modules into the EFI port.
f19dbdb7 8716
2eab1c0d 8717 * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
8718 completely. Accept one more argument DIR. The caller has changed.
8719
8720 * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
8721
8722 * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
8723 (grub_efi_loaded_image_guid): New variable.
8724 (grub_efi_get_loaded_image): New function.
8725 (grub_arch_modules_addr): Likewise.
8726
8727 * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
8728 prototype.
8729
8730 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
8731 (struct grub_efi_loaded_image): New structure.
8732 (grub_efi_loaded_image_t): New type.
8733
87342006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 8735
c352d8dd 8736 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
8737 size with GRUB_OS_AREA_SIZE as grub_size_t instead of
8738 grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
8739
6d01d6b4 87402006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
8741
8742 * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
8743
976a4ea0 87442006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
8745
8746 * DISTLIST: Added include/grub/efi/console.h,
8747 include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
8748 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
8749
8750 * include/grub/efi/console.h: New file.
8751 * include/grub/efi/time.h: Likewise.
8752 * include/grub/i386/efi/kernel.h: Likewise.
8753 * kern/efi/init.c: Likewise.
8754 * kern/efi/mm.c: Likewise.
8755 * term/efi/console.c: Likewise.
f19dbdb7 8756
976a4ea0 8757 * kern/i386/efi/init.c: Do not include grub/machine/time.h.
8758 (grub_stop): Removed.
8759 (grub_get_rtc): Likewise.
8760 (grub_machine_init): Simply call grub_efi_init.
8761 (grub_machine_fini): Call grub_efi_fini.
8762
8763 * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
8764 (grub_efi_output_string): Removed.
8765 (grub_efi_stall): New function.
8766 (grub_stop): Likewise.
8767 (grub_get_rtc): Likewise.
8768
8769 * include/grub/efi/efi.h (grub_efi_output_string): Removed.
8770 (grub_efi_stall): New prototype.
8771 (grub_efi_allocate_pages): Likewise.
8772 (grub_efi_free_pages): Likewise.
8773 (grub_efi_get_memory_map): Likewise.
8774 (grub_efi_mm_init): Likewise.
8775 (grub_efi_mm_fini): Likewise.
8776 (grub_efi_init): Likewise.
8777 (grub_efi_fini): Likewise.
8778
8779 * include/grub/i386/efi/time.h: Do not include
8780 grub/symbol.h. Include grub/efi/time.h.
8781 (GRUB_TICKS_PER_SECOND): Removed.
8782 (grub_get_rtc): Likewise.
8783
8784 * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
8785 Added padding. The EFI spec is buggy.
8786 (GRUB_EFI_BLACK): New macro.
8787 (GRUB_EFI_BLUE): Likewise.
8788 (GRUB_EFI_GREEN): Likewise.
8789 (GRUB_EFI_CYAN): Likewise.
8790 (GRUB_EFI_RED): Likewise.
8791 (GRUB_EFI_MAGENTA): Likewise.
8792 (GRUB_EFI_BROWN): Likewise.
8793 (GRUB_EFI_LIGHTGRAY): Likewise.
8794 (GRUB_EFI_BRIGHT): Likewise.
8795 (GRUB_EFI_DARKGRAY): Likewise.
8796 (GRUB_EFI_LIGHTBLUE): Likewise.
8797 (GRUB_EFI_LIGHTGREEN): Likewise.
8798 (GRUB_EFI_LIGHTCYAN): Likewise.
8799 (GRUB_EFI_LIGHTRED): Likewise.
8800 (GRUB_EFI_LIGHTMAGENTA): Likewise.
8801 (GRUB_EFI_YELLOW): Likewise.
8802 (GRUB_EFI_WHITE): Likewise.
8803 (GRUB_EFI_BACKGROUND_BLACK): Likewise.
8804 (GRUB_EFI_BACKGROUND_BLUE): Likewise.
8805 (GRUB_EFI_BACKGROUND_GREEN): Likewise.
8806 (GRUB_EFI_BACKGROUND_CYAN): Likewise.
8807 (GRUB_EFI_BACKGROUND_RED): Likewise.
8808 (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
8809 (GRUB_EFI_BACKGROUND_BROWN): Likewise.
8810 (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
8811 (GRUB_EFI_TEXT_ATTR): Likewise.
8812
8813 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
8814 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
8815 (kernel_mod_HEADERS): Added efi/time.h.
8816
83709125 88172006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
8818
8819 * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
8820 include/grub/efi/api.h, include/grub/efi/console_control.h,
8821 include/grub/efi/efi.h, include/grub/efi/pe32.h,
8822 include/grub/i386/efi/time.h, kern/efi/efi.c,
8823 kern/i386/efi/init.c, kern/i386/efi/startup.S,
8824 and util/i386/efi/grub-mkimage.c.
8825
8826 * Makefile.in (RMKFILES): Added i386-efi.rmk.
8827
8828 * genmk.rb (PModule#rule): Do not export symbols if
8829 #{prefix}_EXPORTS is set to "no".
8830
8831 * conf/i386-efi.mk: New file.
8832 * conf/i386-efi.rmk: Likewise.
8833 * include/grub/efi/api.h: Likewise.
8834 * include/grub/efi/console_control.h: Likewise.
8835 * include/grub/efi/efi.h: Likewise.
8836 * include/grub/efi/pe32.h: Likewise.
8837 * include/grub/i386/efi/time.h: Likewise.
8838 * kern/efi/efi.c: Likewise.
8839 * kern/i386/efi/init.c: Likewise.
8840 * kern/i386/efi/startup.S: Likewise.
8841 * util/i386/efi/grub-mkimage.c: Likewise.
8842
88432006-04-17 Marco Gerards <marco@gnu.org>
bfa2bd9e 8844
8845 * include/grub/script.h: Include <grub/parser.h> and
8846 "grub_script.tab.h".
8847 (struct grub_lexer_param): New struct.
8848 (struct grub_parser_param): Likewise.
8849 (grub_script_create_arglist): Pass the state in an argument.
8850 (grub_script_add_arglist): Likewise.
8851 (grub_script_create_cmdline): Likewise.
8852 (grub_script_create_cmdblock): Likewise.
8853 (grub_script_create_cmdif): Likewise.
8854 (grub_script_create_cmdmenu): Likewise.
8855 (grub_script_add_cmd): Likewise.
8856 (grub_script_arg_add): Likewise.
8857 (grub_script_lexer_ref): Likewise.
8858 (grub_script_lexer_deref): Likewise.
8859 (grub_script_lexer_record_start): Likewise.
8860 (grub_script_lexer_record_stop): Likewise.
8861 (grub_script_mem_record): Likewise.
8862 (grub_script_mem_record_stop): Likewise.
8863 (grub_script_malloc): Likewise.
8864 (grub_script_yylex): Likewise.
8865 (grub_script_yyparse): Likewise.
8866 (grub_script_yyerror): Likewise.
8867 (grub_script_yylex): Likewise.
8868 (grub_script_lexer_init): Return the state.
8869
8870 * normal/lexer.c (grub_script_lexer_state): Removed variable.
8871 (grub_script_lexer_done): Likewise.
8872 (grub_script_lexer_getline): Likewise.
8873 (grub_script_lexer_refs): Likewise.
8874 (script): Likewise.
8875 (newscript): Likewise.
8876 (record): Likewise.
8877 (recording): Likewise.
8878 (recordpos): Likewise.
8879 (recordlen): Likewise.
8880 (grub_script_lexer_init): Return the state instead of setting
8881 global variables.
8882 (grub_script_lexer_ref): Use the newly added argument for state
8883 instead of globals.
8884 (grub_script_lexer_deref): Likewise.
8885 (grub_script_lexer_record_start): Likewise.
8886 (grub_script_lexer_record_stop): Likewise.
8887 (recordchar): Likewise.
8888 (nextchar): Likewise.
8889 (grub_script_yylex2): Likewise.
8890 (grub_script_yylex): Likewise.
8891 (grub_script_yyerror): Likewise.
8892
8893 * normal/parser.y (func_mem): Removed variable.
8894 (menu_entry): Likewise.
8895 (err): Likewise.
8896 (%lex-param): New parser option.
8897 (%parse-param): Likewise.
8898 (script): Always return the AST.
8899 (argument): Pass the state around.
8900 (arguments): Likewise.
8901 (grubcmd): Likewise.
8902 (commands): Likewise.
8903 (function): Likewise.
8904 (menuentry): Likewise.
8905 (if_statement): Likewise.
8906 (if): Likewise.
8907
8908 * normal/script.c (grub_script_memused): Removed variable.
8909 (grub_script_parsed): Likewise.
8910 (grub_script_malloc): Added a state argument. Use that instead of
8911 global variables.
8912 (grub_script_mem_record): Likewise.
8913 (grub_script_mem_record_stop): Likewise.
8914 (grub_script_arg_add): Likewise.
8915 (grub_script_add_arglist): Likewise.
8916 (grub_script_create_cmdline): Likewise.
8917 (grub_script_create_cmdif): Likewise.
8918 (grub_script_create_cmdmenu): Likewise.
8919 (grub_script_add_cmd): Likewise.
8920 (grub_script_parse): Setup the state before calling the parser.
f19dbdb7 8921
e2a8c904 89222006-04-16 Marco Gerards <marco@gnu.org>
6de2ee99 8923
8924 * normal/command.c (grub_command_init): Remove the title command.
8925
8926 * normal/lexer.c (grub_script_yylex): Renamed from this...
8927 (grub_script_yylex2): ... to this.
8928 (grub_script_yylex): New function. Temporary
8929 introduced to filter some tokens.
8930 (grub_script_yyerror): Print a newline.
8931
8932 * normal/main.c (read_config_file): Output information about the
8933 lines that contain errors. Wait for a key after all lines have
8934 been processed. Don't return an empty menu.
8935
8936 * normal/parser.y (func_mem): Don't initialize.
8937 (menu_entry): Likewise.
8938 (err): New variable.
8939 (script): Don't return anything when an error was encountered.
8940 (ws, returns): Removed rules.
8941 (argument): Disabled concatenated variable support.
8942 (arguments): Remove explicit separators.
8943 (grubcmd): Likewise.
8944 (function): Likewise.
8945 (menuentry): Likewise.
8946 (if): Likewise.
8947 (commands): Likewise. Add error handling.
8948
8949 * normal/script.c (grub_script_create_cmdline): If
8950 `grub_script_parsed' is 0, assume the parser encountered an error.
8951
c9a86192 89522006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
8953
8954 * configure.ac: Add support for EFI. Fix the typo
8955 BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
8956
70f3b243 89572006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
8958
8959 * util/unifont2pff.rb: Removed unnecessary byte ordering. Now
8960 foreign multibyte characters should be shown correctly.
8961
65f201ad 89622006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
8963
8964 * normal/main.c (grub_normal_menu_addentry): Fixed menu size
8965 calculation.
8966 (read_config_file): Made it to close file before returning.
8967
b4b93674 89682006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
8969
8970 * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
8971 include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
8972 video/i386/pc/vbefill.c.
8973
8974 * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
8975 video/i386/pc/vbefill.c.
8976
8977 * include/grub/video.h (grub_video_blit_format): New enum.
8978 (grub_video_mode_info): Added new member blit_format.
8979 (grub_video_get_blit_format): New function prototype.
8980
8981 * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
8982 function prototype.
8983 (grub_video_vbe_map_rgb): Likewise.
8984 (grub_video_vbe_unmap_color): Likewise.
8985
8986 * include/grub/i386/pc/vbeblit.h: New file.
8987
8988 * include/grub/i386/pc/vbefill.h: New file.
8989
8990 * video/video.c (grub_video_get_blit_format): New function.
8991 (grub_video_vbe_get_video_ptr): Re-declared as non-static.
8992 (grub_video_vbe_map_rgb): Likewise.
8993 (grub_video_vbe_unmap_color): Likewise.
8994
8995 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
8996 optimized fills.
8997 (grub_video_vbe_blit_render_target): Changed to use more optimized
8998 blits.
8999 (grub_video_vbe_setup): Added detection for optimized settings.
9000 (grub_video_vbe_create_render_target): Likewise.
9001
9002 * video/i386/pc/vbeblit.c: New file.
9003
9004 * video/i386/pc/vbefill.c: New file.
9005
c2379b9c 90062006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
9007
9008 * font/manager.c (grub_font_get_glyph): Removed font fixup from
9009 here...
9010
9011 * util/unifont2pff.rb: ... and moved it to here. Improved argument
9012 parsing to support both hex and dec ranges. If filename was missing
9013 show usage information.
9014
bd0d7896 90152006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
9016
9017 * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
9018 video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c.
9019
9020 * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
9021 gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod.
9022 (video_mod_SOURCES): Added.
9023 (video_mod_CFLAGS): Likewise.
9024 (video_mod_LDFLAGS): Likewise.
9025 (gfxterm_mod_SOURCES): Likewise.
9026 (gfxterm_mod_CFLAGS): Likewise.
9027 (gfxterm_mod_LDFLAGS): Likewise.
9028 (videotest_mod_SOURCES): Likewise.
9029 (videotest_mod_CFLAGS): Likewise.
9030 (videotest_mod_LDFLAGS): Likewise.
9031 (vesafb_mod_SOURCES): Removed.
9032 (vesafb_mod_CFLAGS): Likewise.
9033 (vesafb_mod_LDFLAGS): Likewise.
9034 (vga_mod_SOURCES): Likewise.
9035 (vga_mod_CFLAGS): Likewise.
9036 (vga_mod_LDFLAGS): Likewise.
9037
9038 * commands/videotest.c: New file.
9039
9040 * font/manager.c (fill_with_default_glyph): Modified to use
9041 grub_font_glyph.
9042 (grub_font_get_glyph): Likewise.
9043 (fontmanager): Renamed from this...
9044 (font_manager): ... to this.
9045
9046 * include/grub/font.h (grub_font_glyph): Added new structure.
9047 (grub_font_get_glyph): Modified to use grub_font_glyph.
9048
9049 * include/grub/misc.h (grub_abs): Added as inline function.
9050
9051 * include/grub/video.h: New file.
9052
9053 * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
9054 (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
9055 (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
9056 (grub_vbe_get_controller_info): Renamed from this...
9057 (grub_vbe_bios_get_controller_info): ... to this.
9058 (grub_vbe_get_mode_info): Renamed from this...
9059 (grub_vbe_bios_get_mode_info): ... to this.
9060 (grub_vbe_set_mode): Renamed from this...
9061 (grub_vbe_bios_set_mode): ... to this.
9062 (grub_vbe_get_mode): Renamed from this...
9063 (grub_vbe_bios_get_mode): ... to this.
9064 (grub_vbe_set_memory_window): Renamed from this...
9065 (grub_vbe_bios_set_memory_window): ... to this.
9066 (grub_vbe_get_memory_window): Renamed from this...
9067 (grub_vbe_bios_get_memory_window): ... to this.
9068 (grub_vbe_set_scanline_length): Renamed from this...
9069 (grub_vbe_set_scanline_length): ... to this.
9070 (grub_vbe_get_scanline_length): Renamed from this...
9071 (grub_vbe_bios_get_scanline_length): ... to this.
9072 (grub_vbe_set_display_start): Renamed from this...
9073 (grub_vbe_bios_set_display_start): ... to this.
9074 (grub_vbe_get_display_start): Renamed from this...
9075 (grub_vbe_bios_get_display_start): ... to this.
9076 (grub_vbe_set_palette_data): Renamed from this...
9077 (grub_vbe_bios_set_palette_data): ... to this.
9078 (grub_vbe_set_pixel_rgb): Removed.
9079 (grub_vbe_set_pixel_index): Likewise.
9080
9081 * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
9082 from this...
9083 (grub_vbe_bios_get_controller_info): ... to this.
9084 (grub_vbe_get_mode_info): Renamed from this...
9085 (grub_vbe_bios_get_mode_info): ... to this.
9086 (grub_vbe_set_mode): Renamed from this...
9087 (grub_vbe_bios_set_mode): ... to this.
9088 (grub_vbe_get_mode): Renamed from this...
9089 (grub_vbe_bios_get_mode): ... to this.
9090 (grub_vbe_set_memory_window): Renamed from this...
9091 (grub_vbe_bios_set_memory_window): ... to this.
9092 (grub_vbe_get_memory_window): Renamed from this...
9093 (grub_vbe_bios_get_memory_window): ... to this.
9094 (grub_vbe_set_scanline_length): Renamed from this...
9095 (grub_vbe_set_scanline_length): ... to this.
9096 (grub_vbe_get_scanline_length): Renamed from this...
9097 (grub_vbe_bios_get_scanline_length): ... to this.
9098 (grub_vbe_set_display_start): Renamed from this...
9099 (grub_vbe_bios_set_display_start): ... to this.
9100 (grub_vbe_get_display_start): Renamed from this...
9101 (grub_vbe_bios_get_display_start): ... to this.
9102 (grub_vbe_set_palette_data): Renamed from this...
9103 (grub_vbe_bios_set_palette_data): ... to this.
9104 (grub_vbe_bios_get_controller_info): Fixed problem with registers
9105 getting corrupted after calling it. Added more pushes and pops.
9106 (grub_vbe_bios_set_mode): Likewise.
9107 (grub_vbe_bios_get_mode): Likewise.
9108 (grub_vbe_bios_get_memory_window): Likewise.
9109 (grub_vbe_bios_set_scanline_length): Likewise.
9110 (grub_vbe_bios_get_scanline_length): Likewise.
9111 (grub_vbe_bios_get_display_start): Likewise.
9112 (grub_vbe_bios_set_palette_data): Likewise.
9113
9114 * normal/cmdline.c (cl_set_pos): Refresh the screen.
9115 (cl_insert): Likewise.
9116 (cl_delete): Likewise.
9117
9118 * term/gfxterm.c: New file.
9119
9120 * term/i386/pc/vesafb.c: Removed file.
9121
9122 * video/video.c: New file.
9123
9124 * video/i386/pc/vbe.c (real2pm): Added new function.
9125 (grub_video_vbe_draw_pixel): Likewise.
9126 (grub_video_vbe_get_video_ptr): Likewise.
9127 (grub_video_vbe_get_pixel): Likewise
9128 (grub_video_vbe_init): Likewise.
9129 (grub_video_vbe_fini): Likewise.
9130 (grub_video_vbe_setup): Likewise.
9131 (grub_video_vbe_get_info): Likewise.
9132 (grub_video_vbe_set_palette): Likewise.
9133 (grub_video_vbe_get_palette): Likewise.
9134 (grub_video_vbe_set_viewport): Likewise.
9135 (grub_video_vbe_get_viewport): Likewise.
9136 (grub_video_vbe_map_color): Likewise.
9137 (grub_video_vbe_map_rgb): Likewise.
9138 (grub_video_vbe_map_rgba): Likewise.
9139 (grub_video_vbe_unmap_color): Likewise.
9140 (grub_video_vbe_fill_rect): Likewise.
9141 (grub_video_vbe_blit_glyph): Likewise.
9142 (grub_video_vbe_blit_bitmap): Likewise.
9143 (grub_video_vbe_blit_render_target): Likewise.
9144 (grub_video_vbe_scroll): Likewise.
9145 (grub_video_vbe_swap_buffers): Likewise.
9146 (grub_video_vbe_create_render_target): Likewise.
9147 (grub_video_vbe_delete_render_target): Likewise.
9148 (grub_video_vbe_set_active_render_target): Likewise.
9149 (grub_vbe_set_pixel_rgb): Remove function.
9150 (grub_vbe_set_pixel_index): Likewise.
9151 (index_color_mode): Remove static variable.
9152 (active_mode): Likewise.
9153 (framebuffer): Likewise.
9154 (bytes_per_scan_line): Likewise.
9155 (grub_video_vbe_adapter): Added new static variable.
9156 (framebuffer): Likewise.
9157 (render_target): Likewise.
9158 (initial_mode): Likewise.
9159 (mode_in_use): Likewise.
9160 (mode_list): Likewise.
9161
5f97350b 91622006-03-10 Marco Gerards <marco@gnu.org>
9163
9164 * configure.ac (AC_INIT): Bumped to 1.93.
9165
9166 * DISTLIST: Added `include/grub/hfs.h'.
9167
a3c5c6f8 91682006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
9169
9170 * boot/i386/pc/boot.S (general_error): Before looping, try INT
9171 18H, which might help the BIOS falling back to next boot media.
9172
6de53d26 91732006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
9174
9175 * util/i386/pc/grub-install.in: Escape a backslash. Reported by
9176 Poe Chen <poe.poechen@gmail.com>.
9177
77c4a393 91782006-01-17 Marco Gerards <marco@gnu.org>
9179
9180 * include/grub/normal.h: Include <grub/script.h>.
9181 (grub_command_list): Removed struct.
9182 (grub_command_list_t): Removed type.
9183 (grub_menu_entry): Remove members `num' and `command_list'. Add
9184 members `commands' and `sourcecode'.
9185 * include/grub/script.h: Add inclusion guards.
9186 (grub_script_cmd_menuentry): New struct.
9187 (grub_script_execute_menuentry): New prototype.
9188 (grub_script_lexer_record_start): Likewise.
9189 (grub_script_lexer_record_stop): Likewise.
9190 * normal/execute.c (grub_script_execute_menuentry): New function.
9191 * normal/lexer.c (record, recording, recordpos, recordlen): New
9192 variables.
9193 (grub_script_lexer_record_start): New function.
9194 (grub_script_lexer_record_stop): Likewise.
9195 (recordchar): Likewise.
9196 (nextchar): Likewise.
9197 (grub_script_yylex): Use `nextchar' to fetch new characters. Use
9198 2048 as the buffer size. Add the tokens `menuentry' and `@'.
9199 * normal/main.c: Include <grub/parser.h> and <grub/script.h>
9200 (current_menu): New variable.
9201 (free_menu): Mainly rewritten.
9202 (grub_normal_menu_addentry): New function.
9203 (read_config_file): Rewritten.
9204 * normal/menu.c (run_menu_entry): Mainly rewritten.
fe987087 9205 * normal/menu_entry.c (make_screen): Rewritten the code to insert
77c4a393 9206 the menu entry.
9207 (run): Mainly rewritten.
9208 * normal/parser.y (menu_entry): New variable.
9209 (GRUB_PARSER_TOKEN_MENUENTRY): New token.
9210 (menuentry): New rule.
9211 (command): Add `menuentry'.
9212 (if_statement): Allow additional returns before `fi'.
9213 * normal/script.c (grub_script_create_cmdmenu): New function.
9214
144f1f98 92152006-01-03 Marco Gerards <marco@gnu.org>
9216
9217 * INSTALL: GNU Bison is required.
9218 * configure.ac: Rewritten the test to detect Bison.
9219 * Makefile.in (YACC): New variable. Reported by Xun Sun
9220 <xun.sun.cn@gmail.com>.
9221
af4b2d89 92222006-01-03 Marco Gerards <marco@gnu.org>
9223
9224 * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
9225 the HFS+ filesystem to filesystem blocks.
9226 (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
9227 GCC warning is silenced.
9228
15643b71 92292006-01-03 Marco Gerards <marco@gnu.org>
9230
9231 * partmap/apple.c (apple_partition_map_iterate): Convert the data
9232 read from disk from big endian to host byte order.
9233
00905879 92342006-01-03 Hollis Blanchard <hollis@penguinppc.org>
9235
9236 * fs/hfs.c: Include <grub/hfs.h>. Added reference to the official
9237 documentation.
9238 (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
9239 (grub_hfs_mount): Grammar fix in error. Make sure this is not an
9240 embedded HFS+ filesystem.
9241 (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
9242 (grub_hfs_sblock): Move from here...
9243 * include/grub/hfs.h: To here... New file.
9244 * fs/hfsplus.c: Include <grub/hfs.h>. Added reference to the official
9245 documentation.
9246 (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
9247 New macros.
9248 (grub_hfsplus_volheader): Change type of member `magic' to
9249 `grub_uint16_t'.
9250 (grub_hfsplus_data): Add new member `embedded_offset'.
9251 (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
9252 returned block.
9253 (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
9254 Calculate the offset.
9255
8899bc3e 92562005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
9257
9258 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
9259 Removed.
9260 (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
9261
ae8c0277 92622005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
9263
9264 * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
9265 ENV->NAME is NULL after allocating ENV->VALUE.
9266
07084456 92672005-12-25 Marco Gerards <marco@gnu.org>
9268
9269 * kern/env.c (grub_env_set): Rewritten the error handling code.
9270
4750f5f1 92712005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
9272
9273 * geninit.sh: Made more robust, and more portable.
9274
50214199 92752005-12-25 Marco Gerards <marco@gnu.org>
9276
9277 Add support for Apple HFS+ filesystems.
f19dbdb7 9278
50214199 9279 * fs/hfsplus.c: New file.
9280
9281 * DISTLIST: Added `fs/hfsplus.c'.
9282
9283 * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
9284 (hfsplus_mod_SOURCES): New variable.
9285 (hfsplus_mod_CFLAGS): Likewise.
9286 (hfsplus_mod_LDFLAGS): Likewise.
9287 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
9288 (grub_setup_SOURCES): Likewise.
9289 (grub_mkdevicemap_SOURCES): Likewise.
9290 (grub_emu_SOURCES): Likewise.
9291 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
9292
9293 * fs/fshelp.c (grub_fshelp_log2blksize): New function.
9294
9295 * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
9296
befaed6c 92972005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
9298
9299 * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
9300 commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
9301 include/grub/parser.h, include/grub/script.h, kern/parser.c,
9302 kern/sparc64/cache.S, normal/execute.c, normal/function.c,
9303 normal/lexer.c, normal/parser.y, normal/script.c, and
9304 partmap/gpt.c.
9305 Removed kern/sparc64/cache.c.
9306
9307 * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
9308 grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
9309 grub_emu_init.c.
9310
9311 * configure.ac (AC_INIT): Bumped to 1.92.
9312
6a124103 93132005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
9314
9315 * kern/err.c (grub_error_push): Added new function to support error
9316 stacks.
9317 (grub_error_pop): Likewise.
9318 (grub_error_stack_items): New local variable to support error stacks.
9319 (grub_error_stack_pos): Likewise.
9320 (grub_error_stack_assert): Likewise.
9321 (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
9322 stack depth.
9323 (grub_print_error): Added support to print errors from error stack.
9324
9325 * include/grub/err.h (grub_error_push): Added function prototype.
9326 (grub_error_pop): Likewise.
9327
be973c1b 93282005-12-09 Hollis Blanchard <hollis@penguinppc.org>
9329
9330 * configure.ac: Accept `powerpc64' as host_cpu.
9331 (amd64): Rename to `biarch32'.
9332
9333 * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
9334 non-cacheline-aligned addresses.
9335
9336 * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
9337 (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
9338 if `size' is non-zero.
9339
b04216ab 93402005-12-03 Marco Gerards <mgerards@xs4all.nl>
9341
9342 * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
9343 and `cd' to make sure the filename is not prefixed with a
9344 directory name.
9345 (pkgdata_MODULES): Add `gpt.mod'.
9346 (gpt_mod_SOURCES): New variable.
9347 (gpt_mod_CFLAGS): Likewise.
9348 (gpt_mod_LDFLAGS): Likewise.
9349
9350 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
9351
9352 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
9353 New macro.
9354
9355 * partmap/gpt.c: New file.
9356
9357 * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
9358 GPT partition map is detected.
9359
41730ed9 93602005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
9361
9362 * commands/i386/pc/play.c: New file.
9363 * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
9364 (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
9365 macros.
f19dbdb7 9366
95dc3643 93672005-11-27 Marco Gerards <mgerards@xs4all.nl>
9368
9369 * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
9370 ((unused))' to silence gcc warning.
9371
1569ec51 93722005-11-26 Hollis Blanchard <hollis@penguinppc.org>
9373
9374 * configure.ac: Correct `AC_PROG_YACC' test.
9375
9abde152 93762005-11-22 Hollis Blanchard <hollis@penguinppc.org>
9377
9378 * util/powerpc/ieee1275/grub-install.in: Run the mount point
9379 check before installing files.
9380
44b83271 93812005-11-22 Mike Small <smallm@panix.com>
9382
9383 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
9384 number regex so multidigit numbers are recognized correctly.
9385
93862005-11-22 Mike Small <smallm@panix.com>
9387
9388 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
9389 debugging message before attempting to claim memory.
9390 (grub_rescue_cmd_initrd): Add a claim debugging message and try
9391 multiple addresses in case of failure.
9392
9c12956b 93932005-11-22 Hollis Blanchard <hollis@penguinppc.org>
9394
9395 * term/tparm.c (get_space): Remove empty `if' statement.
9396
9397 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
9398
9399 * kern/parser.c (check_varstate): Rename `state' to 's'.
9400
aeaf81d9 94012005-11-22 Hollis Blanchard <hollis@penguinppc.org>
9402
9403 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
9404 variable definitions to the beginning of each function. Sort stack
9405 variables by size.
9406 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
9407 `buf' argument to `char *'.
9408
79bbb63f 94092005-11-22 Hollis Blanchard <hollis@penguinppc.org>
9410
9411 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
9412 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 9413 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
79bbb63f 9414 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
9415 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
9416 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
9417 configfile.mod, search.mod, gzio.mod and test.mod.
9418 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
9419 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
9420 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
9421 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
9422 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
9423 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
9424 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
9425 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
9426 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
9427 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
9428 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
9429 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
9430 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
9431 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
9432 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
9433 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
9434 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
9435 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
9436 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
9437 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
9438 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
9439 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
9440 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
9441
9442 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
9443 `grep --include'.
9444 (pkgdata_MODULES): Add test.mod.
9445
233b1628 94462005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
9447
9448 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
9449 appending to variables with "+=".
9450 (PModule): Use full pathname to generate *.lst filenames.
9451
9452 * Makefile.in: Fixed list rules moved from genmk.rb.
9453 (.DELETE_ON_ERROR): New special target.
9454 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
9455
9456 * conf/i386-pc.rmk: Include conf/common.mk.
9457 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 9458 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
233b1628 9459 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
9460 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
9461 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
9462 configfile.mod, search.mod, gzio.mod and test.mod.
9463 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
9464 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
9465 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
9466 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
9467 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
9468 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
9469 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
9470 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
9471 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
9472 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
9473 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
9474 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
9475 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
9476 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
9477 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
9478 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
9479 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
9480 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
9481 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
9482 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
9483 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
9484 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
9485 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
9486 here...
9487 * conf/common.rmk: ... to here. New file.
9488
9489 * conf/common.mk: New file.
9490
16f820c8 94912005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
9492
9493 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
9494 (grub_script.tab.c): ... here.
9495
9496 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
9497 (grub_script.tab.c): ... here.
9498
9499 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
9500 (grub_script.tab.c): ... here.
9501
9502 * normal/command.c (grub_command_find): Fixed a memory leak of
9503 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
9504
63ba1554 95052005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
9506
9507 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
9508 "@" which marks the start of a comment on ARM.
9509 (VARIABLE): Likewise.
9510
7f67dc13 95112005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
9512
79bbb63f 9513 Add support for Linux/ADFS partition tables.
7f67dc13 9514
9515 * partmap/acorn.c: New file.
9516
9517 * include/grub/acorn_filecore.h: Likewise.
9518
9519 * DISTLIST: Added `partmap/acorn.c' and
9520 `include/grub/acorn_filecore.h'.
f19dbdb7 9521
7f67dc13 9522 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
9523 `partmap/acorn.c'.
9524 (pkgdata_MODULES): Add `acorn.mod'.
9525 (acorn_mod_SOURCES): New variable.
9526 (acorn_mod_CFLAGS): Likewise.
9527
9528 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
9529 `partmap/acorn.c'.
9530 (pkgdata_MODULES): Add `acorn.mod'.
9531 (acorn_mod_SOURCES): New variable.
9532 (acorn_mod_CFLAGS): Likewise.
9533
9534 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
9535 (pkgdata_MODULES): Add `acorn.mod'.
9536 (acorn_mod_SOURCES): New variable.
9537 (acorn_mod_CFLAGS): Likewise.
9538 (acorn_mod_LDFLAGS): Likewise.
9539
9540 * include/types.h (grub_disk_addr_t): New typedef.
9541
6d099807 95422005-11-13 Marco Gerards <mgerards@xs4all.nl>
9543
9544 * geninit.sh: New file.
9545
9546 * geninitheader.sh: Likewise.
9547
9548 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
9549 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
9550 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
9551 * commands/configfile.c (grub_configfile_init)
9552 (grub_configfile_fini): Likewise.
9553 * commands/default.c (grub_default_init, grub_default_fini):
9554 Likewise.
9555 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
9556 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
9557 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
9558 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
9559 Likewise.
9560 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
9561 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
9562 Likewise.
9563 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
fe6b695a 9564 * commands/ieee1275/halt.c (grub_halt_init, grub_halt_fini):
6d099807 9565 Likewise.
9566 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
9567 Likewise.
fe6b695a 9568 * commands/ieee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
6d099807 9569 Likewise.
9570 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
9571 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
9572 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
9573 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
9574 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
9575 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
9576 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
9577 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
9578 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
9579 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
9580 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
9581 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
9582 * partmap/amiga.c (grub_amiga_partition_map_init)
9583 (grub_amiga_partition_map_fini): Likewise.
9584 * partmap/apple.c (grub_apple_partition_map_init)
9585 (grub_apple_partition_map_fini): Likewise.
9586 * partmap/pc.c (grub_pc_partition_map_init)
9587 (grub_pc_partition_map_fini): Likewise.
9588 * partmap/sun.c (grub_sun_partition_map_init,
9589 grub_sun_partition_map_fini): Likewise.
9590 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
9591 Likewise.
9592
9593 * util/grub-emu.c: Include <grub_modules_init.h>.
9594 (main): Don't initialize and de-initialize any modules directly,
9595 use `grub_init_all' and `grub_fini_all' instead.
9596
9597 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
9598 `grub_vesafb_mod_init'.
9599 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
9600 all users.
9601 * term/i386/pc/vga.c (grub_vga_init): Renamed to
9602 `grub_vga_mod_init'. Updated all users.
9603 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
f19dbdb7 9604
6d099807 9605 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
9606 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
9607 rules.
9608
9609 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
9610 Generate a function to initialize the module in utilities.
9611 Updated all callers.
9612 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
9613 initialize the module in utilities. Updated all callers.
9614
9046bcf0 96152005-11-09 Hollis Blanchard <hollis@penguinppc.org>
9616
9617 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
9618 escape sequence and a literal ^L to clear the screen.
9619
9620 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
9621 when returning from Open Firmware.
9622
d13ea639 96232005-11-09 Hollis Blanchard <hollis@penguinppc.org>
9624
9625 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
9626 (grub_ofconsole_height): Likewise.
9627 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
9628 manually insert a '\n'.
9629 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
9630 `grub_ofconsole_height'. Return early if these are already set.
9631
a8fcf206 96322005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
9633
9634 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
9635 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
9636 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
9637 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
9638 and `normal/script.c'.
9639 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
9640 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
9641 (test_mod_SOURCES): New variable.
9642 (test_mod_CFLAGS): Likewise.
9643 (test_mod_LDFLAGS): Likewise.
9644 (pkgdata_MODULES): Add `test.mod'.
9645 (grub_script.tab.c): New rule.
9646 (grub_script.tab.h): Likewise.
9647
b6b32745 96482005-11-07 Marco Gerards <mgerards@xs4all.nl>
9649
9650 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
9651 `commands/test.c', `normal/execute.c', `normal/lexer.c',
9652 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
9653 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
9654 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
9655 (test_mod_SOURCES): New variable.
9656 (test_mod_CFLAGS): Likewise.
9657 (pkgdata_MODULES): Add `test.mod'.
9658 (grub_script.tab.c): New rule.
9659 (grub_script.tab.h): Likewise.
9660
daac212a 96612005-11-06 Marco Gerards <mgerards@xs4all.nl>
9662
9663 Add initial scripting support.
9664
9665 * commands/test.c: New file.
9666 * include/grub/script.h: Likewise.
9667 * normal/execute.c: Likewise.
9668 * normal/function.c: Likewise.
9669 * normal/lexer.c: Likewise.
9670 * normal/parser.y: Likewise.
9671 * normal/script.c: Likewise.
9672
9673 * configure.ac: Add `AC_PROG_YACC' test.
f19dbdb7 9674
daac212a 9675 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
9676 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
9677 `normal/function.c' and `normal/script.c'.
9678 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
9679 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
b6b32745 9680 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
9681 variables.
daac212a 9682 (pkgdata_MODULES): Add `test.mod'.
9683 (grub_script.tab.c): New rule.
9684 (grub_script.tab.h): Likewise.
9685
9686 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
9687
9688 * include/grub/normal.h (grub_test_init): New prototype.
9689 (grub_test_fini): Likewise.
f19dbdb7 9690
daac212a 9691 * normal/command.c: Include <grub/script.h>.
9692 (grub_command_execute): Rewritten.
f19dbdb7 9693
daac212a 9694 * util/grub-emu.c (main): Call `grub_test_init' and
9695 `grub_test_fini'.
9696
77500b2b 96972005-11-03 Hollis Blanchard <hollis@penguinppc.org>
9698
9699 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
9700 to 0.
9701 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
9702 there are no pending characters.
9703
e45deb9e 97042005-11-03 Hollis Blanchard <hollis@penguinppc.org>
9705
9706 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
9707 `grub_strndup' to drop device arguments. Replace unnecessary
9708 `grub_strndup' with `grub_strdup'.
9709
4ce32619 97102005-11-03 Hollis Blanchard <hollis@penguinppc.org>
9711
9712 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
9713 `debug' environment variable has been set.
9714
97152005-11-02 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 9716
4ce32619 9717 * Makefile.in (install-local): Use $(DATA).
9718 (uninstall): Likewise.
9719 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
9720 (sbin_UTILITIES): ... to here.
9721 (sbin_SCRIPTS): New variable.
9722 (grub_install_SOURCES): New variable.
9723 * util/powerpc/ieee1275/grub-install.in: New file.
9724 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
9725 variable.
9726 (add_segments): Call `grub_util_get_path'.
9727
25fe6f03 97282005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
9729
9730 From Timothy Baldwin:
9731 * commands/ls.c (grub_ls_list_files): Close FILE with
9732 grub_file_close.
9733 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
9734
04ccf3ec 97352005-10-24 Marco Gerards <mgerards@xs4all.nl>
9736
9737 * include/grub/parser.h: New file.
9738
9739 * kern/parser.c: Likewise.
9740
9741 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
9742 (grub_setup_SOURCES): Likewise.
9743 (grub_probefs_SOURCES): Likewise.
9744 (grub_emu_SOURCES): Likewise.
9745 (kernel_img_HEADERS): Add `parser.h'.
9746
9747 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
9748 (grub_emu_SOURCES): Add `kern/parser.c'.
9749 (grubof_SOURCES): Likewise.
9750
9751 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
9752 (grubof_SOURCES): Add `kern/parser.c'.
9753
9754 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
9755
9756 * kern/misc.c (grub_split_cmdline): Removed function.
9757
9758 * kern/rescue.c: Include <grub/parser.h>.
9759 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
9760 of `grub_split_cmdline'.
9761
9762 * normal/command.c: Include <grub/parser.h>.
9763 (grub_command_execute): Use `grub_parser_split_cmdline' instead
9764 of `grub_split_cmdline'.
9765
9766 * normal/completion.c: Include <grub/parser.h>.
9767 (cmdline_state): New variable.
9768 (iterate_dir): End the filename with a quote depending on the
9769 command line state.
9770 (get_state): new function.
9771 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
9772 split the arguments and determine the current argument. When the
9773 argument string is not quoted, escape all spaces.
9774
6d8f4b0e 97752005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
9776
9777 * normal/sparc64/setjmp.S: New file.
9778
15cf03ed 97792005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
9780
9781 * include/grub/sparc64/libgcc.h: New file.
9782 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
9783 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
9784 normal/sparc64/setjmp.c.
9785
03e8661a 97862005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
9787
9788 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
9789 * kern/sparc64/cache.S: New file.
9790 * kern/sparc64/cache.c: Removed.
9791 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
9792 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
9793 -mtune=ultrasparc.
9794 (COMMON_LDFLAGS): Add -melf64_sparc.
9795 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
9796 (grubof_SOURCES): Use cache.S instead of cache.c.
9797 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
9798 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
9799 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
9800 commented though.
9801 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
9802 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
9803 (linux_mod_CFLAGS): Commented out.
9804 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
9805 out because module isn't built.
9806 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
9807 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
9808 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
9809 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
9810 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
9811 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
9812 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
9813 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
9814 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
9815 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
9816 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
9817 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
9818 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
9819 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
9820
34eeec8a 98212005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
9822
9823 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
9824 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
9825 longer, because HFS should not be used on PC.
9826
708367a3 98272005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
9828
9829 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
9830 consistently within the loop.
9831
6fa1251a 98322005-10-15 Marco Gerards <mgerards@xs4all.nl>
9833
9834 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
9835 directory can not be read.
9836
4801580b 98372005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
9838
9839 * configure.ac (AC_INIT): Increase the version number to 1.91.
9840
9841 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
9842 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
9843 term/i386/pc/serial.c.
9844
219ad426 98452005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
9846
9847 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
9848 file size must be permitted.
9849
9850 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
9851 between %ah and %al.
9852
688e5699 98532005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
9854
9855 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
9856 grub_uint64_t.
9857 Call the hook with a NUL-terminated filename.
9858 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
9859 grub_cpu_to_be32.
9860
9861 * kern/term.c (cursor_state): New variable.
9862 (grub_term_set_current): Reset the cursor state on a new
9863 terminal.
9864 (grub_setcursor): Rewritten to use CURSOR_STATE.
9865 (grub_getcursor): New function.
9866
9867 * include/grub/term.h (grub_getcursor): New prototype.
9868
9869 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
9870 integers on ARM. Reported by Timothy Baldwin
9871 <T.E.Baldwin99@members.leeds.ac.uk>.
9872
bb34586c 98732005-10-11 Marco Gerards <mgerards@xs4all.nl>
9874
9875 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
9876 allocated.
9877 (grub_sfs_dir): Likewise.
9878
9a909877 98792005-10-09 Marco Gerards <mgerards@xs4all.nl>
9880
9881 Add support for the SFS filesystem.
9882
9883 * fs/sfs.c: New file.
9884
9885 * DISTLIST: Added `fs/sfs.c'.
9886
9887 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
9888 (grub_probefs_SOURCES): Likewise.
9889 (grub_emu_SOURCES): Likewise.
9890 (pkgdata_MODULES): Add `sfs.mod'.
9891 (sfs_mod_SOURCES): New variable.
9892 (sfs_mod_CFLAGS): Likewise.
9893 (sfs_mod_LDFLAGS): Likewise.
9894
9895 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
9896 (pkgdata_MODULES): Add `sfs.mod'.
9897 (sfs_mod_SOURCES): New variable.
9898 (sfs_mod_CFLAGS): Likewise.
9899
9900 * util/grub-emu.c (main): Call `grub_sfs_init' and
9901 `grub_sfs_fini'.
9902
9903 * include/grub/fs.h (grub_sfs_init): New prototype.
9904 (grub_sfs_fini): Likewise.
9905
57bdbde3 99062005-10-07 Marco Gerards <mgerards@xs4all.nl>
9907
9908 Add support for the AFFS filesystem.
9909
9910 * fs/affs.c: New file.
9911
9912 * DISTLIST: Added `fs/affs.c'.
9913
9914 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
9915 (grub_probefs_SOURCES): Likewise.
9916 (grub_emu_SOURCES): Likewise.
9917 (pkgdata_MODULES): Add `affs.mod'.
9918 (affs_mod_SOURCES): New variable.
9919 (affs_mod_CFLAGS): Likewise.
9920 (affs_mod_LDFLAGS): Likewise.
9921
9922 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
9923 (pkgdata_MODULES): Add `affs.mod'.
9924 (affs_mod_SOURCES): New variable.
9925 (affs_mod_CFLAGS): Likewise.
9926
9927 * util/grub-emu.c (main): Call `grub_affs_init' and
9928 `grub_affs_fini'.
9929
9930 * include/grub/fs.h (grub_affs_init): New prototype.
9931 (grub_affs_fini): Likewise.
9932
047b67e0 99332005-10-01 Marco Gerards <mgerards@xs4all.nl>
9934
9935 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
9936
59b8208a 99372005-10-01 Marco Gerards <mgerards@xs4all.nl>
9938
9939 * configure.ac: Accept `x86_64' as host_cpu. In that case add
9940 `-m32' to CFLAGS.
9941
9942 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
9943 linking.
f19dbdb7 9944
59b8208a 9945 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
9946 (COMMON_LDFLAGS): New variable.
9947 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
9948 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
9949 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
9950 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
9951 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
9952 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
9953 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
9954 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
9955 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
9956 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
9957 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
9958 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
9959 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
9960 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
9961 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
9962 variables.
9963 (normal_mod_ASFLAGS): Add `-m32'.
9964
9965 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
9966 (grub_host_size_t, grub_host_ssize_t): New types.
9967 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
fe6b695a 9968 dependent of `GRUB_CPU_SIZEOF_VOID_P' instead on
59b8208a 9969 `GRUB_HOST_SIZEOF_VOID_P'.
9970
9971 * include/grub/kernel.h (struct grub_module_header): Type of
9972 member offset changed to `grub_host_off_t'. Type of member size
9973 changed to `grub_host_size_t'.
9974 (struct grub_module_info): Type of member offset changed to
9975 `grub_host_off_t'. Type of member size changed to
9976 `grub_host_size_t'.
9977
b4093103 99782005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
9979
9980 Make GRUB's kernel compliant to Multiboot Specification.
f19dbdb7 9981
b4093103 9982 * kern/i386/pc/startup.S (multiboot_header): New label.
9983 (multiboot_entry): Likewise.
9984 (multiboot_trampoline): Likewise.
9985
9986 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
9987 Increased to 0x4A0.
9988
9989 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
9990 put parentheses after a question mark.
9991 [!GRUB_UTIL] (my_mod): New variable.
9992
9993 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
9994
b2499b29 99952005-09-28 Marco Gerards <mgerards@xs4all.nl>
9996
9997 Adds support for the XFS filesystem. Btrees are not supported
9998 yet.
9999
10000 * fs/xfs.c: New file.
10001
10002 * DISTLIST: Added `fs/xfs.c'.
10003
10004 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
10005 (grub_probefs_SOURCES): Likewise.
10006 (grub_emu_SOURCES): Likewise.
10007 (pkgdata_MODULES): Add `xfs.mod'.
10008 (xfs_mod_SOURCES): New variable.
10009 (xfs_mod_CFLAGS): Likewise.
10010
10011 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
10012 (pkgdata_MODULES): Add `xfs.mod'.
10013 (xfs_mod_SOURCES): New variable.
10014 (xfs_mod_CFLAGS): Likewise.
10015
10016 * util/grub-emu.c (main): Call `grub_xfs_init' and
10017 `grub_xfs_fini'.
10018
10019 * include/grub/fs.h (grub_xfs_init): New prototype.
10020 (grub_xfs_fini): Likewise.
10021
f19dbdb7 10022
83d37a62 100232005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
10024
10025 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
10026 color modes, allow greater than 16 colors to be configured as
10027 a default palette.
10028
47d2d65e 100292005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
10030
10031 * normal/completion.c (complete_arguments): Add the qualifier
10032 const into OPTIONS.
10033
10034 From Omniflux <omniflux+lists@omniflux.com>:
10035 * include/grub/terminfo.h: New file.
10036 * include/grub/tparm.h: Likewise.
10037 * include/grub/i386/pc/serial.h: Likewise.
10038 * term/terminfo.c: Likewise.
10039 * term/tparm.c: Likewise.
10040 * term/i386/pc/serial.c: Likewise.
10041 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
10042 serial.mod.
10043 (terminfo_mod_SOURCES): New variable.
10044 (terminfo_mod_CFLAGS): Likewise.
10045 (serial_mod_SOURCES): Likewise.
10046 (serial_mod_CFLAGS): Likewise.
10047
48b671ff 100482005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
10049
10050 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
10051 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
10052 and kern/powerpc/ieee1275/cmain.c, respectively.
10053
10054 * boot/powerpc/ieee1275/crt0.S: Moved to ...
10055 * kern/powerpc/ieee1275/crt0.S: ... here.
10056
10057 * boot/powerpc/ieee1275/cmain.c: Moved to ...
10058 * kern/powerpc/ieee1275/cmain.c: ... here.
f19dbdb7 10059
48b671ff 10060 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
10061 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
10062 instead of boot/powerpc/ieee1275/crt0.S and
10063 boot/powerpc/ieee1275/cmain.c, respectively.
10064
10065 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
10066 sectors. It was not used anyway.
10067
09fc77a7 100682005-08-30 Hollis Blanchard <hollis@penguinppc.org>
10069
10070 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
10071 `unused parameter' warning.
10072
003789c7 100732005-08-30 Hollis Blanchard <hollis@penguinppc.org>
10074
10075 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
10076 function.
10077 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
10078 getcharwidth.
10079
67f44c86 100802005-08-28 Marco Gerards <metgerards@student.han.nl>
10081
10082 * include/grub/normal.h (enum grub_completion_type): Added
10083 `GRUB_COMPLETION_TYPE_ARGUMENT'.
10084
10085 * normal/cmdline.c (print_completion): Handle
10086 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
10087 * normal/menu_entry.c (store_completion): Likewise.
10088
10089 * normal/completion.c (complete_arguments): New function.
10090 (grub_normal_do_completion): Call `complete_arguments' when the
10091 current words start with a dash.
10092
0b5abe02 100932005-08-27 Marco Gerards <metgerards@student.han.nl>
10094
10095 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
10096 `gzio.mod' instead of `io.mod').
10097
d9864ee1 100982005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
10099
10100 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
10101 (DISTDIRS): Added io and video.
10102 Rewrite the search routine to make an output consistently.
10103
10104 * DISTLIST: Added conf/sparc64-ieee1275.mk,
10105 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
10106 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
10107 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
10108 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
10109 util/powerpc/ieee1275/misc.c.
f19dbdb7 10110
d9864ee1 10111 * include/grub/gzio.h: New file.
10112 * io/gzio.c: Likewise.
f19dbdb7 10113
d9864ee1 10114 * kern/file.c (grub_file_close): Call grub_device_close only if
10115 FILE->DEVICE is not NULL.
10116
10117 * include/grub/mm.h [!NULL] (NULL): New macro.
10118
10119 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
10120
10121 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
10122 (pkgdata_MODULES): Added gzio.mod.
10123 (gzio_mod_SOURCES): New variable.
10124 (gzio_mod_CFLAGS): Likewise.
10125
10126 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
10127 (pkgdata_MODULES): Added gzio.mod.
10128 (gzio_mod_SOURCES): New variable.
10129 (gzio_mod_CFLAGS): Likewise.
10130
10131 * commands/cat.c: Include grub/gzio.h.
10132 (grub_cmd_cat): Use grub_gzfile_open instead of
10133 grub_file_open.
f19dbdb7 10134
d9864ee1 10135 * commands/cmp.c: Include grub/gzio.h.
10136 (grub_cmd_cmp): Use grub_gzfile_open instead of
10137 grub_file_open.
10138
10139 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
10140 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
10141 grub_file_open.
10142 (grub_rescue_cmd_module): Likewise.
10143
fa46f4b5 101442005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
10145
10146 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
10147 kern/sparc64/ieee1275/init.c because it contains _start.
10148 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
10149
e9211b5d 101502005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
10151
10152 * configure.ac: Add support for sparc64 host with ieee1275
10153 firmware.
10154 * configure: Generated from configure.ac.
10155 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
10156 instead of int.
10157 (grub_ofdisk_read): Likewise.
10158 (grub_ofdisk_open): Use %p to print pointer values, and cast the
10159 pointers as (void *) to remove a warning.
10160 (grub_ofdisk_close): Likewise.
10161 (grub_ofdisk_read): Likewise.
10162 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
10163 returns, so make it return void to remove a warning.
10164 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
10165 Corresponding prototype change.
10166 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
10167 values, and cast the pointers as (void *) to remove a warning.
10168 (grub_mm_dump): Likewise.
10169 * conf/sparc64-ieee1275.mk: New file.
10170 * conf/sparc64-ieee1275.rmk: Likewise.
10171 * include/grub/sparc64/setjmp.h: Likewise.
10172 * include/grub/sparc64/types.h: Likewise.
10173 * include/grub/sparc64/ieee1275/console.h: Likewise.
10174 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
10175 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
10176 * include/grub/sparc64/ieee1275/time.h: Likewise.
10177 * kern/sparc64/cache.c: Likewise.
10178 * kern/sparc64/dl.c: Likewise.
10179 * kern/sparc64/ieee1275/init.c: Likewise.
10180 * kern/sparc64/ieee1275/openfw.c: Likewise.
10181
385c6a92 101822005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
10183
10184 * util/console.c (grub_ncurses_putchar): If C is greater than
10185 0x7f, set C to a question mark.
10186 (grub_ncurses_getcharwidth): New function.
10187 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
10188 getcharwidth.
10189
10190 * normal/menu.c (print_entry): Made aware of Unicode. First,
10191 convert TITLE to UCS-4, and predict the cursor position by
10192 grub_getcharwidth.
10193
10194 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
10195 const to SRC.
10196 * kern/misc.c (grub_utf16_to_utf8): Likewise.
10197
16ccb8b1 101982005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
10199
10200 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
10201 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
10202 grub_strcat.
10203
10204 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
10205 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
10206 grub_strcpy and grub_strlen. Take it into account that a space
10207 character is inserted as a delimiter.
10208
6a85ce79 102092005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
10210
10211 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
fe6b695a 10212 invalid magic in the error.
6a85ce79 10213
10214 * commands/search.c: New file.
f19dbdb7 10215
6a85ce79 10216 * util/grub-emu.c (main): Call grub_search_init and
10217 grub_search_fini.
10218
10219 * kern/rescue.c (grub_rescue_print_disks): Removed.
10220 (grub_rescue_print_devices): New function.
10221 (grub_rescue_cmd_ls): Use grub_device_iterate with
10222 grub_rescue_print_devices instead of grub_disk_dev_iterate with
10223 grub_rescue_print_disks.
10224
10225 * kern/partition.c (grub_partition_iterate): Return the result of
10226 PARTMAP->ITERATE instead of GRUB_ERRNO.
10227
10228 * kern/device.c: Include grub/partition.h.
10229 (grub_device_iterate): New function.
10230
10231 * include/grub/partition.h (grub_partition_iterate): Return int
10232 instead of grub_err_t.
10233
10234 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
10235 prototype.
10236 [GRUB_UTIL] (grub_search_fini): Likewise.
10237
10238 * include/grub/device.h (grub_device_iterate): New prototype.
10239
10240 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
10241 commands/search.c.
10242 (pkgdata_MODULES): Added search.mod.
10243 (search_mod_SOURCES): New variable.
10244 (search_mod_CFLAGS): Likewise.
10245
10246 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
10247 (pkgdata_MODULES): Added search.mod.
10248 (search_mod_SOURCES): New variable.
10249 (search_mod_CFLAGS): Likewise.
10250
10251 * commands/ls.c (grub_ls_list_disks): Renamed to ...
10252 (grub_ls_list_devices): ... this, and use grub_device_iterate.
10253 All callers changed.
10254
10255 * DISTLIST: Added commands/search.c.
10256
ef095434 102572005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
10258
10259 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
10260 conversion.
10261 (grub_getcharwidth): New function.
10262
10263 * kern/misc.c (grub_utf8_to_ucs4): New function.
10264
10265 * include/grub/term.h (struct grub_term): Added a new member
10266 "getcharwidth".
10267 (grub_getcharwidth): New prototype.
10268
10269 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
10270
10271 * term/i386/pc/console.c (map_char): New function. Segregated from
10272 grub_console_putchar.
10273 (grub_console_putchar): Use map_char.
10274 (grub_console_getcharwidth): New function.
10275 (grub_console_term): Specified grub_console_getcharwidth as
10276 getcharwidth.
10277
10278 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
10279 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
10280
10281 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
10282 GRUB_ERRNO.
10283 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
10284 on grub_strtoul completely.
10285 (write_char): Declare local variables in the beginning of the
10286 function.
10287 (grub_vesafb_getcharwidth): New function.
10288 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
10289 getcharwidth.
10290
1f0a95e4 102912005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
10292
10293 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
10294 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
10295 commands/i386/pc/vbetest.c.
10296
10297 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
10298 call grub_vbe_get_controller_info again, because the returned
10299 information is volatile.
10300 (grub_vbe_set_video_mode): Mostly rewritten.
10301 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
10302 grub_vbe_status_t correctly.
10303 (grub_vbe_get_video_mode_info): Likewise.
10304 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
10305 several if statements.
10306
10307 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
10308 * commands/i386/pc/vbeinfo.c: ... this.
10309
10310 * commands/i386/pc/vbe_test.c: Renamed to ...
10311 * commands/i386/pc/vbetest.c: ... this.
10312
10313 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
10314 ...
10315 (grub_cmd_vbeinfo): ... this. Save video modes before
10316 iterating. Skip a video mode, if it is not available, not enough
10317 information is given or it is monochrome. Show the memory
10318 model. Leave the interpretation of MODEVAR to grub_strtoul
10319 completely.
10320 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
10321 (GRUB_MOD_FINI): Likewise.
10322
10323 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
10324 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
10325 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
10326 duplicated grub_env_get. Leave the interpretation of MODEVAR to
10327 grub_strtoul completely.
10328 (real2pm): Removed.
10329 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
10330 (GRUB_MOD_FINI): Likewise.
10331
10332 * normal/misc.c: Include grub/mm.h.
10333
10334 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
10335 vbe_list_modes with vbetest.mod and vbeinfo.mod.
10336 (vbe_list_modes_mod_SOURCES): Removed.
10337 (vbe_list_modes_mod_CFLAGS): Likewise.
10338 (vbe_test_mod_SOURCES): Likewise.
10339 (vbe_test_mod_CFLAGS): Likewise.
10340 (vbeinfo_mod_SOURCES): New variable.
10341 (vbeinfo_mod_CFLAGS): Likewise.
10342 (vbetest_mod_SOURCES): Likewise.
10343 (vbetest_mod_CFLAGS): Likewise.
10344
992ffbbe 103452005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
10346
10347 * normal/misc.c: New file.
10348
10349 * DISTLIST: Added normal/misc.c.
f19dbdb7 10350
992ffbbe 10351 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
10352 DISK to HOOK. Call HOOK with DISK.
10353 * partmap/apple.c (apple_partition_map_iterate): Likewise.
10354 * partmap/pc.c (pc_partition_map_iterate): Likewise.
10355 * partmap/sun.c (sun_partition_map_iterate): Likewise.
10356
10357 * normal/menu_entry.c (struct screen): Added a new member
10358 "completion_shown".
10359 (completion_buffer): New global variable.
10360 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
10361 (store_completion): New function.
10362 (complete): Likewise.
10363 (clear_completions): Likewise.
10364 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
10365 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
10366 a tab, call complete.
10367
10368 * normal/completion.c (disk_dev): Removed.
10369 (print_simple_completion): Likewise.
10370 (print_partition_completion): Likewise.
10371 (print_func): New global variable.
10372 (add_completion): Do not take the arguments WHAT or PRINT any
10373 longer. Added a new argument TYPE. Instead of printing directly,
10374 call PRINT_FUNC if not NULL.
10375 All callers changed.
10376 (complete_device): Use a local variable DEV instead of
10377 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
10378 (grub_normal_do_completion): Take a new argument HOOK. Do not
10379 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
10380 empty string, return NULL instead.
10381 All callers changed.
10382
10383 * normal/cmdline.c (print_completion): New function.
10384
10385 * kern/partition.c (grub_partition_iterate): Add an argument DISK
10386 to HOOK.
10387 All callers changed.
10388
10389 * kern/disk.c (grub_print_partinfo): Removed.
10390
10391 * include/grub/partition.h (struct grub_partition_map): Add a new
10392 argument DISK into HOOK of ITERATE.
10393 (grub_partition_iterate): Add a new argument DISK to HOOK.
10394
10395 * include/grub/normal.h (enum grub_completion_type): New enum.
10396 (grub_completion_type_t): New type.
10397 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
10398 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
10399 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
10400 (GRUB_COMPLETION_TYPE_FILE): Likewise.
10401 (grub_normal_do_completion): Added a new argument HOOK.
10402 (grub_normal_print_device_info): New prototype.
10403
10404 * include/grub/disk.h (grub_print_partinfo): Removed.
10405
10406 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
10407 (normal_mod_SOURCES): Likewise.
10408 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
10409 (normal_mod_SOURCES): Likewise.
10410
10411 * commands/ls.c (grub_ls_list_disks): Use
10412 grub_normal_print_device_info instead of grub_print_partinfo. Free
10413 PNAME.
10414 (grub_ls_list_files): Use grub_normal_print_device_info instead of
10415 duplicating the code.
10416
0bd41162 104172005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
10418
10419 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
f19dbdb7 10420 follow GCS more precisely.
10421 * commands/i386/pc/vbe_test.c: Likewise.
10422 * include/grub/i386/pc/vbe.h: Likewise.
10423 * term/i386/pc/vesafb.c: Likewise.
10424 * video/i386/pc/vbe.c: Likewise.
0bd41162 10425
6323696a 104262005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
10427
10428 * DISTLIST: Added term/i386/pc/vesafb.c
10429 DISTLIST: Added video/i386/pc/vbe.c
10430 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
10431 DISTLIST: Added commands/i386/pc/vbe_test.c.
10432 * commands/i386/pc/vbe_list_modes.c: New file.
10433 * commands/i386/pc/vbe_test.c: Likewise.
10434 * term/i386/pc/vesafb.c: Likewise.
10435 * video/i386/pc/vbe.c: Likewise.
10436 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
10437 (grub_vbe_probe) Added prototype.
10438 (grub_vbe_set_video_mode) Likewise.
10439 (grub_vbe_get_video_mode) Likewise.
10440 (grub_vbe_get_video_mode_info) Likewise.
10441 (grub_vbe_set_pixel_rgb) Likewise.
10442 (grub_vbe_set_pixel_index) Likewise.
10443 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
10444 (pkgdata_MODULES): Added vesafb.mod.
10445 (pkgdata_MODULES): Added vbe_list_modes.mod.
10446 (pkgdata_MODULES): Added vbe_test.mod.
10447 (vbe_mod_SOURCES): Added.
10448 (vbe_mod_CFLAGS): Likewise.
10449 (vesafb_mod_SOURCES): Likewise.
10450 (vesafb_mod_CFLAGS): Likewise.
10451 (vbe_list_modes_mod_SOURCES): Likewise.
10452 (vbe_list_modes_mod_CFLAGS): Likewise.
10453 (vbe_test_mod_SOURCES): Likewise.
10454 (vbe_test_mod_CFLAGS): Likewise.
10455
0a74e62f 104562005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
10457
0a74e62f 10458 * normal/command.c (grub_command_execute): If INTERACTIVE is
10459 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
10460 CMDLINE. Disable the pager if INTERACTIVE is true.
10461 All callers are changed.
10462
10463 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
10464 before reading a config file.
10465 * normal/main.c (read_config_file): Even if a command is not
10466 found, register it if it is within an entry.
10467
10468 * util/grub-emu.c: Include sys/types.h and unistd.h.
10469 (options): Added --hold.
10470 (struct arguments): Added a new member "hold".
10471 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
10472 missing.
10473 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
10474 cleared by a debugger, if it is not zero.
10475
10476 * include/grub/normal.h (grub_command_execute): Add an argument
10477 INTERACTIVE.
10478
e51f85ae 104792005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
10480
10481 * DISTLIST: Added include/grub/i386/pc/vbe.h.
10482
e9c6f39b 104832005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
10484
10485 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
10486 program with another one, because the old one didn't detect a bug
10487 in gcc-3.4. Always use regparm 2, because the new test is still
10488 not enough for gcc-4.0. Someone must investigate a simple test
10489 case which detects a bug in gcc-4.0.
10490
8de3495c 104912005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
10492
10493 * DISTLIST: Added normal/completion.c.
10494
10495 * normal/completion.c: New file.
f19dbdb7 10496
8de3495c 10497 * term/i386/pc/console.c (grub_console_getwh): New function.
10498 (grub_console_term): Assign grub_console_getwh to getwh.
10499
10500 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
10501 function is defined in normal/completion.c as
10502 grub_normal_do_completion.
10503 (grub_cmdline_get): Use grub_normal_do_completion instead of
10504 grub_tab_complete.
10505
10506 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
10507 returns non-zero, otherwise return 0.
10508 (grub_partition_iterate): First, probe the partition map. Then,
10509 call ITERATE only for this partition map.
10510
10511 * kern/misc.c (grub_strncmp): Rewritten.
10512
10513 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
10514 returns non-zero. Otherwise return 0.
10515
10516 * include/grub/partition.h (grub_partition_map_iterate): Return
10517 int instead of void.
10518
10519 * include/grub/normal.h (grub_normal_do_completion): New prototype.
10520
10521 * include/grub/misc.h (grub_strncmp): Change the type of N to
10522 grub_size_t.
10523
10524 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
10525 of void.
10526
10527 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
fe6b695a 10528 unsigned explicitly before comparing it with I.
8de3495c 10529
10530 * kern/main.c (grub_env_write_root): Add the attribute unused into
10531 VAR.
10532
10533 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
10534 normal/completion.c.
10535 (normal_mod_SOURCES): Likewise.
10536 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
10537 (normal_mod_SOURCES): Likewise.
10538
10539 * normal/command.c (grub_iterate_commands): If ITERATE returns
10540 non-zero, return one immediately.
10541
e85e144b 105422005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
10543
10544 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
10545 * kern/i386/pc/startup.S: Updated Global Descriptor table's
10546 descriptions.
10547 (grub_vbe_get_controller_info): New function.
10548 (grub_vbe_get_mode_info): Likewise.
10549 (grub_vbe_set_mode): Likewise.
10550 (grub_vbe_get_mode): Likewise.
10551 (grub_vbe_set_memory_window): Likewise.
10552 (grub_vbe_get_memory_window): Likewise.
10553 (grub_vbe_set_scanline_length): Likewise.
10554 (grub_vbe_get_scanline_length): Likewise.
10555 (grub_vbe_set_display_start): Likewise.
10556 (grub_vbe_get_display_start): Likewise.
10557 (grub_vbe_set_palette_data): Likewise.
10558 * include/grub/i386/pc/vbe.h: New file.
10559
c46153d2 105602005-08-08 Hollis Blanchard <hollis@penguinppc.org>
10561
10562 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
10563 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
10564 * DISTLIST: Likewise.
10565 * kern/ieee1275/of.c: Moved to ...
10566 * kern/ieee1275/ieee1275.c: ... here.
10567
0cb90c45 105682005-08-08 Hollis Blanchard <hollis@penguinppc.org>
10569
10570 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
10571 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
10572 Pass 0 as `end' parameter to grub_strtoul().
10573
a19fb360 105742005-08-08 Hollis Blanchard <hollis@penguinppc.org>
10575
10576 * include/grub/powerpc/ieee1275/console.h: Do not include
10577 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
10578 ifdef.
10579 (grub_console_cur_color): Remove i386-specific prototype.
10580 (grub_console_real_putchar): Likewise.
10581 (grub_console_checkkey): Likewise.
10582 (grub_console_getkey): Likewise.
10583 (grub_console_getxy): Likewise.
10584 (grub_console_gotoxy): Likewise.
10585 (grub_console_cls): Likewise.
10586 (grub_console_setcursor): Likewise.
10587 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
10588 Include <grub/machine/console.h>.
10589 * term/ieee1275/ofconsole.c: Likewise.
10590
4ac9bd04 105912005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
10592
10593 * Makefile.in (LIBLZO): New variable.
10594
10595 * configure.ac: Check for LZO version 2.
10596
10597 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
10598 lzo/lzo1x.h instead of lzo1x.h.
10599
10600 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
10601 of -llzo.
10602
10603 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
10604 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
10605
10606 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
10607 copying the data from PARTITION to P.
10608
f4917dfd 106092005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
10610
10611 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
10612 negative, unload the module.
10613
10614 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
10615 map is "pc_partition_map" but not "pc".
10616 (usage): Fix the description. The options are --boot-image and
10617 --core-image but not --boot-file or --core-file.
10618 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
10619 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
10620 DEFAULT_DIRECTORY.
10621
10622 * util/i386/pc/grub-install.in: Do not specify --boot-file or
10623 --core-file. Specify INSTALL_DEVICE as an argument.
10624
10625 * util/console.c: Include config.h.
10626 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
10627 [HAVE_NCURSES_H]: Include ncurses.h.
10628 [HAVE_CURSES_H]: Include curses.h.
10629 [!A_NORMAL] (A_NORMAL): Defined as zero.
10630 [!A_STANDOUT] (A_STANDOUT): Likewise.
10631
10632 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
10633 -lncurses.
10634 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
10635
10636 * configure.ac: Check for curses libraries and headers.
10637
10638 * Makefile.in (LIBCURSES): New variable.
10639
10640 * genmk.rb (Script::rule): Set the executable bits.
10641
10642 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
10643 name of the PC partition map is "pc_partition_map" but not "pc".
10644
0e143073 106452005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
10646
10647 * util/i386/pc/grub-install.in (grub_probefs): New variable.
10648 (modules): Likewise.
10649 (usage): Added descriptions for --modules and --grub-probefs.
10650 Handle --modules and --grub-probefs. Save the arguments in MODULES
10651 and GRUB_PROBEFS, respectively.
10652 Auto-detect a filesystem module against GRUBDIR. If the result is
10653 empty and modules are not specified explicitly, abort the
10654 installation. Add the result to MODULES.
10655
10656 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
10657 disk/powerpc/ieee1275/ofdisk.c,
10658 include/grub/powerpc/ieee1275/init.h and
10659 term/powerpc/ieee1275/ofconsole.c.
10660 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
10661 term/ieee1275/ofconsole.c.
10662
10663 * include/grub/powerpc/ieee1275/console.h: Resurrected.
10664
10665 * COPYING: Upgraded to the latest version. Only the address of the
10666 FSF office has changed.
f19dbdb7 10667
efd6e6d5 106682005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
10669
10670 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
10671 kern/ieee1275.c with kern/ieee1275/of.c.
10672
10673 * kern/ieee1275.c: Moved to ...
10674 * kern/ieee1275/of.c: ... here.
10675
8ceafda2 106762005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
10677
10678 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
fe6b695a 10679 readability.
8ceafda2 10680
10681 * config.guess: Updated to the latest version from gnulib.
10682 * config.sub: Likewise.
10683 * install.sh: Likewise.
10684 * mkinstalldirs: Likewise.
10685
10686 * include/grub/console.h: Removed. This file is arch-specific. Do
10687 not put this in include/grub.
10688
10689 * include/grub/i386/pc/console.h: Resurrected.
10690
10691 * util/console.c: Include grub/machine/console.h instead of
10692 grub/console.h.
10693 * util/grub-emu.c: Likewise.
10694
267f6cd9 106952005-08-04 Marco Gerards <metgerards@student.han.nl>
10696
10697 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
10698 hardcoded value.
f19dbdb7 10699
267f6cd9 10700 From Vincent Pelletier <subdino2004@yahoo.fr>
10701 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
10702 Redefined to use grub_getwh.
10703 (grub_term): New member named getwh.
10704 (grub_getwh): New prototype.
10705 * kern/term.c (grub_getwh): New function.
10706 * term/i386/pc/console.c (grub_console_getwh): New function.
10707 (grub_console_term): New member `getwh'.
10708 * term/i386/pc/vga.c (grub_vga_getwh): New function.
10709 (grub_vga_term): New member `getwh'.
0b5abe02 10710 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
267f6cd9 10711 grub_ssize_t.
10712 (grub_ofconsole_getw): New function.
10713 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
10714 (grub_ofconsole_term): New field named getwh and new initial
10715 value.
10716
3be7266d 107172005-08-03 Hollis Blanchard <hollis@penguinppc.org>
10718
10719 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
10720 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
10721 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
10722 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
10723 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
10724 of <grub/machine/ieee1275.h>.
10725 * commands/ieee1275/reboot.c: Likewise.
10726 * boot/powerpc/ieee1275/ieee1275.c: Move ...
10727 * kern/ieee1275.c: ... to here. All users updated. Change all
10728 parameter structs to use new type `grub_ieee1275_cell_t'.
10729 * term/powerpc/ieee1275/ofconsole.c: Move ...
10730 * term/ieee1275/ofconsole.c: ... to here. All users updated.
10731 * disk/powerpc/ieee1275/ofdisk.c: Move ...
10732 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
10733 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
10734 to return int.
10735 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
10736 Remove unused prototypes. All users updated.
10737 * include/grub/powerpc/ieee1275/console.h: Removed.
10738 * include/grub/powerpc/ieee1275/ieee1275.h: Define
10739 `grub_ieee1275_cell_t'.
10740 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
10741 Cast comparisons with -1 to the correct type.
10742 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
10743 type to match `grub_ieee1275_entry_fn'.
10744
8b5f3938 107452005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
10746
10747 * DISTLIST: Added util/i386/pc/grub-probefs.c.
10748
10749 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
10750 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
10751 partmap/sun.c.
10752 (grub_probefs_SOURCES): New variable.
10753
10754 * util/i386/pc/grub-probefs.c: New file.
10755
10756 * util/i386/pc/grub-setup.c (main): Call
10757 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
10758 grub_hfs_init and grub_jfs_init to initialize the system. Call
10759 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
10760 grub_pc_partition_map_fini to finish the system.
10761
ea409713 107622005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
10763
10764 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
10765 function.
10766 (grub_multiboot_load_elf32): Likewise.
10767 (grub_multiboot_is_elf64): Likewise.
10768 (grub_multiboot_load_elf64): Likewise.
10769 (grub_multiboot_load_elf): Likewise.
10770 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
10771 an ELF32 or ELF64 file.
10772 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
10773
10774 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
10775 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
10776 NULL before calling FS->LABEL.
10777 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
10778 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
10779 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
10780 before calling FS->LABEL.
10781
141a288b 107822005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
10783
10784 * util/i386/pc/grub-install.in (datadir): New variable.
10785 (libdir): Removed.
10786 (pkgdatadir): New variable.
10787 (pkglibdir): Removed.
10788
0d5f8a54 107892005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
10790
10791 * DISTLIST: Added util/i386/pc/grub-install.in.
10792
10793 * util/i386/pc/grub-install.in: New file.
10794
10795 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
10796 (grub_install_SOURCES): Likewise.
10797
10798 * genmk.rb: Added support for scripts.
10799 (Script): New class.
10800 (scripts): New variable.
10801
10802 * Makefile.in (install-local): Install sbin_SCRIPTS by
10803 INSTALL_SCRIPT.
10804 (uninstall): Remove sbin_SCRIPTS.
10805
10806 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
10807 device, try to get a GRUB device by
10808 grub_util_biosdisk_get_grub_dev.
10809 Free DEST_DEV.
10810
10811 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
10812 description for --device-map.
10813
5f968e1e 108142005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
10815
10816 Change the semantics of variable hooks. They now return strings
10817 instead of error values.
f19dbdb7 10818
5f968e1e 10819 * util/i386/pc/grub-setup.c: Include grub/env.h.
10820 (setup): Use grub_device_set_root instead of grub_env_set.
10821
10822 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
10823 grub_env_get instead of grub_device_set_root and
10824 grub_device_get_root, respectively.
10825
10826 * kern/main.c (grub_env_write_root): New function.
10827 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
10828 grub_env_set instead of grub_device_set_root.
10829
10830 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
10831 many variables.
10832 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
10833 rather than calling ENV->WRITE_HOOK afterwards.
10834 (grub_env_get): Return the result of ENV->READ_HOOK rather than
10835 passing a pointer of a pointer.
10836 (grub_register_variable_hook): Change the types of "read_hook" and
10837 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
10838 respectively.
10839 Allocate the default empty string on the heap, because this string
10840 may be freed later.
10841
10842 * kern/device.c: Include grub/env.h.
10843 (grub_device_set_root): Removed.
10844 (grub_device_get_root): Likewise.
10845 (grub_device_open): Use grub_env_get instead of
10846 grub_device_get_root.
10847
10848 * include/grub/env.h (grub_env_read_hook_t): New type.
10849 (grub_env_write_hook_t): Likewise.
10850 (grub_env_var): Change the types of "read_hook" and "write_hook"
10851 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
10852 (grub_register_variable_hook): Likewise.
10853
10854 * include/grub/device.h (grub_device_set_root): Removed.
10855 (grub_device_set_root): Likewise.
10856
10857 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
10858 make sure that DIRNAME terminates with '/', so that
10859 grub_fat_find_dir will fail if PATH is not a directory.
10860
10861 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
10862 from DIRNAME.
10863 Use the qualifier auto for print_files and print_files_long.
10864 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
10865 as a regular file.
10866 Put a newline only if there is no error.
10867 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
10868 used.
10869
896f0afd 108702005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
10871
10872 * kern/partition.c (grub_partition_probe): Initialize PART to
10873 NULL. Otherwise, when no partition map is registered, this returns
10874 a garbage.
10875
b28b81b2 108762005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
10877
10878 * partmap/apple.c (apple_partition_map_iterate): Check if POS
10879 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
10880 valid.
10881
5f3607e0 108822005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
10883
10884 * commands/ls.c (grub_ls_list_disks): Print the filesystem
10885 information on each device, if it does not have partitions. Print
10886 "Device" instead of "Disk", because this function is not specific
10887 to disk devices.
10888
10889 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
10890 static to ensure that it is put on the memory rather than a
10891 register.
10892
502c87e8 108932005-07-17 Yoshinori Okuji <okuji@enbug.org>
10894
10895 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
10896 (grub_cat_init): Likewise.
10897 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
10898 (options): Likewise.
10899 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
10900 (grub_configfile_init): Likewise.
10901 * font/manager.c (GRUB_MOD_INIT): Likewise.
10902 * commands/help.c (GRUB_MOD_INIT): Likewise.
10903 (grub_help_init): Likewise.
10904 * normal/command.c (grub_command_init): Likewise.
10905 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
10906 * disk/loopback.c (grub_loop_init): Likewise.
10907 (GRUB_MOD_INIT): Likewise.
10908 * commands/ls.c (grub_ls_init): Likewise.
10909 (GRUB_MOD_INIT): Likewise.
10910 (options): Likewise.
10911 * commands/boot.c (grub_boot_init): Likewise.
10912 (GRUB_MOD_INIT): Likewise.
10913 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
10914 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
10915 (GRUB_MOD_INIT): Likewise.
10916 * commands/cmp.c (grub_cmp_init): Likewise.
10917 (GRUB_MOD_INIT): Likewise.
10918
10919 * normal/arg.c: Use <> instead of "" to include header files.
10920 (SHORT_ARG_HELP): New macro.
10921 (SHORT_ARG_USAGE): Likewise.
10922 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
10923 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
10924 descriptions.
10925 (find_short): Check if C is 'h' or 'u' explicitly.
10926 (grub_arg_show_help): Use space characters instead of tabs. Treat
10927 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
10928 are shown with --help and --usage only if they are not used for
10929 the command itself.
10930 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
10931 'h' and 'u'.
10932
10933 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
10934 const into "longarg". Change the type of "shortarg" to int.
10935
f806d18e 109362005-07-17 Yoshinori Okuji <okuji@enbug.org>
10937
10938 * boot/i386/pc/boot.S (boot_drive_check): New label.
10939
10940 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
10941 macro.
10942
10943 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
10944 which do not pass a boot drive correctly. Copied from GRUB Legacy.
10945
e293232b 109462005-07-17 Yoshinori Okuji <okuji@enbug.org>
10947
10948 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
10949 When turning off Gate A20, skip the check and return immediately,
10950 because this is not fatal usually.
10951
ebedfd00 109522005-07-17 Yoshinori Okuji <okuji@enbug.org>
10953
10954 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
10955 be 0x7C00 instead of 0x8000.
10956
10957 * boot/i386/pc/pxeboot.S: Rewritten.
10958
10959 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
10960 EXT_C.
10961 (gate_a20_check_state): Read a byte from 0x108000. Invert the
10962 result.
10963
654fc59f 109642005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
10965
10966 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
10967 robustness. This routine now supports a BIOS call and System
10968 Control Port A to modify the gate A20.
10969
10970 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
10971 Increased to 0x440.
10972
09f9923f 109732005-07-12 Hollis Blanchard <hollis@penguinppc.org>
10974
10975 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
10976 device path and resulting ihandle.
10977 (grub_ofdisk_close): dprintf the ihandle being closed.
10978 (grub_ofdisk_read): dprintf function parameters.
10979 * kern/mm.c (grub_mm_init_region): Likewise.
10980 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
10981 (grub_linux_boot): dprintf the Linux entry point, initrd address and
10982 size, and boot arguments.
10983 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
10984 before loading into memory.
10985 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
10986 before loading into memory.
10987
7ef504d8 109882005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
10989
10990 * kern/mm.c: Added much documentation.
10991 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
10992 8, set to 5 instead of 8.
10993
e0f050c2 109942005-07-10 Yoshinori Okuji <okuji@enbug.org>
10995
10996 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
10997
10998 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
10999 (grub_mkdevicemap_SOURCES): New variable.
11000
11001 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
11002 lib/device.c of GRUB Legacy.
11003
7224189a 110042005-07-10 Yoshinori Okuji <okuji@enbug.org>
11005
11006 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
11007 instead of PATH is NULL.
11008
68c864eb 110092005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
11010
11011 * commands/cmp.c (BUFFER_SIZE): New macro.
11012 (grub_cmd_cmp): Close the right file at the right time. Compare
11013 only data just read. Don't report files of different size as
11014 identical. Dynamically allocate buffers. Move variable
11015 declarations at the beginning of function.
11016
e6f3e614 110172005-07-09 Yoshinori Okuji <okuji@enbug.org>
11018
11019 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
11020 reverse.
11021
f8f1559a 110222004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
11023
11024 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
11025 when backspace is pressed at beginning of line.
11026
39c9d41d 110272005-07-03 Yoshinori Okuji <okuji@enbug.org>
11028
11029 * DISTLIST: Added genfslist.sh.
11030
11031 * normal/main.c (fs_module_list): New variable.
11032 (autoload_fs_module): New function.
11033 (read_fs_list): Likewise.
11034 (grub_normal_execute): Call read_fs_list.
11035
11036 * kern/fs.c (grub_fs_autoload_hook): New variable.
11037 (grub_fs_probe): Added support for auto-loading.
11038
11039 * include/grub/normal.h (struct grub_fs_module_list): New struct.
11040 (grub_fs_module_list_t): New type.
11041
11042 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
11043 (grub_fs_autoload_hook): New prototype.
11044
11045 * genfslist.sh: New file.
f19dbdb7 11046
39c9d41d 11047 * genmk.rb: Added a rule to generate a filesystem list.
11048
121c1d83 110492005-06-30 Marco Gerards <metgerards@student.han.nl>
11050
11051 * configure.ac: Fix the test for cross-compiling.
11052
11053 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
11054 define GRUB_UTIL anymore.
11055
11056 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
11057 so this function works on other systems than just big endian.
11058 (load_modules): Likewise.
11059 (add_segments): Likewise.
11060
e75d76e1 110612005-06-23 Hollis Blanchard <hollis@penguinppc.org>
11062
11063 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
11064 contains `l' modifier, get a long from va_arg().
11065
50b5a0a7 110662005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
11067
11068 * kern/mm.c (grub_free): If the next free block which is being
11069 merged is the first free block, set the first block to the block
11070 being freed.
11071 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
11072
89371b20 110732005-05-08 Hollis Blanchard <hollis@penguinppc.org>
11074
11075 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
11076 `grub_ieee1275_chosen'.
11077
168d6e58 110782005-05-08 Hollis Blanchard <hollis@penguinppc.org>
11079
11080 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
11081 (grub_ieee1275_chosen): New variable.
11082 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
11083 `chosen'.
11084 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
11085 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
11086 Rename first argument to `phandle' for consistency.
11087 (grub_ieee1275_get_property_length): Likewise.
11088 (grub_ieee1275_next_property): Likewise. Change type of first argument
11089 to grub_ieee1275_phandle_t.
11090 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
11091 Move export next to declaration.
11092 (grub_ieee1275_chosen): New variable.
11093 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
11094 Correct cosmetic typo.
11095 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
11096 `grub_ieee1275_chosen'.
11097 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
11098 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
11099 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
11100 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
11101 `grub_ieee1275_chosen'.
11102
ca5baa3f 111032005-05-10 Hollis Blanchard <hollis@penguinppc.org>
11104
11105 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
11106 /chosen/bootargs.
11107 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
11108 /chosen/bootargs as "variable=value" pairs.
11109
708b345f 111102005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
11111
11112 * include/grub/misc.h (grub_dprintf): New macro.
11113 (grub_real_dprintf): New prototype.
11114 (grub_strword): Likewise.
11115 (grub_iswordseparator): Likewise.
11116 * kern/misc.c (grub_real_dprintf): New function.
11117 (grub_strword): Likewise.
11118 (grub_iswordseparator): Likewise.
11119
f4c5e67c 111202005-04-30 Hollis Blanchard <hollis@penguinppc.org>
11121
11122 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
11123 (roundup): Remove macro.
11124 (grub_ieee1275_flags): Make static.
11125 (grub_ieee1275_realmode): Remove.
11126 (grub_ieee1275_test_flag): New function.
11127 (grub_ieee1275_set_flag): Likewise.
11128 (find_options): Rename to `grub_ieee1275_find_options'; update
11129 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
11130 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
11131 (cmain): New prototype.
11132 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
11133 `grub_ieee1275_flags' directly.
11134 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
11135 machine/biosdisk.h.
11136 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
11137 Don't include grub/machine/init.h.
11138 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
11139 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
11140 Remove prototype.
11141 (grub_ieee1275_realmode): Likewise.
11142 (grub_ieee1275_flag): New enum.
11143 (grub_ieee1275_test_flag): New prototype.
11144 (grub_ieee1275_set_flag): New prototype.
11145 * include/grub/powerpc/ieee1275/init.h: Remove file.
11146 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
11147 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
11148 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
11149 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
11150 comment.
11151 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
11152 `grub_ieee1275_test_flag'.
11153 (grub_ieee1275_encode_devname): Likewise.
11154
ed16607e 111552005-04-21 Hollis Blanchard <hollis@penguinppc.org>
11156
11157 * include/grub/powerpc/ieee1275/ieee1275.h
11158 (grub_ieee1275_encode_devname): New prototype.
11159 (grub_ieee1275_get_filename): Likewise.
11160 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
11161 function.
11162 (grub_set_prefix): Likewise.
11163 (grub_machine_init): Call grub_set_prefix.
11164 * kern/powerpc/ieee1275/openfw.c: Fix typos.
11165 (grub_parse_type): New enum.
11166 (grub_ieee1275_get_devargs): New function.
11167 (grub_ieee1275_get_devname): Likewise.
11168 (grub_ieee1275_parse_args): Likewise.
11169 (grub_ieee1275_get_filename): Likewise.
11170 (grub_ieee1275_encode_devname): Likewise.
11171
be369920 111722005-03-30 Marco Gerards <metgerards@student.han.nl>
11173
11174 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
11175 `grub_loader_unset'.
11176
a5ce3a4a 111772005-03-26 Hollis Blanchard <hollis@penguinppc.org>
11178
11179 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
11180 instead of grub_ieee1275_interpret.
11181 (grub_halt_init): New function.
11182 (grub_halt_fini): Likewise.
11183 (GRUB_MOD_INIT): Correct message grammar.
11184 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
11185 instead of grub_ieee1275_interpret.
11186 (grub_reboot_init): New function.
11187 (grub_reboot_fini): Likewise.
11188 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
11189 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
11190 util/i386/pc/misc.c with commands/ieee1275/halt.c,
11191 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
11192 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
11193 function.
11194 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
11195 Add prototype.
11196 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
11197 prototype.
11198 (grub_halt): Likewise.
11199 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
11200 (cmain): Remove __attribute__((unused)).
11201 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
11202 (grub_heap_len): Likewise.
11203 (grub_machine_fini): New function.
11204 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
11205 (grub_halt): Likewise.
11206 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
11207 function.
11208 * util/powerpc/ieee1275/misc.c: New file.
11209
0058f771 112102005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
11211
11212 * DISTLIST: New file.
11213 * gendistlist.sh: Likewise.
f19dbdb7 11214
0058f771 11215 * Makefile.in (COMMON_DISTFILES): Removed.
11216 (BOOT_DISTFILES): Likewise.
11217 (CONF_DISTFILES): Likewise.
11218 (DISK_DISTFILES): Likewise.
11219 (FS_DISTFILES): Likewise.
11220 (INCLUDE_DISTFILES): Likewise.
11221 (KERN_DISTFILES): Likewise.
11222 (LOADER_DISTFILES): Likewise.
11223 (TERM_DISTFILES): Likewise.
11224 (UTIL_DISTFILES): Likewise.
11225 (DISTFILES): Likewise.
11226 (uninstall): Uninstall files in $(pkgdata_DATA).
11227 (DISTLIST): New target.
11228 (distdir): Use the contents of the file DISTLIST to get a list of
11229 distributed files.
11230
46b3b8a5 112312005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
11232
11233 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
11234 descriptor. This is ported from GRUB Legacy.
11235
11236 * gencmdlist.sh: Added an extra semicolon to make it work with
11237 old sed versions. Reported by Robert Bihlmeyer
11238 <robbe@orcus.priv.at>.
11239
5822ff87 112402005-03-08 Yoshinori Okuji <okuji@enbug.org>
11241
11242 Automatic loading of commands is supported.
f19dbdb7 11243
5822ff87 11244 * normal/main.c (read_command_list): New function.
11245 (grub_normal_execute): Call read_command_list.
11246
11247 * normal/command.c (grub_register_command): Return zero or CMD.
11248 Allocate CMD->NAME from the heap.
11249 Initialize CMD->MODULE_NAME to zero.
11250 Find the same name as well. If the same command is found and it is
11251 a dummy command, overwrite members. If it is not a dummy command,
11252 return zero.
11253 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
11254 (grub_command_find): If a dummy command is found, load a module
11255 and retry to find a command only once.
11256
11257 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
11258 make sure that each command is loaded.
11259
11260 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
11261 macro.
11262 (struct grub_command): Remove const from the member `name'.
11263 Add a new member `module_name'.
11264 (grub_register_command): Return grub_command_t.
11265
11266 * commands/help.c (grub_cmd_help): Call grub_command_find to make
11267 sure that each command is loaded.
11268
11269 * genmk.rb (PModule::rule): Specify a module name without the
11270 suffix ".mod" to gencmdlist.sh.
11271
7b1f4b57 112722005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
11273
11274 * gencmdlist.sh: New file.
f19dbdb7 11275
7b1f4b57 11276 * genmk.rb (PModule::rule): Generate a rule for a command list.
11277 Clean command.lst.
11278 Generate command.lst from $(COMMANDFILES).
11279
11280 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
11281 (DATA): Added $(pkgdata_DATA).
11282 (install-local): Install files in $(pkgdata_DATA).
11283
062aaf39 112842005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
11285
11286 * term/i386/pc/vga.c (debug_command): Removed.
11287 (GRUB_MOD_INIT): Do not register the command "debug".
11288
11289 From Hollis Blanchard:
11290 * commands/configfile.c: New file.
11291 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
11292 commands/configfile.c.
11293 (pkgdata_MODULES): Added configfile.mod.
11294 (configfile_mod_SOURCES): New variable.
11295 (configfile_mod_CFLAGS): Likewise.
11296 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
11297 commands/configfile.c.
11298 (pkgdata_MODULES): Added configfile.mod.
11299 (configfile_mod_SOURCES): New variable.
11300 (configfile_mod_CFLAGS): Likewise.
11301 * util/grub-emu.c (main): Call grub_configfile_init and
11302 grub_configfile_fini.
11303 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
11304 prototype.
11305 [GRUB_UTIL] (grub_configfile_fini): Likewise.
f19dbdb7 11306
cee01aa6 113072005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
11308
11309 * normal/arg.c (grub_arg_show_help): Do not show the bug report
11310 address.
11311
11312 * commands/help.c (grub_cmd_help): Do not print newlines after
11313 the last command in print_command_help.
11314
93f3a1d8 113152005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
11316
11317 * commands/default.h: New file.
11318 * commands/timeout.h: Likewise.
11319 * normal/context.c: Likewise.
f19dbdb7 11320
93f3a1d8 11321 * util/misc.c: Do not include sys/times.h.
11322 Include sys/time.h and grub/machine/time.h.
11323 (grub_get_rtc): Rewritten with gettimeofday.
11324
11325 * util/grub-emu.c (main): Call grub_default_init and
11326 grub_timeout_init before grub_normal_init, and call
11327 grub_timeout_fini and grub_default_fini after grub_main.
11328
11329 * util/console.c (grub_ncurses_checkkey): Return the read
11330 character or -1.
11331
11332 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
11333 timeouts.
11334
11335 * normal/main.c (read_config_file): Push MENU. If this fails,
11336 print an error and wait for a user input.
11337 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
11338 If a menu is empty or an error occurs, pop MENU.
11339 (grub_normal_execute): Pop and free MENU after grub_menu_run
11340 returns.
11341
11342 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
11343
11344 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
11345 include time.h.
11346 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
11347 without GRUB_UTIL.
11348 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
11349 time.h.
11350 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
11351 without GRUB_UTIL.
11352
11353 * include/grub/normal.h (struct grub_menu_list): New struct.
11354 (grub_menu_list_t): New type.
11355 (struct grub_context): New struct.
11356 (grub_context_t): New type.
11357 (grub_register_command): Got rid of EXPORT_FUNC.
11358 (grub_unregister_command): Likewise.
11359 (grub_context_get): New prototype.
11360 (grub_context_get_current_menu): Likewise.
11361 (grub_context_push_menu): Likewise.
11362 (grub_context_pop_menu): Likewise.
11363 [GRUB_UTIL] (grub_default_init): Likewise.
11364 [GRUB_UTIL] (grub_default_fini): Likewise.
11365 [GRUB_UTIL] (grub_timeout_init): Likewise.
11366 [GRUB_UTIL] (grub_timeout_fini): Likewise.
11367
11368 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
11369 commands/timeout.c and normal/context.c.
11370 (pkgdata_MODULES): Added default.mod and timeout.mod.
11371 (normal_mod_SOURCES): Added normal/context.c.
11372 (default_mod_SOURCES): New variable.
11373 (default_mod_CFLAGS): Likewise.
11374 (timeout_mod_SOURCES): Likewise.
11375 (timeout_mod_CFLAGS): Likewise.
11376 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
11377 conf/i386-pc.rmk.
11378 (pkgdata_MODULES): Added default.mod and timeout.mod.
11379 (normal_mod_SOURCES): Added normal/context.c.
11380 (default_mod_SOURCES): New variable.
11381 (default_mod_CFLAGS): Likewise.
11382 (timeout_mod_SOURCES): Likewise.
11383 (timeout_mod_CFLAGS): Likewise.
11384
11385 * Makefile.in (all-local): Added $(MKFILES).
11386
4ed2e1dd 113872005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
11388
11389 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
11390 (grub_emu_SOURCES): Likewise.
11391 (pkgdata_MODULES): Add `sun.mod'.
11392 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
11393 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
11394 `partmap/sun.c'.
11395 (pkgdata_MODULES): Add `sun.mod'.
11396 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
11397 * include/grub/partition.h (grub_sun_partition_map_init): New
11398 prototype.
11399 (grub_sun_partition_map_fini): Likewise.
11400 * partmap/sun.c: New file.
11401 * util/grub-emu.c (main): Initialize and de-initialize the sun
11402 partitionmap support.
11403
4d4e372e 114042005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
11405
11406 This implements an Emacs-like menu entry editor.
f19dbdb7 11407
4d4e372e 11408 * normal/menu_entry.c: New file.
f19dbdb7 11409
4d4e372e 11410 * util/console.c (grub_ncurses_putchar): Translate some Unicode
11411 characters to ASCII.
11412 (saved_char): New variable.
11413 (grub_ncurses_checkkey): Rewritten completely.
11414 (grub_ncurses_getkey): Likewise.
11415 (grub_ncurses_init): Call raw instead of cbreak.
11416
11417 * normal/menu.c (print_entry): Do not put a space.
11418 (init_page): Renamed to ...
11419 (grub_menu_init_page): ... this. All callers changed.
11420 (edit_menu_entry): Removed.
11421 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
11422
11423 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
11424
11425 * kern/misc.c (grub_vprintf): Call grub_refresh.
11426
11427 * normal/menu.c (DISP_LEFT): Renamed to ...
11428 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
11429 * normal/menu.c (DISP_UP): Renamed to ...
11430 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
11431 * normal/menu.c (DISP_RIGHT): Renamed to ...
11432 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
11433 * normal/menu.c (DISP_DOWN): Renamed to ...
11434 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
11435 * normal/menu.c (DISP_HLINE): Renamed to ...
11436 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
11437 * normal/menu.c (DISP_VLINE): Renamed to ...
11438 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
11439 * normal/menu.c (DISP_UL): Renamed to ...
11440 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
11441 * normal/menu.c (DISP_UR): Renamed to ...
11442 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
11443 * normal/menu.c (DISP_LL): Renamed to ...
11444 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
11445 * normal/menu.c (DISP_LR): Renamed to ...
11446 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
11447 * normal/menu.c (TERM_WIDTH): Renamed to ...
11448 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
11449 * normal/menu.c (TERM_HEIGHT): Renamed to ...
11450 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
11451 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
11452 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
11453 * normal/menu.c (TERM_MARGIN): Renamed to ...
11454 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
11455 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
11456 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
11457 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
11458 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
11459 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
11460 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
11461 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
11462 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
11463 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
11464 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
11465 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
11466 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
11467 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
11468 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
11469 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
11470 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
11471 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
11472 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
11473 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
11474 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
11475 All callers changed.
11476
11477 * include/grub/normal.h: New prototype.
11478
11479 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
11480 normal/menu_entry.c.
11481 (normal_mod_SOURCES): Likewise.
11482 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
11483 (normal_mod_SOURCES): Likewise.
11484
e6b92c8a 114852005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
11486
11487 * include/grub/normal.h (grub_halt_init): New prototype.
11488 (grub_halt_fini): Likewise.
11489 (grub_reboot_init): Likewise.
11490 (grub_reboot_fini): Likewise.
11491
11492 * util/grub-emu.c: Include signal.h.
11493 (main_env): New global variable.
11494 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
11495 catch C-c.
11496 (grub_machine_fini): New function.
11497 (main): Call grub_halt_init and grub_reboot_init before
11498 grub_main, and grub_reboot_fini and grub_halt_fini after it.
11499 Call setjmp with MAIN_ENV to go back afterwards.
11500 Call grub_machine_fini right before return.
11501
11502 * include/grub/util/misc.h: Include setjmp.h.
11503 (main_env): New prototype.
11504
11505 * include/grub/kernel.h (grub_machine_fini): New prototype.
11506 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
11507 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
11508
11509 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
11510 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
11511 * term/i386/pc/console.c (grub_console_fini): Likewise.
f19dbdb7 11512
e6b92c8a 11513 * util/i386/pc/misc.c: New file.
f19dbdb7 11514
e6b92c8a 11515 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
11516 util/i386/pc/misc.c, commands/i386/pc/halt.c and
11517 commands/i386/pc/reboot.c.
11518
c642636f 115192005-02-14 Guillem Jover <guillem@hadrons.org>
11520
11521 * include/grub/dl.h (grub_dl_check_header): New prototype.
11522 (grub_arch_dl_check_header): Change return type to grub_err_t,
11523 remove size parameter and export function. Update all callers.
11524 * kern/dl.c (grub_dl_check_header): New function.
11525 (grub_dl_load_core): Use `grub_dl_check_header' instead of
11526 `grub_arch_dl_check_header'. Check ELF type. Check if sections
11527 are inside the core.
11528 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
11529 independent ELF header checks.
11530 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
11531 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
11532 `grub_dl_check_header' instead of explicit checks. Check for the
11533 ELF type.
11534 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
11535 `grub_dl_check_header' instead of explicit checks. Remove arch
11536 specific ELF header checks.
11537
e6b92c8a 11538 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
11539 argument SIZE.
11540
5eabe94b 115412005-02-13 Hollis Blanchard <hollis@penguinppc.org>
11542
11543 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
11544 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
11545
1b14a681 115462005-02-12 Hollis Blanchard <hollis@penguinppc.org>
11547
11548 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
f19dbdb7 11549 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
1b14a681 11550 (part_map_iterate): Clear `grub_errno' and return 0 if
f19dbdb7 11551 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
1b14a681 11552 * partmap/amiga.c (amiga_partition_map_iterate): Return
11553 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
11554 * partmap/apple.c (apple_partition_map_iterate): Likewise.
11555
aca108aa 115562005-02-01 Guillem Jover <guillem@hadrons.org>
11557
11558 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
11559 help info.
11560
c9f9c556 115612005-01-31 Marco Gerards <metgerards@student.han.nl>
11562
11563 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
11564 Removed prototype.
11565 (grub_rescue_cmd_linux): New prototype.
11566 (grub_rescue_cmd_initrd): Likewise.
11567 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
11568 `bi_rec'.
11569 (grub_linux_release_mem): Release the memory for the initrd.
11570 (grub_load_linux): Renamed from this...
11571 (grub_rescue_cmd_linux): ...To this. Changed all callers.
11572 Changed `entry' not to be static. Loop over memory regions to
11573 find another one when the default fails.
11574 (grub_rescue_cmd_initrd): New function.
11575 (grub_linux_init): Remove function.
11576 (grub_linux_fini): Likewise.
11577 (GRUB_MOD_INIT): Register `initrd'.
11578 (GRUB_MOD_FINI): Unregister `initrd'.
11579 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
11580 Function removed.
11581 (grub_linux_normal_fini): Likewise.
11582 (GRUB_MOD_INIT): Register `initrd'.
11583 (GRUB_MOD_FINI): Unregister `initrd'.
11584
990cf3aa 115852005-01-31 Marco Gerards <metgerards@student.han.nl>
11586
11587 * commands/help.c: New file.
11588 * normal/arg.c (show_help): Renamed to...
11589 (grub_arg_show_help): ... this.
11590 * commands/i386/pc/halt.c: New file.
11591 * commands/i386/pc/reboot.c: Likewise.
11592 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
11593 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
11594 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
11595 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
11596 variables.
11597 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
11598 `commands/help.c'.
11599 (pkgdata_MODULES): Add `help.mod'.
11600 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
11601 * grub/i386/pc/init.h (grub_reboot): New prototype.
11602 (grub_halt): Likewise.
11603 * include/grub/normal.h (grub_arg_show_help): New prototype.
11604 (grub_help_init): Likewise.
11605 (grub_help_fini): Likewise.
11606 * util/grub-emu.c (main): Initialize and deinitialize the help
11607 command.
11608
11609 * normal/cmdline.c (grub_cmdline_get): Doc fix.
11610
11611 * normal/command.c (grub_command_init): Fixed the description of
11612 the `set' and `unset' commands.
11613
116142005-01-31 Marco Gerards <metgerards@student.han.nl>
0f79cdc1 11615
11616 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
11617 function.
11618 * commands/ieee1275/halt.c: New file.
11619 * commands/ieee1275/reboot.c: Likewise.
11620 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
11621 `__attribute__ ((unused))'. Some GCS related fixed.
11622 (grub_suspend_init) [GRUB_UTIL]: Function removed.
11623 (grub_suspend_fini): Likewise.
11624 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
11625 and `halt.mod'.
11626 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
11627 (halt_mod_CFLAGS): New variables.
11628 * include/grub/powerpc/ieee1275/ieee1275.h
11629 (grub_ieee1275_interpret): New prototype.
11630
1ab09cc7 116312005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
11632
11633 * include/grub/misc.h (memmove): New prototype.
11634 (memcpy): Likewise.
11635
8b8cbdb2 116362005-01-22 Hollis Blanchard <hollis@penguinppc.org>
11637
11638 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
11639 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
11640
e3741a27 116412005-01-22 Marco Gerards <metgerards@student.han.nl>
11642
11643 * kern/misc.c (grub_strndup): Function rewritten.
11644
776bd780 116452005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
11646
11647 * normal/menu.c (TERM_WIDTH): Macro redefined.
11648 (TERM_TOP_BORDER_Y): Likewise.
11649 (draw_border): Replaced while-loop by a for-loop. Make the number
11650 of lines consistent with the number of lines displayed in
11651 print_entries. Added a margin below the rectangle.
11652 (print_entry): Make the entry fit in the rectangle.
11653 (print_entries): Display the scroll arrows next to the right
11654 border.
11655
78026bce 116562005-01-21 Marco Gerards <metgerards@student.han.nl>
11657
11658 * fs/minix.c (grub_minix_find_file): Reserve more space for
11659 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
11660 `grub_strncpy' to copy `path' into it.
11661
67bbaf0f 116622005-01-21 Marco Gerards <metgerards@student.han.nl>
11663
11664 Add the loopback device, a device via which files can be accessed
11665 as devices.
f19dbdb7 11666
67bbaf0f 11667 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
11668 (pkgdata_MODULES): Add loopback.mod.
11669 (loopback_mod_SOURCES): New variable.
11670 (loopback_mod_CFLAGS): Likewise.
11671 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
11672 `disk/loopback.c'.
11673 (pkgdata_MODULES): Add loopback.mod.
11674 (loopback_mod_SOURCES): New variable.
11675 (loopback_mod_CFLAGS): Likewise.
11676 * disk/loopback.c: new file.
11677 * include/grub/normal.h (grub_loop_init): New prototype.
11678 (grub_loop_fini): New prototype.
11679 * util/grub-emu.c (main): Initialize and de-initialize loopback
11680 support.
11681 * include/grub/disk.h (grub_disk_dev_id): Add
11682 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
11683
6f1c18bd 116842005-01-20 Hollis Blanchard <hollis@penguinppc.org>
11685
11686 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
11687 function.
11688 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
11689 (suspend_mod_SOURCES): New variable.
11690 (suspend_mod_CFLAGS): Likewise.
11691 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
11692 New prototype.
11693 * commands/ieee1275/suspend.c: New file.
11694
b38551da 116952005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11696
11697 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
f19dbdb7 11698 ((unused))' to `__attribute__ ((used))'.
b38551da 11699 (GRUB_MOD_FINI): Likewise.
11700 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
11701 * genmk.rb (PModule): Assign space to common symbols when linking
11702 modules.
11703
777aff39 117042005-01-20 Marco Gerards <metgerards@student.han.nl>
11705
11706 * include/grub/mm.h (grub_mm_init_region): Change the type of the
11707 `unsigned' arguments to `grub_size_t'.
11708 (grub_malloc): Likewise.
11709 (grub_realloc): Likewise.
11710 (grub_memalign): Likewise.
11711 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
11712 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
11713 * util/misc.c (grub_malloc): Likewise.
11714 (grub_realloc): Likewise.
11715 * kern/mm.c (get_header_from_pointer): Change the casts to
11716 `unsigned' into a cast to `grub_size_t'.
11717
11718 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
11719 point to `currnode' when `currnode' is changed.
11720
11721 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
11722 Schottelius <nico-linux@schottelius.org>.
11723
d0ff18e1 117242005-01-09 Hollis Blanchard <hollis@penguinppc.org>
11725
11726 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
11727 (note_path): Remove variable.
11728 (GRUB_IEEE1275_NOTE_NAME): New macro.
11729 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
11730 (grub_ieee1275_note_hdr): New structure.
11731 (grub_ieee1275_note_desc): Likewise.
11732 (grub_ieee1275_note): Likewise.
11733 (load_note): Remove `dir' argument. All callers updated. Remove
11734 `note_img' and `path'. Do not load a file from `note_path'.
11735 Initialize a struct grub_ieee1275_note and write that to `out'.
11736 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
11737
4ca7004c 117382005-01-05 Marco Gerards <metgerards@student.han.nl>
11739
11740 * util/misc.c (grub_util_read_image): Revert last change. It
11741 called `grub_util_read_at', which seeks from the beginning of the
11742 file.
11743
0b412211 117442005-01-04 Hollis Blanchard <hollis@penguinppc.org>
11745
11746 * TODO: Add note about endianness in grub-mkimage.
11747 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
11748 section.
11749 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
11750 (grub_mkimage_SOURCES): New target.
11751 * include/grub/kernel.h (grub_start_addr): Remove variable.
11752 (grub_end_addr): Likewise.
11753 (grub_total_module_size): Likewise.
11754 (grub_kernel_image_size): Likewise.
11755 (GRUB_MODULE_MAGIC): New constant.
11756 (grub_module_info): New structure.
11757 (grub_arch_modules_addr): New prototype.
11758 (grub_get_end_addr): Remove prototype.
11759 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
11760 * include/grub/powerpc/ieee1275/kernel.h: New file.
11761 * include/grub/util/misc.h (grub_util_get_fp_size): New
11762 prototype.
11763 (grub_util_read_at): Likewise.
11764 (grub_util_write_image_at): Likewise.
11765 * kern/main.c (grub_get_end_addr): Remove function.
11766 (grub_load_modules): Call grub_arch_modules_addr instead of using
11767 grub_end_addr. Look for a grub_module_info struct in memory. Use
11768 the grub_module_info fields instead of calling grub_get_end_addr
11769 as loop conditions. Move grub_add_unused_region code here.
11770 (grub_add_unused_region): Remove function.
11771 * kern/i386/pc/init.c: Include grub/cache.h.
11772 (grub_machine_init): Remove call to grub_get_end_addr. Remove
11773 one call to add_mem_region.
11774 (grub_arch_modules_addr): New function.
11775 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
11776 (grub_total_module_size): Likewise.
11777 Include grub/machine/kernel.h.
11778 (grub_arch_modules_addr): New function.
11779 * util/grub-emu.c (grub_end_addr): Remove variable.
11780 (grub_total_module_size): Likewise.
11781 (grub_arch_modules_addr): New function.
11782 * util/misc.c: Include unistd.h.
11783 (grub_util_get_fp_size): New function.
11784 (grub_util_read_at): Likewise.
11785 (grub_util_write_image_at): Likewise.
11786 (grub_util_read_image): Call grub_util_read_at.
11787 (grub_util_write_image): Call grub_util_write_image_at.
11788 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
11789 additional memory in kernel_img for a struct grub_module_info.
11790 Fill in that grub_module_info.
11791 * util/powerpc/ieee1275/grub-mkimage.c: New file.
11792
458786f8 117932005-01-03 Hollis Blanchard <hollis@penguinppc.org>
11794
11795 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
11796 New function.
11797 * include/grub/powerpc/ieee1275/ieee1275.h
11798 (grub_ieee1275_milliseconds): New prototype.
11799 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
11800 Change to 1000.
11801 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
11802 grub_ieee1275_milliseconds.
11803
ac507d1b 118042005-01-03 Hollis Blanchard <hollis@penguinppc.org>
11805
11806 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
11807 variable.
11808 (find_options): New function.
11809 (cmain): Call find_options.
11810 * include/grub/powerpc/ieee1275/ieee1275.h
11811 (grub_ieee1275_realmode): New extern variable.
11812 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
11813 grub_map if grub_ieee1275_realmode is false.
11814
6b8fd1c4 118152004-12-29 Marco Gerards <metgerards@student.han.nl>
11816
11817 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
11818 lines are inserted and make it work like readline. Reported by
11819 Vincent Pelletier <subdino2004@yahoo.fr>.
11820
8514a1e0 118212004-12-28 Marco Gerards <metgerards@student.han.nl>
11822
11823 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
11824
11825 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
11826 `kern/powerpc/cache.S'.
11827
924b6140 118282004-12-27 Marco Gerards <metgerards@student.han.nl>
11829
11830 * genmk.rb: Handle the `Program' class in the main loop. Written
11831 by Johan Rydberg <jrydberg@gnu.org>.
11832 (Program): New class.
11833 (programs): New variable.
11834 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
11835 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
11836 instead of "grub/kernel.h". Include <grub/machine/init.h>.
11837 (help_arch): Function removed.
11838 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
11839 `powerpc/libgcc.h' and `loader.h'.
11840 (pkgdata_PROGRAMS): New variable.
11841 (sbin_UTILITIES): Variable removed.
11842 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
11843 (grubof_SOURCES): Variable re-defined so it only includes the
11844 core functionality.
11845 (grubof_CFLAGS): Remove `-DGRUBOF'.
11846 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
11847 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
11848 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
11849 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
11850 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
11851 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
11852 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
11853 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
11854 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
11855 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
11856 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
11857 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
11858 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
11859 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
11860 (pc_mod_CFLAGS): New variables.
11861 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
11862 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
11863 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
11864 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
11865 Moved from here...
11866 * include/grub/i386/pc/init.h (grub_os_area_addr)
11867 (rub_os_area_size): ... to here.
11868 * include/grub/powerpc/ieee1275/ieee1275.h
11869 (grub_ieee1275_entry_fn): Export symbol.
11870 * include/grub/powerpc/ieee1275/init.h: New file.
11871 * include/grub/powerpc/libgcc.h: Likewise.
11872 * include/grub/cache.h: Likewise.
11873 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
11874 <hollis@penguinppc.org>.
11875 * kern/dl.c: Include <grub/cache.h>.
11876 (grub_dl_flush_cache): New function.
11877 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
11878 for this module.
11879 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
11880 (grub_console_init): Removed prototypes.
11881 (grub_machine_init): Don't initialize the modules anymore.
11882 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
11883 static.
11884 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
11885 Macro undef removed.
11886 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
11887 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
11888 relocation `R_PPC_REL32'. Return an error when the relocation is
11889 unknown.
11890 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
11891 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
11892 * util/misc.c (grub_arch_sync_caches): Likewise.
11893
e4b47e0c 118942004-12-19 Marco Gerards <metgerards@student.han.nl>
11895
11896 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
11897 `symlist.c', add `grubof_symlist.c'.
11898 (symlist.c): Variable removed.
11899 (grubof_HEADERS): Variable added.
11900 (grubof_symlist.c): New target.
11901 (kernel_syms.lst): Use `grubof_HEADERS' instead of
11902 `kernel_img_HEADERS'.
11903 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
11904 * kern/powerpc/dl.c: New file.
11905 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
11906 Function removed.
11907 (grub_arch_dl_relocate_symbols): Likewise.
11908 (grub_register_exported_symbols): Likewise.
11909
4ceb3636 119102004-12-13 Marco Gerards <metgerards@student.han.nl>
11911
11912 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
11913 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
11914 to fail instead. Reported by Vincent Pelletier
11915 <subdino2004@yahoo.fr>.
11916
11917 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
11918 it is not allocated. Reported by Vincent Pelletier
11919 <subdino2004@yahoo.fr>.
11920
11921 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
11922 output so the output looks better.
f19dbdb7 11923
3f1578fe 119242004-12-04 Marco Gerards <metgerards@student.han.nl>
11925
11926 Modulize the partition map support and add support for the amiga
11927 partition map.
f19dbdb7 11928
3f1578fe 11929 * commands/ls.c: Include <grub/partition.h> instead of
11930 <grub/machine/partition.h>.
11931 * kern/disk.c: Likewise.
11932 * kern/rescue.c: Likewise.
11933 * loader/i386/pc/chainloader.c: Likewise.
11934 * normal/cmdline.c: Likewise.
11935 * kern/powerpc/ieee1275/init.c: Likewise.
11936 (grub_machine_init): Call `grub_pc_partition_map_init',
11937 `grub_amiga_partition_map_init' and
11938 `grub_apple_partition_map_init'.
11939 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
11940 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
11941 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
11942 `partition.h' and `pc_partition.h'.
11943 (grub_setup_SOURCES): Remove
11944 `disk/i386/pc/partition.c'. Add `kern/partition.c',
11945 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
11946 (grub_emu_SOURCES): Likewise.
11947 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
11948 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
11949 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
11950 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
11951 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
11952 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
11953 (grubof_SOURCES): Likewise.
11954 * disk/i386/pc/partition.c: File removed.
11955 * disk/powerpc/ieee1275/partition.c: Likewise.
11956 * include/grub/powerpc/ieee1275/partition.h: Likewise.
11957 * include/grub/i386/pc/partition.h: Likewise.
11958 * kern/partition.c: New file.
11959 * partmap/amiga.c: Likewise.
11960 * partmap/apple.c: Likewise.
11961 * partmap/pc.c: Likewise.
11962 * include/grub/partition.h: Likewise..
11963 * include/grub/pc_partition.h: Likewise.
11964 * util/grub-emu.c: Include <grub/partition.h> instead of
11965 <grub/machine/partition.h>.
11966 (main): Call `grub_pc_partition_map_init',
11967 `grub_amiga_partition_map_init' and
11968 `grub_apple_partition_map_init' and deinitialize afterwards.
11969 * util/i386/pc/biosdisk.c: Include `#include
11970 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
11971 `<grub/machine/partition.h>'.
11972 * util/i386/pc/grub-setup.c: Likewise.
11973 * util/i386/pc/biosdisk.c: Likewise.
11974 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
11975 partition information in case of a PC partition.
11976 * util/i386/pc/grub-setup.c: Include `#include
11977 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
11978 `<grub/machine/partition.h>'.
11979 (setup): Only access the PC specific partition information in case
11980 of a PC partition.
11981
0ef4ced9 119822004-11-17 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 11983
0ef4ced9 11984 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
11985 (grub_longjmp): Likewise.
11986 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
11987 20.
11988 * normal/powerpc/setjmp.S: New file.
11989 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
11990 `normal/powerpc/setjmp.S'.
11991 (grubof_CFLAGS): Add `-DGRUBOF'.
11992 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
11993 [GRUB_UTIL && !GRUBOF].
f19dbdb7 11994
19950e29 119952004-11-16 Marco Gerards <metgerards@student.han.nl>
11996
11997 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
11998 property named `name'. Correctly handle the error returned by
11999 `grub_ieee1275_finddevice' if a device can not be opened.
12000
a2fea427 120012004-11-02 Hollis Blanchard <hollis@penguinppc.org>
12002
12003 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
12004 `actual' for negativity.
12005 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
12006 kern/fshelp.c.
12007
41ea0ea3 120082004-11-01 Marco Gerards <metgerards@student.han.nl>
12009
12010 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
12011 (PAGE_OFFSET): New macro.
12012 (CRTC_ADDR_PORT): Likewise.
12013 (CRTC_DATA_PORT): Likewise.
12014 (START_ADDR_HIGH_REGISTER): Likewise.
12015 (START_ADDR_LOW_REGISTER): Likewise.
12016 (GRAPHICS_ADDR_PORT): Likewise.
12017 (GRAPHICS_DATA_PORT): Likewise.
12018 (READ_MAP_REGISTER): Likewise.
12019 (INPUT_STATUS1_REGISTER): Likewise.
12020 (INPUT_STATUS1_VERTR_BIT): Likewise.
12021 (page): New variable.
12022 (wait_vretrace): New function.
12023 (set_read_map): Likewise.
12024 (set_start_address): Likewise.
12025 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
12026 the right page.
12027 (check_vga_mem): Take the page into account.
12028 (write_char): Likewise.
12029 (write_cursor): Likewise.
12030 (scroll_up): Likewise. Copy the page to the page that is not
12031 shown and switch between both pages.
12032 (grub_vga_putchar): Fix off by one error.
12033 (grub_vga_cls): Wait for the vertical retrace. Take the page into
12034 account.
12035
ad0bd20b 120362004-11-01 Marco Gerards <metgerards@student.han.nl>
12037
12038 Add support for iso9660 (including rockridge).
f19dbdb7 12039
ad0bd20b 12040 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
12041 (iso9660_mod_SOURCES): New variable.
12042 (iso9660_mod_CFLAGS): Likewise.
12043 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
12044 * include/grub/fs.h (grub_iso9660_init): New prototype.
12045 * util/grub-emu.c (main): Call `grub_iso9660_init'.
12046 * fs/iso9660.c: New file.
12047
12048 * include/grub/misc.h (grub_strncat): New prototype.
12049 * kern/misc.c (grub_strncat): New function.
f19dbdb7 12050
ad0bd20b 12051 * fs/hfs.c (grub_hfs_mount): Translate the error
12052 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
12053 * fs/jfs.c (grub_jfs_mount): Likewise.
12054 * fs/ufs.c (grub_ufs_mount): Likewise.
12055
a5477a59 120562004-10-28 Hollis Blanchard <hollis@penguinppc.org>
12057
12058 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
12059 which initialized BAT registers.
12060 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
12061 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
12062 Move from here...
12063 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
12064 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
12065 ... to here.
12066 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
12067 (grub_mapclaim): Likewise.
12068 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
12069 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
12070 hand.
12071
9304c1f8 120722004-10-19 Hollis Blanchard <hollis@penguinppc.org>
12073
12074 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
12075 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
12076 -ffreestanding and -msoft-float.
12077
86f4ae25 120782004-10-15 Hollis Blanchard <hollis@penguinppc.org>
12079
12080 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
12081 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
12082 set in grub_ieee1275_flags.
12083
38912228 120842004-10-14 Hollis Blanchard <hollis@penguinppc.org>
12085
12086 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
12087 prototype.
12088 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
12089 grub_console_init first.
12090 Change the memory range used for grub_ieee1275_claim and
12091 grub_mm_init_region.
12092 Print an error message if the claim fails.
12093 Include <grub/misc.h>.
12094
d1923dc8 120952004-10-13 Hollis Blanchard <hollis@penguinppc.org>
12096
12097 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
12098 Call grub_children_iterate for device nodes of type `scsi',
12099 `ide', or `ata'.
12100 (grub_ofdisk_open): Remove manual device alias resolution.
12101 Fix memory leak when device cannot be opened.
f19dbdb7 12102 * include/grub/powerpc/ieee1275/ieee1275.h
d1923dc8 12103 (grub_children_iterate): New prototype.
12104 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
12105 New function.
12106 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
12107 Return -1 if args.size was -1.
12108
4512e4f3 121092004-10-11 Hollis Blanchard <hollis@penguinppc.org>
12110
12111 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
12112 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
12113 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
12114 Open Firmware's memory for it; claim memory from _start to _end.
12115 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
12116 (_end): New extern.
12117 (_start): Zero BSS from __bss_start to _end.
12118 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
12119 New extern.
12120 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
12121
4d61feb0 121222004-10-11 Hollis Blanchard <hollis@penguinppc.org>
12123
ad0bd20b 12124 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
12125 -1 if args.base was -1.
4d61feb0 12126
026fa2f9 121272004-10-08 Hollis Blanchard <hollis@penguinppc.org>
12128
12129 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
12130 escape sequence instead of a literal ^L. Also call
12131 grub_ofconsole_gotoxy.
12132
9f2220ef 121332004-10-03 Hollis Blanchard <hollis@penguinppc.org>
12134
12135 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
12136 void * arguments to grub_addr_t. All callers updated. Also make
12137 the `result' argument optional.
12138 (grub_ieee1275_release): change void * arguments to grub_addr_t.
12139 All callers updated.
12140
8a572cd7 121412004-09-22 Hollis Blanchard <hollis@penguinppc.org>
12142
12143 * commands/ls.c (grub_ls_list_files): Use the string following the
12144 initial ')', if present, as the filesystem path.
12145 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
12146
12147 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
12148
18aa81f2 121492004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
12150
12151 Make the source code of the menu interface more readable.
f19dbdb7 12152
18aa81f2 12153 * normal/menu.c: Include grub/mm.h.
12154 (TERM_WIDTH): New macro.
12155 (TERM_HEIGHT): Likewise.
12156 (TERM_INFO_HEIGHT): Likewise.
12157 (TERM_MARGIN): Likewise.
12158 (TERM_SCROLL_WIDTH): Likewise.
12159 (TERM_TOP_BORDER_Y): Likewise.
12160 (TERM_LEFT_BORDER_X): Likewise.
12161 (TERM_BORDER_WIDTH): Likewise.
12162 (TERM_MESSAGE_HEIGHT): Likewise.
12163 (TERM_BORDER_HEIGHT): Likewise.
12164 (TERM_NUM_ENTRIES): Likewise.
12165 (TERM_FIRST_ENTRY_Y): Likewise.
12166 (TERM_ENTRY_WIDTH): Likewise.
12167 (TERM_CURSOR_X): Likewise.
12168 (draw_border): Use macros instead of magic numbers.
12169 (print_entry): Likewise.
12170 (print_entries): Likewise.
12171 (run_menu): Likewise. Also, handle the key 'e'.
12172 (run_menu_entry): Ignore empty command lines.
12173 (print_message): Added a new argument EDIT. If EDIT is true,
12174 print a different message.
12175 (init_page): Likewise.
12176 (edit_menu_entry): New function. Not implemented yet.
12177
b47efe30 121782004-09-17 Marco Gerards <metgerards@student.han.nl>
12179
12180 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
12181 can be loaded from normal mode.
f19dbdb7 12182
b47efe30 12183 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
12184 `multiboot.mod'.
12185 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
12186 (multiboot_mod_CFLAGS): New variables.
12187 * loader/i386/pc/linux_normal.c: New file.
f19dbdb7 12188 * loader/i386/pc/multiboot_normal.c: Likewise.
12189
b47efe30 12190 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
12191 attribute `unused'.
f19dbdb7 12192
b47efe30 12193 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
12194 `fdiro' to read the mode information from instead of `diro'.
12195
12196 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
12197 looking up a symlink.
12198
12199 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
12200 macro.
12201 * normal/command.c (grub_command_execute): Don't parse the
12202 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
12203 flags of the command.
12204
12205 * normal/menu.c (grub_menu_run): Fix typo.
12206
da75ac71 122072004-09-14 Hollis Blanchard <hollis@penguinppc.org>
12208
12209 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
12210
12211 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
12212 `y + 1' instead of `y - 1'.
12213
12214 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
f19dbdb7 12215
062b24c2 122162004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
12217
12218 From Hollis Blanchard <hollis@penguinppc.org>:
12219 * kern/misc.c (memmove): New alias for grub_memmove.
12220 (memcmp): New alias for grub_memcmp.
12221 (memset): New alias for grub_memset.
f19dbdb7 12222 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
062b24c2 12223 Change "int handle" to "grub_ieee1275_phandle_t handle".
f19dbdb7 12224 * include/grub/powerpc/ieee1275/ieee1275.h
062b24c2 12225 (grub_ieee1275_get_property): Likewise.
f19dbdb7 12226
8ddad845 122272004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
12228
12229 Added normal mode command `chainloader' as module chain.mod, which
12230 depends on normal.mod and _chain.mod.
f19dbdb7 12231
8ddad845 12232 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
12233 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
12234 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
12235 Deleted prototype.
12236 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
12237 but arguments parsing moved to ...
12238 (grub_chainloader_cmd): ... here. New function.
12239 * include/grub/i386/pc/chainloader.h: New file.
12240 * loader/i386/pc/chainloader_normal.c: Likewise.
12241
2c1f4ce3 122422004-09-11 Marco Gerards <metgerards@student.han.nl>
12243
12244 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
12245 (grub_mkimage_LDFLAGS): Likewise.
12246 (grub_emu_SOURCES): Likewise.
12247 (kernel_img_HEADERS): Added fshelp.h.
12248 * fs/ext2.c: Include <grub/fshelp.h>.
12249 (FILETYPE_REG): New macro.
12250 (FILETYPE_INO_REG): Likewise.
12251 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
12252 Changed all users.
12253 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
12254 all users.
12255 (grub_fshelp_node): New struct.
12256 (grub_ext2_data): Added member `diropen'. Changed member `inode'
12257 to a pointer.
12258 (grub_ext2_get_file_block): Removed function.
12259 (grub_ext2_read_block): New function.
12260 (grub_ext2_read_file): Replaced parameter `data' by `node'.
12261 This function was written.
12262 (grub_ext2_mount): Read the root inode. Create a diropen struct.
12263 (grub_ext2_find_file): Removed function.
12264 (grub_ext2_read_symlink): New function.
12265 (grub_ext2_iterate_dir): Likewise.
12266 (grub_ext2_open): Rewritten.
12267 (grub_ext2_dir): Rewritten.
12268 * include/grub/fshelp.h: New file.
12269 * fs/fshelp.c: Likewise.
12270
3c52136a 122712004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
12272
12273 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
12274 (print_message): Add a missing newline.
12275 (run_menu): Added timeout support.
12276 (run_menu_entry): New local function.
12277 (grub_menu_run): Added support for booting.
12278
12279 * kern/loader.c (grub_loader_is_loaded): New function.
12280
12281 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
12282 (grub_get_rtc): Exported.
12283
12284 * include/grub/i386/pc/time.h: Include grub/symbol.h.
12285 (grub_get_rtc): Exported.
12286
12287 * include/grub/normal.h (struct grub_command_list): Remove
12288 constant from the member `command'.
12289
12290 * include/grub/loader.h (grub_loader_is_loaded): Declared.
12291
12292 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
12293
12294 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
12295
aa033560 122962004-08-28 Marco Gerards <metgerards@student.han.nl>
12297
12298 Add support for the JFS filesystem.
12299
12300 * fs/jfs.c: New file.
12301 * include/grub/fs.h (grub_jfs_init): New prototype.
12302 (grub_jfs_fini): New prototype.
12303 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
12304 (grub_emu_SOURCES): Likewise.
12305 (pkgdata_MODULES): Add jfs.mod.
12306 (jfs_mod_SOURCES): New variable.
12307 (jfs_mod_CFLAGS): Likewise.
12308 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
12309 (grubof_SOURCES): Likewise.
12310 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
12311
12312 * fs/fat.c (grub_fat_find_dir): Convert the filename little
12313 endian to the host endian.
12314 (grub_fat_utf16_to_utf8): Move function from there...
12315 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
fe987087 12316 the endianness of the source string anymore.
aa033560 12317 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
12318
94bc45af 123192004-08-24 Marco Gerards <metgerards@student.han.nl>
12320
12321 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
12322 (grub_boot_fini) [GRUB_UTIL]: Likewise.
12323 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
12324 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
f19dbdb7 12325
94bc45af 12326 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
12327 (grub_hfs_iterate_dir): Make the function static. Add prototypes
12328 for `node_found' and `it_dir'.
12329 (grub_hfs_dir): Add prototype for `dir_hook'.
12330
12331 * fs/minix.c (grub_minix_get_file_block): Add prototype for
12332 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
12333 and `indir32' to silence a gcc warning.
12334
12335 * include/grub/fs.h (grub_hfs_init): New prototype.
12336 (grub_hfs_fini): Likewise.
f19dbdb7 12337
12338
97543f08 123392004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
12340
12341 Each disk device has its own id now. This is useful to make use
12342 of multiple disk devices.
f19dbdb7 12343
97543f08 12344 * include/grub/disk.h (grub_disk_dev_id): New enum.
12345 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
12346 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
12347
12348 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
12349 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
12350
12351 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
12352 GRUB_DISK_DEVICE_OFDISK_ID as an id.
12353
12354 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
12355 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
12356
12357 * include/grub/disk.h (struct grub_disk_dev): Added a new member
12358 "id" which is used by the cache manager.
12359
12360 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
12361 of just "GRUB".
12362
64372eb4 123632004-08-18 Marco Gerards <metgerards@student.han.nl>
12364
12365 * fs/hfs.c: New file.
12366 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
12367 (grub_emu_SOURCES): Likewise.
12368 (pkgdata_MODULES): Add hfs.mod.
12369 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
12370 (grubof_SOURCES): Likewise.
12371 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
12372
12373 * include/grub/misc.h (grub_strncasecmp): Add prototype.
12374 * kern/misc.c (grub_strncasecmp): Add function.
12375
cc61b58f 123762004-08-14 Marco Gerards <metgerards@student.han.nl>
12377
12378 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
12379 with parentheses.
12380
12381 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
12382 (grub_ext2_dir): In case the directory entry type is unknown, read
12383 it from the inode.
12384
0ef123f6 123852004-08-02 Peter Bruin <pjbruin@dds.nl>
12386
12387 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
12388 grub_load_linux instead of grub_rescue_cmd_linux as second
12389 argument of grub_rescue_register_command.
12390
12391 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
12392
a447c5df 123932004-07-27 Marco Gerards <metgerards@student.han.nl>
12394
12395 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
12396 function.
12397 * commands/boot.c: Remove the check for `GRUB_UTIL'.
12398 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
12399 `loader/powerpc/ieee1275/linux.c',
12400 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
12401 * include/grub/powerpc/ieee1275/ieee1275.h
12402 (grub_ieee1275_release): New prototype.
12403 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
12404 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
12405 normal, boot, linux and linux_normal.
12406 * loader/powerpc/ieee1275/linux.c: New file.
12407 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
12408
5a9e3546 124092004-07-12 Marco Gerards <metgerards@student.han.nl>
12410
12411 * normal/arg.c (grub_arg_parse): Correct error handling after
12412 reallocating the argumentlist (check if `argl' is not null instead
12413 of checking if `args' is not null).
12414 * kern/mm.c (grub_realloc): Return the same pointer when using the
12415 same region, instead of returning the header address.
12416
e15199cb 124172004-07-11 Marco Gerards <metgerards@student.han.nl>
12418
12419 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
12420 one block instead of two when looking for the initial partition.
12421 (grub_partition_probe): Initialize the local variable `p' with 0.
12422 Use base 10 for the grub_strtoul call.
12423 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
12424 need for one local variable.
12425 (grub_strtoul): Don't add the new value to `num', instead of that
12426 just assign it.
12427
020616c2 124282004-07-11 Marco Gerards <metgerards@student.han.nl>
12429
12430 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
12431 (pxeboot_img_SOURCES): New variable.
12432 (pxeboot_img_ASFLAGS): Likewise.
12433 (pxeboot_img_LDFLAGS): Likewise.
12434 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
12435 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
12436 <lode_leroy@hotmail.com>.
12437
6c51eb64 124382004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
12439
12440 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
12441 there was no input.
12442
cfb12aff 124432004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
12444
12445 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
12446 the history buffer logic.
12447
6eabba74 124482004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
12449
12450 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
12451 (FILETYPE_INO_SYMLINK): New macros.
12452 (grub_ext2_find_file): Check if the node is a directory using the
12453 inode stat information instead of using the filetype in the
12454 dirent. Exclude the first character of an absolute symlink.
12455 (grub_ext2_dir): Mask out the filetype part of the mode member of
12456 the inode.
12457
66e19ef8 124582004-05-24 Marco Gerards <metgerards@student.han.nl>
12459
12460 Add support for UFS version 1 and 2. Add support for the minix
12461 filesystem version 1 and 2, both the variants with 14 and 30 long
12462 filenames.
f19dbdb7 12463
66e19ef8 12464 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
12465 fs/minix.c.
12466 (grub_emu_SOURCES): Likewise.
12467 (pkgdata_MODULES): Add ufs.mod and minix.mod.
12468 (ufs_mod_SOURCES): New variable.
12469 (ufs_mod_CFLAGS): Likewise.
12470 (minix_mod_SOURCES): Likewise.
12471 (minix_mod_CFLAGS): Likewise.
12472 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
12473 fs/minix.c.
12474 (grubof_SOURCES): Likewise.
12475 * fs/ufs.c: New file.
12476 * fs/minix.c: New file.
12477 * include/grub/fs.h (grub_ufs_init): New prototype.
12478 (grub_ufs_fini): Likewise.
12479 (grub_minix_init): Likewise.
12480 (grub_minix_fini): Likewise.
12481 * util/grub-emu.c (main): Initialize and deinitialize UFS and
12482 minix fs.
12483
cc2e748a 124842004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
12485
12486 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
12487 commands/ls.c, commands/terminal.c, commands/boot.c,
12488 commands/cmp.c and commands/cat.c.
12489 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
12490
12491 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
12492 "env.h"
12493
4b13b216 124942004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
12495
12496 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
12497 and grub_, respectively. Because the conversion is trivial and
12498 mechanical, I omit the details here. Please refer to the CVS
12499 if you need more information.
12500
6a142551 125012004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
12502
12503 * include/pupa: Renamed to ...
12504 * include/grub: ... this.
12505 * util/i386/pc/pupa-mkimage.c: Renamed to ...
12506 * util/i386/pc/grub-mkimage.c: ... this.
12507 * util/i386/pc/pupa-setup.c: Renamed to ...
12508 * util/i386/pc/grub-setup.c: ... this.
12509 * util/pupa-emu.c: Renamed to ...
12510 * util/grub-emu.c: ... this.
12511
e56cdf21 125122004-03-29 Marco Gerards <metgerards@student.han.nl>
12513
12514 Add support for the newworld apple macintosh (PPC). This has been
12515 tested on the powerbook 2000 only. It only adds support for
12516 generic ieee1275 functions, console and disk support. This should
12517 be easy to port to other architectures with support for Open
12518 Firmware.
f19dbdb7 12519
e56cdf21 12520 * configure.ac: Accept the powerpc as host_cpu. In the case of
12521 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
12522 specific tests are only executed while building for the i386.
12523 Inverse test for crosscompile.
12524 * genmk.rb (Utility): Allow assembler files.
12525 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
12526 * conf/powerpc-ieee1275.rmk: New file.
12527 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
12528 * disk/powerpc/ieee1275/partition.c: Likewise.
12529 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
12530 * include/pupa/powerpc/ieee1275/console.h: Likewise.
12531 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
12532 * include/pupa/powerpc/ieee1275/time.h: Likewise.
12533 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
12534 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
12535 * include/pupa/powerpc/ieee1275/loader.h
12536 * include/pupa/powerpc/setjmp.h: Likewise.
12537 * include/pupa/powerpc/types.h: Likewise.
12538 * kern/powerpc/ieee1275/init.c: Likewise.
12539 * kern/powerpc/ieee1275/openfw.c: Likewise.
12540 * term/powerpc/ieee1275/ofconsole.c: Likewise.
12541
12542 These files were written by Johan Rydberg
12543 (jrydberg@night.trouble.net) and I only modified them slightly.
f19dbdb7 12544
e56cdf21 12545 * boot/powerpc/ieee1275/cmain.c: New file.
12546 * boot/powerpc/ieee1275/crt0.S: Likewise.
12547 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
12548 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
12549
8c8cc205 125502004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
12551
12552 * Makefile.in: Update copyright.
12553 * genmodsrc.sh: Likewise.
12554 * gensymlist.sh: Likewise.
12555 * term/i386/pc/vga.c: Indent correctly.
12556
12557 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
12558 bugreporting address.
12559 * util/i386/pc/pupa-setup.c (usage): Likewise,
12560 (main): Call pupa_ext2_init and pupa_ext2_fini.
12561
f19dbdb7 12562 * fs/fat.c (log2): Renamed to ...
8c8cc205 12563 (fat_log2): ... this.
12564 All callers changed.
12565 * kern/misc.c (memcpy): Alias to pupa_memmove.
12566 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
12567 lvalue cast.
12568 * util/console.c (pupa_ncurses_fini): Return 0.
12569
12570 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
12571 Move fail label here.
12572 [__GNU__]: Don't warn when using stat.
12573 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
12574 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
12575 long int. Use strtol instead of strtoul.
f19dbdb7 12576
db1771cf 125772004-03-14 Marco Gerards <metgerards@student.han.nl>
12578
12579 * commands/boot.c: New file.
12580 * commands/cat.c: Likewise.
12581 * commands/cmp.c: Likewise.
12582 * commands/ls.c: Likewise.
12583 * commands/terminal.c: Likewise.
12584 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
12585 (pupa_register_command): Changed interface to match the new
12586 argument parser.
12587 (pupa_command_execute): Changed (almost rewritten) so it uses
12588 pupa_split_command. Added support for setting variables using the
12589 syntax `foo=bar'.
12590 (rescue_command): Changed to work with the new argument parser.
12591 (terminal_command): Moved from here to commands/terminal.c.
12592 (set_command): New function.
12593 (unset_command): New function.
12594 (insmod_command): New function.
12595 (rmmod_command): New function.
12596 (lsmod_command): New function.
12597 (pupa_command_init): Don't initialize the command terminal
12598 anymore. Initialize the commands set, unset, insmod, rmmod and
12599 lsmod.
12600 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
12601 (kernel_img_HEADERS): Add arg.h and env.h.
12602 (pupa_mkimage_LDFLAGS): Add kern/env.c.
12603 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
12604 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
12605 normal/arg.c.
12606 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
12607 terminal.mod.
12608 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
12609 (boot_mod_SOURCES): New variable.
12610 (terminal_mod_SOURCES): Likewise.
12611 (ls_mod_SOURCES): Likewise.
12612 (cmp_mod_SOURCES): Likewise.
12613 (cat_mod_SOURCES): Likewise.
12614
12615 * normal/arg.c: New file.
12616 * kern/env.c: Likewise.
12617 * include/pupa/arg.h: Likewise.
12618 * include/pupa/env.h: Likewise.
12619 * font/manager.c (font_command): Changed to match argument parsing
12620 interface changes.
12621 (PUPA_MOD_INIT): Likewise.
12622 * hello/hello.c (pupa_cmd_hello): Likewise.
12623 (PUPA_MOD_INIT): Likewise.
12624 * include/pupa/disk.h: Include <pupa/device.h>.
12625 (pupa_print_partinfo): New prototype.
12626 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
12627 (pupa_dl_get_prefix): Likewise.
12628 * include/pupa/misc.h: Include <pupa/err.h>.
12629 (pupa_isgraph): New prototype.
12630 (pupa_isdigit): Likewise.
12631 (pupa_split_cmdline): Likewise.
12632 * include/pupa/normal.h: Include <pupa/arg.h>.
12633 (pupa_command): Changed the prototype of the member `func' to
12634 match the argument parsing interface. Added member `options'.
12635 (pupa_register_command): Updated to match function.
12636 (pupa_arg_parse): New prototype.
12637 (pupa_hello_init) [PUPA_UTIL]: New prototype.
12638 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
12639 (pupa_ls_init) [PUPA_UTIL]: Likewise.
12640 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
12641 (pupa_cat_init) [PUPA_UTIL]: Likewise.
12642 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
12643 (pupa_boot_init) [PUPA_UTIL]: Likewise.
12644 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
12645 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
12646 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
12647 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
12648 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
12649 * kern/disk.c: Include <pupa/file.h>.
12650 (pupa_print_partinfo): New function.
12651 * kern/dl.c: Include <pupa/env.h>.
12652 (pupa_dl_dir): Variable removed.
12653 (pupa_dl_load): Use the environment variable `prefix' instead of
12654 the variable pupa_dl_dir.
12655 (pupa_dl_set_prefix): Function removed.
12656 (pupa_dl_get_prefix): Likewise.
12657 * kern/i386/pc/init.c: Include <pupa/env.h>.
12658 (pupa_machine_init): Use the environment variable `prefix' instead of
12659 using pupa_dl_set_prefix to set the prefix.
12660 * kern/main.c: Include <pupa/env.h>.
12661 (pupa_set_root_dev): Use the environment variable `prefix' instead of
12662 using pupa_dl_get_prefix to get the prefix.
12663 * kern/misc.c: Include <pupa/env.h>.
12664 (pupa_isdigit): New function.
12665 (pupa_isgraph): Likewise.
12666 (pupa_ftoa): Likewise.
12667 (pupa_vsprintf): Added support for printing values of the type
12668 `double'. Make it possible to format variable output when using
12669 formatting like `%1.2%f'.
12670 (pupa_split_cmdline): New function.
12671 * kern/rescue.c: Include <pupa/env.h>.
12672 (next_word): Removed function.
12673 (pupa_rescue_cmd_prefix): Likewise.
12674 (pupa_rescue_cmd_set): New function.
12675 (pupa_rescue_cmd_unset): New function.
12676 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
12677 split the command line instead of splitting it here. Added
12678 support for setting variables using the syntax `foo=bar'. Don't
12679 initialize the prefix command anymore. Initialized the set and
12680 unset commands.
12681 * normal/cmdline.c: Include <pupa/env.h>.
12682 (pupa_tab_complete): Added prototypes for print_simple_completion,
12683 print_partition_completion, add_completion, iterate_commands,
12684 iterate_dev, iterate_part and iterate_dir. Moved code to print
12685 partition information from here to kern/disk.c.
fe6b695a 12686 (pupa_cmdline_run): Don't check if the function exists anymore.
db1771cf 12687 * normal/main.c: Include <pupa/env.h>.
12688 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
12689 instead of using pupa_dl_get_prefix to get the prefix.
12690 * term/i386/pc/vga.c: Include <pupa/arg.h>.
12691 (check_vga_mem): Cast pointers to `void *' to silence a gcc
12692 warning.
12693 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
12694 (pupa_vga_setcolor): Declare unused variables with `__attribute__
12695 ((unused))' to silence a gcc warning.
12696 (pupa_vga_setcolor): Likewise.
12697 (debug_command): Changed to match argument parsing
12698 interface changes.
12699 * util/pupa-emu.c: Include <pupa/env.h>.
12700 (options): Added 0's for unused fields to silence a gcc warning.
12701 (argp): Likewise.
12702 (main): Use the environment variable `prefix' instead of using
12703 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
12704 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
12705 and terminal.
12706
12707 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
12708 * util/misc.c: Include <malloc.h>.
12709 (pupa_malloc): Rewritten so errors are correctly reported.
12710 (pupa_realloc): Likewise.
12711 (pupa_memalign): Likewise.
12712 (pupa_mm_init_region): Declare unused variables with
12713 `__attribute__ ((unused))' to silence a gcc warning.
12714 * normal/i386/setjmp.S: Remove tab at the end of the file to
12715 silence a gcc warning.
12716 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
12717 variables with `__attribute__ ((unused))' to silence a gcc
12718 warning.
12719 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
12720 local variable i unsigned to silence a gcc warning.
12721
12722 * kern/term.c: Include <pupa/misc.h>.
12723 (pupa_more_lines): New variable.
12724 (pupa_more): Likewise.
12725 (pupa_putcode): When the pager is active pause at the end of every
12726 screen.
12727 (pupa_set_more): New function.
12728 * include/pupa/term.h (pupa_set_more): New prototype.
12729
12730
3b1139cb 127312004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
12732
12733 Now this project is GRUB 2 rather than PUPA. The location of
12734 the CVS repository was moved to GRUB's.
f19dbdb7 12735
3b1139cb 12736 * configure.ac: Use bug-grub as the reporting address.
12737 Use GRUB instead of PUPA.
12738 Change the version number to 1.90.
12739
8367695c 127402004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
12741
12742 * genkernsyms.sh: Updated copyright information.
12743 * genmk.rb: Likewise.
12744 * genmodsrc.sh: Likewise.
12745 * gensymlist.sh: Likewise.
12746 * boot/i386/pc/boot.S: Likewise.
12747 * boot/i386/pc/diskboot.S: Likewise.
12748 * disk/i386/pc/biosdisk.c: Likewise.
12749 * disk/i386/pc/partition.c: Likewise.
12750 * font/manager.c: Likewise.
12751 * fs/ext2.c: Likewise.
12752 * fs/fat.c: Likewise.
12753 * include/pupa/boot.h: Likewise.
12754 * include/pupa/device.h: Likewise.
12755 * include/pupa/disk.h: Likewise.
12756 * include/pupa/dl.h: Likewise.
12757 * include/pupa/elf.h: Likewise.
12758 * include/pupa/err.h: Likewise.
12759 * include/pupa/file.h: Likewise.
12760 * include/pupa/font.h: Likewise.
12761 * include/pupa/fs.h: Likewise.
12762 * include/pupa/kernel.h: Likewise.
12763 * include/pupa/loader.h: Likewise.
12764 * include/pupa/misc.h: Likewise.
12765 * include/pupa/mm.h: Likewise.
12766 * include/pupa/net.h: Likewise.
12767 * include/pupa/normal.h: Likewise.
12768 * include/pupa/rescue.h: Likewise.
12769 * include/pupa/setjmp.h: Likewise.
12770 * include/pupa/symbol.h: Likewise.
12771 * include/pupa/term.h: Likewise.
12772 * include/pupa/types.h: Likewise.
12773 * include/pupa/i386/setjmp.h: Likewise.
12774 * include/pupa/i386/types.h: Likewise.
12775 * include/pupa/i386/pc/biosdisk.h: Likewise.
12776 * include/pupa/i386/pc/boot.h: Likewise.
12777 * include/pupa/i386/pc/console.h: Likewise.
12778 * include/pupa/i386/pc/init.h: Likewise.
12779 * include/pupa/i386/pc/kernel.h: Likewise.
12780 * include/pupa/i386/pc/linux.h: Likewise.
12781 * include/pupa/i386/pc/loader.h: Likewise.
12782 * include/pupa/i386/pc/memory.h: Likewise.
12783 * include/pupa/i386/pc/multiboot.h: Likewise.
12784 * include/pupa/i386/pc/partition.h: Likewise.
12785 * include/pupa/i386/pc/time.h: Likewise.
12786 * include/pupa/i386/pc/vga.h: Likewise.
12787 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
12788 * include/pupa/util/getroot.h: Likewise.
12789 * include/pupa/util/misc.h: Likewise.
12790 * include/pupa/util/resolve.h: Likewise.
12791 * kern/device.c: Likewise.
12792 * kern/disk.c: Likewise.
12793 * kern/dl.c: Likewise.
12794 * kern/err.c: Likewise.
12795 * kern/file.c: Likewise.
12796 * kern/fs.c: Likewise.
12797 * kern/loader.c: Likewise.
12798 * kern/main.c: Likewise.
12799 * kern/misc.c: Likewise.
12800 * kern/mm.c: Likewise.
12801 * kern/rescue.c: Likewise.
12802 * kern/term.c: Likewise.
12803 * kern/i386/dl.c: Likewise.
12804 * kern/i386/pc/init.c: Likewise.
12805 * kern/i386/pc/lzo1x.S: Likewise.
12806 * kern/i386/pc/startup.S: Likewise.
12807 * loader/i386/pc/chainloader.c: Likewise.
12808 * loader/i386/pc/linux.c: Likewise.
12809 * loader/i386/pc/multiboot.c: Likewise.
12810 * normal/cmdline.c: Likewise.
12811 * normal/command.c: Likewise.
12812 * normal/main.c: Likewise.
12813 * normal/menu.c: Likewise.
12814 * normal/i386/setjmp.S: Likewise.
12815 * term/i386/pc/console.c: Likewise.
12816 * term/i386/pc/vga.c: Likewise.
12817 * util/console.c: Likewise.
12818 * util/genmoddep.c: Likewise.
12819 * util/misc.c: Likewise.
12820 * util/pupa-emu.c: Likewise.
12821 * util/resolve.c: Likewise.
12822 * util/unifont2pff.rb: Likewise.
12823 * util/i386/pc/biosdisk.c: Likewise.
12824 * util/i386/pc/getroot.c: Likewise.
12825 * util/i386/pc/pupa-mkimage.c: Likewise.
12826 * util/i386/pc/pupa-setup.c: Likewise.
12827
e6eced71 128282004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
12829
12830 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
12831 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
12832 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
12833 reading and reset it after reading.
12834 (pupa_ext2_close): Return PUPA_ERR_NONE.
12835
12836 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
12837 Correct value.
12838 (struct linux_kernel_header): Add kernel_version and
12839 initrd_addr_max.
12840 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
12841 pupa_file_read succeeds.
12842 (pupa_rescue_cmd_initrd): Implement.
12843
5aded270 128442003-12-03 Marco Gerards <metgerards@student.han.nl>
12845
12846 * fs/ext2.c (pupa_ext2_label): New function.
12847 (pupa_ext2_fs): Added label.
12848 * fs/fat.c (pupa_fat_label): New function.
12849 (pupa_fat_fs): Added label.
12850 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
12851
12852 * kern/misc.c (pupa_strndup): New function.
12853 * include/pupa/misc.h (pupa_strndup): New prototype.
12854
12855 * include/pupa/normal.h: Include <pupa/err.h>.
12856 (pupa_set_history): New prototype.
12857 (pupa_iterate_commands): New prototype.
12858 * normal/cmdline.c: Include <pupa/machine/partition.h>,
12859 <pupa/disk.h>, <pupa/file.h>.
12860 (hist_size): New variable.
12861 (hist_lines): Likewise.
12862 (hist_end): Likewise.
12863 (hist_used): Likewise.
12864 (pupa_set_history): New function.
12865 (pupa_history_get): Likewise.
12866 (pupa_history_add): Likewise.
12867 (pupa_history_replace): Likewise.
12868 (pupa_tab_complete): Likewise.
12869 (pupa_cmdline_run): Added tab completion and history buffer. Tab
12870 completion shows partitionnames while completing partitions, this
12871 feature was suggested by Jeff Bailey.
12872 * normal/command.c (pupa_iterate_commands): New function.
12873 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
12874 (pupa_normal_init): Initialize history buffer.
12875 (PUPA_MOD_INIT): Likewise.
12876 (pupa_normal_fini): Free the history buffer.
12877 (PUPA_MOD_FINI): Likewise.
12878
12879 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
12880 key.
12881
12882 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
12883 * configure.ac [i386]: Check for regparam bug.
12884 (NESTED_FUNC_ATTR) [! i386]: Defined.
12885
1f7315a3 128862003-11-17 Marco Gerards <metgerards@student.han.nl>
12887
12888 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
12889 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
12890 (pupa_emu_SOURCES): New variable.
12891 (pupa_emu_LDFLAGS): Likewise.
12892 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
12893 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
12894 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
12895 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
12896 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
12897 (pupa_jmp_buf): New typedef.
12898 (pupa_setjmp) [PUPA_UTIL]: New macro.
12899 (pupa_longjmp) [PUPA_UTIL]: Likewise.
12900 * include/pupa/term.h (struct pupa_term): New member `refresh'.
12901 (pupa_refresh): New prototype.
12902 * include/pupa/util/getroot.h: New file.
12903 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
12904 it.
12905 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
12906 (pupa_rescue_cmd_cat): Likewise.
12907 (pupa_rescue_cmd_ls): Likewise.
12908 (pupa_rescue_cmd_testload): Likewise.
12909 (pupa_rescue_cmd_lsmod): Likewise.
12910 * normal/cmdline.c (pupa_cmdline_get): Likewise.
12911 * normal/menu.c (run_menu): Likewise.
12912 * kern/term.c (pupa_cls): Likewise.
12913 (pupa_refresh): New function.
12914 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
12915 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
12916 * util/console.c: New file.
f19dbdb7 12917
1f7315a3 12918 * util/i386/pc/getroot.c: New file.
12919 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
12920 (pupa_putchar): New function.
12921 (pupa_refresh): Likewise.
12922 (xgetcwd): Function moved to ...
12923 (strip_extra_slashes): Likewise.
12924 (get_prefix): Likewise.
f19dbdb7 12925 * util/i386/pc/getroot.c: ... here.
1f7315a3 12926 (find_root_device): Function moved and renamed to...
12927 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
12928 Changed all callers.
12929 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
12930 and renamed to...
12931 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
12932 Changed all callers.
12933 * util/misc.c (pupa_memalign): New function.
12934 (pupa_mm_init_region): Likewise.
12935 (pupa_register_exported_symbols): Likewise.
12936 (pupa_putchar): Function removed.
12937 * util/pupa-emu.c: New file.
12938
9a5c1ade 129392003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
12940
12941 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
12942 (_multiboot_mod_SOURCES): New variable.
12943 (_multiboot_mod_CFLAGS): Likewise.
12944 * loader/i386/pc/multiboot.c: New file.
12945 * include/pupa/i386/pc/multiboot.h: Likewise.
12946 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
12947 (pupa_multiboot_real_boot): New function.
12948 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
12949 (pupa_multiboot_real_boot): New prototype.
12950 (pupa_rescue_cmd_multiboot): Likewise
12951 (pupa_rescue_cmd_module): Likewise.
12952
12953 * kern/loader.c (pupa_loader_set): Continue when
12954 pupa_loader_unload_func() fails.
12955 (pupa_loader_unset): New function.
12956 * include/pupa/loader.h (pupa_loader_unset): New prototype.
12957
12958 * kern/misc.c (pupa_stpcpy): New function.
12959 * include/pupa/misc.h (pupa_stpcpy): New prototype.
12960
8e72a9c0 129612003-11-12 Marco Gerards <metgerards@student.han.nl>
12962
12963 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
12964 for available extensions.
12965
12966 * include/pupa/i386/pc/time.h: New file.
12967 * kern/disk.c: Include <pupa/machine/time.h>.
12968 (PUPA_CACHE_TIMEOUT): New macro.
12969 (pupa_last_time): New variable.
12970 (pupa_disk_open): Flush the cache when there was a timeout.
12971 (pupa_disk_close): Reset the timer.
12972 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
12973 pupa_currticks.
12974 * util/misc.c: Include <sys/times.h>
12975 (pupa_get_rtc): New function.
12976
c4adbd32 129772003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
12978
12979 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
12980 as blocks.
12981 (pupa_ext2_get_file_block): Use blocks member.
12982
12983 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
12984 first block. Return -1 instead of pupa_errno on error.
12985
bfd30f06 129862003-10-27 Marco Gerards <metgerards@student.han.nl>
12987
12988 * README: In the pupa-mkimage example use _chain instead of chain
12989 and ext2 instead of fat.
12990 * TODO: Replace ext2fs with jfs as an example. Add an item for
12991 adding journal playback for ext2fs.
12992 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
12993 (pkgdata_MODULES): Added ext2.mod.
12994 (ext2_mod_SOURCES): New variable.
12995 (ext2_mod_CFLAGS): Likewise.
12996 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
12997 * include/pupa/misc.h (pupa_strncpy): New prototype.
12998 (pupa_strcat): Likewise.
12999 (pupa_strncmp): Likewise.
13000 * kern/misc.c (pupa_strcat): Enable function.
13001 (pupa_strncpy): New function.
13002 (pupa_strncmp): Likewise.
13003 * fs/ext2.c: New file.
f19dbdb7 13004
bfd30f06 13005 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
13006 when the read failed before retrying.
13007 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
13008 (_FILE_OFFSET_BITS): Likewise.
13009 * configure.ac: Added AC_SYS_LARGEFILE.
13010
98d15063 130112003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
13012
13013 * genmk.rb (PModule#rule): Make sure to get only symbol names
13014 from the output of nm.
13015 Reported by Robert Millan <zeratul2@wanadoo.es>.
13016
18d9c7cd 130172003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
13018
13019 I forgot to check in these changes for a long time. This adds
13020 incomplete support for VGA console, and this is still very
13021 buggy. Also, a lot of consideration is required for I18N,
13022 UNICODE, and VGA font issues. Therefore, assume that this is
13023 such that "better than nothing".
f19dbdb7 13024
18d9c7cd 13025 * font/manager.c: New file.
13026 * include/pupa/font.h: Likewise.
13027 * include/pupa/i386/pc/vga.h: Likewise.
13028 * term/i386/pc/vga.c: Likewise.
13029 * util/unifont2pff.rb: Likewise.
13030
13031 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
13032 (pkgdata_MODULES): Added vga.mod and font.mod.
13033 (vga_mod_SOURCES): New variables.
13034 (vga_mod_CFLAGS): Likewise.
13035 (font_mod_SOURCES): Likewise.
13036 (font_mod_CFLAGS): Likewise.
13037
13038 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
13039
13040 * include/pupa/term.h: Include pupa/err.h.
f19dbdb7 13041 (struct pupa_term): Added init and fini.
18d9c7cd 13042 Changed the argument of putchar to pupa_uint32_t.
13043
13044 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
13045 (pupa_console_real_putchar): New prototype.
13046 (pupa_console_putchar): Removed.
13047 (pupa_console_checkkey): Exported.
13048 (pupa_console_getkey): Likewise.
13049
13050 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
13051 characters.
13052
13053 * kern/term.c (pupa_term_set_current): Rewritten.
13054 (pupa_putchar): Likewise.
13055 (pupa_putcode): New function.
13056
13057 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
13058 (pupa_console_real_putchar): ... this.
13059 (pupa_vga_set_mode): New function.
13060 (pupa_vga_get_font): Likewise.
13061
13062 * normal/command.c: Include pupa/term.h.
13063 (terminal_command): New function.
13064 (pupa_command_init): Register the command "terminal".
13065
13066 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
13067 (DISP_UP): Likewise.
13068 (DISP_RIGHT): Likewise.
13069 (DISP_DOWN): Likewise.
13070 (DISP_HLINE): Likewise.
13071 (DISP_VLINE): Likewise.
13072 (DISP_UL): Likewise.
13073 (DISP_UR): Likewise.
13074 (DISP_LL): Likewise.
13075 (DISP_LR): Likewise.
13076
13077 * term/i386/pc/console.c (pupa_console_putchar): New function.
f19dbdb7 13078
977329f5 130792003-02-08 NIIBE Yutaka <gniibe@m17n.org>
13080
13081 * util/resolve.c (pupa_util_resolve_dependencies): BUG
13082 FIX. Reverse the path_list.
13083
13084 * include/pupa/normal.h: Export pupa_register_command and
13085 pupa_unregister_command.
13086
13087 * hello/hello.c (pupa_cmd_hello): New module.
13088 * conf/i386-pc.rmk: Added hello.mod.
13089
1f5ab428 130902003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
13091
13092 * kern/i386/pc/lzo1x.S: New file.
f19dbdb7 13093
1f5ab428 13094 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
13095 (compress_kernel): New variable.
13096 (generate_image): Heavily modified to support compressing a
13097 large part of the core image.
13098
13099 * util/misc.c (pupa_util_read_image): Fix a file descriptor
13100 leak.
13101 (pupa_util_load_image): New function.
13102
13103 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
13104 (pupa_compressed_size): New variable.
13105 (codestart): Enable Gate A20 here.
13106 Decompress the compressed part of the core image.
13107 Rearrange the code to put functions and variables which are
13108 required for initialization in the non-compressed part.
13109 Include lzo1x.S.
13110
13111 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
13112 here.
13113
13114 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
13115
f19dbdb7 13116 * include/pupa/i386/pc/kernel.h
1f5ab428 13117 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
13118 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
13119 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
13120 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
13121 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
13122
13123 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
13124
13125 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
13126 (Utility#rule): Likewise.
13127
13128 * configure.ac: Check if LZO is available.
13129
ce5bf700 131302003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
13131
13132 * include/pupa/normal.h: New file.
13133 * include/pupa/setjmp.h: Likewise.
13134 * include/pupa/i386/setjmp.h: Likewise.
13135 * normal/cmdline.c: Likewise.
13136 * normal/command.c: Likewise.
13137 * normal/main.c: Likewise.
13138 * normal/menu.c: Likewise.
13139 * normal/i386/setjmp.S: Likewise.
f19dbdb7 13140
ce5bf700 13141 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
13142 (pupa_rescue_cmd_initrd): Likewise.
13143
13144 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
13145 Likewise.
13146
13147 * kern/i386/pc/startup.S (translation_table): New variable.
13148 (translate_keycode): New function.
13149 (pupa_console_getkey): Call translate_keycode.
13150
13151 * kern/rescue.c (attempt_normal_mode): New function.
13152 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
13153 it failed, print a message.
13154
13155 * kern/mm.c (pupa_real_malloc): Print more information when a
13156 free magic is broken.
13157 (pupa_free): If the first free header is not free actually, set
13158 it to P.
13159
13160 * kern/main.c (pupa_load_normal_mode): Just load the module
13161 "normal".
13162 (pupa_main): Don't print the message
13163 "Entering into rescue mode..." here.
13164
13165 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
13166 Declared.
13167 (pupa_rescue_cmd_initrd): Likewise.
13168 (pupa_rescue_cmd_initrd): Likewise.
13169
13170 * include/pupa/symbol.h (FUNCTION): Specify the type.
13171 (VARIABLE): Likewise.
13172
13173 * include/pupa/err.h (pupa_err_t): Added
13174 PUPA_ERR_UNKNOWN_COMMAND.
13175
13176 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
13177 (pupa_dl_get_prefix): Likewise.
13178
13179 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
13180 Added _chain.mod and _linux.mod instead of chain.mod and
13181 linux.mod.
13182 (chain_mod_SOURCES): Renamed to ...
13183 (_chain_mod_SOURCES): ... this.
13184 (chain_mod_CFLAGS): Renamed to ...
13185 (_chain_mod_CFLAGS): ... this.
13186 (linux_mod_SOURCES): Renamed to ...
13187 (_linux_mod_SOURCES): ... this.
13188 (linux_mod_CFLAGS): Renamed to ...
13189 (_linux_mod_CFLAGS): ... this.
13190 (normal_mod_SOURCES): New variable.
13191 (normal_mod_CFLAGS): Likewise.
13192 (normal_mod_ASFLAGS): Likewise.
13193
131942003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
13195
13196 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
13197 possible.
13198
fe6b695a 13199 * kern/dl.c (pupa_dl_ref): Refer depending modules
ce5bf700 13200 recursively.
13201 (pupa_dl_unref): Unrefer depending modules recursively.
13202 Don't call pupa_dl_unload implicitly, because PUPA can crash if
13203 a module is unloaded before one depending on that module is
13204 unloaded.
13205 (pupa_dl_unload): Unload depending modules explicitly,
13206 if possible.
13207
c04da074 132082003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
13209
13210 * include/pupa/i386/pc/linux.h: New file.
13211 * loader/i386/pc/linux.c: Likewise.
f19dbdb7 13212
c04da074 13213 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
13214 Removed.
13215 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
13216 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
13217 of PUPA_CHAINLOADER_BOOT_SECTOR.
13218
13219 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
13220 (pupa_linux_prot_size): New variable.
13221 (pupa_linux_tmp_addr): Likewise.
13222 (pupa_linux_real_addr): Likewise.
13223 (pupa_linux_boot_zimage): New function.
13224 (pupa_linux_boot_bzimage): Likewise.
13225
13226 * kern/i386/pc/init.c (struct mem_region): New structure.
13227 (MAX_REGIONS): New macro.
13228 (mem_regions): New variable.
13229 (num_regions): Likewise.
13230 (pupa_os_area_addr): Likewise.
13231 (pupa_os_area_size): Likewise.
13232 (pupa_lower_mem): Likewise.
13233 (pupa_upper_mem): Likewise.
13234 (add_mem_region): New function.
13235 (compact_mem_regions): Likewise.
13236 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
13237 the size of the conventional memory and that of so-called upper
13238 memory (before the first memory hole).
13239 Instead of adding each found region to free memory, use
13240 add_mem_region and add them after removing overlaps.
13241 Also, add only 1/4 of the upper memory to free memory. The rest
13242 is used for loading OS images. Maybe this is ad hoc, but this
13243 makes it much easier to relocate OS images when booting.
13244
13245 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
13246 (pupa_enter_rescue_mode): Don't register initrd and module.
13247
13248 * kern/mm.c: Include pupa/dl.h.
13249
13250 * kern/main.c: Include pupa/file.h and pupa/device.h.
13251
13252 * kern/loader.c (pupa_loader_load_module_func): Removed.
13253 (pupa_loader_load_module): Likewise.
13254
13255 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
13256 ``.o''.
13257
13258 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
13259 (pupa_linux_tmp_addr): Likewise.
13260 (pupa_linux_real_addr): Likewise.
13261 (pupa_linux_boot_zimage): Likewise.
13262 (pupa_linux_boot_bzimage): Likewise.
13263
13264 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
13265 (pupa_upper_mem): Likewise.
13266 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
13267 module is too dangerous.
13268
13269 * include/pupa/loader.h (pupa_os_area_addr): Declared.
13270 (pupa_os_area_size): Likewise.
13271 (pupa_loader_set): Remove the first argument. Loader doesn't
13272 manage modules or initrd any longer.
13273 (pupa_loader_load_module): Removed.
13274
13275 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
13276 (linux_mod_SOURCES): New variable.
13277 (linux_mod_CFLAGS): Likewise.
13278
a13f9237 132792003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
13280
13281 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
13282 the length of a blocklist correctly.
13283
13284 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
13285 Use ioctl only if the OS file is a block device.
13286 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
13287 not very useful for normal files.
13288
13289 * kern/main.c (pupa_set_root_dev): New function.
13290 (pupa_load_normal_mode): Likewise.
13291 (pupa_main): Call those above.
13292
13293 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
13294 pupa_uint16_t.
13295
13296 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
13297
a5ffe966 132982003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
13299
13300 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
13301 (setup): Configure the installed partition information and the
13302 dl prefix.
13303
13304 * loader/i386/pc/chainloader.c (my_mod): New variable.
13305 (pupa_chainloader_unload): New function.
13306 (pupa_rescue_cmd_chainloader): Refer itself.
13307 (PUPA_MOD_INIT): Save its own module in MY_MOD.
13308
13309 * kern/i386/pc/startup.S (install_partition): Removed.
13310 (version_string): Likewise.
13311 (config_file): Likewise.
13312 (pupa_install_dos_part): New variable.
13313 (pupa_install_bsd_part): Likewise.
13314 (pupa_prefix): Likewise.
13315 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
13316
13317 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
13318 and pupa/misc.h.
13319 (make_install_device): New function.
13320 (pupa_machine_init): Set the dl prefix.
13321
13322 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
13323 (buf): Renamed to ...
13324 (linebuf): ... this.
13325 (pupa_rescue_cmd_prefix): New function.
13326 (pupa_rescue_cmd_insmod): Likewise.
13327 (pupa_rescue_cmd_rmmod): Likewise.
13328 (pupa_rescue_cmd_lsmod): Likewise.
13329 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
13330 rmmod and lsmod.
13331
13332 * kern/mm.c (pupa_memalign): If failed even after invalidating
13333 disk caches, unload unneeded modules and retry.
13334
13335 * kern/misc.c (pupa_memmove): New function.
13336 (pupa_memcpy): Removed.
13337 (pupa_strcpy): New function.
13338 (pupa_itoa): Made static.
13339
13340 * kern/dl.c (pupa_dl_iterate): New function.
13341 (pupa_dl_ref): Likewise.
13342 (pupa_dl_unref): Likewise.
13343 (pupa_dl_unload): Return if succeeded or not.
13344 (pupa_dl_unload_unneeded): New function.
13345 (pupa_dl_unload_all): Likewise.
13346 (pupa_dl_init): Renamed to ...
13347 (pupa_dl_set_prefix): ... this.
13348 (pupa_dl_get_prefix): New function.
13349
13350 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
13351 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
13352 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
13353 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
13354 (pupa_install_dos_part): Declared.
13355 (pupa_install_bsd_part): Likewise.
13356 (pupa_prefix): Likewise.
13357 (pupa_boot_drive): Likewise.
13358
13359 * include/pupa/types.h: Fix a typo.
13360
13361 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
13362 pupa_memmove.
13363 (pupa_memmove): Declared.
13364 (pupa_strcpy): Likewise.
13365
13366 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
13367 pupa_mod_init takes one argument, its own module.
13368 (pupa_dl_unload_unneeded): Declared.
13369 (pupa_dl_unload_all): Likewise.
13370 (pupa_dl_ref): Likewise.
13371 (pupa_dl_unref): Likewise.
13372 (pupa_dl_iterate): Likewise.
13373 (pupa_dl_init): Renamed to ...
13374 (pupa_dl_set_prefix): ... this.
13375 (pupa_dl_get_prefix): Declared.
13376
13377 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
f19dbdb7 13378 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
a5ffe966 13379 unloaded.
13380 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
13381 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
13382
13383 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
13384 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
13385
012d7999 133862003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
13387
13388 * util/i386/pc/pupa-setup.c (setup): Define the internal
13389 function find_first_partition_start at the top level, because GCC
13390 3.0.x cannot compile internal functions in deeper scopes
13391 correctly.
13392 (find_root_device): Use lstat instead of stat.
13393 Don't follow symbolic links.
13394 Fix the path-constructing code.
13395
13396 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
13397 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
13398 by a BLKGETSIZE ioctl first, because block devices don't fill
13399 the member st_mode of the structure stat on Linux.
13400 [__linux__] (linux_find_partition): Use a temporary buffer
13401 REAL_DEV for the working space. Copy it to DEV before returning.
13402 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
13403 buffer cache consistent.
13404 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
13405 strncmp. The previous value was merely wrong.
13406 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
13407
13408 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
13409 FAT size is 12. The previous value was merely wrong.
13410
13411 * kern/main.c (pupa_main): Don't split the starting message from
13412 newlines.
13413
13414 * kern/term.c (pupa_putchar): Put CR after LF instead of before
13415 LF, because BIOS goes crazy about character attributes in this
13416 case.
13417
1cc73a62 134182003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
13419
13420 * include/i386/pc/util/biosdisk.h: New file.
13421 * util/i386/pc/biosdisk.c: Likewise.
13422 * util/i386/pc/pupa-setup.c: Likewise.
f19dbdb7 13423
1cc73a62 13424 * Makefile.in (INCLUDE_DISTFILES): Added
13425 include/pupa/i386/pc/util/biosdisk.h.
13426 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
13427 directory util/i386/pc.
13428 (install-local): Added a rule for sbin_UTILITIES.
13429 (uninstall): Likewise.
13430
13431 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
13432
13433 * util/misc.c (xrealloc): New function.
13434 (pupa_malloc): Likewise.
13435 (pupa_free): Likewise.
13436 (pupa_realloc): Likewise.
13437 (pupa_stop): Likewise.
13438 (pupa_putchar): Likewise.
13439
13440 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
13441
13442 * include/pupa/util/misc.h (xrealloc): Declared.
13443
13444 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
13445 macro.
13446 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
13447 (PUPA_BOOT_MACHINE_BPB_END): ... this.
13448
13449 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
13450 [PUPA_UTIL] (pupa_fat_fini): Likewise.
13451
13452 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
13453 way should be implemented.
13454 [PUPA_UTIL] (pupa_fat_fini): Likewise.
13455
13456 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
13457 the size of NAME for safety.
13458 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
13459 0x88.
13460
13461 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
13462 (pupa_setup_SOURCES): Likewise.
13463
13464 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
13465
08b70fe8 134662002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
13467
13468 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
13469 bunch of pushl's from pusha, because this destroys the return
13470 value.
13471
62ddcc8f 134722002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
13473
13474 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
13475 This means that any missing prototypes could be fatal. Also, you
13476 must take care when writing assembly code. See the comments at
13477 the beginning of startup.S, for more details.
f19dbdb7 13478
62ddcc8f 13479 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
13480 compilation mechanism.
13481 (pupa_chainloader_real_boot): Likewise.
13482 (pupa_biosdisk_rw_int13_extensions): Likewise.
13483 (pupa_biosdisk_rw_standard): Likewise.
13484 (pupa_biosdisk_check_int13_extensions): Likewise.
13485 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
13486 (pupa_biosdisk_get_diskinfo_standard): Likewise.
13487 (pupa_get_memsize): Likewise.
13488 (pupa_get_mmap_entry): Likewise.
13489 (pupa_console_putchar): Likewise.
13490 (pupa_console_setcursor): Likewise.
13491 (pupa_getrtsecs): Use pushl instead of push.
13492
13493 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
13494 memory instead of the stack for a mmap entry, because some
13495 BIOSes may ignore the maximum size and overflow.
13496
13497 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
13498
13499 * genmk.rb (PModule#rule): Compile automatically generated
13500 sources with module-specific CFLAGS as well as other sources.
13501
9962ed99 135022002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
13503
13504 * configure.ac: Check ld.
13505 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
13506 respectively, before checking endianness and sizes.
13507
13508 * Makefile.in (LD): New variable.
f19dbdb7 13509
abdfc3c5 135102002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
13511
13512 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
13513
6a161fa9 135142002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
13515
13516 * Changelog: New file.
13517