]> git.proxmox.com Git - grub2.git/blame - ChangeLog
2008-11-14 Robert Millan <rmh@aybabtu.com>
[grub2.git] / ChangeLog
CommitLineData
e2e07847 12008-11-14 Robert Millan <rmh@aybabtu.com>
2
3 * term/i386/pc/serial.c [! GRUB_MACHINE_PCBIOS]
4 (GRUB_SERIAL_PORT_NUM): Fix misscalculation.
5
fe8e8d69 62008-11-12 Robert Millan <rmh@aybabtu.com>
7
8 Make loader/i386/linux.c buildable on i386-pc (although disabled).
9
10 * include/grub/i386/pc/init.h: Include `<grub/machine/memory.h>'.
11 (struct grub_machine_mmap_entry, grub_machine_mmap_iterate): Move
12 from here ...
13 * include/grub/i386/pc/memory.h: ... to here.
14
976b07d0 152008-11-12 Robert Millan <rmh@aybabtu.com>
16
17 Fix build problems on i386-ieee1275 and *-efi (introduced by vga_text
18 split).
19
20 * include/grub/i386/pc/console.h: Include `<grub/i386/vga_common.h>'.
21 (grub_console_cur_color, grub_console_real_putchar)
22 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
23 (grub_console_setcolorstate, grub_console_setcolor)
24 (grub_console_getcolor): Move from here ...
25 * include/grub/i386/vga_common.h: ... to here (new file).
26
27 * term/i386/pc/vga_text.c: Replace `<grub/machine/console.h>' with
28 `<grub/i386/vga_common.h>' and `<grub/cpu/io.h>' with
29 `<grub/i386/io.h>'.
30 * term/i386/vga_common.c: Replace `<grub/machine/console.h>' with
31 `<grub/i386/vga_common.h>'.
32
76679cd3 332008-11-12 Robert Millan <rmh@aybabtu.com>
34
35 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `term/i386/vga_common.c'.
36 * conf/i386.rmk (pkglib_MODULES): Add `vga_text.mod'.
37 (vga_text_mod_SOURCES, vga_text_mod_CFLAGS, vga_text_mod_LDFLAGS): New
38 variables.
39 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
40 `term/i386/pc/console.c' with `term/i386/vga_common.c'.
41
42 * kern/i386/coreboot/init.c (grub_machine_init): Replace call to
43 grub_console_init() with call to grub_vga_text_init().
44 (grub_machine_fini): Replace call to
45 grub_console_fini() with call to grub_vga_text_fini() and
46 grub_at_keyboard_fini().
47
48 * include/grub/i386/pc/console.h: Include `<grub/term.h>'.
49 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
50 (grub_console_setcolorstate, grub_console_setcolor)
51 (grub_console_getcolor): New function prototypes.
52
53 * term/i386/pc/vga_text.c: Include `<grub/dl.h>'.
54 (grub_vga_text_getxy, grub_vga_text_gotoxy, grub_vga_text_cls)
55 (grub_vga_text_setcursor): Static-ize.
56 (grub_vga_text_term): New structure.
57 (GRUB_MOD_INIT(vga_text), GRUB_MOD_FINI(vga_text)): New functions.
58
59 * term/i386/pc/console.c: Remove `<grub/machine/machine.h>'.
60 (grub_console_cur_color, grub_console_standard_color)
61 (grub_console_normal_color, grub_console_highlight_color)
62 (map_char, grub_console_putchar, grub_console_getcharwidth)
63 (grub_console_getwh, grub_console_setcolorstate, grub_console_setcolor)
64 (grub_console_getcolor): Move from here ...
65 * term/i386/vga_common.c: ... to here (same function names).
66
95b841d3 672008-11-12 Robert Millan <rmh@aybabtu.com>
68
69 Use newly-added Multiboot support in coreboot.
70
71 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
72 `kern/i386/coreboot/mmap.c' with `kern/i386/multiboot_mmap.c'.
73
74 * kern/i386/coreboot/startup.S: Enable Multiboot header, fix its
75 alignment, set `MULTIBOOT_MEMORY_INFO' flag.
76 (codestart): Store the MBI in `startup_multiboot_info' when we're
77 being loaded using Multiboot.
78
79 * kern/i386/coreboot/init.c (grub_machine_init): Move
80 grub_at_keyboard_init() call to beginning of function (useful for
81 debugging). Call grub_machine_mmap_init() before attempting to use
82 grub_machine_mmap_iterate().
83 (grub_lower_mem, grub_upper_mem): Move from here ...
84 * kern/i386/multiboot_mmap.c (grub_lower_mem, grub_upper_mem): ... to
85 here (new file).
86
87 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_init): New
88 function prototype.
89
761ca975 902008-11-12 Robert Millan <rmh@aybabtu.com>
91
92 Fix a regression introduced by the at_keyboard.mod split. Because
93 some terminals are default on some platforms and non-default on
94 others, the first terminal being registered determines which is
95 going to be default.
96
97 * kern/term.c (grub_term_register_input): If this is the first
98 terminal being registered, set it as the current one.
99 (grub_term_register_output): Likewise.
100
101 * term/efi/console.c (grub_console_init): Do not call
102 grub_term_set_current_output() or grub_term_set_current_input().
103 * term/ieee1275/ofconsole.c (grub_console_init): Likewise.
104 * term/i386/pc/console.c (grub_console_init): Likewise.
105 (grub_console_fini): Do not call grub_term_set_current_input()
106 (but leave grub_term_set_current_output() to restore text mode).
107
6c529df7 1082008-11-10 Robert Millan <rmh@aybabtu.com>
109
110 * util/grub.d/00_header.in: Add backward compatibility check for
111 versions of terminal.mod that don't understand `terminal_input' or
112 `terminal_output'.
113
132e4113 1142008-11-09 Robert Millan <rmh@aybabtu.com>
115
116 * commands/terminal.c (GRUB_MOD_FINI(terminal)): Unregister
117 `terminal_input' / `terminal_output', not `terminal'.
118
ac293d50 1192008-11-08 Robert Millan <rmh@aybabtu.com>
120
121 * Makefile.in (include_DATA): Fix srcdir=. assumption.
2a9c5940 122 (DISTCLEANFILES): Add `build_env.mk'.
ac293d50 123
0025933a 1242008-11-08 Robert Millan <rmh@aybabtu.com>
125
126 * term/i386/pc/vesafb.c (grub_vesafb_term): Change type to
dba3f844 127 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
0025933a 128 members. Update all users.
129 * util/console.c (grub_ncurses_term): Split in ...
130 (grub_ncurses_term_input): ... this, and ...
131 (grub_ncurses_term_output): ... this. Update all users.
dcb6fa0a 132 * term/ieee1275/ofconsole.c: Remove stale `#endif'.
0025933a 133
37c86336 1342008-11-08 Robert Millan <rmh@aybabtu.com>
135
136 * Makefile.in (PKGLIB): Add $(pkglib_BUILDDIR).
137 (PKGDATA): Add $(pkgdata_SRCDIR).
138 (pkglib_BUILDDIR): New variable.
139 (pkgdata_SRCDIR): New variable.
140 (build_env.mk): New target.
141 (include_DATA): New variable.
142 (install-local): Install $(include_DATA) files in $(includedir).
143
b6c15a2d 1442008-11-07 Pavel Roskin <proski@gnu.org>
145
d99d46f1 146 * gendistlist.sh: Use C locale for sorting to ensure consistent
147 output on all systems.
148
b6c15a2d 149 * util/grub.d/00_header.in: Remove incorrect space before
150 "serial".
151
c32ee8c9 1522008-11-07 Robert Millan <rmh@aybabtu.com>
153
154 * include/multiboot2.h (struct multiboot_header): Add `flags' member as
155 per specification.
156 * loader/multiboot2.c (grub_multiboot2): Fix Multiboot2 header check.
157 * loader/multiboot_loader.c (find_multi_boot2_header): New function
158 (based on find_multi_boot1_header).
159 (grub_rescue_cmd_multiboot_loader): Check for Multiboot2 header,
160 using find_multi_boot2_header(), and abort if neither Multiboot or
161 Multiboot headers were found.
162
651c29b7 1632008-11-07 Robert Millan <rmh@aybabtu.com>
164
165 Modularize at_keyboard.mod:
166
167 * conf/i386.rmk (pkglib_MODULES): Add `at_keyboard.mod'.
168 (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS)
169 (at_keyboard_mod_LDFLAGS): New variables.
170
171 Actual terminal split:
172
173 * include/grub/term.h (struct grub_term): Split in ...
174 (struct grub_term_input): ... this, and ...
175 (struct grub_term_output): ... this. Update all users.
176 (grub_term_set_current): Split in ...
177 (grub_term_set_current_input): ... this, and ...
178 (grub_term_set_current_output): ... this.
179 (grub_term_get_current): Split in ...
180 (grub_term_get_current_input): ... this, and ...
181 (grub_term_get_current_output): ... this.
182 (grub_term_register): Split in ...
183 (grub_term_register_input): ... this, and ...
184 (grub_term_register_output): ... this.
185 (grub_term_unregister): Split in ...
186 (grub_term_unregister_input): ... this, and ...
187 (grub_term_unregister_output): ... this.
188 (grub_term_iterate): Split in ...
189 (grub_term_iterate_input): ... this, and ...
190 (grub_term_iterate_output): ... this.
191
192 * kern/term.c (grub_term_list): Split in ...
193 (grub_term_list_input): ... this, and ...
194 (grub_term_list_output): ... this. Update all users.
195 (grub_cur_term): Split in ...
196 (grub_cur_term_input): ... this, and ...
197 (grub_cur_term_output): ... this. Update all users.
198 (grub_term_set_current): Split in ...
199 (grub_term_set_current_input): ... this, and ...
200 (grub_term_set_current_output): ... this.
201 (grub_term_get_current): Split in ...
202 (grub_term_get_current_input): ... this, and ...
203 (grub_term_get_current_output): ... this.
204 (grub_term_register): Split in ...
205 (grub_term_register_input): ... this, and ...
206 (grub_term_register_output): ... this.
207 (grub_term_unregister): Split in ...
208 (grub_term_unregister_input): ... this, and ...
209 (grub_term_unregister_output): ... this.
210 (grub_term_iterate): Split in ...
211 (grub_term_iterate_input): ... this, and ...
212 (grub_term_iterate_output): ... this.
213
214 * kern/misc.c (grub_abort): Split use of grub_term_get_current() into
215 a check for input and one for output (and only attempt to get keys
216 from user when input works).
217
218 * util/grub-probe.c (grub_term_get_current): Split in ...
219 (grub_term_get_current_input): ... this, and ...
220 (grub_term_get_current_output): ... this.
221 * util/grub-fstest.c: Likewise.
222 * util/i386/pc/grub-setup.c: Likewise.
223 * util/grub-editenv.c: Likewise.
224
225 Portability adjustments:
226
227 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Remove
228 `term/i386/pc/at_keyboard.c'.
229 * kern/ieee1275/init.c [__i386__] (grub_machine_init): Remove call to
230 grub_keyboard_controller_init() (now handled by terminal .init).
231 * kern/i386/coreboot/init.c (grub_machine_init): Add call to
232 grub_at_keyboard_init().
233 * include/grub/i386/ieee1275/console.h (grub_keyboard_controller_init)
234 (grub_console_checkkey, grub_console_getkey): Remove (now provided by
235 at_keyboard.mod via input terminal interface).
236 * include/grub/i386/coreboot/console.h: Convert into a stub for
237 `<grub/i386/pc/console.h>'.
238
239 Migrate full terminals to new API:
240
241 * term/efi/console.c (grub_console_term): Split into ...
242 (grub_console_term_input): ... this, and ...
243 (grub_console_term_output): ... this. Update all users.
244 * term/ieee1275/ofconsole.c: Remove __i386__ hack.
245 (grub_ofconsole_init): Split into ...
246 (grub_ofconsole_init_input): ... this, and ...
247 (grub_ofconsole_init_output): ... this.
248 (grub_ofconsole_term): Split into ...
249 (grub_ofconsole_term_input): ... this, and ...
250 (grub_ofconsole_term_output): ... this. Update all users.
251 * term/i386/pc/serial.c (grub_serial_term): Split into ...
252 (grub_serial_term_input): ... this, and ...
253 (grub_serial_term_output): ... this. Update all users.
254 * term/i386/pc/console.c (grub_console_term): Split into ...
255 (grub_console_term_input): ... this, and ...
256 (grub_console_term_output): ... this. Update all users.
257 (grub_console_term_input): Only enable it on PC/BIOS platform.
258 (grub_console_init): Remove grub_keyboard_controller_init() call.
259
260 Migrate input terminals to new API:
261
262 * term/i386/pc/at_keyboard.c: Replace `cpu' and `machine' with
263 `i386' and `i386/pc' to enable build on x86_64 (this driver is
264 i386-specific anyway).
265 (grub_console_checkkey): Rename to ...
266 (grub_at_keyboard_checkkey): ... this. Static-ize. Update all
267 users.
268 (grub_keyboard_controller_orig): New variable.
269 (grub_console_getkey): Rename to ...
270 (grub_at_keyboard_getkey): ... this. Static-ize. Update all
271 users.
272 (grub_keyboard_controller_init): Static-ize. Save original
273 controller value so that it can be restored ...
274 (grub_keyboard_controller_fini): ... here (new function).
275 (grub_at_keyboard_term): New structure.
276 (GRUB_MOD_INIT(at_keyboard), GRUB_MOD_FINI(at_keyboard)): New
277 functions.
278
279 Migrate output terminals to new API:
280
281 * term/i386/pc/vga.c (grub_vga_term): Change type to
282 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
283 members. Update all users.
284 * term/gfxterm.c (grub_video_term): Change type to
285 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
286 members. Update all users.
287 * include/grub/i386/pc/console.h (grub_console_checkkey)
288 (grub_console_getkey): Do not export (no longer needed by gfxterm,
289 etc).
290
291 Migrate `terminal' command and userland tools to new API:
292
293 * commands/terminal.c (grub_cmd_terminal): Split into ...
294 (grub_cmd_terminal_input): ... this, and ...
295 (grub_cmd_terminal_output): ... this.
296 (GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands:
297 `terminal_input' and `terminal_output'.
298 * util/grub.d/00_header.in: Adjust `terminal' calls to new
299 `terminal_input' / `terminal_output' API.
300 * util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and
301 ${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user
302 provided ${GRUB_TERMINAL}, convert it).
303
96e5d876 3042008-11-04 Robert Millan <rmh@aybabtu.com>
305
306 * util/grub.d/10_freebsd.in: New file. Generate grub configuration
307 for FreeBSD.
308 * conf/common.rmk (grub-mkconfig_SCRIPTS): Add 10_freebsd.
309
556f3775 3102008-11-03 Bean <bean123ch@gmail.com>
311
312 * kern/elf.c (grub_elf32_load): Revert to previous code.
313 (grub_elf64_load): Likewise.
314
315 * loader/i386/bsd.c (grub_bsd_elf32_hook): Change return address.
316
926b9823 3172008-11-01 Robert Millan <rmh@aybabtu.com>
318
319 * Makefile.in (CPPFLAGS): Fix builddir=. assumption.
320 (TARGET_CPPFLAGS): Likewise.
321 * genmk.rb (mod_src): Fix builddir=. and srcdir=. assumptions.
322
1432e958 3232008-11-01 Carles Pina i Estany <carles@pina.cat>
324
325 * normal/menu.c (run_menu): Add Previous and Next Page keys in menu.
326
dba3f844 3272008-10-29 Guillem Jover <guillem.jover@nokia.com>
de4fa71c 328
329 * disk/lvm.c (grub_lvm_scan_device): Fix error recovery by delaying the
330 addition of objects until the code is not going to be able to fail.
331
dba3f844 3322008-10-29 Guillem Jover <guillem.jover@nokia.com>
b7279447 333
334 * disk/lvm.c (grub_lvm_scan_device): Fix possible NULL value handling
335 (add a missing NULL check, and correct them by moving the pointer
336 operations after the actual check).
337
7ab28c21 3382008-10-29 Robert Millan <rmh@aybabtu.com>
339
340 * util/i386/pc/grub-install.in: Handle empty string as output from
341 make_system_path_relative_to_its_root().
342
1b7748eb 3432008-10-05 Hans Lambermont <hans@lambermont.dyndns.org>
344
345 * disk/lvm.c (grub_lvm_scan_device): Allocate buffer space for the
346 circular metadata worst case scenario. If the metadata is circular
347 then copy the wrap in place.
348 * include/grub/lvm.h: Add GRUB_LVM_MDA_HEADER_SIZE, from the LVM2
349 project lib/format_text/layout.h
350 Circular metadata bug found and patch debugged by Jan Derk Gerlings.
351
c9618ab2 3522008-10-03 Felix Zielcke <fzielcke@z-51.de>
353
7a36edca 354 * util/i386/pc/grub-install.in: Source grub-mkconfig_lib instead of update-grub_lib.
c9618ab2 355
bf981c62 3562008-10-03 Felix Zielcke <fzielcke@z-51.de>
357
358 * util/update-grub_lib.in: Mention filename in warning message.
359
6d994591 3602008-09-29 Felix Zielcke <fzielcke@z-51.de>
361
362 * NEWS: Update for rename of update-grub to grub-mkconfig.
363
18ade780 3642008-09-29 Felix Zielcke <fzielcke@z-51.de>
365
366 * util/update-grub_lib.in: Copy to ...
367 * util/grub-mkconfig_lib.in: ... this. Update all users.
368 * util/update-grub_lib.in: Make it a stub to `grub-mkconfigig_lib.in'.
369 * util/update-grub.in: Rename to ...
370 * util/grub-mkconfig.in: ... this. Update all users. Remove `-y'
371 option. Add `--output' option to allow users to specify the generated
372 configuration file. Default to stdout.
373 (update_grub_dir): Rename to ...
374 (grub_mkconfig_dir): ... this.
375 (grub_cfg): Default to an empty string.
376 * conf/common.rmk (update-grub): Rename to ...
377 (grub-mkconfig): ... this.
378 (update-grub_lib): Copy to ...
379 (grub-mkconfig_lib): ... this.
380 (update-grub_SCRIPTS): Copy to ...
381 (grub-mkconfig_SCRIPTS): ... this. Update all users.
382 (update-grub_DATA): Rename to ...
383 (grub-mkconfig_DATA): ... this.
384
556ce6ac 3852008-09-28 Robert Millan <rmh@aybabtu.com>
386
387 * fs/iso9660.c (struct grub_iso9660_primary_voldesc): Rename `created'
388 to `modified'. Add the real `created' field.
389 (grub_iso9660_uuid): Use `modified' rather than `created' for
390 constructing the UUID.
391
3922008-09-28 Felix Zielcke <fzielcke@z-51.de>
eb079ba9 393
394 fs/jfs.c (grub_jfs_find_file): Treat multiple slashes like one.
395 Based on code from Tomas Ebenlendr <ebik@ucw.cz>.
396
92274e85 3972008-09-28 Bean <bean123ch@gmail.com>
398
399 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a bug in the previous patch.
400 Thanks to Christian Franke for finding this bug.
401
add6f17a 4022008-09-25 Robert Millan <rmh@aybabtu.com>
403
404 * util/grub-mkdevicemap.c (make_device_map): Actually replace all
405 instances of grub_util_get_disk_name() (see previous commit).
406
d2a367b8 4072008-09-25 Robert Millan <rmh@aybabtu.com>
408
409 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Remove
410 `util/i386/get_disk_name.c'.
411 * conf/i386-efi.rmk: Likewise.
412 * conf/x86_64-efi.rmk: Likewise.
413 * conf/i386-coreboot.rmk: Likewise.
414 * conf/i386-ieee1275.rmk: Likewise.
415 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Remove
416 `util/ieee1275/get_disk_name.c'.
417 * include/grub/util/misc.h (grub_util_get_disk_name): Remove.
418 * util/ieee1275/get_disk_name.c: Remove file.
419 * util/i386/get_disk_name.c: Remove file.
420 * util/grub-mkdevicemap.c (make_device_map): Back to hardcoding
421 "hd%d" for device.map entries, rather than using
422 grub_util_get_disk_name().
423
81a06771 4242008-09-24 Carles Pina i Estany <carles@pina.cat>
b0c301f7 425
426 * disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Fix `unused parameter'
427 warning.
428 * commands/i386/pc/pxecmd.c (dmraid_nvidia): Likewise.
429
5a004279 4302008-09-24 Carles Pina i Estany <carles@pina.cat>
431
432 * include/grub/i386/pc/console.h (GRUB_TERM_NPAGE):
433 Changed to 0x5100.
434 (GRUB_TERM_PPAGE): Changed to 0x4900.
435
397093d3 4362008-09-24 Robert Millan <rmh@aybabtu.com>
437
438 * include/grub/powerpc/ieee1275/console.h (GRUB_CONSOLE_KEY_*): Remove
439 macros (they were i386-pc specific).
440 * include/grub/sparc64/ieee1275/console.h: Likewise.
441 * include/grub/efi/console.h: Likewise.
442
a91b6c7c 4432008-09-22 Bean <bean123ch@gmail.com>
444
445 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a rare case where $BITMAP is
446 resident and in attribute list.
447
448 * include/grub/ntfs.h (BMP_LEN): Removed.
449
c40fd116 4502008-09-22 Bean <bean123ch@gmail.com>
451
81a06771 452 * disk/ata.c (grub_atapi_open): Initialize devfnd, no need to set
c40fd116 453 scsi->name and scsi->luns, as they will be set in grub_scsi_open.
454
455 * disk/scsi.c (grub_scsi_open): Don't call p->close (scsi) here when
456 error occurs, as grub_disk_open will call grub_disk_close, which will
457 call p->close (scsi).
458
81a06771 4592008-09-21 Felix Zielcke <fzielcke@z-51.de>
eb73121d 460
461 * configure.ac (AC_INIT): Quote `GRUB' string and version number.
462 (AC_PREREQ): Bumped to 2.59.
463 (AC_TRY_COMPILE): Replace obsolete macro with ...
464 (AC_COMPILE_IFELSE): ... this.
465 * aclocal.m4 (AC_TRY_LINK): Replace obsolete macro with ...
466 (AC_LINK_IFELSE): ... this.
467
5dc43410 4682008-09-21 Felix Zielcke <fzielcke@z-51.de>
469
470 * autogen.sh: Add a call to `gendistlist.sh'.
471
9035dce4 4722008-09-19 Christian Franke <franke@computer.org>
473
474 * aclocal.m4 (grub_CHECK_ENABLE_EXECUTE_STACK): New function.
475 * configure.ac: Call grub_CHECK_ENABLE_EXECUTE_STACK.
476 * include/grub/misc.h [NEED_ENABLE_EXECUTE_STACK]:
477 Export __enable_execute_stack() to modules.
478 * kern/misc.c [NEED_ENABLE_EXECUTE_STACK] (__enable_execute_stack):
479 New function.
480
7fd75377 4812008-09-09 Felix Zielcke <fzielcke@z-51.de>
482
040030b3 483 * Makefile.in (RMKFILES): Add `i386.rmk' and `x86_64-efi.rmk'.
484 Sort the list.
485
4862008-09-09 Felix Zielcke <fzielcke@z-51.de>
487
488 * util/hostdisk.c: Replace #include <grub/util/biosdisk.h> with
7fd75377 489 #include <grub/util/hostdisk.h>.
490
89d5ffcf 4912008-09-08 Robert Millan <rmh@aybabtu.com>
492
493 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Skip
494 segments when their filesz is zero (grub_file_read() interprets
81a06771 495 zero-size as "read until EOF", which results in memory corruption).
89d5ffcf 496 Use `lowest_segment' rather than 0 for calculating the current
497 segment load address.
498
40da438f 4992008-09-08 Robert Millan <rmh@aybabtu.com>
500
501 * util/hostdisk.c (open_device): Replace a grub_util_info() call
502 with grub_dprintf("hostdisk", ...), as it was so verbose that it
503 clobbered useful information.
504
ddbf5556 5052008-09-08 Robert Millan <rmh@aybabtu.com>
506
507 * include/grub/util/biosdisk.h: Move to ...
508 * include/grub/util/hostdisk.h: ... here. Update all users.
509 * util/biosdisk.c: Move to ...
510 * util/hostdisk.c: ... here. Update all users.
511
783d0f48 5122008-09-07 Robert Millan <rmh@aybabtu.com>
513
514 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): Remove
515 variables.
516 (grub_multiboot): Move `mbi' allocation upwards, so that mmap address
517 and length can be stored directly in the `mbi->mmap_addr' and
518 `mbi->mmap_length' struct fields.
519
548e2ea5 5202008-09-07 Robert Millan <rmh@aybabtu.com>
521
522 * conf/i386.rmk: New file. Provides declaration for building
523 `cpuid.mod'.
524 * conf/i386-pc.rmk (pkglib_MODULES): Remove `cpuid.mod'.
525 (cpuid_mod_SOURCES, cpuid_mod_CFLAGS, cpuid_mod_LDFLAGS): Remove
526 variables.
527 Include `conf/i386.mk'.
528 * conf/i386-efi.rmk: Likewise.
529 * conf/x86_64-efi.rmk: Likewise.
530 * conf/i386-coreboot.rmk: Likewise.
531 * conf/i386-ieee1275.rmk: Likewise.
532
0ea85a37 5332008-09-07 Vesa Jääskeläinen <chaac@nic.fi>
534
535 Based on patch created by Colin D Bennett <colin@gibibit.com>.
536 Adds optimization support for BGR based modes.
537
538 * include/grub/i386/pc/vbeblit.h (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8) Removed.
539 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
540 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
541 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
542 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
543 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
544 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
545 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
546 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
547 (grub_video_i386_vbeblit_index_index): Likewise.
548 (grub_video_i386_vbeblit_replace_directN): Added.
549 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
550 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
551 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
552 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
553 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
554 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
81a06771 555 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
0ea85a37 556 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
557 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
558 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
559 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
560 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
561 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
562
563 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8) Removed.
564 (grub_video_i386_vbefill_R8G8B8): Likewise.
565 (grub_video_i386_vbefill_index): Likewise.
566 (grub_video_i386_vbefill_direct32): Added.
567 (grub_video_i386_vbefill_direct24): Likewise.
568 (grub_video_i386_vbefill_direct16): Likewise.
569 (grub_video_i386_vbefill_direct8): Likewise.
570
81a06771 571 * include/grub/video.h (grub_video_blit_format): Removed
0ea85a37 572 GRUB_VIDEO_BLIT_FORMAT_R8G8B8A8, GRUB_VIDEO_BLIT_FORMAT_R8G8B8.
573 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_RGBA_8888,
574 GRUB_VIDEO_BLIT_FORMAT_BGRA_8888, GRUB_VIDEO_BLIT_FORMAT_RGB_888,
575 GRUB_VIDEO_BLIT_FORMAT_BGR_888, GRUB_VIDEO_BLIT_FORMAT_RGB_565,
576 GRUB_VIDEO_BLIT_FORMAT_BGR_565.
81a06771 577
0ea85a37 578 * video/video.c (grub_video_get_blit_format): Updated to use new
579 blit formats. Added handling for 16 bit color modes.
81a06771 580
581 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Updated to use new
0ea85a37 582 fillers.
583 (common_blitter): Updated to use new blitters.
584
585 * video/i386/pc/vbeblit.c (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8):
586 Removed.
587 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
588 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
589 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
590 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
591 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
592 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
593 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
594 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
595 (grub_video_i386_vbeblit_index_index): Likewise.
596 (grub_video_i386_vbeblit_replace_directN): Added.
597 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
598 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
599 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
600 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
601 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
602 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
603 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
604 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
605 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
606 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
607 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
608 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
609 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
81a06771 610
0ea85a37 611 * video/i386/pc/vbefill.c (grub_video_i386_vbefill_R8G8B8A8): Removed.
612 (grub_video_i386_vbefill_R8G8B8): Likewise.
613 (grub_video_i386_vbefill_index): Likewise.
614 (grub_video_i386_vbefill_direct32): Added.
615 (grub_video_i386_vbefill_direct24): Likewise.
616 (grub_video_i386_vbefill_direct16): Likewise.
617 (grub_video_i386_vbefill_direct8): Likewise.
81a06771 618
0ea85a37 619 * video/readers/jpeg.c (grub_jpeg_decode_sos): Adapt to new blitter
620 types.
81a06771 621
0ea85a37 622 * video/readers/tga.c (grub_video_reader_tga): Adapt to new blitter
623 types.
81a06771 624
0ea85a37 625 * video/readers/png.c (grub_png_decode_image_header): Adapt to new
626 blitter types.
81a06771 627
0ea85a37 628 * video/bitmap.c (grub_video_bitmap_create): Adapt to new blitter
629 types.
630
e8a83df6 6312008-09-06 Felix Zielcke <fzielcke@z-51.de>
632
633 * disk/raid.c (insert_array): Set `array->chunk_size' to 64 for
634 RAID level 1.
635
6bcd8ee5 6362008-09-06 Felix Zielcke <fzielcke@z-51.de>
c375ae58 637
6bcd8ee5 638 * fs/iso9660.c (grub_iso9660_date): New structure.
639 (grub_iso9660_primary_voldesc): Add `grub_iso9660_date' member.
640 (grub_iso9660_uuid): New function.
c375ae58 641
59261157 6422008-09-05 Bean <bean123ch@gmail.com>
643
644 * fs/fshelp.c (grub_fshelp_find_file): Handle case insensitive names.
645
646 * fs/ntfs.c (list_file): Ignore names in DOS namespace, set the case
647 insensitive bit for names in Win32 and Win32 & DOS namespace.
648
649 * include/grub/fshelp.h (GRUB_FSHELP_CASE_INSENSITIVE): New macro.
650
651 * include/grub/types.h (LONG_MAX): Likewise.
652
58b6645a 6532008-09-04 Felix Zielcke <fzielcke@z-51.de>
654
4ee55921 655 * util/getroot.c: Include <config.h>.
656 (grub_util_get_grub_dev): Rewrite to use asprintf for mdraid devices,
657 add support for /dev/md/N devices and handle LVM double dash escaping.
658
6592008-09-04 Felix Zielcke <fzielcke@z-51.de>
660
661 * config.guess: Update to latest version from config git.
662 * config.sub: Likewise.
58b6645a 663
9124f65d 6642008-09-03 Robert Millan <rmh@aybabtu.com>
665
666 * disk/scsi.c (grub_scsi_open): Remove size limit when printing
667 `disk->total_sectors'.
668
81a06771 6692008-09-01 Colin D Bennett <colin@gibibit.com>
a0224a4e 670
671 * include/grub/normal.h: Fixed incorrect comment for
672 GRUB_COMMAND_FLAG_NO_ARG_PARSE.
673
81a06771 6742008-09-01 Colin D Bennett <colin@gibibit.com>
f0619958 675
676 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Replaced constant
677 values with defines.
678
679 * include/grub/i386/pc/vbe.h (GRUB_VBE_MODEATTR_SUPPORTED): Added.
680 (GRUB_VBE_MODEATTR_RESERVED_1): Likewise.
681 (GRUB_VBE_MODEATTR_BIOS_TTY_OUTPUT_SUPPORT): Likewise.
682 (GRUB_VBE_MODEATTR_COLOR): Likewise.
683 (GRUB_VBE_MODEATTR_GRAPHICS): Likewise.
684 (GRUB_VBE_MODEATTR_VGA_COMPATIBLE): Likewise.
685 (GRUB_VBE_MODEATTR_VGA_WINDOWED_AVAIL): Likewise.
686 (GRUB_VBE_MODEATTR_LFB_AVAIL): Likewise.
687 (GRUB_VBE_MODEATTR_DOUBLE_SCAN_AVAIL): Likewise.
688 (GRUB_VBE_MODEATTR_INTERLACED_AVAIL): Likewise.
689 (GRUB_VBE_MODEATTR_TRIPLE_BUF_AVAIL): Likewise.
690 (GRUB_VBE_MODEATTR_STEREO_AVAIL): Likewise.
691 (GRUB_VBE_MODEATTR_DUAL_DISPLAY_START): Likewise.
692 (GRUB_VBE_MEMORY_MODEL_TEXT): Likewise.
693 (GRUB_VBE_MEMORY_MODEL_CGA): Likewise.
694 (GRUB_VBE_MEMORY_MODEL_HERCULES): Likewise.
695 (GRUB_VBE_MEMORY_MODEL_PLANAR): Likewise.
696 (GRUB_VBE_MEMORY_MODEL_NONCHAIN4_256): Likewise.
697 (GRUB_VBE_MEMORY_MODEL_YUV): Likewise.
698
93d5cbf8 6992008-08-31 Robert Millan <rmh@aybabtu.com>
700
701 * loader/i386/pc/multiboot.c (grub_get_multiboot_mmap_len): Fix
702 declaration.
703 (grub_multiboot): Fix a few warnings.
704
21751d50 7052008-08-31 Robert Millan <rmh@aybabtu.com>
706
707 * loader/i386/pc/multiboot.c: Update comment not to say that
708 boot_device support is unimplemented.
709
e27a75c5 7102008-08-31 Robert Millan <rmh@aybabtu.com>
711
712 * loader/i386/pc/multiboot.c: Update comment not to say that a.out
713 or memory map support are unimplemented.
714
81a06771 7152008-08-31 Colin D Bennett <colin@gibibit.com>
64d2d53c 716
717 * util/i386/pc/grub-mkrescue.in: Support multiple overlay directories.
718
81a06771 7192008-08-31 Colin D Bennett <colin@gibibit.com>
c08a6c18 720
721 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Show VBE version and
722 total video memory in 'vbeinfo' output; show color format details for
723 each video mode.
724
7c5d8d95 7252008-08-30 Pavel Roskin <proski@gnu.org>
726
727 * util/genmoddep.c: Remove for real this time.
728 * DISTLIST: Remove util/genmoddep.c.
729
4cebd25a 7302008-08-30 Robert Millan <rmh@aybabtu.com>
731
732 * kern/i386/pc/startup.S (multiboot_header): Force 4-byte alignment
733 as required by Multiboot spec (it was already 4-byte aligned, but
734 only by chance).
735
b497a269 7362008-08-29 Pavel Roskin <proski@gnu.org>
737
e3925185 738 * kern/powerpc/ieee1275/crt0.S: Rename to ...
739 * kern/powerpc/ieee1275/startup.S: ... this.
740 * conf/powerpc-ieee1275.rmk: Adjust for the above.
741 * DISTLIST: Likewise.
742
b497a269 743 * kern/powerpc/ieee1275/crt0.S: Include grub/symbol.h and
744 grub/cpu/kernel.h. Add start label for consistency with other
745 platforms. Add grub_prefix immediately after start. Add jump
746 to the code after grub_prefix.
747 * include/grub/powerpc/kernel.h: Provide valid values for
748 GRUB_KERNEL_CPU_PREFIX and GRUB_KERNEL_CPU_DATA_END.
749
6e5a42fe 7502008-08-29 Bean <bean123ch@gmail.com>
751
752 * configure.ac: Change host_os to cygwin for mingw.
753 (asprintf): New check for function.
754
755 * include/grub/symbol.h: Replace #ifndef __CYGWIN__ with
756 #if ! defined (__CYGWIN__) && ! defined (__MINGW32__).
757
758 * include/grub/util/misc.h: #include <config.h> and <grub/types.h>,
81a06771 759 declare asprintf if HAVE_ASPRINTF is not set, declare fseeko, ftello,
6e5a42fe 760 sync, sleep and grub_util_get_disk_size for mingw.
761
762 * util/biosdisk.c (grub_util_biosdisk_open): Use grub_util_get_disk_size
763 to get size in mingw.
764 (open_device): Use flag O_BINARY if it's defined.
765 (find_root_device): Add dummy code for mingw.
766
767 * util/grub-mkdevicemap.c (get_floppy_disk_name): Return 0 for mingw.
768 (get_ide_disk_name): Return //./PHYSICALDRIVE%d for mingw.
769 (get_scsi_disk_name): Return 0 for mingw.
770
771 * util/hostfs.c: #include <grub/util/misc.h>.
772 (grub_hostfs_open): Use "rb" flag to open file, use
773 grub_util_get_disk_size to get disk size for mingw.
774
775 * util/misc.c: #include <windows.h> and <winioctl.h> in mingw.
776 (asprintf): New function if HAVE_ASPRINTF is not set.
777 (sync): New function for mingw.
778 (sleep): Likewise.
779 (grub_util_get_disk_size): Likewise.
780
ab3f2673 7812008-08-28 Pavel Roskin <proski@gnu.org>
782
783 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
784 kern/time.c.
785
1c282483 7862008-08-28 Robert Millan <rmh@aybabtu.com>
787
788 * util/biosdisk.c (find_grub_drive): Declare missing `i' variable.
789
678e849c 7902008-08-28 Robert Millan <rmh@aybabtu.com>
791
792 Change find_grub_drive() syntax so it doesn't prevent it from
793 detecting NULL names as errors.
794
795 * util/biosdisk.c (find_grub_drive): Move free slot search code
796 from here ...
797 (find_free_slot): ... to here.
798 (read_device_map): Use find_free_slot() to search for free slots.
799
965c75ca 8002008-08-27 Marco Gerards <marco@gnu.org>
801
802 * conf/common.rmk (pkglib_MODULES): Add scsi.mod.
803 (scsi_mod_SOURCES): New variable.
804 (scsi_mod_CFLAGS): Likewise
805 (scsi_mod_LDFLAGS): Likewise.
806
807 * disk/scsi.c: New file.
808
809 * include/grub/scsi.h: Likewise.
810
811 * include/grub/scsicmd.h: Likewise.
812
813 * disk/ata.c: Include <grub/scsi.h>.
814 (grub_atapi_packet): Do not use grub_ata_cmd, use registers
815 instead.
816 (grub_ata_iterate): Skip ATAPI devices.
817 (grub_ata_open): Only handle ATAPI devices.
818 (struct grub_atapi_read): Removed.
819 (grub_atapi_readsector): Likewise.
820 (grub_ata_read): No longer handle ATAPI devices.
821 (grub_ata_write): Likewise.
822 (grub_atapi_iterate): New function.
823 (grub_atapi_read): Likewise.
824 (grub_atapi_write): Likewise.
825 (grub_atapi_open): Likewise.
826 (grub_atapi_close): Likewise.
827 (grub_atapi_dev): New variable.
828 (GRUB_MOD_INIT(ata)): Register ATAPI as SCSI device.
829 (GRUB_MOD_FINI(ata)): Unregister ATAPI.
830
831 * include/grub/disk.h (enum grub_disk_dev_id): Add
832 `GRUB_DISK_DEVICE_SCSI_ID'.
833
c07ae501 8342008-08-26 Robert Millan <rmh@aybabtu.com>
835
836 * util/biosdisk.c (grub_util_biosdisk_open, open_device)
837 (grub_util_biosdisk_get_grub_dev): Make error messages a bit more
838 descriptive.
839
5ed20adc 8402008-08-23 Bean <bean123ch@gmail.com>
841
842 * conf/common.rmk (grub_probe_SOURCES): Add disk/mdraid_linux.c.
843 (grub_fstest_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
844 disk/mdraid_linux.c and disk/dmraid_nvidia.c and lib/crc.c.
845 (pkglib_MODULES): Add raid5rec.mod, raid6rec.mod, mdraid.mod and
846 dm_nv.mod.
847 (raid5rec_mod_SOURCES): New macro.
848 (raid5rec_mod_CFLAGS): Likewise.
849 (raid5rec_mod_LDFLAGS): Likewise.
850 (raid6rec_mod_SOURCES): Likewise.
851 (raid6rec_mod_CFLAGS): Likewise.
852 (raid6rec_mod_LDFLAGS): Likewise.
853 (mdraid_mod_SOURCES): Likewise.
854 (mdraid_mod_CFLAGS): Likewise.
855 (mdraid_mod_LDFLAGS): Likewise.
856 (dm_nv_mod_SOURCES): Likewise.
857 (dm_nv_mod_CFLAGS): Likewise.
858 (dm_nv_mod_LDFLAGS): Likewise.
859
860 * conf/i386-pc.rmk (grub_setup_SOURCES): Add disk/mdraid_linux.c.
861 (grub_emu_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
862 disk/mdraid_linux.c and disk/dmraid_nvidia.c.
863
864 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add disk/raid5_recover.c,
865 disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c.
866
867 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
868
869 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
870
871 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
872
873 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
874
875 * disk/raid5_recover.c: New file.
876
877 * disk/raid6_recover.c: Likewise.
878
879 * disk/mdraid_linux.c: Likewise.
880
881 * disk/dmraid_nvidia.c: Likewise.
882
883 * disk/i386/pc/biosdisk.c: Set total_sectors of cdrom device to
884 ULONG_MAX.
885
886 * disk/raid.c (grub_raid_open): Use the size of the smallest disk to
887 calculate the size of raid device.
888 (grub_raid_read): Simplify raid0 code. Support raid4, raid6 and four
889 different layout of raid5.
890 (grub_raid_scan_device): Remove code specific to mdraid.
891 (grub_raid_list): New variable.
892 (free_array): New function.
893 (grub_raid_register): Likewise.
894 (grub_raid_unregister): Likewise.
895 (grub_raid_rescan): Likewise.
896 (GRUB_MOD_INIT): Don't iterate device here.
897 (GRUB_MOD_FINI): Use free_array to release resource.
898
899 * include/grub/raid.h: Remove macro and structure specific to mdraid.
900 (grub_raid5_recover_func_t): New function variable type.
901 (grub_raid6_recover_func_t): Likewise.
902 (grub_raid5_recover_func): New variable.
903 (grub_raid6_recover_func): Likewise.
904 (grub_raid_register): New function.
905 (grub_raid_unregister): Likewise.
906 (grub_raid_rescan): Likewise.
907 (grub_raid_block_xor): Likewise.
908
909 * util/grub-fstest.c: Add #include <grub/raid.h> and <grub/lib/crc.h>.
910 (CMD_CRC): New macro.
911 (part): Removed.
912 (read_file): Handle device as well as file.
913 (cmd_crc): New function.
914 (fstest): Handle multiple disks.
915 (options): Remove part, raw and long, add root and diskcount.
916 (usage): Add crc, remove -p, -r, -l, add -r and -c.
dba3f844 917 (main): Find the first non option entry and ignore subsequent options,
5ed20adc 918 add handling for the new options, support multiple disks.
919
920 * util/grub-probe.c (probe): Add mdraid to abstraction_name.
921
29c18915 9222008-08-23 Bean <bean123ch@gmail.com>
923
924 * normal/x86_64/setjmp.S (grub_longjmp): Return 1 when val = 0.
925
926 * genfslist.sh: Ignore kernel.mod.
927
928 * genpartmaplist.sh: Likewise.
929
8415f261 9302008-08-23 Robert Millan <rmh@aybabtu.com>
931
932 * util/getroot.c (find_root_device): Skip anything that starts with
933 a dot, not just directories. This avoids things like /dev/.tmp.md0.
934
d5a7dc5b 9352008-08-22 Felix Zielcke <fzielcke@z-51.de>
81a06771 936
d5a7dc5b 937 * util/update-grub.in (GRUB_GFXMODE): Export variable.
938 * util/grub.d/00_header.in: Allow the administrator to change default
939 gfxmode via ${GRUB_GFXMODE}.
940
380cfbb4 9412008-08-21 Felix Zielcke <fzielcke@z-51.de>
942
943 * fs/ntfs.c (grub_ntfs_mount): Fix a memory leak.
944
c9baafe7 9452008-08-21 Robert Millan <rmh@aybabtu.com>
946
947 * loader/i386/linux.c: New file. Implements generic 32-bit Linux
948 loader.
949 * conf/i386-coreboot.rmk (_linux_mod_SOURCES): Replace
950 `loader/i386/pc/linux.c' with `loader/i386/linux.c'.
951
e290bef2 9522008-08-20 Carles Pina i Estany <carles@pina.cat>
953
954 * menu/normal.c (run_menu): Replace hardcoded numbers with macros
955 (16 for GRUB_TERM_UP and 14 for GRUB_TERM_DOWN)
956
f9dbfc96 9572008-08-19 Robert Millan <rmh@aybabtu.com>
958
959 * term/gfxterm.c (DEFAULT_CURSOR_COLOR): Remove.
960 (struct grub_virtual_screen): Remove `cursor_color'.
961 (grub_virtual_screen_setup): Remove `virtual_screen.cursor_color'
962 initialization.
963 (write_cursor): Use `virtual_screen.fg_color' to draw cursor.
964
dd6bd6ab 9652008-08-18 Robert Millan <rmh@aybabtu.com>
966
967 Unify (identical) linux_normal.c files.
968 * loader/i386/efi/linux_normal.c: Move from here ...
969 * loader/linux_normal.c: ... to here. Update all users.
970 * loader/i386/pc/linux_normal.c: Delete. Update all users.
971 * loader/i386/ieee1275/linux_normal.c: Likewise.
972
7f42f83e 9732008-08-18 Robert Millan <rmh@aybabtu.com>
974
975 * include/grub/i386/linux.h (LINUX_LOADER_ID_LILO)
976 (LINUX_LOADER_ID_LOADLIN, LINUX_LOADER_ID_BOOTSECT)
977 (LINUX_LOADER_ID_SYSLINUX, LINUX_LOADER_ID_ETHERBOOT)
978 (LINUX_LOADER_ID_ELILO, LINUX_LOADER_ID_GRUB, LINUX_LOADER_ID_UBOOT)
979 (LINUX_LOADER_ID_XEN, LINUX_LOADER_ID_GUJIN, LINUX_LOADER_ID_QEMU):
980 New macros.
981 (GRUB_LINUX_CL_OFFSET, GRUB_LINUX_CL_END_OFFSET): Move from here ...
982 * loader/i386/pc/linux.c (GRUB_LINUX_CL_OFFSET)
983 (GRUB_LINUX_CL_END_OFFSET): ... to here.
984 * loader/i386/efi/linux.c (GRUB_EFI_CL_OFFSET): Rename to ...
985 (GRUB_LINUX_CL_OFFSET): ... this. Update all users.
986 (GRUB_EFI_CL_END_OFFSET): Rename to ...
987 (GRUB_LINUX_CL_END_OFFSET): ... this. Update all users.
988 (grub_rescue_cmd_linux): Macroify `type_of_loader' initialization.
989 Initialize `params->video_cursor_x' and `params->video_cursor_y'
990 portably using grub_getxy().
991 Replace `-EFI' with `-bzImage' in boot message.
992
38487ddb 9932008-08-17 Robert Millan <rmh@aybabtu.com>
994
995 * include/grub/x86_64/kernel.h: New file (<grub/i386/kernel.h> stub).
996
deceb3ec 9972008-08-17 Robert Millan <rmh@aybabtu.com>
998
999 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pc/mmap.c'.
1000
1001 * include/grub/i386/pc/init.h (GRUB_MACHINE_MEMORY_AVAILABLE)
1002 (GRUB_MACHINE_MEMORY_RESERVED): New macros.
1003 (grub_machine_mmap_iterate): New function declaration.
1004 * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): New
1005 structure.
1006 (GRUB_MMAP_MEMORY_AVAILABLE, GRUB_MMAP_MEMORY_RESERVED): New
1007 macros.
1008
1009 * kern/i386/pc/init.c (grub_machine_init): Replace hardcoded region
1010 type check value with `GRUB_MACHINE_MEMORY_AVAILABLE'.
1011 Move e820 parsing from here ...
1012 * kern/i386/pc/mmap.c: New file.
1013 (grub_machine_mmap_iterate): ... to here.
1014
1015 * include/grub/i386/coreboot/memory.h: Remove `<grub/err.h>'.
1016 (GRUB_LINUXBIOS_MEMORY_AVAILABLE): Rename (for consistency) to ...
1017 (GRUB_MACHINE_MEMORY_AVAILABLE): ... this. Update all users.
1018 (grub_available_iterate): Redeclare to return `void', and redeclare
1019 its hook to use grub_uint64_t as addr and size parameters, and rename
1020 to ...
1021 (grub_machine_mmap_iterate): ... this. Update all users.
1022
1023 * kern/i386/coreboot/mmap.c (grub_mmap_iterate): Simplify parser loop
1024 to make it more readable. Rename to ...
1025 (grub_machine_mmap_iterate): ... this.
1026
1027 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): New variables.
1028 (grub_get_multiboot_mmap_len, grub_fill_multiboot_mmap): New functions.
1029 (grub_multiboot): Allocate an extra region after the payload, and fill
1030 it with a Multiboot memory map. Adjust a.out loader to calculate size
1031 with the extra space.
1032 (grub_multiboot_load_elf32): Adjust elf32 loader to calculate size
1033 with the extra space.
1034
f8aa0f43 10352008-08-17 Carles Pina i Estany <carles@pina.cat>
1036
9807deb9 1037 * menu/normal.c (run_menu): Add Home and End keys in grub-menu.
f8aa0f43 1038
605f5bb6 10392008-08-17 Felix Zielcke <fzielcke@z-51.de>
1040
1041 * gendistlist.sh: Add *.y, *.tex, *.texi, grub.cfg, README, *.sc,
1042 mdate-sh to the list `find' searches for.
1043 * DISTLIST: Regenerated.
1044
210db6c6 10452008-08-16 Felix Zielcke <fzielcke@z-51.de>
1046
1047 * gendistlist.sh (EXTRA_DISTFILES): Remove gensymlist.sh,
1048 genkernsyms.sh. Add geninit.sh, geninitheader.sh, genkernsyms.sh.in,
48cdbfd4 1049 genmoddep.awk, gensymlist.sh.in.
1050 (DISTDIRS): Add bus, docs, hook, lib.
210db6c6 1051 * DISTLIST: Regenerated.
48cdbfd4 1052 * NEWS: Add cygwin support and change the `os-prober' entry a bit.
210db6c6 1053
1082b929 10542008-08-16 Robert Millan <rmh@aybabtu.com>
1055
1056 * disk/raid.c (grub_raid_init): Handle/report errors set by
1057 grub_device_iterate().
1058 * disk/lvm.c (grub_lvm_init): Likewise.
1059
42ce5170 10602008-08-15 Bean <bean123ch@gmail.com>
1061
1062 * conf/i386-pc.rmk (pkglib_MODULES): Add datetime.mod, date.mod
1063 and datehook.mod.
1064 (datetime_mod_SOURCES): New macro.
1065 (datetime_mod_CFLAGS): Likewise.
1066 (datetime_mod_LDFLAGS): Likewise.
1067 (date_mod_SOURCES): Likewise.
1068 (date_mod_CFLAGS): Likewise.
1069 (date_mod_LDFLAGS): Likewise.
1070 (datehook_mod_SOURCES): Likewise.
1071 (datehook_mod_CFLAGS): Likewise.
1072 (datehook_mod_LDFLAGS): Likewise.
1073
1074 * conf/i386-coreboot.rmk (pkglib_MODULES): Add datetime.mod, date.mod
1075 and datehook.mod.
1076 (datetime_mod_SOURCES): New macro.
1077 (datetime_mod_CFLAGS): Likewise.
1078 (datetime_mod_LDFLAGS): Likewise.
1079 (date_mod_SOURCES): Likewise.
1080 (date_mod_CFLAGS): Likewise.
1081 (date_mod_LDFLAGS): Likewise.
1082 (datehook_mod_SOURCES): Likewise.
1083 (datehook_mod_CFLAGS): Likewise.
1084 (datehook_mod_LDFLAGS): Likewise.
1085
1086 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add datetime.mod, date.mod
1087 and datehook.mod.
1088 (datetime_mod_SOURCES): New macro.
1089 (datetime_mod_CFLAGS): Likewise.
1090 (datetime_mod_LDFLAGS): Likewise.
1091 (date_mod_SOURCES): Likewise.
1092 (date_mod_CFLAGS): Likewise.
1093 (date_mod_LDFLAGS): Likewise.
1094 (datehook_mod_SOURCES): Likewise.
1095 (datehook_mod_CFLAGS): Likewise.
1096 (datehook_mod_LDFLAGS): Likewise.
1097
1098 * conf/i386-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
1099 and datehook.mod.
1100 (datetime_mod_SOURCES): New macro.
1101 (datetime_mod_CFLAGS): Likewise.
1102 (datetime_mod_LDFLAGS): Likewise.
1103 (date_mod_SOURCES): Likewise.
1104 (date_mod_CFLAGS): Likewise.
1105 (date_mod_LDFLAGS): Likewise.
1106 (datehook_mod_SOURCES): Likewise.
1107 (datehook_mod_CFLAGS): Likewise.
1108 (datehook_mod_LDFLAGS): Likewise.
1109
1110 * conf/x86_64-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
1111 and datehook.mod.
1112 (datetime_mod_SOURCES): New macro.
1113 (datetime_mod_CFLAGS): Likewise.
1114 (datetime_mod_LDFLAGS): Likewise.
1115 (date_mod_SOURCES): Likewise.
1116 (date_mod_CFLAGS): Likewise.
1117 (date_mod_LDFLAGS): Likewise.
1118 (datehook_mod_SOURCES): Likewise.
1119 (datehook_mod_CFLAGS): Likewise.
1120 (datehook_mod_LDFLAGS): Likewise.
1121
1122 * kern/env.c (grub_env_insert): Fix a bug in prevp pointer.
1123
1124 * commands/date.c: New file.
1125
1126 * hook/datehook.c: Likewise.
1127
1128 * include/grub/lib/datetime.h: Likewise.
1129
1130 * include/grub/i386/cmos.h: Likewise.
1131
1132 * lib/datetime.c: Likewise.
1133
1134 * lib/i386/datetime.c: Likewise.
1135
1136 * lib/efi/datetime.c: Likewise.
1137
0e9242da 11382008-08-14 Robert Millan <rmh@aybabtu.com>
1139
1140 * conf/common.rmk (bin_UTILITIES): Add `grub-mkelfimage'.
1141 (grub_mkelfimage_SOURCES): New variable.
1142 (util/elf/grub-mkimage.c_DEPENDENCIES): Likewise.
1143
1144 * conf/i386-coreboot.rmk (bin_UTILITIES, grub_mkimage_SOURCES)
1145 (grub_mkimage_LDFLAGS, util/elf/grub-mkimage.c_DEPENDENCIES): Remove.
1146 * conf/powerpc-ieee1275.rmk: Likewise.
1147 * conf/i386-ieee1275.rmk: Likewise.
1148
1149 * kern/ieee1275/init.c: Include `<grub/cpu/kernel.h>'.
1150 * kern/i386/coreboot/init.c: Likewise.
1151
1152 * kern/i386/ieee1275/startup.S: Replace `<grub/machine/kernel.h>'
1153 with `<grub/cpu/kernel.h>'.
1154 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Renamed
1155 to ...
1156 (GRUB_KERNEL_CPU_PREFIX, GRUB_KERNEL_CPU_DATA_END): ... this.
1157 * kern/i386/coreboot/startup.S: Likewise.
1158
1159 * include/grub/powerpc/ieee1275/kernel.h (GRUB_MOD_ALIGN)
1160 (GRUB_MOD_GAP): Remove.
1161 * include/grub/powerpc/kernel.h: New file.
1162 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX)
1163 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
1164 * include/grub/i386/kernel.h: New file.
1165 * include/grub/i386/coreboot/kernel.h (GRUB_MOD_ALIGN)
1166 (GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_PREFIX)
1167 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
1168
1169 * util/ieee1275/grub-install.in (grub_mkimage): Initialize to use
1170 `grub-mkelfimage'.
1171 Use --directory when invoking grub_mkimage.
1172
1173 * util/elf/grub-mkimage.c: Include `<grub/cpu/kernel.h>'.
1174 (add_segments): Replace GRUB_KERNEL_MACHINE_DATA_END and
1175 GRUB_KERNEL_MACHINE_PREFIX with GRUB_KERNEL_CPU_DATA_END
1176 and GRUB_KERNEL_CPU_PREFIX.
1177
b86408f8 11782008-08-14 Felix Zielcke <fzielcke@z-51.de>
1179
d5e619ca 1180 * include/grub/err.h (grub_err_printf): New function prototype.
1181 * util/misc.c (grub_err_printf): New function.
1182 * kern/misc.c [! GRUB_UTIL] (grub_err_printf): New alias for
1183 grub_printf.
1184 * kern/err.c (grub_print_error): Use grub_err_printf.
b86408f8 1185
7161f0e0 11862008-08-13 Robert Millan <rmh@aybabtu.com>
1187
1188 * docs/grub.cfg: Remove `/dev/' prefix in GNU/Hurd boot entry.
1189
a1967522 11902008-08-13 Robert Millan <rmh@aybabtu.com>
1191
1192 * docs/grub.cfg: Use the native device name for the example GNU/Hurd
1193 boot entry.
1194
371458b5 11952008-08-12 Robert Millan <rmh@aybabtu.com>
1196
1197 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Move part
1198 of the relocation code from here ...
1199 (grub_multiboot): ... to here.
1200 (forward_relocator, backward_relocator): Move from here ...
1201 * kern/i386/loader.S (grub_multiboot_forward_relocator)
1202 (grub_multiboot_backward_relocator): ... to here.
1203 (grub_multiboot_real_boot): Use %edx for entry offset. Put Multiboot
1204 magic in %eax. Use %ebp for jumping (so %edx is not trashed).
1205 * include/grub/i386/loader.h (grub_multiboot_forward_relocator)
1206 (grub_multiboot_forward_relocator_end)
1207 (grub_multiboot_backward_relocator)
1208 (grub_multiboot_backward_relocator_end): New variables.
1209
05f9452b 12102008-08-12 Bean <bean123ch@gmail.com>
1211
1212 * disk/raid.c (grub_raid_read): Fix a bug in raid0 code.
1213
20024ab0 12142008-08-11 Robert Millan <rmh@aybabtu.com>
1215
1216 * kern/i386/linuxbios/startup.S: Move from here ...
1217 * kern/i386/coreboot/startup.S: ... to here.
1218
1219 * kern/i386/linuxbios/init.c: Move from here ...
1220 * kern/i386/coreboot/init.c: ... to here.
1221
1222 * kern/i386/linuxbios/table.c: Move from here ...
1223 * kern/i386/coreboot/mmap.c: ... to here.
1224
1225 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Update moved files.
1226
e352e9cd 12272008-08-11 Robert Millan <rmh@aybabtu.com>
1228
1229 * kern/device.c (grub_device_open): Do not handle grub_disk_open()
1230 errors. Leave it to the upper layer to handle them.
1231
2d05bc6a 12322008-08-09 Christian Franke <franke@computer.org>
1233
1234 * Makefile.in: Add `target_os' and `enable_grub_pe2elf'.
1235 * conf/common.rmk: Install `grub-pe2elf' only if requested.
1236 Install `grub.d/10_windows' only on Cygwin.
1237 * configure.ac: Add subst of `target_os'.
1238 Check `target_os' also before setting TARGET_OBJ2ELF.
1239 Add `--enable-grub-pe2elf'.
1240
042bd419 12412008-08-08 Robert Millan <rmh@aybabtu.com>
1242
1243 * kern/disk.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
1244 (grub_last_time): Change type to grub_uint64_t.
1245 (grub_disk_open): Migrate code from to using grub_get_time_ms().
1246 (grub_disk_close): Likewise.
1247
1248 * normal/menu.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
1249 (run_menu): Migrate code from to using grub_get_time_ms().
1250
1251 * util/misc.c (grub_get_time_ms): New function.
1252
7f280db5 12532008-08-08 Marco Gerards <marco@gnu.org>
1254
1255 * disk/ata.c (grub_ata_regget): Change return type to
1256 `grub_uint8_t'.
1257 (grub_ata_regget2): Likewise.
1258 (grub_ata_wait_status): New function.
1259 (grub_ata_wait_busy): Removed function, updated all users to use
1260 `grub_ata_wait_status'.
1261 (grub_ata_wait_drq): Likewise.
1262 (grub_ata_cmd): New function.
1263 (grub_ata_pio_read): Change return type to `grub_uint8_t'. Add
1264 error handling.
1265 (grub_ata_pio_write): Add error handling.
1266 (grub_atapi_identify): Likewise.
1267 (grub_atapi_packet): Use `grub_ata_cmd' and improve error
1268 handling.
1269 (grub_ata_identify): Use `grub_ata_cmd' and improve error
1270 handling. Actually use the detected registers. Reorder the
1271 detection logic such that it is easier to read.
1272 (grub_ata_pciinit): Do not assign the same ID to each controller.
1273 (grub_ata_setaddress): Use `grub_ata_cmd' and improve error
1274 handling.
1275 (grub_atapi_readsector): Check the result of `grub_ata_pio_read'.
1276
1277 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TIMEOUT'.
1278
1fbc5e66 12792008-08-08 Marco Gerards <marco@gnu.org>
1280
1281 * NEWS: Update.
1282
819ce6c0 12832008-08-07 Bean <bean123ch@gmail.com>
1284
1285 * include/grub/x86_64/pci.h: New file.
1286
5c41d44d 12872008-08-07 Christian Franke <franke@computer.org>
1288
1289 * kern/i386/pit.c (TIMER2_SPEAKER): New define.
1290 (TIMER2_GATE): Likewise.
1291 (grub_pit_wait): Add enable/disable of the timer2 gate
1292 bit of port 0x61. This fixes a possible infinite loop.
1293
5ebc275d 12942008-08-07 Bean <bean123ch@gmail.com>
1295
1296 * conf/x86_64-efi.rmk (kernel_mod_SOURCES): Add kern/time.c,
1297 kern/i386/tsc.c and kern/i386/pit.c.
1298
1299 * include/grub/i386/tsc.h (grub_cpu_is_cpuid_supported): Handle
1300 x86_64 platform.
1301
1302 * kern/i386/efi/init.c: Replace <grub/cpu/tsc.h> with
1303 <grub/i386/tsc.h>.
1304
1305 * kern/i386/pit.c: Replace <grub/cpu/io.h> with <grub/i386/io.h>.
1306
e383b3d0 13072008-08-07 Bean <bean123ch@gmail.com>
1308
1309 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add kern/time.c.
1310
1311 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add kern/time.c,
1312
1313 * include/grub/i386/pit.h: Use macro KERNEL_CPU_PIT_HEADER to avoid
1314 multiple inclusion. Add #include <grub/types.h>.
1315
1cbb58ac 13162008-08-06 Christian Franke <franke@computer.org>
1317
1318 * conf/common.rmk: Build and install `10_windows'.
1319 * util/grub.d/10_windows.in: New script.
1320
337f5a1e 13212008-08-06 Pavel Roskin <proski@gnu.org>
1322
1323 * kern/i386/pit.c: Include `<grub/i386/pit.h>'.
1324
057bc4ac 13252008-08-06 Robert Millan <rmh@aybabtu.com>
1326
1327 * conf/i386-coreboot.rmk (kernel_elf_ASFLAGS): New variable.
1328 * kern/i386/tsc.c: Include `<grub/i386/pit.h>'.
1329
2b99f123 13302008-08-06 Bean <bean123ch@gmail.com>
1331
1332 * fs/i386/pc/pxe.c (grub_pxe_data): New member block_size.
1333 (grub_pxefs_fs_int): Remove dummy definition.
1334 (grub_pxefs_open): Use data->block_size to store the current block
1335 size setting.
1336 (grub_pxefs_read): Use block size stored in data->block_size. As the
1337 value of grub_pxe_blksize can be changed after the file is opened.
1338
9f0234cb 13392008-08-06 Bean <bean123ch@gmail.com>
1340
1341 * fs/i386/pc/pxe.c (curr_file): new variable.
1342 (grub_pxefs_open): Simply the handling of pxe file system. Don't
1343 require the dummy internal file system anymore.
1344 (grub_pxefs_read): Removed.
1345 (grub_pxefs_close): Likewise.
1346 (grub_pxefs_fs_int): Likewise.
1347 (grub_pxefs_read_int): Renamed to grub_pxefs_read. Reinitialize tftp
1348 connection when we switch file.
1349 (grub_pxefs_close_int): Renamed to grub_pxefs_close.
1350
a55d42e0 13512008-08-06 Robert Millan <rmh@aybabtu.com>
1352
1353 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and
1354 `halt.mod'.
1355 (reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS)
1356 (halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables.
1357
1358 * kern/i386/halt.c: New file.
1359 * kern/i386/reboot.c: Likewise.
1360 * include/grub/i386/reboot.h: Likewise.
1361 * include/grub/i386/halt.h: Likewise.
1362
1363 * commands/halt.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]:
1364 Include `<grub/cpu/halt.h>'.
1365 * commands/reboot.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]
1366 [! GRUB_MACHINE_PCBIOS]: Include `<grub/cpu/reboot.h>'.
1367
1368 * term/i386/pc/at_keyboard.c: Include `<grub/cpu/at_keyboard.h>'.
1369 (SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA)
1370 (KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ)
1371 (KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT)
1372 (KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY)
1373 (KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move
1374 from here ...
1375 * include/grub/i386/at_keyboard.h: ... to here.
1376
24371d26 13772008-08-05 Robert Millan <rmh@aybabtu.com>
1378
1379 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pit.c'.
1380 * conf/i386-efi.rmk (kernel_mod_SOURCES): Likewise.
1381 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Likewise. Also add
1382 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
1383 `kern/generic/millisleep.c'.
1384
1385 * kern/i386/tsc.c (calibrate_tsc): Rewrite using grub_pit_wait()
1386 instead of grub_get_rtc().
1387 (grub_tsc_init): Initialize `tsc_boot_time'.
1388
1389 * kern/i386/linuxbios/init.c (grub_millisleep): Remove stub.
1390 (grub_machine_init): Use grub_tsc_init() rather than
1391 installing an RTC-based handler via grub_install_get_time_ms().
1392
1393 * kern/i386/pit.c: New file.
1394 * include/grub/i386/pit.h: Likewise.
1395
9e7007b3 13962008-08-05 Bean <bean123ch@gmail.com>
1397
1398 * boot/i386/pc/pxeboot.S (_start): Use drive number 0x7F for pxe.
1399
1400 * conf/i386-pc.rmk (kernel_img_HEADERS): Add machine/pxe.h.
1401 (pkglib_MODULES): Add pxe.mod and pxecmd.mod.
1402 (pxe_mod_SOURCES): New macro.
1403 (pxe_mod_CFLAGS): Likewise.
1404 (pxe_mod_LDFLAGS): Likewise.
1405 (pxecmd_mod_SOURCES): Likewise.
1406 (pxecmd_mod_CFLAGS): Likewise.
1407 (pxecmd_mod_LDFLAGS): Likewise.
1408
1409 * kern/i386/pc/startup.S (grub_pxe_scan): New function.
1410 (grub_pxe_call): Likewise.
1411
1412 * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_PXE_ID.
1413
1414 * commands/i386/pc/pxecmd.c: New file.
1415
9f0234cb 1416 * fs/i386/pc/pxe.c: Likewise.
9e7007b3 1417
1418 * include/grub/i386/pc/pxe.h: Likewise.
1419
6977d49f 14202008-08-05 Bean <bean123ch@gmail.com>
1421
1422 * util/console.c (grub_console_cur_color): New variable.
1423 (grub_console_standard_color): Likewise.
1424 (grub_console_normal_color): Likewise.
1425 (grub_console_highlight_color): Likewise.
1426 (color_map): Likewise.
1427 (use_color): Likewise.
1428 (NUM_COLORS): New macro.
1429 (grub_ncurses_setcolorstate): Handle color properly.
1430 (grub_ncurses_setcolor): Don't change color here, just remember the
1431 settings, color will be set in grub_ncurses_setcolorstate.
1432 (grub_ncurses_getcolor): New function.
1433 (grub_ncurses_init): Initialize color pairs.
1434 (grub_ncurses_term): New member grub_ncurses_getcolor.
1435
9c2ff3ee 14362008-08-05 Colin D Bennett <colin@gibibit.com>
337f5a1e 1437
9c2ff3ee 1438 High resolution timer support. Implemented for x86 CPUs using TSC.
1439 Extracted generic grub_millisleep() so it's linked in only as needed.
1440 This requires a Pentium compatible CPU; if the RDTSC instruction is
1441 not supported, then it falls back on the generic grub_get_time_ms()
1442 implementation that uses the machine's RTC.
1443
1444 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/time.c',
1445 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
1446 `kern/generic/millisleep.c'.
1447
1448 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add `kern/i386/tsc.c',
1449 `kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'.
1450
1451 * conf/x86_64-efi.rml (kernel_mod_SOURCES): Add
1452 `kern/generic/millisleep.c' and `kern/generic/rtc_get_time_ms.c'.
1453
1454 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
1455
1456 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
1457 `kern/generic/millisleep.c'.
1458
1459 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
1460
1461 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Add `kern/time.c'.
1462
1463 * kern/generic/rtc_get_time_ms.c: New file.
1464
1465 * kern/generic/millisleep.c: New file.
337f5a1e 1466
9c2ff3ee 1467 * kern/misc.c: Don't include
1468 <kern/time.h> anymore.
1469 (grub_millisleep_generic): Removed.
1470
1471 * commands/sleep.c (grub_interruptible_millisleep): Uses
1472 grub_get_time_ms() instead of grub_get_rtc().
1473
1474 * include/grub/i386/tsc.h (grub_get_tsc): New file. New inline
1475 function.
1476 (grub_cpu_is_cpuid_supported): New inline function.
1477 (grub_cpu_is_tsc_supported): New inline function.
1478 (grub_tsc_init): New function prototype.
1479 (grub_tsc_get_time_ms): New function prototype.
1480
1481 * kern/i386/tsc.c (grub_get_time_ms): New file.
1482
1483 * include/grub/time.h: Include <grub/types.h.
1484 (grub_millisleep_generic): Removed.
1485 (grub_get_time_ms): New prototype.
1486 (grub_install_get_time_ms): New prototype.
1487 (grub_rtc_get_time_ms): New prototype.
1488
1489 * kern/time.c (grub_get_time_ms): New function.
1490 (grub_install_get_time_ms): New function.
1491
1492 * kern/i386/efi/init.c: Include <grub/cpu/tsc.h>. Don't include
1493 <grub/time.h> anymore.
1494 (grub_millisleep): Removed.
1495 (grub_machine_init): Call grub_tsc_init.
1496
1497 * kern/i386/linuxbios/init.c (grub_machine_init): Install the RTC
1498 get_time_ms() implementation.
1499
1500 * kern/sparc64/ieee1275/init.c (grub_millisleep): Removed.
1501 (ieee1275_get_time_ms): New function.
1502 (grub_machine_init): Install get_time_ms() implementation.
1503
1504 * kern/i386/pc/init.c: Include <grub/cpu/tsc.h>.
1505 (grub_machine_init): Call grub_tsc_init().
1506 (grub_millisleep): Removed.
bf06a93f 1507
9c2ff3ee 1508 * kern/ieee1275/init.c (grub_millisleep): Removed.
1509 (grub_machine_init): Install ieee1275_get_time_ms()
1510 implementation.
1511 (ieee1275_get_time_ms): New function.
1512 (grub_get_rtc): Now calls ieee1275_get_time_ms(), which does the
1513 real work.
1514
9ec92aaf 15152008-08-05 Marco Gerards <marco@gnu.org>
1516
1517 * disk/ata.c: Include <grub/pci.h>.
1518 (enum grub_ata_commands): Add `GRUB_ATA_CMD_EXEC_DEV_DIAGNOSTICS'.
1519 (grub_ata_initialize): Rewritten.
1520 (grub_ata_device_initialize): New function.
1521
8d23f507 15222008-08-04 Pavel Roskin <proski@gnu.org>
1523
1524 * kern/main.c: Include grub/mm.h.
1525
5e15ee3d 15262008-08-04 Robert Millan <rmh@aybabtu.com>
1527
1528 * conf/i386-coreboot.rmk (COMMON_ASFLAGS, COMMON_CFLAGS)
1529 (COMMON_LDFLAGS): Harmonize with i386-pc version (fixes a code
1530 corruption problem).
1531
a9053f8f 15322008-08-04 Robert Millan <rmh@aybabtu.com>
1533
1534 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Fix misc
1535 warnings introduced in my last commit.
1536
dd19c7d7 15372008-08-03 Robert Millan <rmh@aybabtu.com>
1538
1539 Make PCI available on all i386 architectures.
1540
1541 * include/grub/i386/pc/pci.h: Move from here ...
1542 * include/grub/i386/pci.h: ... to here.
1543
1544 * include/grub/i386/pc/pci.h: Remove.
1545 * include/grub/i386/efi/pci.h: Remove.
1546 * include/grub/x86_64/efi/pci.h: Remove.
1547
1548 * include/grub/pci.h: Replace `<grub/machine/pci.h>' with
1549 `<grub/cpu/pci.h>'.
1550
1551 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `pci' and `lspci'.
1552 (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS, lspci_mod_SOURCES)
1553 (lspci_mod_CFLAGS, lspci_mod_LDFLAGS): New variables.
1554
1555 * conf/i386-ieee1275.rmk: Likewise.
1556
e14a6184 15572008-08-03 Robert Millan <rmh@aybabtu.com>
1558
1559 * term/i386/pc/vga_text.c (CRTC_CURSOR_DISABLE): New macro.
1560 (grub_console_setcursor): Make it possible to set cursor off.
1561
52768e37 15622008-08-03 Robert Millan <rmh@aybabtu.com>
1563
1564 * util/grub.d/00_header.in: Be platform-agnostic. Probe for existence
1565 of modules instead of assuming which platform provides what.
1566 * util/update-grub.in: Likewise.
1567
2d52f57f 15682008-08-03 Robert Millan <rmh@aybabtu.com>
1569
1570 * kern/i386/pc/init.c (make_install_device): Check for `grub_prefix'
1571 instead of `grub_install_dos_part' to determine whether a drive needs
1572 to be prepended to prefix (`grub_install_dos_part' is not reliable,
825aa57a 1573 because it can be overridden when loading GRUB via Multiboot).
2d52f57f 1574
2a5cd121 15752008-08-02 Robert Millan <rmh@aybabtu.com>
1576
1577 * util/i386/pc/grub-install.in: Remove trailing slash from prefix.
1578
93808428 15792008-08-02 Robert Millan <rmh@aybabtu.com>
1580
1581 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Add a pair
1582 of informational grub_dprintf() calls.
1583
3bd0a12a 15842008-08-02 Robert Millan <rmh@aybabtu.com>
1585
1586 * disk/memdisk.c (memdisk_size): Don't initialize.
1587 (GRUB_MOD_INIT(memdisk)): Find memdisk using grub_module_iterate().
1588
1589 * include/grub/i386/pc/kernel.h
1590 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): Remove macro.
1591 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Shift.
1592 (grub_memdisk_image_size, grub_arch_memdisk_addr)
1593 (grub_arch_memdisk_size): Remove.
1594
1595 * include/grub/kernel.h (struct grub_module_header): Remove `offset'
1596 field (was only used to transfer a constant). Add `type' field to
1597 support multiple module types.
1598 (grub_module_iterate): New function.
1599
1600 * kern/device.c (grub_device_open): Do not hide error messages
1601 when grub_disk_open() fails. Use grub_print_error() instead.
1602
1603 * kern/i386/pc/init.c (grub_arch_modules_addr)
1604 (grub_arch_memdisk_size): Remove functions.
1605 (grub_arch_modules_addr): Return the module address in high memory
1606 (now that it isn't copied anymore).
1607
1608 * kern/i386/pc/startup.S (grub_memdisk_image_size): Remove variable.
1609 (codestart): Don't add grub_memdisk_image_size to %ecx in LZMA
1610 decompression routine (grub_total_module_size already includes that
1611 now). Don't copy modules back to low memory.
1612
1613 * kern/main.c: Include `<grub/mm.h>'.
1614 (grub_load_modules): Split out (and use) ...
1615 (grub_module_iterate): ... this function, which iterates through
1616 module objects and runs a hook.
1617 Comment out grub_mm_init_region() call, as it would cause non-ELF
1618 modules to be overwritten.
1619
1620 * util/i386/pc/grub-mkimage.c (generate_image): Instead of appending
1621 the memdisk image in its own region, make it part of the module list.
1622 * util/elf/grub-mkimage.c (options): Add "memdisk"|'m' option.
1623 (main): Parse --memdisk|-m option, and pass user-provided path as
1624 parameter to generate_image().
1625 (add_segments): Pass `memdisk_path' down to load_modules().
1626 (load_modules): Embed memdisk image in module section when requested.
1627 * util/i386/efi/grub-mkimage.c (make_mods_section): Initialize
1628 `header.type' instead of `header.offset'.
1629
1630 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add `memdisk.mod'.
1631 (memdisk_mod_SOURCES, memdisk_mod_CFLAGS)
1632 (memdisk_mod_LDFLAGS): New variables.
1633 * conf/i386-coreboot.rmk: Likewise.
1634 * conf/i386-ieee1275.rmk: Likewise.
1635
a927cc73 16362008-08-02 Robert Millan <rmh@aybabtu.com>
1637
1638 * loader/i386/pc/multiboot.c (playground, forward_relocator)
1639 (backward_relocator): New variables. Used to allocate and relocate
1640 the payload, respectively.
1641 (grub_multiboot_load_elf32): Load into heap instead of requested
825aa57a 1642 address, install the appropriate relocator code in each bound of
a927cc73 1643 the payload, and set the entry point such that
1644 grub_multiboot_real_boot() will jump to one of them.
1645
1646 * kern/i386/loader.S (grub_multiboot_payload_size)
1647 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
1648 (grub_multiboot_payload_entry_offset): New variables.
1649 (grub_multiboot_real_boot): Set cpu context to what the relocator
1650 expects, and jump to the relocator instead of the payload.
1651
1652 * include/grub/i386/loader.h (grub_multiboot_payload_size)
1653 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
1654 (grub_multiboot_payload_entry_offset): Export.
1655
b15d8a0c 16562008-08-01 Bean <bean123ch@gmail.com>
1657
1658 * normal/menu_entry.c (editor_getline): Don't return the original
1659 string as result, as it will be released by lexer once it has done
1660 using it.
1661
cdfb3d22 16622008-08-01 Robert Millan <rmh@aybabtu.com>
1663
1664 * util/grub.d/10_linux.in: Use prepare_grub_to_access_device() from
1665 within menuentries, not before them.
1666 util/grub.d/10_hurd.in: Likewise.
1667
9175e93d 16682008-08-01 Bean <bean123ch@gmail.com>
1669
1670 * conf/common.rmk (pkglib_MODULES): Add bufio.mod.
1671 (bufio_mod_SOURCES): New macro.
1672 (bufio_mod_CFLAGS): Likewise.
1673 (bufio_mod_LDFLAGS): Likewise.
1674
1675 * include/grub/bufio.h: New file.
1676
1677 * io/bufio.c: Likewise.
1678
1679 * video/png.c: Replace <grub/file.h> with <grub/bufio.h>.
1680 (grub_video_reader_png): Use grub_buffile_open to open file.
1681
1682 * video/jpeg.c: Replace <grub/file.h> with <grub/bufio.h>.
1683 (grub_video_reader_jpeg): Use grub_buffile_open to open file.
1684
1685 * video/tga.c: Replace <grub/file.h> with <grub/bufio.h>.
1686 (grub_video_reader_tga): Use grub_buffile_open to open file.
1687
1688 * font/manager.c: Include <grub/bufio.h>.
1689 (add_font): Use grub_buffile_open to open file.
1690
3d8383e7 16912008-07-31 Robert Millan <rmh@aybabtu.com>
1692
1693 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): When loading
1694 ELF segments, use a macro for arbitrarily accessing any of them instead
1695 of preparing a pointer that allows access to one at a time.
1696 (grub_multiboot_load_elf64): Likewise.
1697
16e641b6 16982008-07-31 Bean <bean123ch@gmail.com>
1699
1700 * boot/i386/pc/lnxboot.S (real_code_2): Replace 0x50 with
1701 GRUB_KERNEL_MACHINE_DATA_END.
1702
59198b72 17032008-07-30 Robert Millan <rmh@aybabtu.com>
1704
1705 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_DATA_END):
1706 Increase from 0x50 to 0x60.
1707 * util/i386/pc/grub-install.in: Detect cross-disk installs, and
1708 use UUIDs to identify the root drive for them. If that's not
1709 possible, abort.
1710 * util/i386/pc/grub-setup.c (setup): Do not special-case, or even
1711 check, for cross-disk installs.
1712
ae88bca3 17132008-07-30 Robert Millan <rmh@aybabtu.com>
1714
1715 * kern/ieee1275/init.c (grub_machine_set_prefix): If `grub_prefix'
1716 is non-empty, use it to set the `prefix' environment variable instead
1717 of the usual approach.
1718 * kern/i386/linuxbios/init.c (make_install_device): Remove function.
1719 (grub_machine_set_prefix): Use `grub_prefix' to set the `prefix'
1720 environment variable instead of dummy make_install_device().
1721
1722 * kern/i386/ieee1275/startup.S: Include `<grub/machine/kernel.h>'.
1723 (start): Insert a data section, with `grub_prefix' variable.
825aa57a 1724 * kern/i386/linuxbios/startup.S: Likewise.
ae88bca3 1725
1726 * include/grub/powerpc/ieee1275/kernel.h [!ASM_FILE] (grub_prefix):
1727 New variable reference.
1728 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX):
1729 New macro. Defines offset of `grub_prefix' within startup.S (relative
1730 to `start').
1731 (GRUB_KERNEL_MACHINE_DATA_END): New macro. Defines the end of data
1732 section within startup.S (relative to `start').
1733 * include/grub/i386/coreboot/kernel.h: Likewise.
1734
1735 * util/elf/grub-mkimage.c (add_segments): Receive `prefix' parameter.
1736 Overwrite grub_prefix with its contents, at the beginning of the
1737 first segment.
1738 (main): Understand -p|--prefix.
1739
14f41dd1 17402008-07-30 Robert Millan <rmh@aybabtu.com>
1741
1742 * util/grub.d/10_hurd.in: Source ${libdir}/grub/update-grub_lib.
1743
4ca049a3 17442008-07-30 Robert Millan <rmh@aybabtu.com>
1745
1746 * term/i386/pc/vga_text.c (grub_console_cls): Use
1747 grub_console_gotoxy() to go back to beginning of the screen.
1748 Found by Patrick Georgi <patrick.georgi@coresystems.de>
1749
2921d337 17502008-07-29 Christian Franke <franke@computer.org>
1751
1752 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
1753 Add conversion of emulated mount points on Cygwin.
1754
b609876d 17552008-07-29 Christian Franke <franke@computer.org>
1756
1757 * util/update-grub.in: Add a check for admin
1758 group on Cygwin.
1759 Remove old `grub.cfg.new' before creation.
1760 Add `-f' to `mv' to handle the different filesystem
1761 semantics of Windows.
1762
e93e4679 17632008-07-29 Bean <bean123ch@gmail.com>
1764
1765 * normal/main.c (get_line): Fix buffer overflow bug.
1766
41694fd0 17672008-07-28 Robert Millan <rmh@aybabtu.com>
1768
1769 * partmap/apple.c (GRUB_APPLE_HEADER_MAGIC): New macro.
1770 (struct grub_apple_header): New struct. Describes the layout of
1771 the partmap header.
1772 (apple_partition_map_iterate): Check the header magic as well as the
1773 partition magic (which was already being checked).
1774
cfd0b4e6 17752008-07-28 Pavel Roskin <proski@gnu.org>
1776
1777 * genmk.rb: Add a warning to the beginning of the output that
1778 it's a generated file and should not be edited.
1779
93cce016 17802008-07-28 Robert Millan <rmh@aybabtu.com>
1781
1782 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
1783 with the same number are found, just use issue a warning with
1784 grub_dprintf(), as this error has been reported to be non-fatal.
c298def0 1785
cd1df915 17862008-07-27 Robert Millan <rmh@aybabtu.com>
1787
1788 * disk/ata.c (grub_ata_dumpinfo): Use grub_dprintf() for debugging
1789 information.
1790
b70a8427 17912008-07-27 Bean <bean123ch@gmail.com>
1792
1793 * fs/fat.c (GRUB_FAT_MAXFILE): New constant.
1794 (grub_fat_find_dir): Ignore case when comparing filename.
1795
8f5e379f 17962008-07-27 Bean <bean123ch@gmail.com>
1797
1798 * fs/xfs.c (grub_xfs_dir_header): Change field i8count back to
1799 smallino, as it's more descriptive, and i8count can be confused with
1800 the other field count.
1801 (grub_xfs_iterate_dir): Adjust grub_xfs_dir_entry pointer for small
1802 inode type.
1803
a85cd5a0 18042008-07-27 Bean <bean123ch@gmail.com>
1805
1806 * commands/crc.c: New file.
1807
1808 * lib/crc.c: Likewise.
1809
1810 * include/grub/lib/crc.h: Likewise.
1811
1812 * util/grub-fstest.c: grub/hexdump.h => grub/lib/hexdump.h.
1813
1814 * commands/hexdump.c: grub/hexdump.h => grub/lib/hexdump.h.
1815 (hexdump): Move this function to ...
1816
1817 * lib/hexdump.c: ... here.
1818
1819 * include/grub/hexdump.h: Renamed to ...
1820
1821 * include/grub/lib/hexdump.h: ... this.
1822
1823 * commands/loadenv.c: grub/envblk.h => grub/lib/envblk.h
1824
1825 * util/grub-editenv.c: Likewise.
1826
1827 * include/envblk.h: Renamed to ...
1828
1829 * include/lib/envblk.h: ... this.
1830
1831 * util/envblk.c: Renamed to ...
1832
1833 * lib/envblk.c: ... this.
1834
1835 * conf/common.rmk (grub_fstest_SOURCES): commands/hexdump.c =>
1836 lib/hexdump.c.
1837 (grub_editenv_SOURCES): util/envblk.c => lib/envblk.c
1838 (pkglib_MODULES): Add crc.mod.
1839 (hexdump_mod_SOURCES): Add lib/hexdump.c.
1840 (loadenv_mod_SOURCES): util/envblk.c => lib/envblk.c.
1841 (crc_mod_SOURCES): New macro.
1842 (crc_mod_CFLAGS): Likewise.
1843 (crc_mod_LDFLAGS): Likewise.
1844
1845 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add lib/hexdump.c.
1846
1847 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1848
1849 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
1850
1851 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1852
1853 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1854
c298def0 18552008-07-27 Felix Zielcke <fzielcke@z-51.de>
8749e9e5 1856
1857 * commands/help.c: Include <grub/term.h>.
1858 (TERM_WIDTH): Removed. Updated all users.
1859
cc349fb3 18602008-07-27 Pavel Roskin <proski@gnu.org>
1861
1862 * util/getroot.c (find_root_device): Rephrase a comment to avoid
1863 spurious warnings about a comment within a comment.
1864
9051607e 18652008-07-25 Robert Millan <rmh@aybabtu.com>
1866
1867 * util/getroot.c (find_root_device): Skip devices that match
1868 /dev/dm-[0-9]. This lets the real device be found for any type of
1869 abstraction (LVM, EVMS, RAID..).
1870 (grub_guess_root_device): Do not traverse /dev/mapper (for LVM)
1871 and /dev/evms (for EVMS) before traversing /dev. If a /dev/dm-[0-9]
1872 device is found first, find_root_device() will now skip it.
1873
01453bfc 18742008-07-24 Pavel Roskin <proski@gnu.org>
1875
1876 * include/grub/types.h: Use __builtin_bswap32() and
1877 __builtin_bswap64() with gcc 4.3 and newer.
1878
6af9849f 18792008-07-24 Christian Franke <franke@computer.org>
1880
3a0fa256 1881 * util/i386/pc/grub-install.in: If `--debug' is specified,
1882 pass `--verbose' to grub-setup.
1883 Abort script if make_system_path_relative_to_its_root() fails.
1884
7810e747 18852008-07-24 Bean <bean123ch@gmail.com>
1886
1887 * configure.ac: Fixed a bug caused by the previous cygwin patch,
1888 variable `target_platform' should be `platform'.
1889
42290e17 18902008-07-24 Bean <bean123ch@gmail.com>
1891
51cc5193 1892 * video/reader/png.c (DEFLATE_HLIT_MAX): Change value.
42290e17 1893 (grub_png_init_fixed_block): New function.
1894 (grub_png_decode_image_data): Handle fixed huffman code compression.
1895
2a8a80e4 18962008-07-24 Bean <bean123ch@gmail.com>
1897
1898 * common.rmk (bin_UTILITIES): Add grub-pe2elf.
1899 (grub_pe2elf_SOURCES): New macro.
1900 (CLEANFILES): Add grub-pe2elf.
1901
1902 * include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant.
1903 (GRUB_PE32_SCN_ALIGN_2BYTES): Likewise.
1904 (GRUB_PE32_SCN_ALIGN_4BYTES): Likewise.
1905 (GRUB_PE32_SCN_ALIGN_8BYTES): Likewise.
1906 (GRUB_PE32_SCN_ALIGN_16BYTES): Likewise.
1907 (GRUB_PE32_SCN_ALIGN_32BYTES): Likewise.
1908 (GRUB_PE32_SCN_ALIGN_64BYTES): Likewise.
1909 (GRUB_PE32_SCN_ALIGN_SHIFT): Likewise.
1910 (GRUB_PE32_SCN_ALIGN_MASK): Likewise.
1911 (GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise.
1912 (GRUB_PE32_SYM_CLASS_STATIC): Likewise.
1913 (GRUB_PE32_SYM_CLASS_FILE): Likewise.
1914 (GRUB_PE32_DT_FUNCTION): Likewise.
1915 (GRUB_PE32_REL_I386_DIR32): Likewise.
1916 (GRUB_PE32_REL_I386_REL32): Likewise.
1917 (grub_pe32_symbol): New structure.
1918 (grub_pe32_reloc): Likewise.
1919
1920 * util/grub-pe2elf.c: New file.
1921
1922 * configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for
1923 start symbol in non pc platform.
1924
1925 * genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf.
1926
1927 The following patches are from Christian Franke.
1928
1929 * include/grub/dl.h: Remove .previous, gas supports this only
1930 for ELF format.
1931
1932 * include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE):
1933 Remove .type, gas supports this only for ELF format.
1934
1935 * kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing
1936 nullbytes in symbol table. This fixes an infinite loop if table is
1937 zero filled.
1938
1939 * Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT,
1940 TARGET_IMG_LDFLAGS and EXEEXT.
1941
1942 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by
1943 TARGET_IMG_LDFLAGS_AC.
1944 (grub_CHECK_STACK_ARG_PROBE): New function.
1945
1946 * conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS.
1947
1948 * conf/i386-pc-cygwin-ld-img.sc: New linker script.
1949
1950 * configure.ac: Add check for linker script "conf/${target}-img-ld.c"
1951 to set TARGET_IMG_LD* accordingly.
1952 Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly.
1953 Add call to grub_CHECK_STACK_ARG_PROBE.
1954 Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols.
1955
1956 * genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.
1957
1958 * genmk.rb: Add EXEEXT to CLEANFILES.
1959
12ccdb75 19602008-07-23 Robert Millan <rmh@aybabtu.com>
1961
1962 * Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they
1963 define the codes for arrows and lines used for the menu).
1964 (ascii.pff): Generate fonts for $(UNICODE_ARROWS) and $(UNICODE_LINES)
1965 as well.
1966
1967 * util/update-grub_lib.in (font_path): Prefer ascii.pff over complete
1968 fonts, because the latter are too slow.
1969
18eeaf04 19702008-07-21 Bean <bean123ch@gmail.com>
1971
1972 * kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
1973 a20. Run keyboard test last, as it will cause macbook to halt.
1974
b095e2ad 19752008-07-18 Pavel Roskin <proski@gnu.org>
1976
1977 * kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P. We cannot
1978 load foreign architecture modules correctly anyway. Keep
1979 support for loading host architecture modules, whether we
1980 compile them or not.
1981
737feb35 19822008-07-17 Pavel Roskin <proski@gnu.org>
1983
3f4ce737 1984 * configure.ac: Use -m32 or -m64 regardless of whether we had to
1985 change target_cpu. The compiler default can mismatch target_cpu
1986 in any case.
1987
4ad2d049 1988 * disk/efi/efidisk.c: Fix format warnings on x86_64.
1989 * kern/efi/efi.c: Likewise.
1990
f6130a12 1991 * aclocal.m4 (grub_PROG_TARGET_CC): New macro. Check if the
1992 target compiler is functional.
1993 * configure.ac: Call grub_PROG_TARGET_CC once all target flags
1994 are set up.
1995
58393a2d 1996 * configure.ac: Default to efi platform for x86_64-apple. Allow
1997 powerpc64 CPU, default to ieee1275 platform for it. Split CPU
1998 adjustments from the rest, only do them if target is not
1999 explicitly given. Merge other adjustments with the final sanity
2000 check. Remove an extraneous check for supported CPU. Be
2001 specific which CPU and which platform is not supported.
2002
737feb35 2003 * configure.ac: Default to pc platform for x86_64.
2004
546f966a 20052008-07-17 Robert Millan <rmh@aybabtu.com>
2006
2007 Partial LinuxBIOS -> Coreboot rename.
2008
2009 * conf/i386-linuxbios.rmk: Renamed to ...
2010 * conf/i386-coreboot.rmk: ... this.
2011 * Makefile.in (RMKFILES): s/i386-linuxbios.rmk/i386-coreboot.rmk/g.
2012 * configure.ac: Accept "coreboot" as input platform (but maintain
2013 compatibility with "linuxbios").
2014 * include/grub/i386/linuxbios: Renamed to ...
2015 * include/grub/i386/coreboot: ... this.
2016
20011694 20172008-07-17 Bean <bean123ch@gmail.com>
2018
2019 * conf/i386/efi.rmk (pkglib_MODULES): add pci.mod and lspci.mod.
c11f6d16 2020 (appleldr_mod_SOURCE): New variable.
20011694 2021 (appleldr_mod_CFLAGS): Likewise.
2022 (appleldr_mod_LDFLAGS): Likewise.
2023 (pci_mod_SOURCES): Likewise.
2024 (pci_mod_CFLAGS): Likewise.
2025 (pci_mod_LDFLAGS): Likewise.
2026 (lspci_mod_SOURCES): Likewise.
2027 (lspci_mod_CFLAGS): Likewise.
2028 (lspci_mod_LDFLAGS): Likewise.
2029
2030 * conf/x86_64-efi.rmk: New file.
2031
2032 * disk/efi/efidisk.c (grub_efidisk_read): Wrap efi calls with efi_call_N
2033 macro.
2034 (grub_efidisk_write): Likewise.
2035
2036 * include/efi/api.h (efi_call_0): New macro.
2037 (efi_call_1): Likewise.
2038 (efi_call_2): Likewise.
2039 (efi_call_3): Likewise.
2040 (efi_call_4): Likewise.
2041 (efi_call_5): Likewise.
2042 (efi_call_6): Likewise.
2043
2044 * include/grub/efi/chainloader.h (grub_chainloader_cmd): Rename to
2045 grub_rescue_cmd_chainloader.
2046
2047 * include/grub/efi/pe32.h (GRUB_PE32_MACHINE_X86_64): New macro.
2048 (grub_pe32_optional_header): Change some fields based on i386 or
2049 x86_64 platform.
2050 (GRUB_PE32_PE32_MAGIC): Likewise.
2051
2052 * include/grub/efi/uga_draw.h: New file.
2053
2054 * include/grub/elf.h (STN_ABS): New constant.
2055 (R_X86_64_NONE): Relocation constant for x86_64.
2056 (R_X86_64_64): Likewise.
2057 (R_X86_64_PC32): Likewise.
2058 (R_X86_64_GOT32): Likewise.
2059 (R_X86_64_PLT32): Likewise.
2060 (R_X86_64_COPY): Likewise.
2061 (R_X86_64_GLOB_DAT): Likewise.
2062 (R_X86_64_JUMP_SLOT): Likewise.
2063 (R_X86_64_RELATIVE): Likewise.
2064 (R_X86_64_GOTPCREL): Likewise.
2065 (R_X86_64_32): Likewise.
2066 (R_X86_64_32S): Likewise.
2067 (R_X86_64_16): Likewise.
2068 (R_X86_64_PC16): Likewise.
2069 (R_X86_64_8): Likewise.
2070 (R_X86_64_PC8): Likewise.
2071
2072 * include/grub/i386/efi/pci.h: New file.
2073
2074 * include/grub/i386/linux.h (GRUB_LINUX_EFI_SIGNATURE):
2075 Change it value based on platform.
2076 (GRUB_LINUX_EFI_SIGNATURE_0204): New constant.
2077 (GRUB_E820_RAM): Likewise.
2078 (GRUB_E820_RESERVED): Likewise.
2079 (GRUB_E820_ACPI): Likewise.
2080 (GRUB_E820_NVS): Likewise.
2081 (GRUB_E820_EXEC_CODE): Likewise.
2082 (GRUB_E820_MAX_ENTRY): Likewise.
2083 (grub_e820_mmap): New structure.
2084 (linux_kernel_header): Change the efi field according to different
2085 kernel version, also field from linux_kernel_header.
2086
2087 * include/grub/kernel.h (grub_module_info): Add padding for x86_64.
2088
2089 * include/grub/pci.h (GRUB_PCI_ADDR_SPACE_MASK): New constant.
2090 (GRUB_PCI_ADDR_SPACE_MEMORY): Likewise.
2091 (GRUB_PCI_ADDR_SPACE_IO): Likewise.
2092 (GRUB_PCI_ADDR_MEM_TYPE_MASK): Likewise.
2093 (GRUB_PCI_ADDR_MEM_TYPE_32): Likewise.
2094 (GRUB_PCI_ADDR_MEM_TYPE_1M): Likewise.
2095 (GRUB_PCI_ADDR_MEM_TYPE_64): Likewise.
2096 (GRUB_PCI_ADDR_MEM_PREFETCH): Likewise.
2097 (GRUB_PCI_ADDR_MEM_MASK): Likewise.
2098 (GRUB_PCI_ADDR_IO_MASK): Likewise.
2099
2100 * include/grub/x86_64/efi/kernel.h: New file.
2101
2102 * include/grub/x86_64/efi/loader.h: Likewise.
2103
2104 * include/grub/x86_64/efi/machine.h: Likewise.
2105
2106 * include/grub/x86_64/efi/pci.h: Likewise.
2107
2108 * include/grub/x86_64/efi/time.h: Likewise.
2109
2110 * include/grub/x86_64/linux.h: Likewise.
2111
2112 * include/grub/x86_64/setjmp.h: Likewise.
2113
2114 * include/grub/x86_64/time.h: Likewise.
2115
2116 * include/grub/x86_64/types.h: Likewise.
2117
2118 * kern/dl.c (GRUB_CPU_SIZEOF_VOID_P): Changed to
2119 GRUB_TARGET_SIZEOF_VOID_P.
2120
2121 * kern/efi/efi.c (grub_efi_locate_protocol): Wrap efi calls.
2122 (grub_efi_locate_handle): Likewise.
2123 (grub_efi_open_protocol): Likewise.
2124 (grub_efi_set_text_mode): Likewise.
2125 (grub_efi_stall): Likewise.
2126 (grub_exit): Likewise.
2127 (grub_reboot): Likewise.
2128 (grub_halt): Likewise.
2129 (grub_efi_exit_boot_services): Likewise.
2130 (grub_get_rtc): Likewise.
2131
2132 * kern/efi/mm.c (MEMORY_MAP_SIZE): Change to 0x3000 for new models.
2133 (GRUB_CPU_SIZEOF_VOID_P): Changed to GRUB_TARGET_SIZEOF_VOID_P.
2134 (grub_efi_allocate_pages): Wrap efi calls.
2135 (grub_efi_free_pages): Wrap efi calls.
2136 (grub_efi_get_memory_map): Wrap efi calls.
2137
2138 * kern/x86_64/dl.c: New file.
2139
2140 * kern/x86_64/efi/callwrap.S: Likewise.
2141
2142 * kern/x86_64/efi/startup.S: Likewise.
2143
2144 * loader/efi/appleloader.c: Likewise.
2145
2146 * loader/efi/chainloader.c (cmdline): New variable.
2147 (grub_chainloader_unload): Wrap efi calls.
2148 (grub_chainloader_boot): Likewise.
2149 (grub_rescue_cmd_chainloader): Wrap efi calls, handle
2150 command line.
2151
2152 * loader/efi/chainloader_normal.c (chainloader_command):
2153 Change grub_chainloader_cmd to grub_rescue_cmd_chainloader, pass
2154 command line.
2155
2156 * loader/i386/efi/linux.c (allocate_pages): Change allocation
2157 method.
2158 (grub_e820_add_region): New function.
2159 (grub_linux_boot): Construct e820 map from efi map, handle x86_64
2160 booting.
2161 (grub_find_video_card): New function.
2162 (grub_linux_setup_video): New function.
2163 (grub_rescue_cmd_linux): Probe for video information.
2164
2165 * normal/x86_64/setjmp.S: New file.
2166
2167 * term/efi/console.c (map_char): New function.
2168 (grub_console_putchar): Map unicode char.
2169 (grub_console_checkkey): Wrap efi calls.
2170 (grub_console_getkey): Likewise.
2171 (grub_console_getwh): Likewise.
2172 (grub_console_gotoxy): Likewise.
2173 (grub_console_cls): Likewise.
2174 (grub_console_setcolorstate): Likewise.
2175 (grub_console_setcursor): Likewise.
2176
2177 * util/i386/efi/grub-mkimage.c: Add support for x86_64.
2178
59652a20 21792008-07-16 Pavel Roskin <proski@gnu.org>
2180
ef294055 2181 * loader/i386/efi/linux.c (allocate_pages): Fix warnings in
2182 format strings.
2183
59652a20 2184 * util/i386/efi/grub-mkimage.c (get_target_address): Return a
2185 pointer, not an integer. This fixes a warning and prevents
2186 precision loss on 64-bit systems.
2187 (relocate_addresses): Remove unneeded cast.
2188
afc3b5d7 21892008-07-15 Pavel Roskin <proski@gnu.org>
2190
506b2b3e 2191 * kern/i386/ieee1275/init.c: Include grub/cache.h.
2192
62ead89c 2193 * term/ieee1275/ofconsole.c: Disable code unused on i386.
2194
c4cd51d7 2195 * kern/ieee1275/ieee1275.c (grub_ieee1275_get_integer_property):
2196 Fix comparison between signed and unsigned.
2197
0d3d8f28 2198 * include/grub/i386/ieee1275/console.h: Declare
2199 grub_console_init() and grub_console_fini().
2200
8804b286 2201 * loader/i386/ieee1275/linux.c (grub_set_bootpath): Remove.
2202 It's empty and unused.
2203
ee01cf35 2204 * fs/ext2.c (grub_ext2_read_block): Initialize blknr in the
2205 beginning to avoid warnings with some compilers.
2206
afc3b5d7 2207 * loader/ieee1275/multiboot2.c: Include grub/machine/loader.h.
2208 [__i386__] (grub_mb2_arch_boot): Avoid unnecessary cast.
2209
e4e8eaa5 22102008-07-14 Pavel Roskin <proski@gnu.org>
2211
407aceb4 2212 * kern/env.c (grub_register_variable_hook): Don't copy empty
2213 string, it leaks memory. Pass "" to grub_env_set(), it should
2214 handle constant strings.
2215
e4e8eaa5 2216 * commands/blocklist.c (grub_cmd_blocklist): Fix format warning.
2217 * commands/cmp.c (grub_cmd_cmp): Likewise.
2218 * kern/dl.c (grub_dl_flush_cache): Likewise.
2219 (grub_dl_load_core): Likewise.
2220 * kern/elf.c (grub_elf32_load_phdrs): Likewise.
2221 (grub_elf64_load_phdrs): Likewise.
2222
d4e2dad3 22232008-07-13 Pavel Roskin <proski@gnu.org>
2224
2225 * lib/LzmaEnc.c (LzmaEnc_SetProps): Fix warning about comparison
2226 between signed and unsigned.
2227 (LzmaEnc_Finish): Fix warning about an unused parameter.
2228
aa24b516 22292008-07-13 Bean <bean123ch@gmail.com>
2230
2231 * Makefile.in (enable_lzo): New rule.
2232
2233 * conf/i386-pc.rmk (grub_mkimage_SOURCES): New test with enable_lzo.
2234
2235 * configure.ac (ENABLE_LZO): New option --enable-lzo.
2236
2237 * boot/i386/pc/lnxboot.S: #include <config.h>.
2238
2239 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Change
fe987087 2240 its value according to the compression algorithm used, lzo or lzma.
aa24b516 2241
2242 * util/i386/pc/grub-mkimage.c (compress_kernel): Use different
2243 compression algorithm according to configure macro.
2244
2245 * kern/i386/pc/startup.S (codestart): Likewise.
2246
2247 * kern/i386/pc/lzma_decode.S: New file.
2248
2249 * include/grub/lib/LzFind.h: Likewise.
2250
2251 * include/grub/lib/LzHash.h: Likewise.
2252
2253 * include/grub/lib/LzmaDec.h: Likewise.
2254
2255 * include/grub/lib/LzmaEnc.h: Likewise.
2256
2257 * include/grub/lib/LzmaTypes.h: Likewise.
2258
2259 * lib/LzFind.c: Likewise.
2260
2261 * lib/LzmaDec.c: Likewise.
2262
2263 * lib/LzmaEnc.c: Likewise.
2264
4ae821ac 22652008-07-13 Bean <bean123ch@gmail.com>
2266
2267 * fs/ext2.c (EXT4_EXTENTS_FLAG): New macro.
2268 (grub_ext4_extent_header): New structure.
2269 (grub_ext4_extent): Likewise.
2270 (grub_ext4_extent_idx): Likewise.
2271 (grub_ext4_find_leaf): New function.
2272 (grub_ext2_read_block): Handle extents.
2273
9a745147 22742008-07-12 Robert Millan <rmh@aybabtu.com>
2275
2276 * util/i386/pc/grub-mkrescue.in: s/grub-install/grub-mkrescue/g.
2277
d49a4cf6 22782008-07-11 Robert Millan <rmh@aybabtu.com>
2279
2280 * util/grub.d/40_custom.in: New file. Example on how to add custom
2281 entries to /etc/grub.d.
2282 * conf/common.rmk (%, update-grub_SCRIPTS, CLEANFILES): Install
2283 40_custom (implicitly, by merging all the grub.d rules).
2284
947414b4 22852008-07-11 Pavel Roskin <proski@gnu.org>
2286
0059cf6f 2287 * commands/read.c (grub_getline): Fix invalid memory access.
2288 Don't add newline to the variable value.
2289
947414b4 2290 * term/i386/pc/serial.c (GRUB_SERIAL_PORT_NUM): New constant.
2291 [!GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Add COM2 and COM3.
2292 (serial_hw_get_port): Check validity of the port number.
2293 (grub_cmd_serial): Check return value of serial_hw_get_port().
2294
62a02d00 22952008-07-07 Pavel Roskin <proski@gnu.org>
2296
2297 * boot/i386/pc/diskboot.S (notification_string): Replace
2298 "Loading kernel" with just "loading". This is shorter, less
2299 confusing and saves a few bytes for possible future changes.
2300
3e5581b0 23012008-07-05 Pavel Roskin <proski@gnu.org>
2302
ea387a48 2303 * disk/ata.c (grub_ata_dumpinfo): Don't output addressing and
2304 size for ATAPI devices, they are undefined. Output sector
2305 number in decimal form.
2306
3e5581b0 2307 * disk/ata.c: Use named constants for status bits.
2308
fdecb8fd 23092008-07-04 Pavel Roskin <proski@gnu.org>
2310
bcd35b90 2311 * kern/i386/linuxbios/init.c (grub_machine_init): Cast addr to
2312 grub_addr_t before casting it to the void pointer to fix a
2313 warning. Non-addressable regions are discarded earlier.
2314 (grub_arch_modules_addr): Cast _end to grub_addr_t.
2315 * kern/i386/linuxbios/table.c: Include grub/misc.h.
2316 (check_signature): Don't shadow table_header.
2317 (grub_linuxbios_table_iterate): Cast numeric constants to
2318 grub_linuxbios_table_header_t.
2319 * include/grub/i386/linuxbios/init.h: Add noreturn attribute to
2320 grub_stop().
2321
af58ab3d 2322 * kern/ieee1275/init.c: Cast _start and _end to grub_addr_t to
2323 prevent warnings.
2324
1759aa57 2325 * include/grub/misc.h (ALIGN_UP): Avoid unnecessary cast to a
2326 pointer, which can cause warnings. Support 64-bit addresses.
2327
fdecb8fd 2328 * util/elf/grub-mkimage.c: Use GRUB_TARGET_SIZEOF_LONG instead
2329 of sizeof(long). This fixes PowerPC image generation on x86_64.
2330
8516d2a8 23312008-07-04 Robert Millan <rmh@aybabtu.com>
2332
2333 This fixes a performance issue when pc & gpt partmap iterators
2334 didn't abort iteration even after our hook found what it was
fe987087 2335 looking for (often causing expensive probes of non-existent drives).
8516d2a8 2336
2337 Some callers relied on previous buggy behaviour, since they would
2338 rise an error when their own hooks caused early abortion of its
2339 iteration.
2340
2341 * kern/device.c (grub_device_open): Improve error message.
2342 * disk/lvm.c (grub_lvm_open): Likewise.
2343 * disk/raid.c (grub_raid_open): Likewise.
2344
2345 * partmap/pc.c (pc_partition_map_iterate): Abort parent iteration
2346 when hook requests it, independently of grub_errno.
2347 (pc_partition_map_probe): Do not fail when find_func() caused
2348 early abortion of pc_partition_map_iterate().
2349
2350 * partmap/gpt.c (gpt_partition_map_iterate): Abort parent iteration
2351 when hook requests it, independently of grub_errno.
2352 (gpt_partition_map_probe): Do not fail when find_func() caused
2353 early abortion of gpt_partition_map_iterate().
2354
2355 * kern/partition.c (grub_partition_iterate): Abort parent iteration
2356 when hook requests it, independently of grub_errno. Do not fail when
2357 part_map_iterate_hook() caused early abortion of p->iterate().
2358
2359 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail
2360 when grub_partition_iterate() returned with non-zero.
2361
277d0de9 23622008-07-03 Pavel Roskin <proski@gnu.org>
2363
2364 * disk/ata.c (grub_ata_pio_write): Check status before writing,
2365 like we do in grub_ata_pio_read().
2366 (grub_ata_readwrite): Always write individual sectors. Fix the
2367 sector count for the remainder.
2368 (grub_ata_write): Enable writing to ATA devices. Correctly
2369 report error for ATAPI devices.
2370
d4c9b428 23712008-07-02 Pavel Roskin <proski@gnu.org>
2372
e43fc690 2373 * boot/i386/pc/cdboot.S: Add _start entry to fix a linker
2374 warning.
2375
f707af42 2376 * disk/ata.c (grub_ata_readwrite): Don't increment sector number
2377 for every read sector, we already increment it for the whole
2378 batch. This fixes reading more than 256 sectors at once.
2379
11e16b15 2380 * util/grub-editenv.c (cmd_info): Cast argument to long
2381 explicitly. ptrdiff_t reduces to int on i386.
2382
cbabfdd4 2383 * util/grub-editenv.c (main): Be specific which parameter is
2384 missing.
2385
b8fbce0a 2386 * disk/memdisk.c (memdisk_addr): Make a pointer to fix warnings.
2387 (memdisk): Make memdisk_orig_addr a pointer.
2388
c9c8e606 2389 * fs/reiserfs.c (grub_reiserfs_read): Fix misuse of grub_size_t
2390 for file offsets, use grub_off_t instead. Fix printf format
2391 warnings.
2392
ca62e598 2393 * fs/reiserfs.c: Remove #warning, TODO list items don't belong
2394 there. Real unexpected warnings should not drown in the noise
2395 about known problems.
2396
ce8d1766 2397 * commands/hexdump.c (grub_cmd_hexdump): Fix misuse of
2398 grub_disk_addr_t for memory addresses.
2399
00c7a56a 2400 * loader/aout.c (grub_aout_load): Cast load_addr to pointer
2401 explicitly to fix a warning.
2402
08d3ef09 2403 * util/grub-editenv.c (cmd_info): Fix warning in printf format.
2404
cb71ba20 2405 * Makefile.in (MODULE_LDFLAGS): New variable.
2406 * aclocal.m4 (grub_PROG_LD_BUILD_ID_NONE): New macro. Check if
2407 the linker accepts --build-id=none.
2408 * configure.ac: Call grub_PROG_LD_BUILD_ID_NONE. Substitute
2409 MODULE_LDFLAGS.
2410 * genmk.rb: Use MODULE_LDFLAGS when linking modules.
2411
d4c9b428 2412 * fs/xfs.c (struct grub_xfs_dir_header): Use names similar to
2413 those in Linux XFS code. Provide a way to access 64-bit parent
2414 inode.
2415 (grub_xfs_iterate_dir): Use the new names. Avoid reading past
2416 the end of struct grub_xfs_dir_header.
2417
d4156eee 24182008-07-02 Bean <bean123ch@gmail.com>
2419
2420 * include/grub/ieee1275.h (grub_ieee1275_flag): New constant
2421 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
2422 and GRUB_IEEE1275_FLAG_NO_ANSI.
2423
2424 * kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set flag
2425 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
2426 and GRUB_IEEE1275_FLAG_NO_ANSI for Open Hackware.
2427
2428 * kern/ieee1275/ieee1275.c (grub_ieee1275_interpret): Return
2429 immediately if GRUB_IEEE1275_FLAG_CANNOT_INTERPRET is set.
2430
2431 * kern/ieee1275/init.c (grub_claim_heap): Claim memory directly if
2432 GRUB_IEEE1275_FLAG_FORCE_CLAIM is set.
2433
2434 * term/ieee1275/ofconsole.c (grub_ofconsole_writeesc): Don't output
2435 esc sequence on non ANSI terminal.
2436 (grub_ofconsole_gotoxy): Emulate backspace key on non ANSI terminal.
2437
2438 * util/elf/grub-mkimage.c (add_segments): Move ELF header to the
2439 beginning of file.
2440
2270f77b 24412008-07-02 Bean <bean123ch@gmail.com>
2442
2443 * conf/common.rmk (bin_UTILITIES): Add grub-editenv.
2444 (grub_editenv_SOURCES): New variable.
2445 (pkglib_MODULES): Add loadenv.mod.
2446 (loadenv_mod_SOURCES): New variable.
2447 (loadenv_mod_CFLAGS): Likewise.
2448 (loadenv_mod_LDFLAGS): Likewise.
2449
2450 * include/grub/envblk.h: New file.
2451
2452 * util/envblk.c: New file.
2453
2454 * util/grub-editenv.c: New file.
2455
2456 * commands/loadenv.c: New file.
2457
0e9e51ec 24582008-07-01 Pavel Roskin <proski@gnu.org>
2459
d89b7634 2460 * include/multiboot2.h (struct multiboot_tag_module): Use char,
2461 not unsigned char. This fixes warnings and is consistent with
2462 other tags.
2463
bf1835b1 2464 * disk/fs_uuid.c (search_fs_uuid): Correctly increment count.
2465
8222a04b 2466 * normal/parser.y: Define YYENABLE_NLS as 0 to fix warnings.
2467
6a42d99d 2468 * term/tparm.c (analyze): Always set *popcount.
2469
10b159d1 2470 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Remove useless
2471 cast to fix a warning.
2472
b8789f6c 2473 * loader/i386/pc/multiboot2.c (grub_mb2_arch_module_alloc): Use
2474 cast to suppress a warning.
2475
29d7e38a 2476 * fs/afs.c (grub_afs_read_block): Return grub_disk_addr_t, as
2477 grub_fshelp_read_file() expects.
2478
f341f669 2479 * fs/fat.c: Fix UUID calculation on big-endian systems. We
2480 write uuid as a 32-bit value in CPU byte order, so declare and
2481 use it as such.
2482
0e9e51ec 2483 * disk/raid.c: Cast grub_dprintf() arguments to unsigned long
2484 long if the format specifier expects it.
2485 * partmap/gpt.c (gpt_partition_map_iterate): Likewise.
2486 * partmap/pc.c (pc_partition_map_iterate): Likewise.
2487 * fs/ntfs.c (grub_ntfs_uuid): Cast data->uuid to unsigned long
2488 long to fix a warning.
2489 * fs/reiserfs.c (grub_reiserfs_read): Change casts in
2490 grub_dprintf() arguments to fix warnings.
2491
3aefa857 24922008-06-30 Pavel Roskin <proski@gnu.org>
2493
56c7668b 2494 * util/i386/pc/grub-setup.c (setup): Write install_dos_part and
2495 install_bsd_part immediately before core.img is embedded or
2496 modified on disk. This fixes core.img verification if core.img
2497 cannot be embedded.
2498
3aefa857 2499 * util/i386/pc/grub-setup.c (setup): Use core_path_dev, not
2500 core_path to calculate the blocklist.
2501 Patch from Javier Martín <lordhabbit@gmail.com>
2502
5444088d 25032008-06-29 Robert Millan <rmh@aybabtu.com>
2504
2505 * fs/xfs.c (GRUB_XFS_FSB_TO_BLOCK): New macro. Maps filesystem
2506 block to disk block.
2507 (grub_xfs_read_block): Use GRUB_XFS_FSB_TO_BLOCK() on result.
2508 Patch from Niels Böhm <bitbucket@arcor.de>
2509
674835c8 25102008-06-29 Robert Millan <rmh@aybabtu.com>
2511
2512 * util/update-grub_lib.in (font_path): Search for fonts in
2513 /boot/grub first, which is more likely to be readable (we aren't
2514 deciding where fonts live, just looking for them).
2515
f527dbc8 25162008-06-26 Pavel Roskin <proski@gnu.org>
2517
6c2d8df6 2518 * util/biosdisk.c (read_device_map): Don't leave dead map
2519 entries for devices failing stat() check.
2520
f527dbc8 2521 * util/i386/pc/grub-setup.c (setup): Don't reuse core_path, use
2522 core_path_dev for the core.img path on the target device.
2523
aebe3d13 25242008-06-26 Robert Millan <rmh@aybabtu.com>
2525
2526 * disk/fs_uuid.c: New file.
2527 * conf/common.rmk (pkglib_MODULES): Add `fs_uuid.mod'.
2528 (fs_uuid_mod_SOURCES, fs_uuid_mod_CFLAGS)
2529 (fs_uuid_mod_LDFLAGS): New variables.
2530 * include/grub/disk.h (grub_disk_dev_id): Add
2531 `GRUB_DISK_DEVICE_UUID_ID'.
2532 * kern/disk.c (grub_disk_dev_iterate): Allow disk devices not to
2533 implement iterate().
2534
37aaf354 25352008-06-26 Robert Millan <rmh@aybabtu.com>
2536
2537 * util/grub.d/10_linux.in: Avoid passing UUIDs to Linux when either
2538 "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" does not exist, or when a
2539 Linux image includes no initrd.
2540
25ff262a 25412008-06-21 Javier Martín <lordhabbit@gmail.com>
2542
2543 * util/i386/pc/grub-setup.c (setup): Remove literal "core.img" in a
2544 call to resolve the core image location that effectively appended the
2545 name twice.
2546
76a2bd44 25472008-06-21 Robert Millan <rmh@aybabtu.com>
2548
2549 * util/grub.d/00_header.in: Move last prepare_grub_to_access_device()
2550 call from here ...
2551
2552 * util/grub.d/10_hurd.in: ... to here ...
2553 * util/grub.d/10_linux.in: ... and here.
2554
650e1c79 25552008-06-19 Robert Millan <rmh@aybabtu.com>
2556
fe987087 2557 * kern/main.c (grub_main): Export `prefix' variable immediately
650e1c79 2558 after it has been set by grub_machine_set_prefix().
2559
6ce63911 25602008-06-19 Robert Millan <rmh@aybabtu.com>
2561
2562 * commands/search.c (search_label, search_fs_uuid, search_file): Print
2563 search result when not saving to variable, not the other way around.
2564 When saving to variable, abort iteration as soon as a match is found.
2565
73940cec 25662008-06-19 Robert Millan <rmh@aybabtu.com>
2567
2568 * util/update-grub_lib.in (prepare_grub_to_access_device): Remove
2569 check for partition that provides /boot/grub. Its logic is flawed,
2570 as it prevents prepare_grub_to_access_device() from being called
2571 multiple times.
2572
3c62a39d 25732008-06-19 Robert Millan <rmh@aybabtu.com>
2574
2575 * util/update-grub_lib.in (prepare_grub_to_access_device): Issue
2576 "insmod" command directly when abstraction modules are needed,
fe987087 2577 instead of relying on GRUB_PRELOAD_MODULES (which had no effect
3c62a39d 2578 since it had already been processed).
2579
47395a42 25802008-06-19 Pavel Roskin <proski@gnu.org>
2581
2582 * conf/i386-efi.rmk: Recompile grub-mkimage.c if Makefile has
2583 changed. This is needed in case GRUB_LIBDIR changes.
2584 * conf/i386-ieee1275.rmk: Likewise.
2585 * conf/i386-linuxbios.rmk: Likewise.
2586 * conf/i386-pc.rmk: Likewise.
2587 * conf/powerpc-ieee1275.rmk: Likewise.
2588
a145ac2d 25892008-06-18 Pavel Roskin <proski@gnu.org>
2590
2591 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Rename
2592 kernel_elf_symlist.c to symlist.c for consistency with other
2593 architectures. Update all users.
2594 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
2595
7847c51e 25962008-06-18 Robert Millan <rmh@aybabtu.com>
2597
2598 * util/i386/pc/grub-install.in: If the drive is LVM or RAID, prepend
2599 it in prefix.
2600
2601 * util/i386/pc/grub-setup.c (main): Don't handle prefix at all. Set
2602 `must_embed' to 1 when root_dev is a RAID device. When dest_dev is
2603 a RAID device, run setup() for all members independently on whether
2604 LVM abstraction is being used.
2605 (setup): Don't handle prefix at all; let grub-mkimage take care of it.
2606 If grub-mkimage has set `*install_dos_part == -2', don't override this
2607 value.
2608 Perform *install_dos_part adjustments independently on whether
2609 we're embedding or not.
2610 Clarify error message when image is too big for embedding.
2611 Remove duplicate *install_dos_part stanza.
2612
b23e5644 26132008-06-17 Robert Millan <rmh@aybabtu.com>
2614
2615 * term/ieee1275/ofconsole.c (fgcolor, bgcolor): Remove variables.
2616 (grub_ofconsole_normal_color, grub_ofconsole_highlight_color): New
2617 variables.
2618 (grub_ofconsole_setcolor, grub_ofconsole_getcolor): Load/store
2619 values in grub_ofconsole_normal_color and
2620 grub_ofconsole_highlight_color (they're not directly related to
2621 background and foreground).
2622 (grub_ofconsole_setcolorstate): Extract background and foreground
2623 from grub_ofconsole_normal_color and grub_ofconsole_highlight_color.
2624
0aac2f79 26252008-06-17 Robert Millan <rmh@aybabtu.com>
2626
2627 * util/update-grub_lib.in (prepare_grub_to_access_device): Use
2628 /boot/grub for the check in last commit, not /boot (they could be
2629 different partitions).
2630
3cca7ef3 26312008-06-16 Robert Millan <rmh@aybabtu.com>
2632
2633 * util/update-grub_lib.in (prepare_grub_to_access_device): If we were
2634 asked to setup access for the same partition that provides /boot,
2635 don't bother using UUIDs since our root already has the value we
2636 want.
2637
347396d8 26382008-06-16 Robert Millan <rmh@aybabtu.com>
2639
2640 * util/biosdisk.c (convert_system_partition_to_system_disk): Detect
2641 I2O devices.
2642 Patch from Sven Mueller <sven@debian.org>.
2643
991477f8 26442008-06-16 Robert Millan <rmh@aybabtu.com>
2645
2646 * util/update-grub.in: Check for $EUID instead of $UID.
2647 Reported by Vincent Zweije.
2648
d31a32a1 26492008-06-16 Bean <bean123ch@gmail.com>
2650
fe987087 2651 * fs/ext2.c (grub_ext2_blockgroup): Revert to pre-journal state.
d31a32a1 2652 (grub_ext2_read_block): Likewise.
2653 (grub_ext2_read_inode): Likewise.
2654 (grub_ext2_mount): Likewise.
2655 (grub_ext2_close): Likewise.
2656 (grub_ext3_get_journal): Removed.
2657
fe987087 2658 * fs/reiserfs.c (grub_reiserfs_get_item): Revert to pre-journal state.
d31a32a1 2659 (grub_reiserfs_read_symlink): Likewise.
2660 (grub_reiserfs_mount): Likewise.
2661 (grub_reiserfs_open): Likewise.
2662 (grub_reiserfs_read): Likewise.
2663 (grub_reiserfs_close): Likewise.
2664 (grub_reiserfs_get_journal): Removed.
2665
2666 * fs/fshelp.c (grub_fshelp_read): Removed.
2667 (grub_fshelp_map_block): Likewise.
2668
2669 * include/grub/fshelp.h (grub_fshelp_journal_type): Removed.
2670 (grub_fshelp_journal): Likewise.
2671 (grub_fshelp_read): Likewise.
2672 (grub_fshelp_map_block): Likewise.
2673
3540a760 26742008-06-16 Pavel Roskin <proski@gnu.org>
2675
2676 * conf/powerpc-ieee1275.rmk: Remove -msoft-float, we don't use
2677 floating point anymore.
2678 * include/grub/powerpc/libgcc.h: Leave only necessary exports.
2679
95614c84 26802008-06-15 Pavel Roskin <proski@gnu.org>
2681
2682 * commands/ls.c (grub_ls_list_files): Use integer calculations
2683 for human readable format, avoid floating point use.
2684 * kern/misc.c (grub_ftoa): Remove.
2685 (grub_vsprintf): Remove floating point support.
2686
50465dd6 26872008-06-15 Robert Millan <rmh@aybabtu.com>
2688
fe6b695a 2689 * util/grub.d/10_linux.in: Use the underlying device for loop-AES
50465dd6 2690 devices.
2691 Reported by Max Vozeler.
2692
a9207284 26932008-06-15 Robert Millan <rmh@aybabtu.com>
2694
2695 * util/i386/pc/grub-mkimage.c (generate_image): If we included a drive
2696 in our prefix, set install_{dos,bsd}_part = -2 to indicate this can be
2697 skipped later.
2698 (main): If a memdisk was requested, add "(memdisk)" drive explicitly to
2699 the beginning of the prefix.
2700
2701 * kern/i386/pc/init.c (make_install_device): Remove memdisk check.
2702 It is assumed that if we have a memdisk, grub-mkimage has set
2703 grub_prefix to include the "(memdisk)" drive in it.
2704
a7cbd45a 27052008-06-15 Robert Millan <rmh@aybabtu.com>
2706
2707 * term/i386/pc/console.c [GRUB_MACHINE_LINUXBIOS] (grub_console_init):
2708 Initialize keyboard controller after registering the terminal, so that
2709 grub_printf() can be called from grub_keyboard_controller_init().
2710
21cf716a 27112008-06-15 Robert Millan <rmh@aybabtu.com>
2712
2713 * fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in
2714 extent-btree which is written as big endian on disk.
2715 Reported by Alain Greppin <al@chilibi.org>.
2716
23a64d8e 27172008-06-14 Robert Millan <rmh@aybabtu.com>
2718
2719 * util/i386/efi/grub-install.in (modules): Remove `_chain'.
2720 * util/i386/pc/grub-install.in (modules): Likewise.
2721
d687651c 27222008-06-13 Pavel Roskin <proski@gnu.org>
2723
2724 * commands/ls.c (grub_ls_list_files): Fix format warnings.
2725
dfe9ddd4 27262008-06-13 Bean <bean123ch@gmail.com>
2727
2728 * commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.
2729
2730 * fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling.
2731
2732 * fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
2733 to indicate sparse block.
2734
16ae7781 27352008-06-12 Pavel Roskin <proski@gnu.org>
2736
e6d1a308 2737 * fs/ext2.c (grub_ext2_read_inode): Don't normalize block
2738 number, grub_fshelp_read() does it for us.
2739
16ae7781 2740 * fs/fshelp.c (grub_fshelp_read): New function. Implement
2741 linear disk read with journal translation.
2742 * fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
2743 * include/grub/fshelp.h: Declare grub_fshelp_read().
2744
40fd3a2b 27452008-06-09 Pavel Roskin <proski@gnu.org>
2746
2747 * fs/minix.c (grub_minix_mount): Handle error reading
2748 superblock.
2749
f5679726 27502008-06-08 Robert Millan <rmh@aybabtu.com>
2751
2752 * util/i386/pc/grub-setup.c (main): If install drive is an LVM,
2753 don't append the RAID prefix afterwards.
2754 Reported by Clint Adams.
2755
ce525529 27562008-06-08 Robert Millan <rmh@aybabtu.com>
2757
2758 Based on description from Pavel:
2759 * kern/disk.c (grub_disk_check_range): Rename to ...
2760 (grub_disk_adjust_range): ... this. Add a comment explaining the
2761 tasks performed by this function.
2762
ad4936a0 27632008-06-08 Robert Millan <rmh@aybabtu.com>
2764
2765 * include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to
2766 `num_serial' (for consistency with other variables).
2767 (struct grub_ntfs_data): Add `uuid' member.
2768 * fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'.
2769 (grub_ntfs_uuid): New function.
2770 (grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member.
2771
dc20b0f9 27722008-06-07 Pavel Roskin <proski@gnu.org>
2773
2774 * util/biosdisk.c (open_device): Revert last change to the
2775 function, it broke installation. The sector needs to be
2776 different dependent on which device is opened.
2777
c5e3cfba 27782008-06-06 Robert Millan <rmh@aybabtu.com>
2779
2780 Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the
2781 rest of GRUB, and breakage doesn't happen if its value were modified.
2782
2783 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
2784 Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of
2785 a constant (same value).
2786 * kern/i386/pc/startup.S: Replace hardcoded `0x50' with
2787 `GRUB_KERNEL_MACHINE_DATA_END' (same value).
2788
26a1f8c4 27892008-06-06 Robert Millan <rmh@aybabtu.com>
2790
2791 * util/biosdisk.c (open_device): Do not modify sector offset when
2792 accessing a partition. kern/disk.c already handles this for us.
2793
25d6b327 27942008-06-06 Robert Millan <rmh@aybabtu.com>
2795
2796 * util/grub-emu.c (grub_machine_init): Move code in this function from
2797 here ...
2798 (main): ... to here (before grub_util_biosdisk_init() call, to prevent
2799 segfault in case grub_printf() is called).
2800
2801 * util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to
2802 grub_probe. Update all users not to explicitly add it again.
2803 (grub_device): New variable; contains corresponding device for grubdir.
2804 (fs_module, partmap_module, devabstraction_module): Pass
2805 `--device ${grub_device}' to grub_probe to avoid traversing /dev
2806 every time.
2807
9ece62fb 28082008-06-05 Robert Millan <rmh@aybabtu.com>
2809
2810 * normal/misc.c (grub_normal_print_device_info): When a filesystem UUID
2811 is found, print it (same layout as with labels).
2812
1ad36d37 28132008-06-04 Robert Millan <rmh@aybabtu.com>
2814
2815 * util/biosdisk.c (get_drive): Rename to ...
2816 (find_grub_drive): ... this. Update all users.
2817
2818 (get_os_disk): Rename to ...
2819 (convert_system_partition_to_system_disk): ... this. Update all users.
2820
2821 (find_drive): Rename to ...
2822 (find_system_device): ... this. Update all users.
2823
e6a30859 28242008-06-04 Robert Millan <rmh@aybabtu.com>
2825
2826 * util/biosdisk.c (get_os_disk): Handle IDA devices.
2827 * util/grub-mkdevicemap.c (get_mmc_disk_name)
2828 (make_device_map): Likewise.
2829
00c108a4 28302008-06-01 Robert Millan <rmh@aybabtu.com>
2831
2832 * util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL
2833 before dereferencing it.
2834
2835 * fs/fat.c (struct grub_fat_bpb): Move fat32-specific fields into a
2836 union with fat12/fat16-specific ones. Add some new fields, including
2837 `num_serial' for both versions.
2838 (struct grub_fat_data): Add `uuid' member.
2839 (grub_fat_mount): Refer to fat32-specific fields in `bpb' by their new
2840 names. Initialize `data->uuid' using `num_serial'.
2841 (grub_fat_uuid): New function.
2842 (grub_fat_fs): Reference grub_fat_uuid() in `uuid' struct member.
2843
2844 * fs/reiserfs.c (grub_reiserfs_superblock): Add `uuid' field.
2845 (grub_reiserfs_uuid): New function.
2846 (grub_reiserfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct
2847 member.
2848
2849 * fs/xfs.c (grub_xfs_sblock): Add `uuid' field.
2850 (grub_xfs_uuid): New function.
2851 (grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member.
2852
1385c5bb 28532008-06-01 Robert Millan <rmh@aybabtu.com>
2854
2855 * util/update-grub_lib.in (prepare_grub_to_access_device): Generate
2856 code that is backward compatible with pre-uuid search command.
2857
c682dfd7 28582008-05-31 Robert Millan <rmh@aybabtu.com>
2859
2860 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through
2861 floppies after everything else, to ensure floppy drive isn't accessed
2862 unnecessarily (patch from Bean).
2863
b7db5d47 28642008-05-31 Robert Millan <rmh@aybabtu.com>
2865
2866 * commands/search.c (search_label, search_fs_uuid, search_file): Do
2867 not print device names when we were asked to set a variable.
2868
6e037aa9 28692008-05-31 Robert Millan <rmh@aybabtu.com>
2870
2871 * term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement
2872 using "cursor-on" and "cursor-off" commands (understood at least by
2873 the Open Firmware flavour on OLPC).
2874
41305bc8 28752008-05-31 Michael Gorven <michael@gorven.za.net>
2876
2877 * term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor
2878 on and off sequences.
2879
69ba137e 28802008-05-31 Robert Millan <rmh@aybabtu.com>
2881
2882 * util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'.
2883 * util/update-grub.in: Likewise.
2884
520ae21b 28852008-05-30 Pavel Roskin <proski@gnu.org>
2886
2887 * util/biosdisk.c (linux_find_partition): Simplify logic and
2888 make the code more universal. Keep special processing for
2889 devfs, but use a simple rule for all other devices. If the
2890 device ends with a number, append 'p' and the partition number.
2891 Otherwise, append only the partition number.
2892
5786569b 28932008-05-30 Robert Millan <rmh@aybabtu.com>
2894
2895 * util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable.
2896 * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and
2897 GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as
2898 the `root' parameter to Linux.
2899
51500452 29002008-05-30 Robert Millan <rmh@aybabtu.com>
2901
2902 * commands/search.c (options): Rename --fs_uuid to --fs-uuid.
2903 * util/update-grub_lib.in (prepare_grub_to_access_device): Replace
2904 --fs_uuid with --fs-uuid.
2905 * util/update-grub.in: Allow filesystem UUID probes to fail (since not
2906 all filesystems support them).
2907
811d3878 29082008-05-30 Robert Millan <rmh@aybabtu.com>
2909
2910 * fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as
f19dbdb7 2911 grub_printf() flags, since we're printing in units of 2 bytes.
811d3878 2912
cab63c95 29132008-05-30 Robert Millan <rmh@aybabtu.com>
2914
2915 * util/grub.d/00_header.in: Remove obsolete comment referencing
2916 convert_system_path_to_grub_path().
2917 * util/update-grub.in: Likewise.
2918 * util/update-grub_lib.in (is_path_readable_by_grub): New function.
2919 (convert_system_path_to_grub_path): Add a warning message explaining
2920 that this function is deprecated. Rely on is_path_readable_by_grub()
2921 for the readability checks.
2922 (font_path): Use is_path_readable_by_grub() for the readability
2923 check rather than convert_system_path_to_grub_path().
2924
972e2f7a 29252008-05-30 Robert Millan <rmh@aybabtu.com>
2926
2927 * util/update-grub_lib.in (prepare_grub_to_access_device): New function.
2928 * util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without
2929 converting it first.
2930 * util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup
2931 grub.cfg for access to font file, and afterwards call it again to set
2932 the root device.
2933
62191274 29342008-05-30 Robert Millan <rmh@aybabtu.com>
2935
2936 * commands/search.c (options): Add --fs_uuid option.
2937 (search_fs_uuid): New function.
2938 (grub_cmd_search): Fix --set argument passing.
2939 Use search_fs_uuid() when requested via --fs_uuid.
2940 (grub_search_init): Update help message.
2941 * fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid'
2942 and redeclare it as an array of 16-bit words.
2943 (grub_ext2_uuid): New function.
2944 (grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member.
2945 * include/grub/fs.h (struct grub_fs): Add `uuid' struct member.
2946 * util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT)
2947 (GRUB_DEVICE_BOOT_UUID): New variables.
2948 (GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove.
2949 * util/grub.d/00_header.in: Set root using `search --fs_uuid' command
2950 whenever possible.
2951 * util/grub.d/10_hurd.in: Avoid explicit use of root drive. Instead,
2952 just assume `root' variable has the right value.
2953 * util/grub.d/10_linux.in: Likewise.
2954 * util/grub-probe.c (probe): Probe for filesystem UUID when requested
2955 via PRINT_FS_UUID.
2956 (main): Recognise `-t fs_uuid' argument.
2957
01b73ec8 29582008-05-30 Robert Millan <rmh@aybabtu.com>
2959
2960 * util/biosdisk.c (map): Redefine structure to hold information
2961 about GRUB drive name.
fe6b695a 2962 (get_drive): Reimplement without assuming (and verifying) BIOS-like
01b73ec8 2963 drive names.
2964 (call_hook): Remove.
2965 (grub_util_biosdisk_iterate): Access drive names via `.drive' struct
2966 member. Assume drive has partitions.
2967 (grub_util_biosdisk_open): Access device names via `.device' struct
2968 member.
2969 (open_device): Likewise.
2970 (find_drive): Likewise.
2971 (read_device_map): Adjust map[] usage to match the new struct
2972 definition. Don't check for duplicates (still possible, but not cheap
2973 anymore).
2974 (grub_util_biosdisk_fini): Free malloced buffers referenced by map[].
2975 (make_device_name): Remove assumption of BIOS-like drive names.
2976
22f16596 29772008-05-30 Pavel Roskin <proski@gnu.org>
2978
2979 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as
2980 compiling execute.c doesn't need grub_script.tab.h anymore.
2981 (normal/command.c_DEPENDENCIES): Likewise.
2982 (normal/function.c_DEPENDENCIES): Likewise.
2983 * conf/i386-ieee1275.rmk: Likewise.
2984 * conf/i386-linuxbios.rmk: Likewise.
2985 * conf/i386-pc.rmk: Likewise.
2986 * conf/powerpc-ieee1275.rmk: Likewise.
2987 * conf/sparc64-ieee1275.rmk: Likewise.
2988
528ad8f2 29892008-05-29 Pavel Roskin <proski@gnu.org>
2990
d1dff95d 2991 * disk/lvm.c (grub_lvm_scan_device): Check for the buffer end
2992 when scanning metadata for volume group name.
2993
528ad8f2 2994 * include/grub/script.h: Don't include grub_script.tab.h. It's
2995 a generated file, which may only be included from the files with
2996 DEPENDENCIES rules in the makefile. Don't use typedef YYSTYPE,
2997 use union YYSTYPE, as the later allows forward declaration.
2998 * normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.
2999
47248e08 30002008-05-29 Robert Millan <rmh@aybabtu.com>
3001
3002 * term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'.
3003 (OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros.
3004 [GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes
3005 (grub_console_checkkey): Add grub_dprintf() call to report unknown
3006 scan codes.
3007
ee632529 30082008-05-29 Robert Millan <rmh@aybabtu.com>
3009
3010 * term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for
3011 control key combinations.
3012
eee96e08 30132008-05-29 Robert Millan <rmh@aybabtu.com>
3014
3015 * util/powerpc/ieee1275/grub-install.in: Move from here ...
3016 * util/ieee1275/grub-install.in: ... to here.
3017 * powerpc-ieee1275.rmk (grub_install_SOURCES): Update location.
3018 * i386-ieee1275.rmk (sbin_SCRIPTS): New variable.
3019 (grub_install_SOURCES): Likewise.
3020
da9a6a94 30212008-05-29 Robert Millan <rmh@aybabtu.com>
3022
3023 * fs/affs.c: Update copyright year.
3024 * fs/ext2.c: Likewise.
3025 * fs/fshelp.c: Likewise.
3026 * fs/hfsplus.c: Likewise.
3027 * fs/ntfs.c: Likewise.
3028 * fs/xfs.c: Likewise.
3029 * include/grub/fshelp.h: Likewise.
3030 * util/grub-mkdevicemap.c: Likewise.
3031
12e65f3a 30322008-05-28 Robert Millan <rmh@aybabtu.com>
3033
3034 * util/update-grub.in: Allow chmod call to fail, since /boot/grub/
3035 might need to be fatfs to support some firmware implementations
3036 (e.g. OFW or EFI).
3037
23023641 30382008-05-28 Robert Millan <rmh@aybabtu.com>
3039
3040 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC
3041 devices.
3042 * util/grub-mkdevicemap.c (get_mmc_disk_name)
3043 (make_device_map): Likewise.
3044
887d2619 30452008-05-20 Bean <bean123ch@gmail.com>
3046
3047 * fs/fshelp.c (grub_fshelp_map_block): New function.
3048 (grub_fshelp_find_file): Use 64-bit type for pos and block address.
3049 Use `>>' and `&' operator to avoid 64-bit divide and modulo.
3050
3051 * include/grub/fshelp.h (grub_fshelp_journal_type): New enum.
3052 (GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro.
3053 (grub_fshelp_journal): New structure.
3054 (grub_fshelp_map_block): New function prototype.
3055 (grub_fshelp_read_file): Use grub_disk_addr_t as block type.
3056 (grub_fshelp_map_block): Likewise.
3057
3058 * fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro.
3059 (EXT3_JOURNAL_MAGIC_NUMBER): Likewise.
3060 (EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise.
3061 (EXT3_JOURNAL_COMMIT_BLOCK): Likewise.
3062 (EXT3_JOURNAL_SUPERBLOCK_V1): Likewise.
3063 (EXT3_JOURNAL_SUPERBLOCK_V2): Likewise.
3064 (EXT3_JOURNAL_REVOKE_BLOCK): Likewise.
3065 (EXT3_JOURNAL_FLAG_ESCAPE): Likewise.
3066 (EXT3_JOURNAL_FLAG_SAME_UUID): Likewise.
3067 (EXT3_JOURNAL_FLAG_DELETED): Likewise.
3068 (EXT3_JOURNAL_FLAG_LAST_TAG): Likewise.
3069 (grub_ext2_sblock): New members for journal support.
3070 (grub_ext3_journal_header): New structure.
3071 (grub_ext3_journal_revoke_header): Likewise.
3072 (grub_ext3_journal_block_tag): Likewise.
3073 (grub_ext3_journal_sblock): Likewise.
3074 (grub_fshelp_node): New members logfile and journal.
3075 (grub_ext2_read_block): Change block type to grub_disk_addr_t. Use
3076 grub_fshelp_map_block to get real block number.
3077 (grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block
3078 number.
3079 (grub_ext2_read_inode): Likewise.
3080 (grub_ext3_get_journal): New function.
3081 (grub_read_inode): Initialize journal using grub_ext3_get_journal.
3082 (grub_ext2_close): Release memory used by journal.
3083
3084 * fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr".
3085 (REISERFS_MAGIC_DESC_BLOCK): New macro.
3086 (grub_reiserfs_transaction_header): Renamed to
3087 grub_reiserfs_description_block, replace field data with real_blocks.
3088 (grub_reiserfs_commit_block): New structure.
3089 (grub_reiserfs_data): New member journal.
3090 (grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block
3091 number.
3092 (grub_reiserfs_read_symlink): Likewise.
3093 (grub_reiserfs_iterate_dir): Likewise.
3094 (grub_reiserfs_open): Likewise.
3095 (grub_reiserfs_read): Likewise.
3096 (grub_reiserfs_get_journal): New function.
3097 (grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are
3098 three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal
3099 using grub_reiserfs_get_journal.
3100 (grub_reiserfs_close): Release memory used by journal.
3101
3102 * fs/affs.c (grub_affs_read_block): Change block type to
3103 grub_disk_addr_t. Use grub_divmod64 to do 64-bit division.
3104
3105 * fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t.
3106
3107 * fs/hfsplus.c (grub_hfsplus_read_block): Likewise.
3108
3109 * fs/ntfs.c (grub_ntfs_read_block): Likewise.
3110
3111 * fs/udf.c (grub_udf_read_block): Change block type to
3112 grub_disk_addr_t. Use type cast to avoid warning.
3113
3114 * fs/xfs.c (grub_xfs_read_block): Likewise.
3115
b7c6bed5 31162008-05-16 Christian Franke <franke@computer.org>
3117
3118 * commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue
3119 to ensure that break with ESC will always work.
3120 * commands/sleep.c (grub_interruptible_millisleep): Likewise.
3121 Remove ESC from keyboard queue.
3122
eedf167f 31232008-05-16 Christian Franke <franke@computer.org>
3124
3125 * util/biosdisk.c: [__CYGWIN__] Add includes.
3126 (grub_util_biosdisk_open): Use Linux code also for Cygwin.
3127 (get_os_disk): Move variable declarations to OS specific
3128 parts to avoid warning.
3129 [__GNU__] (get_os_disk): Fix /dev/sdXsN case.
3130 [__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names.
3131 (grub_util_biosdisk_get_grub_dev): Use Linux code also for
3132 Cygwin.
3133 * util/getroot.c: [__CYGWIN__] Add includes.
3134 (strip_extra_slashes): Fix "/" case.
3135 [__CYGWIN__] (get_win32_path): New function.
3136 [__CYGWIN__] (grub_get_prefix): Add conversion to win32 path.
3137 [__CYGWIN__] (find_root_device): Disable.
3138 [__CYGWIN__] (get_bootsec_serial): New function.
3139 [__CYGWIN__] (find_cygwin_root_device): Likewise.
3140 [__linux__] (grub_guess_root_device): Add early returns to simplify
3141 structure.
3142 [__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device.
3143 [__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID
3144 check for Linux only.
3145
a079699e 31462008-05-15 Bean <bean123ch@gmail.com>
3147
3148 * kern/i386/pc/startup.S (grub_console_getkey): Workaround for the
3149 keyboard hang problem in apple's intel mac.
3150
1cf4059a 31512008-05-09 Robert Millan <rmh@aybabtu.com>
3152
3153 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio
3154 devices.
3155 * util/grub-mkdevicemap.c (get_virtio_disk_name)
3156 (make_device_map): Likewise.
3157 Reported by Aurelien Jarno <aurel32@debian.org>
3158
ed759390 31592008-05-07 Ian Campbell <ijc@hellion.org.uk>
3160
3161 * util/biosdisk.c (get_os_disk): Recognise xvd type disks.
3162 * util/grub-mkdevicemap.c (get_xvd_disk_name): New function.
3163 (make_device_map): Output entries for xvd type disks.
3164
b56c4eaa 31652008-05-07 Robert Millan <rmh@aybabtu.com>
3166
3167 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS
3168 devices.
3169 * util/grub-mkdevicemap.c (get_cciss_disk_name)
3170 (make_device_map): Likewise.
3171 Reported by Roland Dreier <rdreier@cisco.com>
3172
7f8866ed 31732008-05-07 Robert Millan <rmh@aybabtu.com>
3174
3175 * disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional
3176 grub_strstr() call. Correct a few mistakes in failure path handling.
3177
b0346e0f 31782008-05-06 Robert Millan <rmh@aybabtu.com>
3179
3180 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
3181 Do not print a trailing slash (therefore, the root directory is an
3182 empty string).
3183 (convert_system_path_to_grub_path): Do not remove trailing slash
3184 from make_system_path_relative_to_its_root() output.
3185
3186 * util/i386/pc/grub-install.in: Add trailing slash to output from
3187 make_system_path_relative_to_its_root().
3188
6cf12cbd 31892008-05-06 Robert Millan <rmh@aybabtu.com>
3190
3191 * util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'. This
3192 ensures that output lines aren't intermangled with those sent to
3193 stderr (via grub_util_info()).
3194 * util/grub-probe.c (grub_refresh): Likewise.
3195 * util/i386/pc/grub-setup.c (grub_refresh): Likewise.
3196
0fbb3117 31972008-05-05 Christian Franke <franke@computer.org>
3198
3199 * util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]:
3200 Add Cygwin device names.
3201 (get_ide_disk_name) [__CYGWIN__]: Likewise.
3202 (get_scsi_disk_name) [__CYGWIN__]: Likewise.
3203 (check_device): Return error instead of success on empty name.
3204 (make_device_map): Move label inside linux specific code to
3205 prevent compiler warning.
3206
8124cdb7 32072008-04-30 Robert Millan <rmh@aybabtu.com>
3208
3209 Based on patch from Fabian Greffrath <greffrath@leat.rub.de>
3210 * util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the
3211 first boot option.
3212 * util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT.
3213
094c01d0 32142008-04-29 Robert Millan <rmh@aybabtu.com>
3215
3216 * docs/grub.cfg: New file (example GRUB configuration).
3217
f4b1fc02 32182008-04-26 Robert Millan <rmh@aybabtu.com>
3219
329ce2a5 3220 * DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST). Add
3221 `loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c'
3222 and `disk/ieee1275/nand.c'.
f4b1fc02 3223
25f16ec1 32242008-04-25 Bean <bean123ch@gmail.com>
f19dbdb7 3225
25f16ec1 3226 * Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and
3227 i386-linuxbios.
3228
3229 * commands/hexdump.c (grub_cmd_hexdump): Support dumping of device,
3230 change the buffer size to 4096 for cdrom device.
3231
3232 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add _linux.mod, linux.mod
3233 and nand.mod.
3234 (_linux_mod_SOURCES): New variable.
3235 (_linux_mod_CFLAGS): Likewise.
3236 (_linux_mod_LDFLAGS): Likewise.
3237 (linux_mod_SOURCES): Likewise.
3238 (linux_mod_CFLAGS): Likewise.
3239 (linux_mod_LDFLAGS): Likewise.
3240 (nand_mod_SOURCES): Likewise.
3241 (nand_mod_CFLAGS): Likewise.
3242 (nand_mod_LDFLAGS): Likewise.
3243
3244 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Return
3245 GRUB_ERR_UNKNOWN_DEVICE instead of GRUB_ERR_BAD_DEVICE if no device
3246 type property. (nand device in olpc don't have this property)
3247
3248 * include/grub/disk.h (grub_disk_dev_id): New macro
3249 GRUB_DISK_DEVICE_NAND_ID.
3250
3251 * include/grub/i386/ieee1275/loader.h (grub_rescue_cmd_linux): New
3252 function prototype.
3253 (grub_rescue_cmd_initrd): Likewise.
3254
3255 * include/grub/i386/linux.h (GRUB_LINUX_OFW_SIGNATURE): New macro.
3256 (linux_kernel_params): Add new member ofw_signature, ofw_num_items,
3257 ofw_cif_handler and ofw_idt, adjust padding number.
f19dbdb7 3258
25f16ec1 3259 * include/grub/i386/pc/memory.h (grub_upper_mem): Export it if
3260 GRUB_MACHINE_IEEE1275 is defined.
3261
3262 * include/grub/ieee1275/ieee1275.h (grub_available_iterate):
3263 Use NESTED_FUNC_ATTR attribute on the hook parameter.
3264
3265 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Use NESTED_FUNC_ATTR
3266 on nested function heap_init.
3267 (grub_upper_mem): New variable for i386-ieee1275.
3268 (grub_get_extended_memory): New function for i386-ieee1275.
3269 (grub_machine_init): Call grub_get_extended_memory for i386-ieee1275.
3270
3271 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Use
3272 NESTED_FUNC_ATTR on the hook parameter. Don't quit if no device type
3273 property.
f19dbdb7 3274
25f16ec1 3275 * loader/i386/ieee1275/linux.c: New file.
3276
3277 * loader/i386/ieee1275/linux_normal.c: New file.
3278
3279 * disk/ieee1275/nand.c: New file.
3280
e89d61e9 32812008-04-18 Thomas Schwinge <tschwinge@gnu.org>
3282
3283 * util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct
3284 value.
3285 * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise.
3286
602566f6 32872008-04-18 Robert Millan <rmh@aybabtu.com>
3288
3289 Restructures early code path on ieee1275 to unify grub_main() as
3290 the first C function that is executed in every platform.
3291
3292 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype.
3293 * kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of
3294 cmain().
3295 * kern/powerpc/ieee1275/crt0.S (_start): Likewise.
3296 * kern/ieee1275/cmain.c (cmain): Rename to ...
3297 * kern/ieee1275/cmain.c (grub_ieee1275_init): ... this.
3298 * kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init()
3299 at the beginning.
3300
57490c2b 33012008-04-18 Robert Millan <rmh@aybabtu.com>
3302
3303 * util/update-grub.in: Fix syntax error when setting
3304 `GRUB_PRELOAD_MODULES'.
3305 Reported by Stephane Chazelas <stephane@artesyncp.com>
3306
1977517d 33072008-04-17 Lubomir Kundrak <lkundrak@redhat.com>
3308
3309 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text
3310 section into account, newer toolchains generate unique build ids
3311 * configure.ac: remove the test for --build-id=none acceptance,
e0c5dacb 3312 we want build ids to be preserved
1977517d 3313 * genmk.rb: add -R .note.gnu.build-id to objcopy, so build id
3314 far from other sections don't cause the raw binary images grow
3315 size
3316
bfb1f1a2 33172008-04-15 Robert Millan <rmh@aybabtu.com>
3318
3319 * disk/lvm.c: Update copyright year.
3320 * kern/misc.c: Likewise.
3321
01979850 33222008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
3323
3324 * disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when
f19dbdb7 3325 there is no memory left for physical volume name.
01979850 3326
0a1150e2 33272008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
3328
3329 * disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical
3330 volume name mapping to support bigger than 9 character names properly.
3331
82ead3fe 33322008-04-13 Robert Millan <rmh@aybabtu.com>
3333
3334 * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
3335 as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm
3336
e54a72f5 33372008-04-13 Christian Franke <franke@computer.org>
3338
3339 * util/i386/pc/grub-mkrescue.in: Add --emulation=floppy
3340 to create a floppy emulation boot CD when non emulation mode
3341 does not work.
3342 Enable Joliet CD filesystem extension.
3343
9fe86034 33442008-04-13 Robert Millan <rmh@aybabtu.com>
3345
3346 * kern/misc.c (grub_strncat): Fix off-by-one error.
3347 Reported by Zhang Huan <zhanghuan@nrchpc.ac.cn>
3348
3349 * kern/env.c (grub_env_context_close): Clear current context, not
3350 previous one.
3351 Patch from Zhang Huan <zhanghuan@nrchpc.ac.cn>
3352
3353 * kern/misc.c (grub_strcat): Minor speed optimization (same code size).
3354
7ceeee39 33552008-04-13 Robert Millan <rmh@aybabtu.com>
3356
3357 Improve robustness when handling LVM.
3358
3359 * disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL
f19dbdb7 3360 (and leave `*p' unmodified).
7ceeee39 3361 (grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating
3362 through it.
3363 (grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when
3364 iterating through it.
3365 (grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating
3366 through it.
fe6b695a 3367 (grub_lvm_scan_device): Check the return value (and fail gracefully
7ceeee39 3368 when due) on each grub_lvm_getvalue() or grub_strstr() call.
3369 Don't assume `vg->pvs != NULL' when iterating through it.
3370
58cd3d85 33712008-04-13 Robert Millan <rmh@aybabtu.com>
3372
3373 * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
3374 * genmk.rb (partmap): New variable.
3375 (CLEANFILES, PARTMAPFILES): Add #{partmap}.
3376 (#{partmap}): New target rule.
3377 * genpartmaplist.sh: New file.
3378 * Makefile.in (pkglib_DATA): Add partmap.lst.
3379 (partmap.lst): New target rule.
3380 * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
3381 modules (including all partition maps), instead of preloading them.
3382
78b51059 33832007-04-13 Fabian Greffrath <fabian.greffrath@web.de>
3384
3385 * util/grub.d/30_os-prober.in: New script. Use `os-prober' and
3386 `linux-boot-prober' (if installed) to detect other operating
3387 systems which are installed on the computer and add them to
3388 the boot menu.
3389 * conf/common.rmk: Build and install 30_os-prober.
3390
a91627b4 33912008-04-12 Robert Millan <rmh@aybabtu.com>
3392
3393 * kern/powerpc/ieee1275/init.c: Move from here ...
3394 * kern/ieee1275/init.c: ... to here. Update all users.
3395
3396 * kern/powerpc/ieee1275/cmain.c: Move from here ...
3397 * kern/ieee1275/cmain.c: ... to here. Update all users.
3398
3399 * kern/powerpc/ieee1275/openfw.c: Move from here ...
3400 * kern/ieee1275/openfw.c: ... to here. Update all users.
3401
3402 * loader/powerpc/ieee1275/multiboot2.c: Move from here ...
3403 * loader/ieee1275/multiboot2.c: ... to here. Update all users.
3404
322562ea 34052008-04-10 Pavel Roskin <proski@gnu.org>
3406
3407 * configure.ac: Always use "_cv_" in cache variables for
3408 compatibility with Autoconf 2.62.
3409
a02a73c5 34102008-04-07 Robert Millan <rmh@aybabtu.com>
3411
3412 Revert grub/machine/init.h addition by Pavel (since it breaks on
3413 i386-ieee1275 and others):
3414 * util/i386/pc/misc.c: Remove grub/machine/init.h.
3415 * util/powerpc/ieee1275/misc.c: Likewise.
3416
25c024b1 34172008-04-07 Robert Millan <rmh@aybabtu.com>
3418
3419 * util/grub-probe.c (probe): Improve error message.
3420
3cbd2f98 34212008-04-07 Robert Millan <rmh@aybabtu.com>
3422
3423 * util/biosdisk.c (read_device_map): Skip devices that don't exist
3424 (this prevents the presence of a bogus entry from ruining the whole
3425 thing).
3426
87a297bf 34272008-04-06 Pavel Roskin <proski@gnu.org>
3428
36747a62 3429 * util/biosdisk.c: Include grub/util/biosdisk.h.
3430 * util/grub-fstest.c (execute_command): Make static.
3431 * util/grub-mkdevicemap.c (check_device): Likewise.
3432 * util/i386/pc/misc.c: Include grub/machine/init.h.
3433 * util/powerpc/ieee1275/misc.c: Likewise.
3434 * util/lvm.c: Include grub/util/lvm.h.
3435 * util/misc.c: Include grub/kernel.h, grub/misc.h and
3436 grub/cache.h.
3437 * util/raid.c: Include grub/util/raid.h.
3438 (grub_util_getdiskname): Make static.
3439
87a297bf 3440 * util/grub-emu.c (main): Remove calls to grub_hostfs_init() and
3441 grub_hostfs_fini(), as they are called from grub_init_all() and
3442 grub_fini_all() respectively. This fixes an infinite loop in
3443 grub-fstest due to double registration of hostfs.
3444 Reported by Christian Franke <Christian.Franke@t-online.de>
3445
f6ce7629 34462008-04-05 Pavel Roskin <proski@gnu.org>
3447
3448 * bus/pci.c (grub_pci_iterate): For multifunction devices, probe
3449 all 8 functions. Otherwise, probe function 0 only.
3450
070e49e4 34512008-04-04 Pavel Roskin <proski@gnu.org>
3452
8b088a4c 3453 * commands/lspci.c (grub_lspci_iter): Print the bus number
3454 correctly.
3455
4f657021 3456 * commands/lspci.c (grub_pci_classes): Fix typos.
3457 (grub_lspci_iter): Don't print func twice. Print vendor ID
3458 before device ID, as it's normally done.
3459
070e49e4 3460 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
3461 Fix signedness warnings.
3462 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate):
3463 Likewise.
3464 * util/ieee1275/get_disk_name.c: Include config.h so that
3465 _GNU_SOURCE is defined and getline() is declared. Mark an
3466 unused argument as such. Fix a signedness warning.
3467
ba7328dc 34682008-04-02 Pavel Roskin <proski@gnu.org>
3469
26887f22 3470 * genkernsyms.sh.in: Use more robust assignments for CC and
3471 srcdir. Quote srcdir.
3472 * gensymlist.sh.in: Likewise. Assert at the compile time that
3473 the symbol table is not empty.
3474
ba7328dc 3475 * disk/raid.c (grub_raid_memberlist): Fix a signedness warning.
3476 * fs/cpio.c (grub_cpio_read): Likewise.
3477
0f582c6b 34782008-04-01 Pavel Roskin <proski@gnu.org>
3479
4b6e1995 3480 * disk/ata.c (grub_ata_open): Don't lose precision in disk->id.
3481 * disk/host.c (grub_host_open): Likewise.
3482 * disk/loopback.c (grub_loopback_open): Likewise.
3483 * disk/memdisk.c (grub_memdisk_open): Use a string pointer for
3484 disk->id as in disk/host.c, not a multi-character constant.
3485
828a2768 3486 * util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek(). The
3487 later is obsolete, potentially dangerous and sets a bad example.
3488 * util/i386/efi/grub-mkimage.c (make_header): Likewise.
3489 * util/misc.c (grub_util_get_image_size): Likewise.
3490
2bb4fb47 3491 * disk/loopback.c (options): Improve help for "--partitions".
3492
0f582c6b 3493 * normal/arg.c (grub_arg_show_help): Fix spacing of the long
3494 options to align them with the short options, e.g. "echo -e".
3495
a33224e0 34962008-03-31 Bean <bean123ch@gmail.com>
3497
3498 * video/reader/png.c (grub_png_data): New member is_16bit and
3499 image_data.
3500 (grub_png_decode_image_header): Detect 16 bit png image.
3501 (grub_png_convert_image): New function to convert 16 bit image to 8 bit.
3502 (grub_png_decode_png): Call grub_png_convert_image for 16 bit image.
3503 (grub_video_reader_png): Release memory occupied by image_data.
3504
3505 * fs/ntfs.c (find_attr): Handle non-resident attribute list larger than
3506 4096 bytes.
3507 (grub_nfs_mount): Skip the test for sector per cluster.
3508
3509 * include/grub/ntfs.h (MAX_SPC): Removed.
3510
86cb4f54 35112008-03-31 Bean <bean123ch@gmail.com>
3512
3513 * conf/common.rmk (pkgdata_MODULES): Add afs.mod.
3514 (grub_probe_SOURCES): Add fs/afs.c.
3515 (grub_fstest_SOURCES): Likewise.
3516 (afs_mod_SOURCES): New variable.
3517 (afs_mod_CFLAGS): Likewise.
3518 (afs_mod_LDFLAGS): Likewise.
3519
3520 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/afs.c.
3521 (grub_emu_SOURCES): Likewise.
3522
3523 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
3524
3525 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3526
3527 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
3528
3529 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3530
3531 * fs/afs.c: New file.
3532
17c74c21 35332008-03-30 Pavel Roskin <proski@gnu.org>
3534
4cb68e89 3535 * disk/host.c: Include grub/misc.h to fix a warning.
3536 * util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix
3537 warnings about implicit declarations.
3538
8790bb04 3539 * fs/udf.c (grub_udf_mount): Fix warning about a shadowing a
3540 variable.
3541 * include/grub/i386/loader.h: Change declaration of
3542 grub_linux_boot() to match what grub_loader_set() expects.
3543 * util/getroot.c (grub_guess_root_device): Return const char* to
3544 fix a warning.
3545 * util/grub-probe.c (probe): Fix a warning about uninitialized
3546 abstraction_name variable.
3547 * util/i386/get_disk_name.c (grub_util_get_disk_name): Mark
3548 second argument as unused to fix a warning.
3549
9a3f3296 3550 * loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add
3551 missing grub_error() call.
3552
0ecef90d 3553 * util/update-grub_lib.in: Define datarootdir, since Autoconf
3554 2.60 and newer uses it to define datadir.
3555
0bf6d401 3556 * commands/sleep.c: Fix warning about implicit declaration.
3557 * disk/memdisk.c: Likewise.
3558 * loader/aout.c: Likewise.
3559 * loader/i386/bsd_normal.c: Likewise.
3560 * util/grub-probe.c: Likewise.
3561
7cdacf97 3562 * commands/i386/cpuid.c (has_longmode): Make static.
3563 * disk/i386/pc/biosdisk.c (cd_drive): Likewise.
3564 * include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused.
3565
17c74c21 3566 * kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
3567 GDT. This is more robust, as %ds can change.
3568 (grub_biosdisk_rw_int13_extensions): Don't clear %ds before
3569 calling real_to_prot().
3570 (grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
3571
80a3e68b 35722008-03-28 Pavel Roskin <proski@gnu.org>
3573
3574 * kern/i386/pc/startup.S: Assert that uncompressed functions
3575 don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
3576 * kern/i386/pc/lzo1x.S: Remove all .align directives in the
3577 code, as they push parts of the code (error handlers) beyond
3578 GRUB_KERNEL_MACHINE_RAW_SIZE. Speed is not as important in this
3579 code as correctness and size.
3580
77bcd272 35812008-03-28 Pavel Roskin <proski@gnu.org>
3582
3583 * kern/i386/pc/startup.S
3584 (grub_biosdisk_get_diskinfo_int13_extensions): When converting
3585 data block address to the real mode, keep offset minimal. This
3586 works around a bug in AWARD BIOS on old Athlon systems, which
3587 makes CD detection hang.
3588
c5dfd43b 35892008-03-26 Pavel Roskin <proski@gnu.org>
3590
3591 * normal/color.c (grub_parse_color_name_pair): Make `name' a
3592 const.
3593 * include/grub/normal.h: Add grub_parse_color_name_pair()
3594 declaration.
3595
bf962df2 35962008-03-24 Bean <bean123ch@gmail.com>
3597
3598 * disk/i386/pc/biosdisk.c (cd_start): Removed.
3599 (cd_count): Removed.
3600 (cd_drive): New variable.
3601 (grub_biosdisk_get_drive): Don't check for (cdN) device.
3602 (grub_biosdisk_call_hook): Likewise.
3603 (grub_biosdisk_iterate): Change cdrom detection method.
3604 (grub_biosdisk_open): Replace cd_start with cd_drive.
3605 (GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to
3606 detect cdrom device.
3607
3608 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_MACHINE_CDROM_START):
3609 Removed.
3610 (GRUB_BIOSDISK_MACHINE_CDROM_END): Removed.
3611 (GRUB_BIOSDISK_CDTYPE_NO_EMUL): New macro.
3612 (GRUB_BIOSDISK_CDTYPE_1_2_M): Likewise.
3613 (GRUB_BIOSDISK_CDTYPE_1_44_M): Likewise.
3614 (GRUB_BIOSDISK_CDTYPE_2_88_M): Likewise.
3615 (GRUB_BIOSDISK_CDTYPE_HARDDISK): Likewise.
3616 (GRUB_BIOSDISK_CDTYPE_MASK): Likewise.
3617 (grub_biosdisk_cdrp): New structure.
3618 (grub_biosdisk_get_cdinfo_int13_extensions): New function.
3619
3620 * include/grub/i386/pc/kernel.h (grub_boot_drive): Export this variable.
3621
3622 * kern/i386/pc/init.c (make_install_device): Don't use (cdN) as root
3623 device.
3624
3625 * kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions):
3626 New function.
3627
68e7fc7a 36282008-03-20 Robert Millan <rmh@aybabtu.com>
3629
3630 Remove 2 TiB limit in ata.mod.
3631 * disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t.
3632 (grub_ata_dumpinfo): Print sector count with 0x%llx.
3633 (grub_ata_identify): Interpret `&info16[100]' as a pointer to
3634 grub_uint64_t instead of grub_uint32_t.
3635
38ad2cf5 36362008-03-05 Bean <bean123ch@gmail.com>
3637
3638 * loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function.
3639 (grub_multiboot): Set boot device.
3640
3641 * boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF.
3642
2b89344e 36432008-03-02 Bean <bean123ch@gmail.com>
3644
3645 * fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of
3646 symlink_buffer.
3647
87a95d1f 36482008-03-01 Yoshinori K. Okuji <okuji@enbug.org>
3649
3650 * DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and
3651 texinfo.tex.
3652
3653 * docs/grub.texi: New file. Copied from GRUB Legacy, and slightly
3654 modified.
3655
3656 * docs/fdl.texi: New file.
f19dbdb7 3657
87a95d1f 3658 * docs/mdate-sh: New file. Copied from gnulib.
3659 * docs/texinfo.tex: Likewise.
3660
3661 * config.guess: Updated from gnulib.
3662 * install-sh: Likewise.
3663
7dc15d8e 36642008-02-28 Robert Millan <rmh@aybabtu.com>
3665
3666 * conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod.
3667 (aout_mod_SOURCES): New variable.
3668 (aout_mod_CFLAGS): Likewise.
3669 (aout_mod_LDFLAGS): Likewise.
3670
3671 * conf/i386-ieee1275.rmk: Likewise.
3672
b00ab696 36732008-02-28 Robert Millan <rmh@aybabtu.com>
3674
3675 * util/update-grub.in: Reorganise terminal validity check. Accept
3676 `ieee1275:console' (OLPC) and `*:gfxterm' as valid too.
3677 Based on suggestion by Franklin PIAT.
3678
79ca2d78 36792008-02-28 Fabian Greffrath <greffrath@leat.rub.de>
3680
3681 * include/grub/util/getroot.h (grub_util_check_block_device): Export new
3682 function.
3683 * util/getroot.c (grub_util_check_block_device): New function that
3684 returns the given argument if it is a block device and returns NULL else.
3685 * util/grub-probe.c (argument_is_device): New variable.
3686 (probe): Promote device_name from a variable to an argument. Receive
3687 device_name from grub_util_check_block_device() if path is NULL and from
3688 grub_guess_root_device() else. Do not free() device_name anymore.
f19dbdb7 3689 (options): Introduce new parameter '-d, --device'.
79ca2d78 3690 (main): Add description of the new parameter to the help screen.
3691 Rename path variable to argument. Set argument_is_device if the '-d'
3692 option is given. Pass argument to probe() depending on
3693 argument_is_device.
3694
0d16e571 36952008-02-24 Bean <bean123ch@gmail.com>
3696
3697 * fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro.
3698 (GRUB_ISO9660_VOLDESC_PRIMARY): Likewise.
3699 (GRUB_ISO9660_VOLDESC_SUPP): Likewise.
3700 (GRUB_ISO9660_VOLDESC_PART): Likewise.
3701 (GRUB_ISO9660_VOLDESC_END): Likewise.
3702 (grub_iso9660_primary_voldesc): New member escape.
3703 (grub_iso9660_data): New member joliet.
3704 (grub_iso9660_convert_string): New function.
3705 (grub_iso9660_mount): Detect joliet extension.
3706 (grub_iso9660_iterate_dir): Convert filename when joliet is detected.
3707 (grub_iso9660_iso9660_label): Likewise.
3708
3709 * conf/common.rmk (pkgdata_MODULES): Add udf.mod.
3710 (grub_setup_SOURCES): Add fs/udf.c.
3711 (grub_fstest_SOURCES): Likewise.
3712 (udf_mod_SOURCES): New variable.
3713 (udf_mod_CFLAGS): Likewise.
3714 (udf_mod_LDFLAGS): Likewise.
3715
3716 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/udf.c.
3717 (grub_emu_SOURCES): Likewise.
3718
3719 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
3720
3721 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3722
3723 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
3724
3725 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3726
3727 * fs/udf.c: New file.
3728
8a594a17 37292008-02-24 Robert Millan <rmh@aybabtu.com>
3730
3731 * conf/i386-efi.rmk (normal/function.c_DEPENDENCIES)
3732 (normal/lexer.c_DEPENDENCIES): New variables.
3733 * conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES)
3734 (normal/lexer.c_DEPENDENCIES): Likewise.
3735 * conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES)
3736 (normal/lexer.c_DEPENDENCIES): Likewise.
3737 * conf/i386-pc.rmk (normal/function.c_DEPENDENCIES)
3738 (normal/lexer.c_DEPENDENCIES): Likewise.
3739 * conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES)
3740 (normal/lexer.c_DEPENDENCIES): Likewise.
3741 * conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES)
3742 (normal/lexer.c_DEPENDENCIES): Likewise.
3743
2dc33c03 37442008-02-23 Robert Millan <rmh@aybabtu.com>
3745
3746 * partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member,
3747 since they were intended to be in hex. This didn't break previously
3748 because of a bug in gpt_partition_map_iterate() (see below).
3749
3750 (gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp'
3751 when checking the validity of GPT header.
3752 Remove `partno', since it always provides the same information as `i'.
3753
f6f4cfb0 37542008-02-21 Yoshinori K. Okuji <okuji@enbug.org>
3755
3756 * include/grub/efi/time.h: Fix a wrong comment.
3757
79ff665f 37582008-02-19 Pavel Roskin <proski@gnu.org>
3759
3760 * kern/rescue.c (grub_enter_rescue_mode): Improve initial
3761 message.
3762
d38e24c2 37632008-02-19 Bean <bean123ch@gmail.com>
3764
3765 * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
3766 (aout_mod_SOURCES): New variable.
3767 (aout_mod_CFLAGS): Likewise.
3768 (aout_mod_LDFLAGS): Likewise.
3769 (_bsd_mod_SOURCES): New variable.
3770 (_bsd_mod_CFLAGS): Likewise.
3771 (_bsd_mod_LDFLAGS): Likewise.
3772 (bsd_mod_SOURCES): New variable.
3773 (bsd_mod_CFLAGS): Likewise.
3774 (bsd_mod_LDFLAGS): Likewise.
3775
3776 * include/grub/aout.h: New file.
3777
3778 * include/grub/i386/loader.h (grub_unix_real_boot): New function.
3779
3780 * include/grub/i386/bsd.h: New file.
3781
3782 * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
3783 to make it public.
3784
3785 * kern/elf.c (grub_elf32_load): Get the physical address after the hook
3786 function is called, so that it's possible to change it inside the hook.
3787 (grub_elf64_load): Likewise.
3788 (grub_elf_file): Don't close the file if elf header is not found.
3789 (grub_elf_close): Close the file if grub_elf_file fails (The new
3790 grub_elf_file won't close it).
3791 (grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize.
3792 (grub_elf64_size): Likewise.
3793
3794 * kern/i386/loader.S (grub_unix_real_boot): New function.
3795
3796 * loader/aout.c: New file.
3797
3798 * loader/i386/bsd.c: New file.
3799
3800 * loader/i386/bsd_normal.c: New file.
3801
3802 * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.
3803
3804 * loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
fe987087 3805 can test other formats.
d38e24c2 3806
b93bdb0f 38072008-02-19 Robert Millan <rmh@aybabtu.com>
3808
3809 * partmap/gpt.c: Include `<grub/gpt_partition.h>'.
3810 (grub_gpt_partition_type_empty): Redefine with macro from
3811 `<grub/gpt_partition.h>'.
3812 (gpt_partition_map_iterate): Adjust partition type comparison.
3813
3814 Export `entry' as partmap-specific `part.data' struct.
3815 (grub_gpt_header, grub_gpt_partentry): Move from here ...
3816
3817 * include/grub/gpt_partition.h (grub_gpt_header)
3818 (grub_gpt_partentry): ... to here (new file).
3819
3820 * util/i386/pc/grub-setup.c: Include `<grub/gpt_partition.h>'.
3821
3822 (grub_gpt_partition_type_bios_boot): New const variable, defined
3823 with macro from `<grub/gpt_partition.h>'.
3824
3825 (setup): Replace `first_start' with `embed_region', which keeps
3826 track of the embed region (and is partmap-agnostic).
3827
3828 Replace find_first_partition_start() with find_usable_region(),
3829 which finds a usable region for embedding using partmap-specific
3830 knowledge (supports PC/MSDOS and GPT).
3831
3832 Fix all assumptions that the embed region start at sector 1, using
3833 `embed_region.start' from now on. Similarly, use `embed_region.end'
3834 rather than `first_start' to calculate available size.
3835
3836 In grub_util_info() message, replace "into after the MBR" with an
3837 indication of the specific sector our embed region starts at.
3838
66cb40f6 38392008-02-19 Robert Millan <rmh@aybabtu.com>
3840
3841 * DISTLIST: Replace `commands/ieee1275/halt.c' and
3842 `commands/ieee1275/reboot.c' with `commands/halt.c' and
3843 `commands/reboot.c'.
3844 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
3845 (halt_mod_SOURCES): Likewise.
3846 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
3847 (halt_mod_SOURCES): Likewise.
3848
b7202015 38492008-02-17 Christian Franke <franke@computer.org>
3850
3851 * commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key.
3852
32b0fc49 38532008-02-17 Robert Millan <rmh@aybabtu.com>
3854
3855 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
3856 set `first_start' to 0 for non-PC/MSDOS partition maps.
3857
aca63502 38582008-02-16 Robert Millan <rmh@aybabtu.com>
3859
3860 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
3861 do not assume partition map is PC/MSDOS before performing checks that
3862 are specific to that layout.
3863
0de8be86 38642008-02-13 Robert Millan <rmh@aybabtu.com>
3865
3866 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove
3867 `commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'.
3868 * kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs.
3869
c3db8364 38702008-02-13 Yoshinori K. Okuji <okuji@enbug.org>
3871
3872 * configure.ac: Only a cosmetic change on the handling of
3873 -fno-stack-protector.
3874
f714229e 38752008-02-12 Alexandre Boeglin <alex@boeglin.org>
3876
c3db8364 3877 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace
3878 commands/i386/pc/halt.c and reboot.c by commands/halt.c and
3879 reboot.c.
f714229e 3880 (grub_install_SOURCES): Add halt.mod and reboot.mod.
3881 (halt_mod_SOURCES): New variable.
3882 (halt_mod_CFLAGS): Likewise.
3883 (halt_mod_LDFLAGS): Likewise.
3884 (reboot_mod_SOURCES): Likewise.
3885 (reboot_mod_CFLAGS): Likewise.
3886 (reboot_mod_LDFLAGS): Likewise.
3887
c3db8364 3888 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace
3889 commands/ieee1275/halt.c and reboot.c by commands/halt.c and
3890 reboot.c.
f714229e 3891 (halt_mod_SOURCES): Likewise.
3892 (reboot_mod_SOURCES): Likewise.
3893
c3db8364 3894 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace
3895 commands/i386/pc/reboot.c by commands/reboot.c.
f714229e 3896 (reboot_mod_SOURCES): Likewise.
3897
3898 * commands/i386/pc/reboot.c: merge this file ...
3899
3900 * commands/ieee1275/reboot.c: ... and this file ...
3901
3902 * commands/reboot.c: ... to this file.
c3db8364 3903 Add some precompiler directive to include the correct header for
3904 each machine.
f714229e 3905
3906 * commands/ieee1275/halt.c: move this file ...
3907
3908 * commands/halt.c: ... to here.
c3db8364 3909 Add some precompiler directive to include the correct header for
3910 each machine.
f714229e 3911
3912 * include/grub/efi/efi.h (grub_reboot): New function declaration.
3913 (grub_halt): Likewise.
3914
3915 * kern/efi/efi.c (grub_reboot): New function.
3916 (grub_halt): Likewise.
3917
c74493e0 39182008-02-12 Robert Millan <rmh@aybabtu.com>
3919
3920 * util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
3921 /dev (like it is done for /dev/mapper). This doesn't provide support
3922 for EVMS, but at least it is now easy to identify the problem when it
3923 arises.
3924
d0db4b04 39252008-02-11 Robert Millan <rmh@aybabtu.com>
3926
3927 * util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition)
3928 (grub_util_biosdisk_get_grub_dev): Check open() exit status by
3929 comparing it with -1, not 0.
3930
bf748642 39312008-02-10 Robert Millan <rmh@aybabtu.com>
3932
3933 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and
3934 `disk/lvm.c'.
3935 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3936 * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
3937
3938 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and
3939 `disk/lvm.c' to the end of the list.
3940 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
3941 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
3942
b5db202a 39432008-02-10 Robert Millan <rmh@aybabtu.com>
3944
3945 * kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'. Call
3946 grub_print_error() instead. This will let user know why we're entering
3947 rescue mode.
3948 Based on suggestions from Sam Morris.
3949
83abee31 39502008-02-10 Alexandre Boeglin <alex@boeglin.org>
3951
3952 * normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg()
3953 on remaining N args, instead of "--" arg N times.
3954
78d5a08b 39552008-02-09 Vesa Jaaskelainen <chaac@nic.fi>
3956
3957 * font/manager.c (unknown_glyph): Added variable for unknown glyph.
3958 (fill_with_default_glyph): Changed to use unknown_glyph for fill
3959 pattern for unknown glyphs.
3960
68807e5f 39612008-02-09 Robert Millan <rmh@aybabtu.com>
3962
3963 * configure.ac: Probe for `help2man'.
3964 * Makefile.in (builddir): New variable.
3965 (HELP2MAN): Likewise. Set to `true' when @HELP2MAN@ doesn't provide it,
3966 or otherwise add a few flags/options to it.
3967 (install-local): For every executable utility or script that is
3968 installed, invoke $(HELP2MAN) to install a manpage based on --help
3969 output.
3970
3971 * util/i386/pc/grub-install.in: Move down `update-grub_lib' sourcing, so
3972 that it doesn't prevent --help from working in build tree.
3973
3974 * util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org'
3975 with `bug-grub@gnu.org'.
3976 * util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise.
3977 * util/update-grub.in (usage): New function.
3978 Implement proper argument check, with support for --help and --version
3979 (as well as existing -y).
3980
39812008-02-09 Christian Franke <franke@computer.org>
0d9ff7f0 3982
3983 * commands/cat.c (grub_cmd_cat): Print '\r' as hex to
3984 avoid overwriting previous output.
3985 * kern/rescue.c (grub_rescue_cmd_cat): Likewise.
3986
c1962162 39872008-02-09 Robert Millan <rmh@aybabtu.com>
3988
3989 * normal/menu.c (run_menu): If timeout is set to zero, don't bother
3990 drawing the menu.
3991
3dac2e3f 39922008-02-09 Robert Millan <rmh@aybabtu.com>
3993
3994 * commands/sleep.c: New file.
3995 * conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'.
3996 (sleep_mod_SOURCES): New variable.
3997 (sleep_mod_CFLAGS): Likewise.
3998 (sleep_mod_LDFLAGS): Likewise.
3999
7a634e08 40002008-02-09 Robert Millan <rmh@aybabtu.com>
4001
4002 * disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for
4003 situations in which we can deduce the RAID size and the superblock
4004 doesn't match it.
4005
b92f0c18 40062008-02-09 Robert Millan <rmh@aybabtu.com>
4007
4008 * disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function. Construct
4009 and return a grub_diskmemberlist_t composed of LVM physical volumes.
4010 [GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member.
4011
4012 * disk/raid.c [GRUB_UTIL] (grub_raid_memberlist): New function. Construct
4013 and return a grub_diskmemberlist_t composed of physical array members.
4014 [GRUB_UTIL] (grub_raid_dev): Add `memberlist' member.
4015
4016 * include/grub/disk.h [GRUB_UTIL] (grub_disk_memberlist): New struct
4017 prototype.
4018 [GRUB_UTIL] (struct grub_disk_dev): Add `memberlist' function pointer.
4019 [GRUB_UTIL] (struct grub_disk_memberlist): New struct declaration.
4020 [GRUB_UTIL] (grub_disk_memberlist_t): New typedef.
4021
4022 * util/grub-probe.c (probe): Move partmap probing code from here ...
4023 (probe_partmap): ... to here.
4024 (probe): Use probe_partmap() once for the disk we're probing, and
4025 additionally, when such disk contains a memberlist() struct member,
4026 once for each disk that is contained in the structure returned by
4027 memberlist().
4028
91a4bf68 40292008-02-09 Robert Millan <rmh@aybabtu.com>
4030
4031 * util/grub-probe.c (main): When `verbosity > 1', set `debug'
4032 environment variable to 'all' in order to obtain debug output from
4033 non-util/ code.
4034 * util/i386/pc/grub-setup.c (main): Likewise.
4035
a96f9caa 40362008-02-08 Robert Millan <rmh@aybabtu.com>
4037
4038 * disk/raid.c (grub_raid_scan_device): Check for
4039 `array->device[sb.this_disk.number]' rather than for
4040 `array->device[sb.this_disk.number]->name', since the latter is not
fe6b695a 4041 guaranteed to be accessible.
a96f9caa 4042
b37a9222 40432008-02-08 Robert Millan <rmh@aybabtu.com>
4044
4045 * disk/raid.c: Update copyright.
4046 * fs/cpio.c: Likewise.
4047 * include/grub/raid.h: Likewise.
4048 * loader/i386/pc/multiboot.c: Likewise.
4049 * util/hostfs.c: Likewise.
4050
5626aee1 40512008-02-08 Robert Millan <rmh@aybabtu.com>
4052
4053 * include/grub/raid.h (struct grub_raid_array): Change type of `device'
4054 to a grub_disk_t array.
4055 * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
4056 `device[x]'.
4057 (grub_raid_scan_device): Replace `device[x].name' accesses with
4058 `device[x]->name'. Simplify initialization of `array->device[x]'.
4059
554f0187 40602008-02-08 Robert Millan <rmh@aybabtu.com>
4061
4062 * disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
4063 grub_dprintf() calls.
4064 * kern/disk.c (grub_disk_read): Include grub_errmsg in out of range
4065 error message.
4066
1ec8425d 40672008-02-07 Christian Franke <franke@computer.org>
4068
4069 * util/hostfs.c (grub_hostfs_open): Use fseeko and ftello
4070 instead of fseek and ftell to support large files.
4071 (grub_hostfs_read): Likewise.
4072
f2156fda 40732008-02-07 Robert Millan <rmh@aybabtu.com>
4074
4075 Patch from Jeroen Dekkers.
4076 * disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk
fe6b695a 4077 failure, since successfully reading all array members might not be
f2156fda 4078 required.
4079
9216e0e7 40802008-02-06 Robert Millan <rmh@aybabtu.com>
4081
4082 * util/grub-probe.c (probe): Simplify partmap probing (with the
4083 assumption that the first word up to the underscore equals to
4084 the module name).
4085
b0dfd29a 40862008-02-06 Christian Franke <franke@computer.org>
4087
4088 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE
4089 (and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on
4090 last block of a cpio or tar stream.
4091 Check for "TRAILER!!!" instead of any empty data
4092 block to detect last block of a cpio stream.
4093 (grub_cpio_dir): Fix constness of variable np.
4094 (grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if
4095 cpio or tar trailer is detected. This fixes a crash
4096 on open of a non existing file.
4097
c32865bf 40982008-02-05 Bean <bean123ch@gmail.com>
4099
4100 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical
4101 address of entry.
4102 (grub_multiboot_load_elf64): Likewise.
4103 (grub_multiboot): Initialize mbi structure.
4104
4105 * util/grub-fstest.c: Don't include unused header file script.h.
4106
fe6b695a 4107 * conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the beginning
c32865bf 4108 of file.
4109 (grub_fstest_SOURCES): Likewise.
4110
409480b7 41112008-02-05 Robert Millan <rmh@aybabtu.com>
4112
4113 * include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT)
4114 (GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END)
4115 (GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC)
4116 (GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros.
4117
4118 * kern/i386/pc/startup.S: Include `<grub/term.h>'.
4119 (translation_table): Replace hardcoded values with macros
4120 provided by `<grub/term.h>'.
4121
4122 * term/i386/pc/at_keyboard.c: Include `<grub/term.h>'.
4123 (keyboard_map): Correct/add a few values, with macros provided
4124 by `<grub/term.h>'.
4125 (keyboard_map_shift): Zero values that don't differ from their
4126 `keyboard_map' equivalents.
4127 (grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling.
4128 Discard the second scan code that is always sent by Caps lock.
4129 Only use `keyboard_map_shift' when it provides a non-zero value,
4130 otherwise fallback to `keyboard_map'.
4131
99fadbaa 41322008-02-04 Bean <bean123ch@gmail.com>
4133
4134 * Makefile.in (enable_grub_fstest): New variable.
4135
4136 * conf/common.rmk (grub_fstest_init.lst): New rule.
4137 (grub_fstest_init.h): Likewise.
4138 (grub_fstest_init.c): Likewise.
4139 (util/grub-fstest.c_DEPENDENCIES): New variable.
4140 (grub_fstest_SOURCES): Likewise.
4141
4142 * configure.ac (enable_grub_fstest): Check for --enable-grub-fstest.
4143
4144 * util/grub-fstest.c: New file.
4145
bf567c50 41462008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
4147
4148 Make grub-setup handle a separate root device.
f19dbdb7 4149
bf567c50 4150 * util/i386/pc/grub-setup.c (setup): Always open the root device,
4151 so that the root device can be compared with the destination
4152 device.
4153 When embedding the core image, if the root and destination devices
4154 are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to
4155 0xFF.
4156 When not embedding, set ROOT_DRIVE to 0xFF.
f19dbdb7 4157
9be6b98b 41582008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
4159
4160 Add support for having a grub directory in a different drive. This
4161 is still only the data handling part.
f19dbdb7 4162
9be6b98b 4163 * kern/i386/pc/startup.S (multiboot_trampoline): Set %dh to 0xFF.
4164 (codestart): Save %dh in GRUB_ROOT_DRIVE.
4165 (grub_root_drive): New variable.
4166
4167 * kern/i386/pc/init.c (make_install_device): Use GRUB_ROOT_DRIVE
4168 instead of GRUB_BOOT_DRIVE to construct a device name. Set
4169 GRUB_ROOT_DRIVE to GRUB_BOOT_DRIVE if it is 0xFF, otherwise use it
4170 as it was.
4171
4172 * include/grub/i386/pc/kernel.h (grub_root_drive): New prototype.
4173
4174 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_ROOT_DRIVE): New
4175 macro.
4176 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Set to 0x4f.
4177
4178 * boot/i386/pc/pxeboot.S (_start): Set %dh to 0xFF. For now, this
4179 is bogus, because PXE booting does not specify any drive
4180 correctly.
4181
4182 * boot/i386/pc/lnxboot.S (reg_edx): Set the second byte to 0xFF. I
4183 am not sure if this is really correct.
4184
4185 * boot/i386/pc/cdboot.S: Set %dh to 0xFF, because the root drive
4186 is always identical to the boot drive when booting from a CD.
4187
4188 * boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any
4189 longer.
4190 (root_drive): New variable.
4191 (real_start): Unconditionally set %dh to ROOT_DRIVE.
4192 (setup_sectors): Push %dx right after popping it, because %dh will
4193 be modified later.
4194 (copy_buffer): Restore %dx.
4195
e0ca0677 41962008-02-03 Robert Millan <rmh@aybabtu.com>
4197
4198 * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
4199 use `cdboot.img' for cdrom images.
4200
3b3f6629 42012008-02-03 Robert Millan <rmh@aybabtu.com>
4202
4203 * util/grub.d/00_header.in: Issue scripting commands for GRUB to
4204 only setup gfxterm when `font' command has succeeded.
4205
d42b3672 42062008-02-03 Robert Millan <rmh@aybabtu.com>
4207
4208 * loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS]
4209 (grub_rescue_cmd_multiboot_loader)
4210 (grub_rescue_cmd_module_loader): Enable multiboot1 calls.
4211
fa370ea6 42122008-02-03 Pavel Roskin <proski@gnu.org>
4213
e0c5dacb 4214 * kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop
fa370ea6 4215 %edx and %esi from stack only after grub_gate_a20() is called.
4216 grub_gate_a20() clobbers %edx.
4217
f2a76e1d 42182008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
4219
4220 * configure.ac (AC_INIT): Bumped to 1.96.
4221
4222 * DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c,
4223 commands/lspci.c,disk/memdisk.c, include/grub/pci.h,
4224 include/grub/i386/pc/pci.h, video/readers/jpeg.c, and
4225 video/readers/png.c.
4226
90fd32d1 42272008-02-03 Bean <bean123ch@gmail.com>
9be665dd 4228
4229 * conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img.
4230 (cdboot_img_SOURCES): New variable.
4231 (cdboot_img_ASFLAGS): New variable.
4232 (cdboot_img_LDFLAGS): New variable.
4233
4234 * boot/i386/pc/cdboot.S: New file.
4235
4236 * disk/i386/pc/biosdisk.c (cd_start): New variable.
4237 (cd_count): Likewise.
4238 (grub_biosdisk_get_drive): Add support for cd device.
4239 (grub_biosdisk_call_hook): Likewise.
4240 (grub_biosdisk_iterate): Likewise.
4241 (grub_biosdisk_open): Likewise.
4242 (GRUB_BIOSDISK_CDROM_RETRY_COUNT): New macro.
4243 (grub_biosdisk_rw): Support reading from cd device.
4244 (GRUB_MOD_INIT): Iterate cd devices.
4245
4246 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_FLAG_CDROM): New macro.
4247 (GRUB_BIOSDISK_MACHINE_CDROM_START): Likewise.
4248 (GRUB_BIOSDISK_MACHINE_CDROM_END): Likewise.
4249
4250 * kern/i386/pc/init.c (make_install_device): Check for cd device.
4251
4020aa53 42522008-02-02 Robert Millan <rmh@aybabtu.com>
4253
4254 * commands/read.c: New file.
4255 * conf/common.rmk (pkglib_MODULES): Add `commands/read.c'.
4256 (read_mod_SOURCES): New variable.
4257 (read_mod_CFLAGS): Likewise.
4258 (read_mod_LDFLAGS): Likewise.
4259
e03a1132 42602008-02-02 Robert Millan <rmh@aybabtu.com>
4261
4262 * normal/main.c (grub_normal_execute): Check for `menu->size' when
4263 determining whether menu has to be displayed.
4264
58c69220 42652008-02-02 Marco Gerards <marco@gnu.org>
4266
4267 * bus/pci.c: New file.
4268
4269 * include/grub/pci.h: Likewise.
4270
4271 * include/grub/i386/pc/pci.h: Likewise.
4272
4273 * commands/lspci.c: Likewise.
4274
4275 * conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and
4276 `lspci.mod'.
4277 (pci_mod_SOURCES): New variable.
4278 (pci_mod_CFLAGS): Likewise.
4279 (pci_mod_LDFLAGS): Likewise.
4280 (lspci_mod_SOURCES): Likewise.
4281 (lspci_mod_CFLAGS): Likewise.
f19dbdb7 4282 (lspci_mod_LDFLAGS): Likewise.
58c69220 4283
c004e1b4 42842008-02-02 Bean <bean123ch@gmail.com>
4285
4286 * fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
4287 (grub_ufs_get_file_block): Fix indirect block calculation problem.
4288
4289 * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk.
4290 (grub_xfs_btree_node): New structure.
4291 (grub_xfs_btree_root): New structure.
4292 (grub_xfs_inode): New members nblocks, extsize, nextents and btree.
4293 (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents.
4294 (GRUB_XFS_EXTENT_BLOCK): Likewise.
4295 (GRUB_XFS_EXTENT_SIZE): Likewise.
4296 (grub_xfs_read_block): Support btree format type.
4297 (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook.
4298 Use directory block as basic unit.
4299
4300 * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block.
4301
4302 * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
4303 __attribute__ ((__regparm__ (1))).
4304
f95562bf 43052008-02-01 Robert Millan <rmh@aybabtu.com>
4306
4307 Correct a mistake in previous commit.
4308
4309 * conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the
4310 top.
4311 (normal/command.c_DEPENDENCIES): New variable.
4312
7d31f41f 43132008-02-01 Robert Millan <rmh@aybabtu.com>
4314
4315 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the
4316 top.
4317 (normal/command.c_DEPENDENCIES): New variable.
4318 (grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables.
4319 * conf/i386-ieee1275.rmk: Likewise.
4320 * conf/i386-linuxbios.rmk: Likewise.
4321 * conf/i386-pc.rmk: Likewise.
4322 * conf/sparc64-ieee1275.rmk: Likewise.
4323 * conf/powerpc-ieee1275.rmk: Likewise.
4324 (grub_emu_SOURCES): Add `fs/fshelp.c'.
4325
4326 * genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it.
4327
60b6be74 43282008-02-01 Robert Millan <rmh@aybabtu.com>
4329
4330 * kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf()
4331 call at beginning of function.
4332
078522ab 43332008-01-31 Pavel Roskin <proski@gnu.org>
4334
4335 * util/powerpc/ieee1275/grub-mkrescue.in: New file.
d2c11005 4336 * conf/powerpc-ieee1275.rmk (bin_SCRIPTS): New variable.
4337 (grub_mkrescue_SOURCES): Likewise.
078522ab 4338 * DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in.
4339
ccaa8a5f 43402008-01-30 Robert Millan <rmh@aybabtu.com>
4341
4342 * conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'.
4343 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ...
4344 * conf/common.rmk (util/grub-probe.c_DEPENDENCIES)
4345 (grub_probe_SOURCES): ... to here.
4346
4347 * conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'.
4348 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove.
4349 * conf/i386-ieee1275.rmk: Likewise.
4350 * conf/i386-linuxbios.rmk: Likewise.
4351 * conf/powerpc-ieee1275.rmk: Likewise.
4352
ae5a9cd7 43532008-01-30 Tristan Gingold <gingold@free.fr>
4354
4355 * kern/rescue.c: Silently accept empty lines.
4356
70bc2ef2 43572008-01-29 Bean <bean123ch@gmail.com>
4358
4359 * boot/i386/pc/lnxboot.S (data_start): Code cleanup.
4360 (real_code_2): Code cleanup and change comment style.
4361 (move_memory): Avoid using 32-bit address mode.
4362
6a4d50ea 43632008-01-29 Bean <bean123ch@gmail.com>
4364
4365 * conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'.
4366 (png_mod_SOURCES): New variable.
4367 (png_mod_CFLAGS): Likewise.
4368 (png_mod_LDFLAGS): Likewise.
4369
4370 * video/readers/png.c: New file.
4371
11cc30ac 43722008-01-28 Robert Millan <rmh@aybabtu.com>
4373
4374 * include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro.
4375 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove
4376 `ifndef GRUB_MOD_GAP' hack.
4377 * util/elf/grub-mkimage.c (add_segments): Likewise.
4378
3abc589f 43792008-01-27 Robert Millan <rmh@aybabtu.com>
4380
4381 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip
4382 `GRUB_MOD_GAP' for platforms in which it's not defined.
962ca133 4383 * util/elf/grub-mkimage.c (add_segments): Likewise.
3abc589f 4384
e1907778 43852008-01-27 Robert Millan <rmh@aybabtu.com>
4386
4387 Get grub-emu to build again (including parallel builds).
4388
4389 * conf/i386-pc.rmk (util/grub-emu.c_DEPENDENCIES): Remove variable.
4390 Split into ...
4391 (util/grub-emu.c_DEPENDENCIES): ... this, ...
4392 (normal/execute.c_DEPENDENCIES): ... this, ...
4393 (grub-emu_DEPENDENCIES): ... and this.
4394
4395 * conf/i386-efi.rmk: Likewise.
4396 * conf/i386-linuxbios.rmk: Likewise.
4397 * conf/i386-ieee1275.rmk: Likewise.
4398 * conf/powerpc-ieee1275.rmk: Likewise.
4399 (grub_emu_SOURCES): Remove duplicated `kern/file.c'.
4400
2216b101 44012008-01-27 Robert Millan <rmh@aybabtu.com>
4402
4403 * NEWS: Add a few items.
4404
f75172d9 44052008-01-27 Robert Millan <rmh@aybabtu.com>
4406
4407 Fix parallel builds with grub-emu. Based on earlier commit for
4408 grub-probe and grub-setup.
4409
4410 * conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ...
4411 (util/grub-emu.c_DEPENDENCIES): ... this.
4412 * conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ...
4413 (util/grub-emu.c_DEPENDENCIES): ... this.
4414 * conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ...
4415 (util/grub-emu.c_DEPENDENCIES): ... this.
4416 * conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
4417 (util/grub-emu.c_DEPENDENCIES): ... this.
4418 * conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
4419 (util/grub-emu.c_DEPENDENCIES): ... this.
4420
3f51de77 44212008-01-27 Pavel Roskin <proski@gnu.org>
4422
4423 * include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
4424 to create a gap between _end and the modules added to the image
4425 with grub-mkrescue. That fixes "CLAIM failed" on PowerMAC.
4426 * kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
4427 * util/elf/grub-mkimage.c (add_segments): Likewise.
4428
2033f53e 44292008-01-26 Pavel Roskin <proski@gnu.org>
4430
4431 * kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
4432 just return an error.
4433
22da1f6f 44342008-01-26 Bean <bean123ch@gmail.com>
4435
4436 * fs/reiserfs.c (grub_fshelp_node): New member next_offset.
4437 (grub_reiserfs_get_item): Save offset of the next item.
4438 (grub_reiserfs_iterate_dir): Use next_offset to find next item.
4439
2a9525e6 44402008-01-25 Robert Millan <rmh@aybabtu.com>
4441
4442 * conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to
4443 make all filesystem sources appear together (possibly fixing omissions
4444 while at it).
4445 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
4446 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4447 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
4448 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4449
4450 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise. Additionally,
4451 add `kern/file.c'.
4452 * conf/i386-efi.rmk (grub_probe_SOURCES): Likewise.
4453 * conf/i386-ieee1275.rmk (grub_probe_SOURCES): Likewise.
4454 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Likewise.
4455 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Likewise.
4456
4457 * util/grub-probe.c: Include `<grub/file.h>' and `<sys/stat.h>'.
4458 (probe): Add a sanity check to make sure of our ability to read
4459 requested files when probing for filesystem type.
4460
4461 * genmk.rb: Update copyright year (2007).
4462
4463 * include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init)
4464 (grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init)
4465 (grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init)
4466 (grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init)
4467 (grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init)
4468 : Remove function prototypes.
4469
b95f71b5 44702008-01-25 Robert Millan <rmh@aybabtu.com>
4471
4472 Revert my previous commits (based on wrong assumption of how grub_errno
4473 works).
4474
fe6b695a 4475 * kern/disk.c (grub_disk_open): Stop resetting grub_errno.
b95f71b5 4476 * kern/file.c (grub_file_open): Likewise.
4477
d08bbb49 44782008-01-24 Pavel Roskin <proski@gnu.org>
4479
4480 * include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares
4481 that hang if GRUB tries to setup colors.
4482 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set
4483 colors for firmwares that don't support it.
4484 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag):
4485 Recognize Open Hack'Ware, set flags to work around its
4486 limitations.
4487
605e36ed 44882008-01-24 Robert Millan <rmh@aybabtu.com>
4489
4490 * kern/file.c (grub_file_open): Do not account previous failures of
4491 unrelated functions when grub_errno is checked for.
4492 Reported by Oleg Strikov.
4493
bac332a1 44942008-01-24 Bean <bean123ch@gmail.com>
4495
4496 * fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro.
4497 (grub_ufs_sblock): New member volume name.
4498 (grub_ufs_find_file): Fix string copy bug.
4499 (grub_ufs_label): Implement this function properly.
4500
4501 * fs/hfs.c (grub_hfs_cnid_type): New enum.
4502 (grub_hfs_iterate_records): Use the correct file number for extents
4503 and catalog file. Fix problem in next index calculation.
4504 (grub_hfs_find_node): Replace recursive function call with loop.
4505 (grub_hfs_iterate_dir): Replace recursive function call with loop.
4506
15c80c09 45072008-01-23 Robert Millan <rmh@aybabtu.com>
4508
4509 * include/grub/i386/ieee1275/loader.h: Include `<grub/types.h>',
4510 `<grub/symbol.h>' and `<grub/multiboot.h>'.
4511 (grub_multiboot2_real_boot): New function prototype.
4512
4513 * include/grub/i386/pc/memory.h: Include `<grub/machine/machine.h>'.
4514 [!GRUB_MACHINE_IEEE1275] (grub_lower_mem, grub_upper_mem): Disable.
4515
4516 * kern/i386/ieee1275/init.c (grub_os_area_addr)
4517 (grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables.
4518
305338fd 45192008-01-23 Robert Millan <rmh@aybabtu.com>
4520
4521 * kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with
4522 #ifdef'ed out grub_printf().
4523
3ea52685 45242008-01-23 Robert Millan <rmh@aybabtu.com>
4525
4526 * term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out
4527 grub_dprintf calls, since they make "debug=all" mode unusable.
4528 (grub_console_checkkey): Likewise.
4529
5882ae4b 45302008-01-23 Robert Millan <rmh@aybabtu.com>
4531
4532 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
4533 `term/i386/pc/at_keyboard.c'.
4534 (pkglib_MODULES): Add `serial.mod'.
4535 (serial_mod_SOURCES): New variable.
4536 (serial_mod_CFLAGS): Likewise.
4537 (serial_mod_LDFLAGS): Likewise.
4538
4539 * include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'. Remove
4540 `<grub/powerpc/ieee1275/console.h>'.
4541 (grub_keyboard_controller_init): New function prototype.
4542 (grub_console_checkkey): Likewise.
4543 (grub_console_getkey): Likewise.
4544
4545 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT
4546 keyboard on i386.
4547
4548 * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
4549 grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
4550
06ab5303 45512008-01-23 Robert Millan <rmh@aybabtu.com>
4552
4553 * kern/i386/pc/init.c (make_install_device): When memdisk image is
4554 present, "(memdisk)/boot/grub" becomes the default prefix.
4555
4556 * util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus
4557 a memdisk tarball with all the modules. Add --overlay=DIR option that
4558 allows users to overlay additional files into the image.
4559
dbb475a4 45602008-01-23 Robert Millan <rmh@aybabtu.com>
4561
4562 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h'
4563 and `machine/memory.h'.
4564 (pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'.
4565 (_multiboot_mod_SOURCES): New variable.
4566 (_multiboot_mod_CFLAGS): Likewise.
4567 (_multiboot_mod_LDFLAGS): Likewise.
4568 (multiboot_mod_SOURCES): Likewise.
4569 (multiboot_mod_CFLAGS): Likewise.
4570 (multiboot_mod_LDFLAGS): Likewise.
4571
4572 * include/grub/i386/ieee1275/loader.h: New file.
4573
4574 * include/grub/i386/ieee1275/machine.h: Likewise.
4575
4576 * include/grub/i386/ieee1275/memory.h: Likewise.
4577
4578 * include/grub/i386/pc/init.h (grub_os_area_addr): Remove (redundant)
4579 variable declaration.
4580 (grub_os_area_size): Likewise.
4581
4582 * kern/i386/ieee1275/init.c (grub_os_area_addr, grub_os_area_size)
4583 (grub_lower_mem, grub_upper_mem): New variables.
4584 (grub_stop_floppy): New function (just to make
4585 grub_multiboot2_real_boot() happy).
4586
4587 * kern/i386/ieee1275/startup.S: Include `<grub/machine/memory.h>',
4588 `<grub/cpu/linux.h>', `<multiboot.h>' and `<multiboot2.h>'.
4589 (grub_stop): New function.
4590 Include `"../realmode.S"' and `"../loader.S"'.
4591
4592 * loader/multiboot_loader.c: Include `<grub/machine/machine.h>'.
4593 Replace `__i386__' #ifdefs with `GRUB_MACHINE_PCBIOS'.
4594
4595 * loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386,
4596 rely on grub_multiboot2_real_boot() for final boot.
4597
25638629 45982008-01-22 Robert Millan <rmh@aybabtu.com>
4599
4600 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When
4601 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any
4602 device that doesn't look like an SD card.
4603 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
4604 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag.
4605 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect
4606 OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when
4607 found.
4608
9dad816d 46092008-01-22 Robert Millan <rmh@aybabtu.com>
4610
4611 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
4612 avoid claiming over our own code.
4613
34842f2d 46142008-01-22 Bean <bean123ch@gmail.com>
4615
4616 * conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
4617 (jpeg_mod_SOURCES): New variable.
4618 (jpeg_mod_CFLAGS): Likewise.
4619 (jpeg_mod_LDFLAGS): Likewise.
4620
4621 * video/readers/jpeg.c : New file.
4622
44023a28 46232008-01-22 Bean <bean123ch@gmail.com>
4624
4625 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
4626 there are no more items.
4627
bc2d8ac6 46282008-01-21 Robert Millan <rmh@aybabtu.com>
4629
4630 * kern/mm.c (grub_mm_init_region): Improve debug message.
4631
261bd4bc 46322008-01-21 Robert Millan <rmh@aybabtu.com>
4633
4634 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
4635 (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
4636 address.
4637 (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
4638 a C macro.
4639 * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
4640 Indicates start of upper memory.
4641 * util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
4642 (generate_image): Abort when image size is big enough to corrupt
4643 upper memory.
4644
4645 * include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
4646 (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
4647 * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
4648 instead of hardcoding 0xA0000.
4649 * video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
4650 (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
4651 instead of hardcoding 0xA0000.
4652
f970b55e 46532008-01-21 Robert Millan <rmh@aybabtu.com>
4654
4655 * disk/memdisk.c (memdisk_size): New variable.
4656 (grub_memdisk_open): Replace grub_arch_memdisk_size() call with
4657 `memdisk_size'.
4658 (grub_memdisk_init): Initialize `memdisk_size'. Reallocate memdisk
4659 image to dynamic memory.
4660 (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
4661 `memdisk_size'. Free memdisk block.
4662
1a8b0526 46632008-01-21 Robert Millan <rmh@aybabtu.com>
4664
4665 Fix detection of very small filesystems (like tar).
4666
4667 * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
4668 contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
4669 GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
4670 a problem with this disk).
4671
6e9b4aab 46722008-01-21 Robert Millan <rmh@aybabtu.com>
4673
4674 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
4675 on grub_biosdisk_rw_standard() error.
4676
0d8837b2 46772008-01-21 Robert Millan <rmh@aybabtu.com>
4678
4679 * include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
4680 recent changes.
4681 * kern/elf.c: Likewise.
4682 * kern/ieee1275/ieee1275.c: Likewise.
4683 * kern/powerpc/ieee1275/openfw.c: Likewise.
4684 * term/ieee1275/ofconsole.c: Likewise.
4685
ffd36e34 46862008-01-21 Robert Millan <rmh@aybabtu.com>
4687
4688 * include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.
4689
3f0093d0 4690 * include/grub/kernel.h (grub_arch_memdisk_addr)
4691 (grub_arch_memdisk_size): Moved from here ...
ffd36e34 4692
3f0093d0 4693 * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr)
4694 (grub_arch_memdisk_size): ... to here.
ffd36e34 4695
6c391b21 46962008-01-21 Robert Millan <rmh@aybabtu.com>
4697
4698 Mostly based on bugfix from Bean.
4699
4700 * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
4701 attribute with hook() parameter.
4702 (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
4703 declaration.
4704 (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
4705 attribute with hook() parameter.
4706 (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
4707 declaration.
4708
55a581dc 47092008-01-21 Robert Millan <rmh@aybabtu.com>
4710
4711 * conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
4712 (pkglib_MODULES): Add `memdisk.mod'.
4713 (memdisk_mod_SOURCES): New variable.
4714 (memdisk_mod_CFLAGS): Likewise.
4715 (memdisk_mod_LDFLAGS): Likewise.
4716
4717 * disk/memdisk.c: New file.
4718
4719 * include/grub/disk.h (grub_disk_dev_id): Add
4720 `GRUB_DISK_DEVICE_MEMDISK_ID'.
4721
4722 * include/grub/i386/pc/kernel.h
4723 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro.
4724 (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4.
4725 (grub_kernel_image_size): New variable declaration.
4726 (grub_total_module_size): Likewise.
4727 (grub_memdisk_image_size): Likewise.
4728
4729 * include/grub/i386/pc/memory.h
4730 (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro.
4731
4732 * include/grub/kernel.h: Include `<grub/symbol.h>'.
4733 (grub_arch_memdisk_addr): New variable declaration.
4734 (grub_arch_memdisk_size): Likewise.
4735
4736 * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function.
4737 (grub_arch_memdisk_size): Likewise.
4738
4739 * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable.
4740 (codestart): Replace hardcoded `0x100000' with
4741 `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro.
4742
4743 * util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
4744 (generate_image): Add `memdisk_path' parameter. When `memdisk_path' is
4745 not NULL, append the contents of the file it refers to, at the end of
4746 the compressed kernel image. Initialize `grub_memdisk_image_size'
4747 variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
4748 (options): Add "memdisk"|'m' option.
4749 (main): Parse --memdisk|-m option, and pass user-provided path as
4750 parameter to generate_image().
4751
3d7f54c9 47522008-01-20 Robert Millan <rmh@aybabtu.com>
4753
4754 * kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
4755 grub_dprintf() calls from here ...
4756 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.
4757
0bf74728 47582008-01-20 Robert Millan <rmh@aybabtu.com>
4759
4760 Fix detection of "real mode" when /options/real-mode? doesn't exist.
4761
4762 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
4763 declaration.
4764 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
4765 (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
4766 `GRUB_IEEE1275_FLAG_REAL_MODE'.
fe6b695a 4767 (cmain): Initialize `grub_ieee1275_mmu' (using /chosen/mmu integer
0bf74728 4768 property).
4769 * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
4770 `grub_ieee1275_mmu' rather than obtaining a handler on every call.
4771
33bf70a7 47722008-01-19 Robert Millan <rmh@aybabtu.com>
4773
fe6b695a 4774 Get rid of confusing function (superseded by
33bf70a7 4775 `grub_ieee1275_get_integer_property')
4776 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
4777 prototype.
4778 * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
4779 function.
4780 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
4781 grub_ieee1275_decode_int_4(), by obtaining integer properties directly
fe987087 4782 in native endianness from grub_ieee1275_get_integer_property().
33bf70a7 4783
e2da7d26 47842008-01-19 Robert Millan <rmh@aybabtu.com>
4785
4786 * kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
4787 command after "shut-down", since implementations differ on which
4788 the command for halt is.
4789
59f1fd8d 47902008-01-19 Robert Millan <rmh@aybabtu.com>
4791
4792 * include/grub/i386/linuxbios/console.h: Add header protection.
4793 (grub_keyboard_controller_init): New function prototype.
4794 * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
4795 (KEYBOARD_COMMAND_READ): Likewise.
4796 (KEYBOARD_COMMAND_WRITE): Likewise.
4797 (KEYBOARD_SCANCODE_SET1): Likewise.
4798 (grub_keyboard_controller_write): New function.
4799 (grub_keyboard_controller_read): Likewise.
4800 (grub_keyboard_controller_init): Likewise.
4801
4802 * term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
4803 (grub_console_init): On coreboot/LinuxBIOS, call
4804 grub_keyboard_controller_init().
4805
5f5a7c15 48062008-01-19 Robert Millan <rmh@aybabtu.com>
4807
4808 PowerPC changes provided by Pavel Roskin.
4809
4810 * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
4811 * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
4812 don't rely on cmain() doing it.
4813 * kern/i386/ieee1275/startup.S (_start): Store %eax in
4814 grub_ieee1275_entry_fn, don't rely on cmain() doing it.
4815
1210e168 48162008-01-16 Robert Millan <rmh@aybabtu.com>
4817
4818 * include/grub/i386/linuxbios/memory.h
4819 (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
4820 * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
4821 receive `table_header' as argument. Instead, probe for it in the
4822 known memory ranges where it can be present.
4823 (grub_available_iterate): Do not pass a fixed `table_header' address
4824 to grub_linuxbios_table_iterate().
4825
3d04eab8 48262008-01-15 Robert Millan <rmh@aybabtu.com>
4827
4828 * configure.ac: Add `i386-ieee1275' to the list of supported targets.
4829 * conf/i386-ieee1275.rmk: New file.
4830 * include/grub/i386/ieee1275/console.h: Likewise.
4831 * include/grub/i386/ieee1275/ieee1275.h: Likewise.
4832 * include/grub/i386/ieee1275/kernel.h: Likewise.
4833 * include/grub/i386/ieee1275/time.h: Likewise.
4834 * kern/i386/ieee1275/init.c: Likewise.
4835 * kern/i386/ieee1275/startup.S: Likewise.
4836
d1bc1b73 48372008-01-15 Robert Millan <rmh@aybabtu.com>
4838
4839 * kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
4840 when pointers are 32-bit (but still do set it to one when they are
4841 64-bit).
4842
66a65807 48432008-01-15 Robert Millan <rmh@aybabtu.com>
4844
4845 * include/grub/ieee1275/ieee1275.h
4846 (grub_ieee1275_get_integer_property): New function prototype.
4847
4848 * kern/ieee1275/ieee1275.c: Include `<grub/types.h>'.
4849 (grub_ieee1275_get_integer_property): New function. Wraps around
fe987087 4850 grub_ieee1275_get_property() to handle endianness.
66a65807 4851
4852 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
4853 grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
fe6b695a 4854 where appropriate.
66a65807 4855 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
4856 (grub_map): Likewise.
4857 * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.
4858
a83ccafd 48592008-01-15 Bean <bean123ch@gmail.com>
4860
4861 * normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
4862 (grub_script_execute_cmdline): Reset grub_errno.
4863
4864 * normal/main.c (read_config_file): Reset grub_errno.
4865
4866 * normal/parse.y (script_init): New.
4867 (script): Move function and menuentry here.
4868 (delimiter): New.
4869 (command): Add delimiter at the end of command.
4870 (commands): Adjust to match the new command.
4871 (commandblock): Remove grub_script_lexer_record_start.
f19dbdb7 4872 (menuentry): Add grub_script_lexer_record_start, use the new commands.
a83ccafd 4873 (if): Use the new commands.
4874
4875 * conf/common.rmk (pkgdata_MODULES): Add echo.mod.
4876
df6ecfc6 48772008-01-15 Robert Millan <rmh@aybabtu.com>
4878
4879 * normal/menu.c (run_menu): Move timeout message from here ...
4880 (print_timeout): ... to here.
4881 (run_menu): Use print_timeout() once during initial draw to print
4882 the whole message, and again in every clock tick to update only
4883 the number of seconds.
4884
87ae25eb 48852008-01-15 Robert Millan <rmh@aybabtu.com>
4886
4887 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
4888 actual size of `available' from grub_ieee1275_get_property(), and
4889 restrict parsing to that bound.
4890
47bf09a4 48912008-01-15 Christian Franke <franke@computer.org>
4892
4893 * util/grub-emu.c: Replace <argp.h> by <getopt.h>.
4894 (argp_program_version): Remove variable.
4895 (argp_program_bug_address): Likewise.
4896 (options): Convert from struct argp_option to struct option.
4897 (struct arguments): Remove.
4898 (parse_opt): Remove.
4899 (usage): New function.
4900 (main): Replace struct args members by simple variables.
4901 Replace argp_parse() by getopt_long().
4902 Add switch to evaluate options.
4903 Add missing "(...)" around root_dev in prefix string.
4904
c86f1469 49052008-01-14 Robert Millan <rmh@aybabtu.com>
4906
4907 * kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
4908 for grub_ieee1275_exit(), in order to improve portability.
4909
e622c559 49102008-01-14 Robert Millan <rmh@aybabtu.com>
4911
4912 * util/grub.d/10_linux.in (prefix): Define.
4913 (exec_prefix): Likewise. Both definitions are later used by `libdir'.
4914
44cb1ec8 49152008-01-13 Pavel Roskin <proski@gnu.org>
4916
4917 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
4918 grub_errno if no errors have been detected.
4919
1eb8c802 49202008-01-12 Robert Millan <rmh@aybabtu.com>
4921
4922 * include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
4923 (grub_util_get_dev_abstraction): New function prototype.
4924
4925 * util/getroot.c: Include `<grub/util/getroot.h>'
4926 (grub_util_get_grub_dev): Move detection of abstraction type to ...
4927 (grub_util_get_dev_abstraction): ... here (new function).
4928
4929 * util/grub-probe.c: Convert PRINT_* to an enum. Add
4930 `PRINT_ABSTRACTION'.
4931 (probe): Probe for abstraction type when requested.
4932 (main): Understand `--target=abstraction'.
4933
4934 * util/i386/efi/grub-install.in: Add abstraction module to core
4935 image when it is found to be necessary.
4936 * util/i386/pc/grub-install.in: Likewise.
4937 * util/powerpc/ieee1275/grub-install.in: Likewise.
4938
4939 * util/update-grub_lib.in (font_path): Return system path without
4940 converting to GRUB path.
4941 * util/update-grub.in: Convert system path returned by font_path()
4942 to a GRUB path. Use `grub-probe -t abstraction' to determine what
4943 abstraction module is needed for loading fonts (if any). Export
4944 that as `GRUB_PRELOAD_MODULES'.
4945 * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
4946 insmod commands).
4947
52bd3de9 49482008-01-12 Yoshinori K. Okuji <okuji@enbug.org>
4949
4950 Remove some unused code from reiserfs.
f19dbdb7 4951
52bd3de9 4952 * fs/reiserfs.c (struct grub_reiserfs_key)
4953 [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
4954 (struct grub_reiserfs_node_body): Removed.
4955 (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
4956 Likewise.
4957 (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
4958 Likewise.
4959 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
4960 Likewise.
4961 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
4962 Likewise.
4963 (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
4964 Likewise.
4965 (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
4966 Likewise.
4967 (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
4968 (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
4969 (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
4970
2f80039d 49712008-01-10 Robert Millan <rmh@aybabtu.com>
4972
4973 * util/update-grub_lib.in (grub_file_is_not_garbage): New function.
4974 Determines if a file is garbage left by packaging systems, etc.
4975 * util/update-grub.in: Use grub_file_is_not_garbage() as a condition
4976 for processing /etc/grub.d scripts.
4977 * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
4978 * util/grub.d/10_linux.in: Likewise. Use grub_file_is_not_garbage()
4979 as a condition for processing Linux images.
4980
87888032 49812008-01-10 Pavel Roskin <proski@gnu.org>
4982
4983 * include/grub/powerpc/libgcc.h (__ucmpdi2): New export. Needed
4984 to compile reiserfs.c on PowerPC.
4985
7e54fced 49862008-01-10 Robert Millan <rmh@aybabtu.com>
de9993e0 4987
4988 * kern/device.c (grub_device_iterate): Do not abort device iteration
4989 when one of the devices cannot be opened.
4990 * kern/disk.c (grub_disk_open): Do not account previous failures of
4991 unrelated functions when grub_errno is checked for.
4992
5aa541e6 49932008-01-08 Robert Millan <rmh@aybabtu.com>
4994
4995 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
4996 `! grub_linux_is_bzimage', change order of address comparison to make
4997 it more intuitive, and improve "too big zImage" error message.
4998
7076340d 49992008-01-08 Robert Millan <rmh@aybabtu.com>
5000
5001 * Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
5002 `$(update-grub_DATA)'.
5003 (distcheck): Fix race condition when invoking `$(MAKE)' on multiple
5004 targets.
5005
9ca70333 50062008-01-07 Robert Millan <rmh@aybabtu.com>
5007
5008 * boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
5009 which instruction is modified by grub-setup during installation
5010 (since it wasn't obvious by only looking at this file).
5011
38ccf575 50122008-01-07 Robert Millan <rmh@aybabtu.com>
5013
5014 * TODO: Rewrite. Just refer to the wiki and the BTS instead of
5015 listing actual TODO items.
5016
f5db4291 50172008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
5018
868967cf 5019 * fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
5020 correctly.
5021 (grub_reiserfs_get_key_offset): Likewise.
5022 (grub_reiserfs_set_key_offset): Likewise.
5023 (grub_reiserfs_set_key_type): Likewise.
fe6b695a 5024 (grub_reiserfs_iterate_dir): Return 1 if found, otherwise 0.
868967cf 5025
5026 (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
5027 better to remove the bitfield version completely.
f19dbdb7 5028
868967cf 50292008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 5030
f5db4291 5031 * fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
5032 allocated from the heap, due to the fshelp implementation.
5033 (grub_reiserfs_dir): Free NODE, due to the same reason.
5034
492e6d9d 50352008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
5036
5037 Mostly from Vincent Pelletier:
f19dbdb7 5038
492e6d9d 5039 * fs/reiserfs.c: New file.
f19dbdb7 5040
492e6d9d 5041 * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod.
5042 (reiserfs_mod_SOURCES): New variable.
5043 (reiserfs_mod_CFLAGS): Likewise.
5044 (reiserfs_mod_LDFLAGS): Likewise.
5045
5046 * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
5047 disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
5048 include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
5049 normal/color.c.
5050
9ce3e7c1 50512008-01-06 Robert Millan <rmh@aybabtu.com>
5052
5053 * normal/color.c: Remove `<grub/env.h>'.
5054
f3b58148 50552008-01-05 Jeroen Dekkers <jeroen@dekkers.cx>
5056
5057 * include/grub/normal.h: Include <grub/env.h>.
5058
7ac3bcfa 50592008-01-05 Robert Millan <rmh@aybabtu.com>
5060
5061 * util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
5062 usage example with `(hd0,1)'.
fb358190 5063 Reported by Samuel Thibault.
7ac3bcfa 5064
c8ee99d7 50652008-01-05 Robert Millan <rmh@aybabtu.com>
5066
5067 * kern/i386/loader.S (grub_linux_is_bzimage): New variable.
5068 (grub_linux_boot_zimage): Rename to ...
5069 (grub_linux_boot): ... this.
5070 (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
5071 (grub_linux_boot_zimage): Conditionalize zImage copy.
5072
5073 * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype.
5074 (grub_linux_boot_bzimage): Remove prototype.
5075 (grub_linux_boot_zimage): Rename to ...
5076 (grub_linux_boot): ... this.
5077
5078 * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
5079 (grub_linux_boot): Remove function.
5080
0ece25b1 50812008-01-05 Robert Millan <rmh@aybabtu.com>
5082
5083 * include/grub/normal.h (grub_env_write_color_normal): New prototype.
5084 (grub_env_write_color_highlight): Likewise.
5085 (grub_wait_after_message): Likewise.
5086
5087 * normal/color.c: New file.
5088
5089 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'.
5090 (normal_mod_DEPENDENCIES): Likewise.
5091
5092 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'.
5093 (normal_mod_DEPENDENCIES): Likewise.
5094
5095 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'.
5096 (normal_mod_DEPENDENCIES): Likewise.
5097
5098 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'.
5099 (normal_mod_DEPENDENCIES): Likewise.
5100
5101 * normal/menu_entry.c (run): Rely on grub_wait_after_message()
5102 for waiting after a message is printed.
5103 * normal/main.c (read_config_file): Likewise.
5104 (grub_normal_init): Register grub_env_write_color_normal() and
5105 grub_env_write_color_highlight() hooks. Mark `color_normal' and
5106 `color_highlight' variables as global.
5107
5108 * normal/menu.c (grub_wait_after_message): New function.
5109 (grub_color_menu_normal): New variable. Replaces ...
5110 (GRUB_COLOR_MENU_NORMAL): ... this macro.
5111 (grub_color_menu_highlight): New variable. Replaces ...
5112 (GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
5113 (draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
5114 `GRUB_TERM_COLOR_STANDARD'.
5115 (print_message): Use `grub_setcolorstate' to reload colors. Rename
5116 `normal_code' and `highlight_code' to `old_color_normal' and
5117 `old_color_highlight', respectively.
5118 (grub_menu_init_page): Update colors when drawing the menu, based on
5119 `menu_color_normal' and `menu_color_highlight' variables.
5120 (grub_menu_run): Rely on grub_wait_after_message() for waiting after
5121 a message is printed.
5122
182dd4e5 51232008-01-05 Robert Millan <rmh@aybabtu.com>
5124
5125 * kern/env.c (grub_env_context_open): Propagate hooks for global
5126 variables to new context.
5127
5128 * kern/main.c (grub_set_root_dev): Export `root' variable.
5129
ddf8f6ad 51302008-01-05 Robert Millan <rmh@aybabtu.com>
5131
5132 * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
fe6b695a 5133 discs unconditionally, since udev and others have options to provide
ddf8f6ad 5134 them.
5135
d8b43d9b 51362008-01-05 Robert Millan <rmh@aybabtu.com>
5137
5138 * normal/completion.c (iterate_dir): Skip `.' and `..' directories.
5139
2bff2de3 51402008-01-04 Christian Franke <franke@computer.org>
5141
5142 * kern/i386/pc/init.c (grub_machine_init): Fix evaluation
5143 of eisa_mmap.
5144
97eab917 51452008-01-03 Pavel Roskin <proski@gnu.org>
5146
5147 * kern/i386/linuxbios/init.c: Put "void" to all function
5148 declarations with no arguments.
5149 * kern/powerpc/ieee1275/init.c: Likewise.
5150 * term/i386/pc/at_keyboard.c: Likewise.
5151 * term/i386/pc/vga_text.c: Likewise.
5152 * util/grub-mkdevicemap.c: Likewise.
5153
b9416d00 51542008-01-02 Robert Millan <rmh@aybabtu.com>
5155
5156 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
5157 message when loaded image is out of bounds.
5158 (grub_multiboot_load_elf64): Likewise.
5159
92695df9 51602008-01-02 Pavel Roskin <proski@gnu.org>
5161
5162 * util/grub.d/10_linux.in: Try version without ".old" when
5163 looking for initrd. It's better to use initrd from the newer
5164 kernel of the same version than no initrd at all.
5165
d98d9cad 51662008-01-01 Robert Millan <rmh@aybabtu.com>
5167
5168 * util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.
5169
dbfdce36 51702008-01-01 Vesa Jaaskelainen <chaac@nic.fi>
5171
f19dbdb7 5172 * include/grub/video.h: Added grub_video_unmap_color and
dbfdce36 5173 grub_video_get_active_render_target.
5174 (grub_video_adapter): Added unmap_color and get_active_render_target.
5175
f19dbdb7 5176 * video/video.c: Added grub_video_unmap_color and
dbfdce36 5177 grub_video_get_active_render_target.
5178 (grub_video_get_info): Changed method to accept NULL pointer as an
5179 argument to allow detection of active video adapter.
5180
5181 * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as
5182 grub_video_vbe_unmap_color_int.
5183 Added grub_video_vbe_unmap_color and
5184 grub_video_vbe_get_active_render_target.
5185 (grub_video_vbe_adapter): Added unmap_color and
5186 get_active_render_target.
5187
f19dbdb7 5188 * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage
dbfdce36 5189 with grub_video_vbe_unmap_color_int.
5190
5191 * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
5192 (DEFAULT_NORMAL_COLOR): Likewise.
5193 (DEFAULT_HIGHLIGHT_COLOR) Likewise.
5194 (DEFAULT_FG_COLOR): Removed.
5195 (DEFAULT_BG_COLOR): Likewise.
5196 (DEFAULT_CURSOR_COLOR): Changed value.
5197 (grub_virtual_screen): Added standard_color_setting,
5198 normal_color_setting, highlight_color_setting and term_color.
5199 (grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
5200 (bitmap_width): Added.
5201 (bitmap_height): Likewise.
5202 (bitmap): Likewise.
5203 (set_term_color): Likewise.
5204 (grub_virtual_screen_setup): Changed to use new terminal coloring
5205 settings.
5206 (grub_gfxterm_init): Added init for bitmap.
5207 (grub_gfxterm_fini): Added destroy for bitmap.
5208 (redraw_screen_rect): Updated to use background bitmap and new
5209 terminal coloring.
5210 (scroll_up): Added optimization for case when there is no bitmap.
5211 (grub_gfxterm_cls): Fixed to use correct background color.
5212 (grub_virtual_screen_setcolorstate): Changed to use new terminal
5213 coloring.
5214 (grub_virtual_screen_setcolor): Likewise.
5215 (grub_virtual_screen_getcolor): Added.
5216 (grub_gfxterm_background_image_cmd): Likewise.
5217 (grub_video_term): Added setcolor and getcolor.
5218 (MOD_INIT): Added registration of background_image command.
5219 (MOD_TERM): Added unregistration for background_image command.
5220
c3c20931 52212007-12-30 Pavel Roskin <proski@gnu.org>
5222
5223 * loader/multiboot_loader.c: Fix multiboot command
5224 unregistration. Fix all typos in the word "multiboot".
5225
df266716 52262007-12-29 Pavel Roskin <proski@gnu.org>
94239199 5227
5228 * util/grub.d/10_linux.in: Refactor search for initrd. Add
5229 support for initrd names used in Fedora.
5230
fc6e896c 52312007-12-26 Bean <bean123ch@gmail.com>
5232
5233 * conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
5234 (cpio_mod_SOURCES): New variable.
5235 (cpio_mod_CFLAGS): Likewise.
5236 (cpio_mod_LDFLAGS): Likewise.
5237
5238 * fs/cpio.c: New file.
5239
5240 * conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c.
5241
5242 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
5243
5244 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
5245
5246 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5247
533110ad 52482007-12-25 Robert Millan <rmh@aybabtu.com>
5249
5250 * include/grub/term.h (struct grub_term): Add `getcolor' function.
5251 (grub_getcolor): New function.
5252
5253 * kern/term.c (grub_getcolor): New function.
5254 * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
5255 (GRUB_COLOR_MENU_HIGHLIGHT): New macro.
5256 (print_entry): Set normal and highlight colors to
5257 `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
5258 respectively, before printing and restore them to old
5259 values afterwards.
5260 (grub_menu_init_page): Likewise. Fill an additional colored space
5261 that would otherwise be left blank.
5262
5263 * term/efi/console.c (grub_console_getcolor): New function.
5264 (struct grub_console_term.getcolor): New variable.
5265 * term/i386/pc/console.c (grub_console_getcolor): New function.
5266 (struct grub_console_term.getcolor): New variable.
5267 * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
5268 (struct grub_console_term.getcolor): New variable.
5269
5270 * term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
5271 (struct grub_console_term.setcolor): Remove variable.
5272 * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
5273 (struct grub_console_term.setcolor): Remove variable.
5274 * term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
5275 (struct grub_console_term.setcolor): Remove variable.
5276 * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
5277 (struct grub_console_term.setcolor): Remove variable.
5278
4931827f 52792007-12-25 Robert Millan <rmh@aybabtu.com>
5280
5281 * configure.ac: Search for possible unifont.hex locations, and
5282 define UNIFONT_HEX if found.
5283
5284 * Makefile.in (UNIFONT_HEX): Define variable.
5285 (DATA): Rename to ...
5286 (PKGLIB): ... this. Update all users.
5287 (PKGDATA): New variable.
5288 (pkgdata_IMAGES): Rename to ...
5289 (pkglib_IMAGES): ... this. Update all users.
5290 (pkgdata_MODULES): Rename to ...
5291 (pkglib_MODULES): ... this. Update all users.
5292 (pkgdata_PROGRAMS): Rename to ...
5293 (pkglib_PROGRAMS): ... this. Update all users.
5294 (pkgdata_DATA): Rename to ...
5295 (pkglib_DATA): ... this. Update all users.
5296 (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
5297 (unicode.pff, ascii.pff): New rules.
5298 (all-local): Add `$(PKGDATA)' dependency.
5299 (install-local): Process `$(PKGDATA)'.
5300
5301 * util/update-grub_lib.in (font_path): Search for *.pff files in
5302 a few more locations, including `${pkgdata}'.
5303
57e57e31 53042007-12-23 Robert Millan <rmh@aybabtu.com>
5305
5306 Patch from Bean <bean123ch@gmail.com>:
5307 * disk/loopback.c (grub_loopback_read): Add missing bit shift to
5308 `size'.
5309
4bc72aa9 53102007-12-21 Bean <bean123ch@gmail.com>
5311
5312 * conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
5313 (ntfscomp_mod_SOURCES): New variable.
5314 (ntfscomp_mod_CFLAGS): Likewise.
5315 (ntfscomp_mod_LDFLAGS): Likewise.
5316
5317 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c.
5318 (grub_probe_SOURCES): Likewise.
5319 (grub_emu_SOURCES): Likewise.
5320
5321 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
5322 (grub_emu_SOURCES): Likewise.
5323
5324 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
5325 (grub_emu_SOURCES): Likewise.
5326
5327 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
5328 (grub_emu_SOURCES): Likewise.
5329
5330 * fs/ntfs.c (grub_ntfscomp_func): New variable.
5331 (read_run_list): Renamed to grub_ntfs_read_run_list.
5332 (decomp_nextvcn): Moved to ntfscomp.c.
5333 (decomp_getch): Likewise.
5334 (decomp_get16): Likewise.
5335 (decomp_block): Likewise.
5336 (read_block): Likewise.
5337 (read_data): Partially moved to ntfscomp.c.
5338 (fixup): Change unsigned to grub_uint16_t.
5339 (read_mft): Change unsigned long to grub_uint32_t.
5340 (read_attr): Likewise.
5341 (read_data): Likewise.
5342 (read_run_data): Likewise.
5343 (read_run_list): Likewise.
5344 (read_mft): Likewise.
5345
5346 * fs/ntfscomp.c: New file.
5347
5348 * include/grub/ntfs.h: New file.
5349
af680a87 53502007-12-16 Robert Millan <rmh@aybabtu.com>
5351
5352 * util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
5353 IDE disk check, since Linux is known to support 20 IDE disks.
5354 Reported by Colin Watson.
5355
84be7599 53562007-12-15 Bean <bean123ch@gmail.com>
5357
5358 * conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
5359 (lnxboot_img_SOURCES): New variable.
5360 (lnxboot_img_ASFLAGS): Likewise.
5361 (lnxboot_img_LDFLAGS): Likewise.
5362
5363 * boot/i386/pc/lnxboot.S: New file.
5364
6af9db01 53652007-11-24 Pavel Roskin <proski@gnu.org>
5366
5367 * configure.ac: Test if '--build-id=none' is supported by the
5368 linker. If yes, add it to TARGET_LDFLAGS. Build ID causes
5369 objcopy to generate incorrect binary files (binutils
5370 2.17.50.0.18-1 as shipped by Fedora 8).
5371 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
5372 linking, so that build ID doesn't break the test.
5373
7361cfe6 53742007-11-24 Pavel Roskin <proski@gnu.org>
5375
5376 * include/grub/i386/time.h: use "void" in the argument list
5377 of grub_cpu_idle().
5378 * include/grub/powerpc/time.h: Likewise.
5379 * include/grub/sparc64/time.h: Likewise.
5380
1593e10c 53812007-11-18 Christian Franke <franke@computer.org>
5382
5383 * util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
5384 now return control chars instead of GRUB_CONSOLE_KEY_* constants.
5385 This fixes the problem that function keys did not work in grub-emu.
5386
3b8db1a8 53872007-11-18 Christian Franke <franke@computer.org>
5388
5389 * disk/host.c (grub_host_open): Remove attribute unused from
5390 name parameter. Add check for "host". This fixes the problem
5391 that grub-emu does not find partitions.
5392
2e29408d 53932007-11-18 Christian Franke <franke@computer.org>
5394
5395 * util/hostfs.c (is_dir): New function.
5396 (grub_hostfs_dir): Handle missing dirent.d_type case.
5397 (grub_hostfs_read): Add missing fseek().
5398 (grub_hostfs_label): Clear label pointer. This fixes a crash
5399 of grub-emu on "ls (host)".
5400
398cd047 54012007-11-18 Christian Franke <franke@computer.org>
5402
5403 * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
5404 Add attribute packed, gcc 3.4.4 on Cygwin aligns this
5405 to 64 bit boundary by default.
5406
c405c391 54072007-11-18 Bean <bean123ch@gmail.com>
5408
5409 * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
5410 (hexdump_mod_SOURCES): New variable.
5411 (hexdump_mod_CFLAGS): Likewise.
5412 (hexdump_mod_LDFLAGS): Likewise.
f19dbdb7 5413
c405c391 5414 * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.
5415
5416 * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.
5417
5418 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.
5419
5420 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.
5421
5422 * include/grub/hexdump.h: New file.
5423
5424 * commands/hexdump.c: New file.
5425
5cced7fd 54262007-11-10 Robert Millan <rmh@aybabtu.com>
5427
5428 * commands/i386/pc/play.c (beep_off): Switch order of arguments
5429 in grub_outb() calls.
5430 (beep_on): Likewise.
5431
8b714eb0 54322007-11-10 Christian Franke <franke@computer.org>
5433
5434 * normal/menu.c (run_menu): Check for empty menu to avoid crash.
5435 (grub_menu_run): Likewise.
5436
ce0f1839 54372007-11-10 Robert Millan <rmh@aybabtu.com>
5438
5439 * include/grub/i386/efi/machine.h: New file.
5440 * include/grub/i386/linuxbios/machine.h: Likewise.
5441 * include/grub/i386/pc/machine.h: Likewise.
5442 * include/grub/powerpc/ieee1275/machine.h: Likewise.
5443 * include/grub/sparc64/ieee1275/machine.h: Likewise.
5444
5445 * term/i386/pc/serial.c: Include <grub/machine/machine.h>.
5446 (serial_hw_io_addr): New variable.
5447 (serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
5448 instead of `(unsigned short *) 0x400'.
5449
270c237d 54502007-11-10 Bean <bean123ch@gmail.com>
5451
5452 * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
5453
a87783bf 54542007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
5455
5456 * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
5457 (vga_mod_SOURCES): Added.
5458 (vga_mod_CFLAGS): Likewise.
5459 (vga_mod_LDFLAGS): Likewise.
5460
5461 * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
5462 grub_outb() calls.
5463 (set_map_mask): Likewise.
5464 (set_read_map): Likewise.
5465 (set_read_address): Likewise.
5466 (vga_font): Removed variable.
5467 (get_vga_glyph): Removed function.
5468 (invalidate_char): Likewise.
5469 (write_char): Changed to use grub_font_get_glyph() for font
5470 information.
5471 (grub_vga_putchar): Likewise.
5472 (grub_vga_getcharwidth): Likewise.
5473
6433b448 54742007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
5475
5476 * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
5477 flags.
5478 (pxeboot_img_LDFLAGS): Likewise.
5479 (diskboot_img_LDFLAGS): Likewise.
5480 (kernel_img_LDFLAGS): Likewise.
5481
49178511 54822007-11-06 Robert Millan <rmh@aybabtu.com>
5483
5484 * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
5485 in grub_outb() calls.
5486 (serial_hw_init): Likewise.
5487
53b052de 54882007-11-05 Robert Millan <rmh@aybabtu.com>
5489
5490 * util/update-grub.in: Allow files in ${update_grub_dir} to contain
5491 spaces. Skip non-regular files.
5492
5ab33bba 54932007-11-05 Robert Millan <rmh@aybabtu.com>
5494
5495 * kern/disk.c (grub_disk_firmware_fini)
5496 (grub_disk_firmware_is_tainted): New variables.
5497
5498 * include/grub/disk.h (grub_disk_firmware_fini)
5499 (grub_disk_firmware_is_tainted): Likewise.
5500
5501 * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
5502 (grub_disk_biosdisk_fini): ... to here.
5503 (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
5504 (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
5505 is set. Register grub_disk_biosdisk_fini() in
5506 `grub_disk_firmware_fini'.
5507
5508 * disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
5509 (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
5510 Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
5511 to finish existing firmware disk interface.
5512
5513 * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
5514 (ata_mod_SOURCES): New variable.
5515 (ata_mod_CFLAGS): Likewise.
5516 (ata_mod_LDFLAGS): Likewise.
5517
0149ab7c 55182007-11-05 Robert Millan <rmh@aybabtu.com>
5519
5520 * disk/ata.c: Remove `<grub/machine/time.h>'. Include `<grub/time.h>'.
5521 (grub_ata_wait): Reimplement using grub_millisleep().
5522
5523 * include/grub/misc.h (grub_div_roundup): Fix parenthesization.
5524 * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
5525
be7ac41e 55262007-11-03 Marco Gerards <marco@gnu.org>
5527
5528 * term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
5529 (CRTC_ADDR_PORT): New macro.
5530 (CRTC_DATA_PORT): Likewise.
5531 (CRTC_CURSOR): Likewise.
5532 (CRTC_CURSOR_ADDR_HIGH): Likewise.
5533 (CRTC_CURSOR_ADDR_LOW): Likewise.
5534 (update_cursor): New function.
5535 (grub_console_real_putchar): Call `update_cursor'.
5536 (grub_console_gotoxy): Likewise.
5537 (grub_console_cls): Set the default color when clearing the
5538 screen.
5539 (grub_console_setcursor): Implemented.
5540
bb06ab2e 55412007-11-03 Marco Gerards <marco@gnu.org>
5542
5543 * disk/ata.c (grub_ata_pio_read): Don't wait for the command to
5544 become activate.
5545 (grub_ata_pio_write): Likewise.
5546
5547 (grub_atapi_identify): Wait after issuing an ATA command.
5548 (grub_atapi_packet): Likewise.
5549 (grub_ata_identify): Likewise.
5550 (grub_ata_readwrite): Likewise.
5551
cf8f780b 55522007-11-03 Marco Gerards <marco@gnu.org>
5553
5554 * disk/ata.c (grub_ata_pio_read): Detect and return the error code.
5555 (grub_ata_pio_write): Likewise.
5556 (grub_ata_readwrite): Use `grub_error', instead of
5557 returning `grub_errno'.
5558
ed649e54 55592007-11-03 Marco Gerards <marco@gnu.org>
5560
5561 * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
5562 grub_ata_pio_write once for every single sector, instead of for
5563 multiple sectors.
5564
ca25d8f0 55652007-10-31 Robert Millan <rmh@aybabtu.com>
5566
5567 * configure.ac: Add `i386-linuxbios' to the list of supported targets.
5568
5569 * conf/i386-linuxbios.rmk: New file.
5570
5571 * kern/i386/pc/hardware.c: Likewise.
5572 * term/i386/pc/at_keyboard.c: Likewise.
5573 * term/i386/pc/vga_text.c: Likewise.
5574
5575 * include/grub/i386/linuxbios/boot.h: Likewise.
5576 * include/grub/i386/linuxbios/console.h: Likewise.
5577 * include/grub/i386/linuxbios/init.h: Likewise.
5578 * include/grub/i386/linuxbios/kernel.h: Likewise.
5579 * include/grub/i386/linuxbios/loader.h: Likewise.
5580 * include/grub/i386/linuxbios/memory.h: Likewise.
5581 * include/grub/i386/linuxbios/serial.h: Likewise.
5582 * include/grub/i386/linuxbios/time.h: Likewise.
5583
5584 * kern/i386/linuxbios/init.c: Likewise.
5585 * kern/i386/linuxbios/startup.S: Likewise.
5586 * kern/i386/linuxbios/table.c: Likewise.
5587
e911ecc1 55882007-10-31 Marco Gerards <marco@gnu.org>
5589
5590 * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
5591 (ata_mod_SOURCES): New variable.
5592 (ata_mod_CFLAGS): Likewise.
5593 (ata_mod_LDFLAGS): Likewise.
5594
5595 * disk/ata.c: New file.
5596
5597 * include/grub/disk.h (grub_disk_dev_id): Add
5598 `GRUB_DISK_DEV_ATA_ID'.
f19dbdb7 5599
7f66d0e0 56002007-10-31 Robert Millan <rmh@aybabtu.com>
5601
5602 * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
5603 * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.
5604
5605 * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
5606 * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.
5607
5608 * include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
5609 `<grub/types.h>'.
5610
5611 * loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
5612
5cd7dd46 56132007-10-27 Robert Millan <rmh@aybabtu.com>
5614
3236ca65 5615 * include/grub/types.h (ULONG_MAX): Define macro.
5cd7dd46 5616
2ebfc90f 56172007-10-22 Robert Millan <rmh@aybabtu.com>
5618
5619 * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'. Include
5620 `"../realmode.S"'.
5621 Remove `"kern/i386/loader.S"'. Include `"../loader.S"'.
5622
73fcb0f3 56232007-10-22 Robert Millan <rmh@aybabtu.com>
5624
5625 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
5626 (pkgdata_MODULES): Add `biosdisk.mod'.
5627 (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
5628 variables.
5629
5630 * disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
5631 (grub_biosdisk_init): Replace with ...
5632 (GRUB_MOD_INIT(biosdisk)): ... this.
5633 (grub_biosdisk_fini): Replace with ...
5634 (GRUB_MOD_FINI(biosdisk)): ... this.
5635
5636 * kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
5637 (grub_machine_init): Remove call to grub_biosdisk_init().
5638 (grub_machine_fini): Remove call to grub_machine_fini().
5639
5640 * util/i386/pc/grub-install.in (modules): Add `biosdisk'.
5641
3381d274 56422007-10-22 Robert Millan <rmh@aybabtu.com>
5643
5644 * include/grub/time.h: New file.
5645 * include/grub/i386/time.h: Likewise.
5646 * include/grub/powerpc/time.h: Likewise.
5647 * include/grub/sparc64/time.h: Likewise.
5648
5649 * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
5650 instances to ...
5651 (KERNEL_MACHINE_TIME_HEADER): ... this.
5652 * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
5653 instances to ...
5654 (KERNEL_MACHINE_TIME_HEADER): ... this.
5655 * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
5656 instances to ...
5657 (KERNEL_MACHINE_TIME_HEADER): ... this.
5658
5659 * kern/i386/efi/init.c: Include `<grub/time.h>'.
5660 (grub_millisleep): New function.
5661 * kern/i386/pc/init.c: Include `<grub/time.h>'.
5662 (grub_millisleep): New function.
5663 * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
5664 Remove `grub/machine/time.h' include.
5665 (grub_millisleep): New function.
5666 * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
5667 Remove `grub/machine/time.h' include.
5668 (grub_millisleep): New function.
5669
5670 * include/grub/misc.h (grub_div_roundup): New function.
5671
5672 * kern/misc.c: Include `<grub/time.h>'.
5673 (grub_millisleep_generic): New function.
5674
5675 * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
5676 Add `time.h'.
5677 * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
5678 Add `time.h'.
5679 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
5680 `machine/time.h'. Add `time.h'.
5681 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
5682
a39a0312 56832007-10-21 Robert Millan <rmh@aybabtu.com>
5684
5685 * include/grub/misc.h (grub_max): New function.
5686
2aad70e2 56872007-10-21 Robert Millan <rmh@aybabtu.com>
5688
5689 * util/misc.c (grub_util_info): Call fflush() before returning.
5690
54b71c4b 56912007-10-20 Robert Millan <rmh@aybabtu.com>
5692
5693 * genmk.rb (Image): Copy `extra_flags' from here ...
5694 (PModule): ... to here. Use it in `#{obj}: #{src}' rule.
5695
5696 * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
5697 to `argc' and `args' arguments.
5698
a979f513 56992007-10-17 Robert Millan <rmh@aybabtu.com>
5700
5701 * kern/i386/loader.S: New file.
5702
5703 * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
5704 * kern/i386/loader.S (grub_linux_prot_size)... to here.
5705 * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
5706 * kern/i386/loader.S (grub_linux_tmp_addr)... to here.
5707 * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
5708 * kern/i386/loader.S (grub_linux_real_addr)... to here.
5709 * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
5710 * kern/i386/loader.S (grub_linux_boot_zimage)... to here.
5711 * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
5712 * kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
5713 * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
5714 * kern/i386/loader.S (grub_multiboot_real_boot)... to here.
5715 * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
5716 * kern/i386/loader.S (grub_multiboot2_real_boot)... to here.
5717
5718 * kern/i386/realmode.S: New file.
5719
5720 * kern/i386/pc/startup.S (protstack): Moved from here ...
5721 * kern/i386/realmode.S (protstack)... to here.
5722 * kern/i386/pc/startup.S (gdt): Moved from here ...
5723 * kern/i386/realmode.S (gdt)... to here.
5724 * kern/i386/pc/startup.S (prot_to_real): Moved from here ...
5725 * kern/i386/realmode.S (prot_to_real)... to here.
5726
5727 * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
5728 `kern/i386/realmode.S'.
5729
825fc8fd 57302007-10-17 Robert Millan <rmh@aybabtu.com>
5731
5732 * include/grub/i386/loader.h: New file.
5733
5734 * include/grub/i386/pc/loader.h (grub_linux_prot_size)
5735 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
5736 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
5737 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
5738 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
5739 * include/grub/i386/loader.h (grub_linux_prot_size)
5740 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
5741 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
5742 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
5743 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.
5744
5745 * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
5746
e179b2f4 57472007-10-15 Robert Millan <rmh@aybabtu.com>
5748
5749 * normal/misc.c (grub_normal_print_device_info): Do not probe for
5750 filesystem when dev->disk is unset.
5751 Do probe for filesystem even when dev->disk->has_partitions is set.
5752 In case a filesystem is found, always report it.
5753 In case it isn't, if dev->disk->has_partitions is set, report that
5754 a partition table was found instead of reporting that no filesystem
5755 could be identified.
5756
5db82af6 57572007-10-12 Robert Millan <rmh@aybabtu.com>
5758
5759 * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
5760 to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.
5761
68f6ac74 5762 * include/grub/types.h (grub_host_to_target16): New macro.
5763 (grub_host_to_target32): Likewise.
5764 (grub_host_to_target64): Likewise.
5765 (grub_target_to_host16): Likewise.
5766 (grub_target_to_host32): Likewise.
5767 (grub_target_to_host64): Likewise.
5db82af6 5768
5769 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
5770 Renamed from to ...
5771 (GRUB_MOD_ALIGN): ...this. Update all users.
5772
68f6ac74 5773 * util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with
5774 grub_host_to_target32.
5775 Replace grub_be_to_cpu32 with grub_target_to_host32.
5776 (load_modules): Likewise.
5777 (add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16.
5778 Replace grub_be_to_cpu32 with grub_target_to_host32.
5779 Replace grub_cpu_to_be16 with grub_host_to_target16.
5780 Replace grub_cpu_to_be32 grub_host_to_target32.
5db82af6 5781
3cf497cc 57822007-10-12 Robert Millan <rmh@aybabtu.com>
5783
5784 * util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
5785 * util/elf/grub-mkimage.c: ... here.
5786
5787 * DISTLIST: Add `util/elf/grub-mkimage.c'. Remove
5788 `util/powerpc/ieee1275/grub-mkimage.c'.
5789
c8cc3692 57902007-10-07 Robert Millan <rmh@aybabtu.com>
adbc4c9d 5791
c8cc3692 5792 * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
5793 and make it easier to figure out.
5794 Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
5795 (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
5796 Do not avoid claiming a region above HEAP_MAX_ADDR if that would
5797 leave us with less than HEAP_MIN_SIZE total heap.
5798 Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
adbc4c9d 5799
5c58b791 58002007-10-03 Robert Millan <rmh@aybabtu.com>
5801
5802 * include/grub/i386/io.h: New file.
5803 * commands/i386/pc/play.c (inb): Removed.
5804 (outb): Removed.
5805 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
5806 with grub_outb().
afcd2ef8 5807 * term/i386/pc/serial.c (inb): Removed.
5808 (outb): Removed.
5809 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
5810 with grub_outb().
5811 * term/i386/pc/vga.c (inb): Removed.
5812 (outb): Removed.
5813 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
5814 with grub_outb().
5c58b791 5815
1a477ed6 58162007-10-02 Robert Millan <rmh@aybabtu.com>
5817
5818 * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
5819 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5820 Reported by Marcin Kurek.
5821
6b5d80fa 58222007-09-07 Robert Millan <rmh@aybabtu.com>
5823
5824 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
5825 SmartFirmware version updates (as released by Sven Luther), and avoid
5826 setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
5827 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
5828 known broken.
5829
5618afbf 58302007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
5831
5832 From Hitoshi Ozeki:
5833 * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
5834 when merging two regions.
5835
6139dcd9 58362007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
5837
508e39ee 5838 * kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
5839 * normal/completion.c (grub_normal_do_completion): Likewise.
5840 Reported by Hitoshi Ozeki.
5841
58422007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 5843
6139dcd9 5844 Do not use devices at boot in chainloading.
f19dbdb7 5845
6139dcd9 5846 * loader/i386/pc/chainloader.c (boot_drive): New variable.
5847 (boot_part_addr): Likewise.
5848 (grub_chainloader_boot): Simply call grub_chainloader_real_boot
5849 with BOOT_DRIVE and BOOT_PART_ADDR.
5850 (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
5851 Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
5852
38da6516 58532007-08-29 Robert Millan <rmh@aybabtu.com>
5854
5855 Patch from Simon Peter <dn.tlp@gmx.net>:
5856 * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
5857 * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
5858 util/grub-probe.c_DEPENDENCIES. Replace grub-setup_DEPENDENCIES with
5859 util/i386/pc/grub-setup.c_DEPENDENCIES.
5860 * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
5861 util/grub-probe.c_DEPENDENCIES.
5862 * conf/powerpc-ieee1275.rmk: Likewise.
5863
29d0928c 58642007-08-28 Robert Millan <rmh@aybabtu.com>
5865
5866 * util/i386/get_disk_name.c: New. Implement grub_util_get_disk_name()
5867 to tell grub-mkdevicemap how to name devices.
5868 * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
5869 feature).
5870
5871 * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
5872 util/i386/get_disk_name.c.
5873 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
5874 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
5875 util/ieee1275/get_disk_name.c.
5876
5877 * include/grub/util/misc.h: grub_util_get_disk_name() declaration.
5878
5879 * DISTLIST: Add util/i386/get_disk_name.c and
5880 util/ieee1275/get_disk_name.c.
5881
5882 * util/grub-mkdevicemap.c: Replace device naming logic with
5883 grub_util_get_disk_name() calls.
5884
5a0d3cca 58852007-08-20 Robert Millan <rmh@aybabtu.com>
5886
5887 * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
5888 (so that it works for both plural and singular quantities).
5889
8b72db2f 58902007-08-05 Robert Millan <rmh@aybabtu.com>
5891
5892 * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
5893 so that [xz] isn't taken into account when determining order.
5894
352466bf 58952007-08-02 Marco Gerards <marco@gnu.org>
5896
5897 * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
5898 `include/multiboot2.h', `include/grub/elfload.h',
5899 `include/multiboot.h', `include/grub/multiboot.h',
5900 `include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
5901 `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
5902 `kern/elf.c', `loader/multiboot_loader.c',
5903 `loader/multiboot_loader_normal.c', `loader/multiboot2.c',
5904 `loader/i386/pc/multiboot2.c',
5905 `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
5906 `util/i386/pc/grub-mkrescue.in'. Remove
5907 `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
5908 `include/grub/i386/pc/util/biosdisk.h' and
5909 `include/grub/powerpc/ieee1275/multiboot.h'.
5910
8f096014 59112007-08-02 Bean <bean123ch@gmail.com>
5912
5913 * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
5914 (ntfs_mod_SOURCES): New variable.
5915 (ntfs_mod_CFLAGS): Likewise.
5916 (ntfs_mod_LDFLAGS): Likewise.
5917
5918 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c.
5919 (grub_probe_SOURCES): Likewise.
5920 (grub_emu_SOURCES): Likewise.
5921
5922 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
5923 (grub_emu_SOURCES): Likewise.
5924
5925 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
5926 (grub_emu_SOURCES): Likewise.
f19dbdb7 5927
8f096014 5928 * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.
5929
5930 * fs/ntfs.c: New file.
5931
9959f7db 59322007-08-02 Bean <bean123ch@gmail.com>
5933
5934 * disk.h (grub_disk): Use NESTED_FUNC_ATTR.
5935
5936 * file.h (grub_file): Likewise.
5937
5938 * fshelp.h (grub_fshelp_read_file): Likewise.
5939
5940 * util/i386/pc/grub-setup.c (setup): Likewise.
5941 (save_first_sector): Likewise.
5942 (save_blocklists): Likewise.
f19dbdb7 5943
9959f7db 5944 * fs/affs.c (grub_affs_read_file): Likewise.
5945
5946 * fs/ext2.c (grub_ext2_read_file): Likewise.
5947
5948 * fs/fat.c (grub_fat_read_data): Likewise.
5949
5950 * fs/fshelp.c (grub_fshelp_read_file): Likewise.
5951
5952 * fs/hfs.c (grub_hfs_read_file): Likewise.
5953
5954 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
5955
5956 * fs/jfs.c (grub_jfs_read_file): Likewise.
5957
5958 * fs/minix.c (grub_minix_read_file): Likewise.
5959
5960 * fs/sfs.c (grub_sfs_read_file): Likewise.
5961
5962 * fs/ufs.c (grub_ufs_read_file): Likewise.
f19dbdb7 5963
9959f7db 5964 * fs/xfs.c (grub_xfs_read_file): Likewise.
5965
5966 * command/blocklist.c (read_blocklist): Likewise.
5967 (print_blocklist): Likewise.
5968
0a203f83 59692007-08-02 Marco Gerards <marco@gnu.org>
5970
5971 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
5972 `util/hostfs.c'.
5973
5974 * disk/host.c: New file.
5975
5976 * util/hostfs.c: Likewise.
5977
5978 * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
5979 return `GRUB_ERR_BAD_FS'.
5980 * fs/sfs.c (grub_sfs_mount): Likewise.
5981 * fs/xfs.c (grub_xfs_mount): Likewise.
5982
5983 * include/grub/disk.h (enum grub_disk_dev_id): Add
5984 `GRUB_DISK_DEVICE_HOST_ID'.
5985
5986 * util/grub-emu.c (main): Initialize and de-initialize hostfs.
5987
e5dfe777 59882007-07-24 Jerone Young <jerone@gmail.com>
5989
f19dbdb7 5990 * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
e5dfe777 5991 modules for compilation.
5992 * conf/powerpc-ieee1275.rmk: Likewise.
5993
5994 * include/multiboot.h: Move multiboot definitions to one file. Rename
5995 many definitions to not get grub specific.
5996 * include/multiboot2.h: Create header with multiboot 2 definitions.
5997 * include/grub/multiboot.h: Header for grub specific function
5998 prototypes and definitions.
5999 * include/grub/multiboot2.h: Likewise.
6000 * include/grub/multiboot_loader.h: Likewise.
6001 * include/grub/i386/pc/multiboot.h: Removed.
6002 * include/grub/powerpc/ieee1275/multiboot.h: Removed.
6003
6004 * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
6005 and 2 to allow for one multiboot and module commands.
6006 * loader/multiboot2.c: Add multiboot2 functionality.
6007 * loader/i386/pc/multiboot.c: Modify for new multiboot header location
6008 and definition names.
6009 * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
6010 2 functions.
6011 * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
6012 ieee1275 specific multiboot2 code.
6013
6014 * kern/i386/pc/startup.S: Change headers and definition names for
6015 multiboot. Add function grub_multiboot2_real_boot for multiboot 2.
6016
daf0f0ba 60172007-07-22 Robert Millan <rmh@aybabtu.com>
6018
6019 * geninitheader.sh: Process file specified in first parameter rather
6020 than hardcoding grub_modules_init.lst.
fe6b695a 6021 * geninit.sh: Likewise. Also, construct header name dynamically rather
daf0f0ba 6022 than hardcoding grub_modules_init.h.
6023
6024 * conf/common.rmk: Rename grub_modules_init.[ch] files associated with
6025 grub-emu to grub_emu_init.[ch]. Add rules to build analogous
6026 grub_probe_init.[ch] and grub_setup_init.[ch].
6027
6028 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
6029 grub_modules_init.h with grub_emu_init.h.
6030 (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
6031 grub_probe_init.[ch] files.
6032 * conf/i386-efi.rmk: Likewise.
6033 * conf/i386-pc.rmk: Likewise.
6034 (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
6035 grub_setup_init.[ch] files.
6036
6037 * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
6038 * util/grub-probe.c: Include grub_probe_init.h. Use grub_init_all()
6039 to initialize modules rather than a list of hardcoded functions.
6040 * util/i386/pc/grub-setup.c: Include grub_setup_init.h. Use
6041 grub_init_all() to initialize modules rather than a list of hardcoded
6042 functions.
6043
54cdc1cc 60442007-07-22 Robert Millan <rmh@aybabtu.com>
6045
6046 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
6047 GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
6048
ad0686cc 60492007-07-22 Robert Millan <rmh@aybabtu.com>
6050
6051 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
6052 GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
6053 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
6054 flag when running on SmartFirmware.
6055 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
6056 "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
6057 was set.
6058
6059 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
6060 Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
6061 rather than decreasing it.
6062
6063 * util/i386/pc/grub-setup.c (setup): When embedding is required, but
6064 there's not enough space to do it, fail in the same way as when it
6065 can't be done because there are no partitions.
6066
6067 * util/powerpc/ieee1275/grub-install.in: Improve error message shown
6068 when nvsetenv failed.
6069
969c02ec 60702007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
6071
6072 * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
6073 because this rule is automatically generated.
6074 (grub-mkrescue): Removed for the same reason as above.
6075
5a79f472 60762007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
6077
6078 Migrate to GNU General Public License Version 3.
f19dbdb7 6079
5a79f472 6080 * COPYING: Replaced with the plain text version of GPLv3.
6081
6082 * config.guess: Updated from gnulib.
6083 * config.sub: Likewise.
6084
6085 * geninit.sh: Output a GPLv3 copyright notice.
6086 * geninitheader.sh: Likewise.
6087 * genmodsrc.sh: Likewise.
6088 * gensymlist.sh.in: Likewise.
6089
6090 * boot/i386/pc/boot.S: Upgraded to GPLv3.
6091 * boot/i386/pc/diskboot.S: Likewise.
6092 * boot/i386/pc/pxeboot.S: Likewise.
6093 * commands/blocklist.c: Likewise.
6094 * commands/boot.c: Likewise.
6095 * commands/cat.c: Likewise.
6096 * commands/cmp.c: Likewise.
6097 * commands/configfile.c: Likewise.
6098 * commands/echo.c: Likewise.
6099 * commands/help.c: Likewise.
6100 * commands/ls.c: Likewise.
6101 * commands/search.c: Likewise.
6102 * commands/terminal.c: Likewise.
6103 * commands/test.c: Likewise.
6104 * commands/videotest.c: Likewise.
6105 * commands/i386/cpuid.c: Likewise.
6106 * commands/i386/pc/halt.c: Likewise.
6107 * commands/i386/pc/play.c: Likewise.
6108 * commands/i386/pc/reboot.c: Likewise.
6109 * commands/i386/pc/vbeinfo.c: Likewise.
6110 * commands/i386/pc/vbetest.c: Likewise.
6111 * commands/ieee1275/halt.c: Likewise.
6112 * commands/ieee1275/reboot.c: Likewise.
6113 * commands/ieee1275/suspend.c: Likewise.
6114 * disk/loopback.c: Likewise.
6115 * disk/lvm.c: Likewise.
6116 * disk/raid.c: Likewise.
6117 * disk/efi/efidisk.c: Likewise.
6118 * disk/i386/pc/biosdisk.c: Likewise.
6119 * disk/ieee1275/ofdisk.c: Likewise.
6120 * font/manager.c: Likewise.
6121 * fs/affs.c: Likewise.
6122 * fs/ext2.c: Likewise.
6123 * fs/fat.c: Likewise.
6124 * fs/fshelp.c: Likewise.
6125 * fs/hfs.c: Likewise.
6126 * fs/hfsplus.c: Likewise.
6127 * fs/iso9660.c: Likewise.
6128 * fs/jfs.c: Likewise.
6129 * fs/minix.c: Likewise.
6130 * fs/sfs.c: Likewise.
6131 * fs/ufs.c: Likewise.
6132 * fs/xfs.c: Likewise.
6133 * hello/hello.c: Likewise.
6134 * include/grub/acorn_filecore.h: Likewise.
6135 * include/grub/arg.h: Likewise.
6136 * include/grub/bitmap.h: Likewise.
6137 * include/grub/boot.h: Likewise.
6138 * include/grub/cache.h: Likewise.
6139 * include/grub/device.h: Likewise.
6140 * include/grub/disk.h: Likewise.
6141 * include/grub/dl.h: Likewise.
6142 * include/grub/elfload.h: Likewise.
6143 * include/grub/env.h: Likewise.
6144 * include/grub/err.h: Likewise.
6145 * include/grub/file.h: Likewise.
6146 * include/grub/font.h: Likewise.
6147 * include/grub/fs.h: Likewise.
6148 * include/grub/fshelp.h: Likewise.
6149 * include/grub/gzio.h: Likewise.
6150 * include/grub/hfs.h: Likewise.
6151 * include/grub/kernel.h: Likewise.
6152 * include/grub/loader.h: Likewise.
6153 * include/grub/lvm.h: Likewise.
6154 * include/grub/misc.h: Likewise.
6155 * include/grub/mm.h: Likewise.
6156 * include/grub/net.h: Likewise.
6157 * include/grub/normal.h: Likewise.
6158 * include/grub/parser.h: Likewise.
6159 * include/grub/partition.h: Likewise.
6160 * include/grub/pc_partition.h: Likewise.
6161 * include/grub/raid.h: Likewise.
6162 * include/grub/rescue.h: Likewise.
6163 * include/grub/script.h: Likewise.
6164 * include/grub/setjmp.h: Likewise.
6165 * include/grub/symbol.h: Likewise.
6166 * include/grub/term.h: Likewise.
6167 * include/grub/terminfo.h: Likewise.
6168 * include/grub/tparm.h: Likewise.
6169 * include/grub/types.h: Likewise.
6170 * include/grub/video.h: Likewise.
6171 * include/grub/efi/api.h: Likewise.
6172 * include/grub/efi/chainloader.h: Likewise.
6173 * include/grub/efi/console.h: Likewise.
6174 * include/grub/efi/console_control.h: Likewise.
6175 * include/grub/efi/disk.h: Likewise.
6176 * include/grub/efi/efi.h: Likewise.
6177 * include/grub/efi/pe32.h: Likewise.
6178 * include/grub/efi/time.h: Likewise.
6179 * include/grub/i386/linux.h: Likewise.
6180 * include/grub/i386/setjmp.h: Likewise.
6181 * include/grub/i386/types.h: Likewise.
6182 * include/grub/i386/efi/kernel.h: Likewise.
6183 * include/grub/i386/efi/loader.h: Likewise.
6184 * include/grub/i386/efi/time.h: Likewise.
6185 * include/grub/i386/pc/biosdisk.h: Likewise.
6186 * include/grub/i386/pc/boot.h: Likewise.
6187 * include/grub/i386/pc/chainloader.h: Likewise.
6188 * include/grub/i386/pc/console.h: Likewise.
6189 * include/grub/i386/pc/init.h: Likewise.
6190 * include/grub/i386/pc/kernel.h: Likewise.
6191 * include/grub/i386/pc/loader.h: Likewise.
6192 * include/grub/i386/pc/memory.h: Likewise.
6193 * include/grub/i386/pc/multiboot.h: Likewise.
6194 * include/grub/i386/pc/serial.h: Likewise.
6195 * include/grub/i386/pc/time.h: Likewise.
6196 * include/grub/i386/pc/vbe.h: Likewise.
6197 * include/grub/i386/pc/vbeblit.h: Likewise.
6198 * include/grub/i386/pc/vbefill.h: Likewise.
6199 * include/grub/i386/pc/vbeutil.h: Likewise.
6200 * include/grub/i386/pc/vga.h: Likewise.
6201 * include/grub/ieee1275/ieee1275.h: Likewise.
6202 * include/grub/ieee1275/ofdisk.h: Likewise.
6203 * include/grub/powerpc/libgcc.h: Likewise.
6204 * include/grub/powerpc/setjmp.h: Likewise.
6205 * include/grub/powerpc/types.h: Likewise.
6206 * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
6207 * include/grub/powerpc/ieee1275/console.h: Likewise.
6208 * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
6209 * include/grub/powerpc/ieee1275/kernel.h: Likewise.
6210 * include/grub/powerpc/ieee1275/loader.h: Likewise.
6211 * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
6212 * include/grub/powerpc/ieee1275/time.h: Likewise.
6213 * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
6214 * include/grub/sparc64/libgcc.h: Likewise.
6215 * include/grub/sparc64/setjmp.h: Likewise.
6216 * include/grub/sparc64/types.h: Likewise.
6217 * include/grub/sparc64/ieee1275/console.h: Likewise.
6218 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
6219 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
6220 * include/grub/sparc64/ieee1275/time.h: Likewise.
6221 * include/grub/util/biosdisk.h: Likewise.
6222 * include/grub/util/getroot.h: Likewise.
6223 * include/grub/util/lvm.h: Likewise.
6224 * include/grub/util/misc.h: Likewise.
6225 * include/grub/util/raid.h: Likewise.
6226 * include/grub/util/resolve.h: Likewise.
6227 * io/gzio.c: Likewise.
6228 * kern/device.c: Likewise.
6229 * kern/disk.c: Likewise.
6230 * kern/dl.c: Likewise.
6231 * kern/elf.c: Likewise.
6232 * kern/env.c: Likewise.
6233 * kern/err.c: Likewise.
6234 * kern/file.c: Likewise.
6235 * kern/fs.c: Likewise.
6236 * kern/loader.c: Likewise.
6237 * kern/main.c: Likewise.
6238 * kern/misc.c: Likewise.
6239 * kern/mm.c: Likewise.
6240 * kern/parser.c: Likewise.
6241 * kern/partition.c: Likewise.
6242 * kern/rescue.c: Likewise.
6243 * kern/term.c: Likewise.
6244 * kern/efi/efi.c: Likewise.
6245 * kern/efi/init.c: Likewise.
6246 * kern/efi/mm.c: Likewise.
6247 * kern/i386/dl.c: Likewise.
6248 * kern/i386/efi/init.c: Likewise.
6249 * kern/i386/efi/startup.S: Likewise.
6250 * kern/i386/pc/init.c: Likewise.
6251 * kern/i386/pc/lzo1x.S: Likewise.
6252 * kern/i386/pc/startup.S: Likewise.
6253 * kern/ieee1275/ieee1275.c: Likewise.
6254 * kern/powerpc/cache.S: Likewise.
6255 * kern/powerpc/dl.c: Likewise.
6256 * kern/powerpc/ieee1275/cmain.c: Likewise.
6257 * kern/powerpc/ieee1275/crt0.S: Likewise.
6258 * kern/powerpc/ieee1275/init.c: Likewise.
6259 * kern/powerpc/ieee1275/openfw.c: Likewise.
6260 * kern/sparc64/cache.S: Likewise.
6261 * kern/sparc64/dl.c: Likewise.
6262 * kern/sparc64/ieee1275/init.c: Likewise.
6263 * kern/sparc64/ieee1275/openfw.c: Likewise.
6264 * loader/efi/chainloader.c: Likewise.
6265 * loader/efi/chainloader_normal.c: Likewise.
6266 * loader/i386/efi/linux.c: Likewise.
6267 * loader/i386/efi/linux_normal.c: Likewise.
6268 * loader/i386/pc/chainloader.c: Likewise.
6269 * loader/i386/pc/chainloader_normal.c: Likewise.
6270 * loader/i386/pc/linux.c: Likewise.
6271 * loader/i386/pc/linux_normal.c: Likewise.
6272 * loader/i386/pc/multiboot.c: Likewise.
6273 * loader/i386/pc/multiboot_normal.c: Likewise.
6274 * loader/powerpc/ieee1275/linux.c: Likewise.
6275 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
6276 * normal/arg.c: Likewise.
6277 * normal/cmdline.c: Likewise.
6278 * normal/command.c: Likewise.
6279 * normal/completion.c: Likewise.
6280 * normal/execute.c: Likewise.
6281 * normal/function.c: Likewise.
6282 * normal/lexer.c: Likewise.
6283 * normal/main.c: Likewise.
6284 * normal/menu.c: Likewise.
6285 * normal/menu_entry.c: Likewise.
6286 * normal/misc.c: Likewise.
6287 * normal/parser.y: Likewise.
6288 * normal/script.c: Likewise.
6289 * normal/i386/setjmp.S: Likewise.
6290 * normal/powerpc/setjmp.S: Likewise.
6291 * normal/sparc64/setjmp.S: Likewise.
6292 * partmap/acorn.c: Likewise.
6293 * partmap/amiga.c: Likewise.
6294 * partmap/apple.c: Likewise.
6295 * partmap/gpt.c: Likewise.
6296 * partmap/pc.c: Likewise.
6297 * partmap/sun.c: Likewise.
6298 * term/gfxterm.c: Likewise.
6299 * term/terminfo.c: Likewise.
6300 * term/efi/console.c: Likewise.
6301 * term/i386/pc/console.c: Likewise.
6302 * term/i386/pc/serial.c: Likewise.
6303 * term/i386/pc/vesafb.c: Likewise.
6304 * term/i386/pc/vga.c: Likewise.
6305 * term/ieee1275/ofconsole.c: Likewise.
6306 * util/biosdisk.c: Likewise.
6307 * util/console.c: Likewise.
6308 * util/genmoddep.c: Likewise.
6309 * util/getroot.c: Likewise.
6310 * util/grub-emu.c: Likewise.
6311 * util/grub-mkdevicemap.c: Likewise.
6312 * util/grub-probe.c: Likewise.
6313 * util/lvm.c: Likewise.
6314 * util/misc.c: Likewise.
6315 * util/raid.c: Likewise.
6316 * util/resolve.c: Likewise.
6317 * util/update-grub.in: Likewise.
6318 * util/update-grub_lib.in: Likewise.
6319 * util/grub.d/00_header.in: Likewise.
6320 * util/grub.d/10_hurd.in: Likewise.
6321 * util/grub.d/10_linux.in: Likewise.
6322 * util/i386/efi/grub-install.in: Likewise.
6323 * util/i386/efi/grub-mkimage.c: Likewise.
6324 * util/i386/pc/grub-install.in: Likewise.
6325 * util/i386/pc/grub-mkimage.c: Likewise.
6326 * util/i386/pc/grub-mkrescue.in: Likewise.
6327 * util/i386/pc/grub-setup.c: Likewise.
6328 * util/i386/pc/misc.c: Likewise.
6329 * util/powerpc/ieee1275/grub-install.in: Likewise.
6330 * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
6331 * util/powerpc/ieee1275/misc.c: Likewise.
6332 * video/bitmap.c: Likewise.
6333 * video/video.c: Likewise.
6334 * video/i386/pc/vbe.c: Likewise.
6335 * video/i386/pc/vbeblit.c: Likewise.
6336 * video/i386/pc/vbefill.c: Likewise.
6337 * video/i386/pc/vbeutil.c: Likewise.
6338 * video/readers/tga.c: Likewise.
6339
3572d015 63402007-07-02 Robert Millan <rmh@aybabtu.com>
6341
6342 * conf/i386-efi.rmk: Replace obsolete reference to
6343 util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
6344 with util/getroot.c.
6345 * conf/powerpc-ieee1275.rmk: Likewise.
6346 * conf/sparc64-ieee1275.rmk: Likewise.
6347
6348 * util/grub-emu.c (main): Fix unchecked pointer handling.
6349
2c2a681b 63502007-07-02 Robert Millan <rmh@aybabtu.com>
6351
6352 * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
6353 invocation to fail, in order to support partition-less media.
6354
6355 * util/i386/pc/grub-install.in: Likewise.
6356
6357 * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
6358 which fs or partmap modules are needed (akin to its sister scripts).
6359
6360 Also use grub-probe to get rid of unportable /proc/mounts check.
6361
6362 Print the same informational message that the other scripts do, before
fe6b695a 6363 exiting.
2c2a681b 6364
6193defe 63652007-06-23 Robert Millan <rmh@aybabtu.com>
6366
fe6b695a 6367 * util/update-grub_lib.in (font_path): New function. Determine whether
6193defe 6368 a font file can be found and, if so, echo the GRUB path to it.
6369
6370 * util/update-grub.in: Handle multiple terminals depending on user
6371 input, platform availability and font file presence. Propagate
6372 variables of our findings to /etc/grub.d/ children.
6373
6374 * util/grub.d/00_header.in: Handle multiple terminals, based on
6375 environment setup by update-grub.
6376
eface1dc 63772007-06-23 Robert Millan <rmh@aybabtu.com>
6378
ba50d28f 6379 * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.
eface1dc 6380
bf697e28 63812007-06-21 Robert Millan <rmh@aybabtu.com>
6382
6383 * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
6384 indicate end of data section in kernel image.
6385 * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
6386 GRUB_KERNEL_MACHINE_DATA_END.
6387
6388 * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
6389 space for it.
6390 * kern/i386/efi/startup.S: Likewise.
6391
6392 * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
6393 during image generation. Implement --prefix option to override this
6394 patch.
6395 * util/i386/efi/grub-mkimage.c: Likewise.
6396
6397 * util/update-grub_lib.in (convert_system_path_to_grub_path): Split
6398 code to make path relative to its root into a separate function.
6399
6400 * util/i386/pc/grub-install.in: Use newly provided
6401 make_system_path_relative_to_its_root() to convert ${grubdir}, then
6402 pass the result to grub-install --prefix.
6403
baa574b4 64042007-06-13 Robert Millan <rmh@aybabtu.com>
6405
6406 * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
6407 DEFAULT_DEVICE_MAP.
6408 * util/grub-emu.c: Use above definitions from misc.h instead of
6409 defining them.
6410 * util/grub-mkdevicemap.c: Likewise.
6411 * util/i386/pc/grub-setup.c: Likewise.
6412 * util/grub-probe.c: Likewise.
6413 (probe): Abort with grub_util_error() when either
6414 grub_guess_root_device or grub_util_get_grub_dev fails.
6415
0215dcbf 64162007-06-12 Robert Millan <rmh@aybabtu.com>
6417
6418 * normal/command.c (grub_command_execute): Use NULL rather than 0 for
6419 "pager" assignment.
6420 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
6421 "pcdata".
6422 * util/grub-probe.c (probe): Likewise for "drive_name".
6423
8af2ab7b 64242007-06-11 Robert Millan <rmh@aybabtu.com>
6425
6426 * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
6427 not just the cdrom one.
6428
59d31694 64292007-06-11 Robert Millan <rmh@aybabtu.com>
6430
6431 * util/i386/pc/grub-mkrescue.in: Add "set -e".
6432 Add --pkglibdir=DIR option to override pkglibdir.
6433 Mention --image-type=TYPE in help output.
6434 Fix --grub-mkimage (it was a no-op).
fe6b695a 6435 Abort gracefully when no parameter is given.
59d31694 6436
7ee367e4 64372007-06-11 Robert Millan <rmh@aybabtu.com>
6438
6439 * util/i386/pc/grub-mkrescue.in: New file.
6440 * conf/i386-pc.rmk: Add its build declarations. Put it in bin_SCRIPTS.
6441 * Makefile.in: Handle bin_SCRIPTS.
6442
29b0ed46 64432007-06-10 Vesa Jaaskelainen <chaac@nic.fi>
6444
6445 * term/gfxterm.c (grub_gfxterm_init): Added support for specifying
6446 list of video modes.
6447
c0f90770 64482007-06-06 Robert Millan <rmh@aybabtu.com>
6449
6450 * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
6451 file doesn't exist, or if it is in a filesystem grub can't read.
6452
6453 * util/update-grub.in: Set fallback for GRUB_FS check to "unknown". Do
6454 not abort if GRUB_DRIVE could not be defined. Rearrange generated
6455 header comment to fit in 80 columns when the variables are resolved.
6456
6457 * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
6458 could be identified by update-grub. Remove redundant check for
fe6b695a 6459 unifont.pff existence (since convert_system_path_to_grub_path now
c0f90770 6460 handles that).
6461
fb36dc26 64622007-06-04 Robert Millan <rmh@aybabtu.com>
6463
6464 * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.
6465
6466 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.
6467
6468 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
6469
0c68c93e 64702007-06-04 Robert Millan <rmh@aybabtu.com>
6471
6472 * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.
6473
6474 * include/grub/partition.h: Declare grub_apple_partition_map_init and
6475 grub_apple_partition_map_fini.
6476
6477 * util/biosdisk.c
6478 (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
6479 to access >2 TiB disks).
6480
6481 Print disk->total_sectors with %llu instead of %lu, since this
6482 variable is always 64-bit (prevents wrong disk size from being displayed
6483 on either >2 TiB disk or big-endian CPU).
6484
6485 (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
6486 into a generic case that supports all (sane) partition maps.
6487
6488 Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
6489 breaks big-endian.
6490
6491 * util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
6492 and grub_apple_partition_map_fini() after that.
6493
0f23eb74 64942007-06-01 Robert Millan <rmh@aybabtu.com>
6495
6496 * util/update-grub.in: Export GRUB_CMDLINE_LINUX.
6497
6498 * util/grub.d/00_header.in: Only enable gfxterm when
6499 convert_system_path_to_grub_path() succeeds.
6500
42c71976 65012007-05-20 Robert Millan <rmh@aybabtu.com>
6502
6503 * util/update-grub_lib.in: New file.
6504 * DISTLIST: Add update-grub_lib.in.
6505 * conf/common.rmk: Generate update-grub_lib and install it in
6506 $(lib_DATA).
6507 * Makefile.in: Add install routine for $(lib_DATA).
6508
6509 * util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
6510 function provided by update-grub_lib to support arbitrary paths of
6511 unifont.pff.
6512 * util/update-grub.in: Use convert_system_path_to_grub_path() to
6513 initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
6514
5beb2291 65152007-05-19 Robert Millan <rmh@aybabtu.com>
6516
6517 * commands/i386/cpuid.c: New module.
6518 * DISTLIST: Add it.
6519 * conf/i386-efi.rmk: Enable cpuid.mod.
6520 * conf/i386-pc.rmk: Likewise.
6521
7262eca1 65222007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
6523
6524 * kern/disk.c (grub_disk_read): Check return value of
6525 grub_realloc().
6526
260ba823 65272007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
6528
6529 * util/getroot.c (grub_util_get_grub_dev): Support partitionable
6530 arrays.
6531 * disk/raid.c (grub_raid_open): Likewise.
6532
1ecb6cf2 65332007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
6534
6535 * util/biosdisk.c (linux_find_partition): Allocate real_dev on the
6536 stack instead of on the heap.
6537
6538 * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
6539 before doing a read on it.
6540
6541 * configure.ac: Only use -fno-stack-protector for the target
6542 environment.
f19dbdb7 6543
21c8cbb1 65442007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
6545
6546 * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
6547 __attribute_ ((unused)) to mode_type argument.
6548
6549 * util/getroot.c (grub_guess_root_device): Fix #endif.
f19dbdb7 6550
21c8cbb1 6551 * kern/misc.c (memcmp): Fix prototype.
6552
6553 * include/grub/partition.h [GRUB_UTIL]
6554 (grub_gpt_partition_map_init): Add prototype.
6555 (grub_gpt_partition_map_fini): Likewise.
6556
6557 * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
6558 at the right place.
6559
6560 * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
6561 (grub_fat_read_data): Likewise.
6562 (grub_fat_find_dir): Likewise.
6563
6564 * font/manager.c (find_glyph): Make table a const.
6565 (grub_font_get_glyph): Remove bitmap from if statement.
f19dbdb7 6566
849d55d3 65672007-05-16 Jeroen Dekkers <jeroen@dekkers.cx>
6568
6569 * util/getroot.c (grub_guess_root_device): Remove RAID and LVM
6570 code, first search for device in /dev/mapper, then in /dev.
6571 (grub_util_get_grub_dev): New function.
6572 * include/grub/util/getroot.h (grub_util_get_grub_dev): Add
6573 prototype.
6574 * util/grub-probe.c (probe): Remove check for RAID, call
6575 grub_util_get_grub_dev() instead of
6576 grub_util_biosdisk_get_grub_dev().
6577 * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
6578 grub_util_biosdisk_get_grub_dev().
6579 * util/i386/pc/grub-setup.c (main): Likewise.
6580
8fff7c2f 65812007-05-16 Robert Millan <rmh@aybabtu.com>
6582
6583 * DISTLIST: Update for the latest changes.
6584 * conf/i386-pc.rmk: Use the new paths for util/getroot.c,
6585 util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
6586 * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
6587 grub/util/biosdisk.h.
6588 * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
6589 grub/util/biosdisk.h.
6590
48e12b52 65912007-05-16 Robert Millan <rmh@aybabtu.com>
6592
6593 * util/grub.d/00_header.in: Set default gfxmode to `640x480'.
6594
46b9d128 65952007-05-16 Robert Millan <rmh@aybabtu.com>
6596
6597 * util/i386/efi/grub-install.in: New.
6598 * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
6599 newly added grub-install.
6600 * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
6601 include.
6602 * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
6603 grub/util/biosdisk.h.
6604 * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
6605 grub/util/biosdisk.h.
6606
2d1a40a9 66072007-05-16 Robert Millan <rmh@aybabtu.com>
6608
6609 * include/grub/i386/pc/util/biosdisk.h: Moved to ...
6610 * include/grub/util/biosdisk.h: ... here.
6611 * util/i386/pc/biosdisk.c: Moved to ...
6612 * util/biosdisk.c: ... here.
6613 * util/i386/pc/getroot.c: Moved to ...
6614 * util/getroot.c: ... here.
6615 * util/i386/pc/grub-mkdevicemap.c: Moved to ...
6616 * util/grub-mkdevicemap.c: ... here.
6617 * util/i386/pc/grub-probe.c: Moved to ...
6618 * util/grub-probe.c: ... here.
6619
9e26e3bc 66202007-05-15 Robert Millan <rmh@aybabtu.com>
6621
6622 * util/update-grub.in: Remove duplicated line in grub.cfg header
6623 message.
6624
57f96397 66252007-05-13 Robert Millan <rmh@aybabtu.com>
6626
6627 * util/update-grub.in: Fix a few assumptions about the devices holding
6628 /, /boot and /boot/grub being the same.
6629 * util/grub.d/00_header.in: Likewise.
6630 * util/grub.d/10_hurd.in: Likewise.
6631 * util/grub.d/10_linux.in: Likewise.
6632
6633 * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
6634 patterns. Use that to define the `.old' suffix as older than `'.
6635
6636 * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.
6637
6638 * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
6639 the grub.cfg header message.
6640
2e610d62 66412007-05-11 Robert Millan <rmh@aybabtu.com>
6642
6643 * util/update-grub.in: Create device.map if it doesn't already exist,
6644 before attempting to run grub-probe.
6645 Check for grub-probe and grub-mkdevicemap with the same code
6646 grub-install is using.
6647 Remove test mode.
6648
3f6a10ef 66492007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
6650
6651 * Makefile.in: Add the datarootdir autoconf variable.
6652
02e7b75e 66532007-05-09 Robert Millan <rmh@aybabtu.com>
6654
6655 * util/i386/pc/grub-probe.c (probe): When detecting partition map,
f19dbdb7 6656 fail gracefully if dev->disk->partition == NULL.
02e7b75e 6657
75f396cc 66582007-05-07 Robert Millan <rmh@aybabtu.com>
6659
6660 * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
6661 determine partition map module.
6662 * util/i386/pc/grub-install.in: Use this feature to decide which
6663 partition module to load, instead of hardcoding pc and gpt.
6664
da65cb36 66652007-05-07 Robert Millan <rmh@aybabtu.com>
6666
6667 * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
6668 source directory differs from build directory.
6669
b57d6a91 66702007-05-05 Robert Millan <rmh@aybabtu.com>
6671
6672 * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
6673 initialisation.
6674
509d00f1 66752007-05-05 Robert Millan <rmh@aybabtu.com>
6676
6677 * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
6678
c48f23ef 66792007-05-05 Robert Millan <rmh@aybabtu.com>
6680
6681 * util/grub.d/10_linux.in: Allow the administrator to insert Linux
6682 command-line arguments via ${GRUB_CMDLINE_LINUX}.
6683
20b97658 66842007-05-05 Robert Millan <rmh@aybabtu.com>
6685
6686 * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
6687 (grub_probe_SOURCES): Likewise.
6688 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
6689 GPT and initialize dos_part and bsd_part accordingly.
6690 * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
6691 install_bsd_part.
6692 (main): Activate gpt module for use during partition identification,
6693 and deactivate it afterwards.
6694 * util/i386/pc/grub-install.in: Add gpt module to core.img.
6695 * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
6696 partition identification, and deactivate it afterwards.
6697
99123174 66982007-05-05 Robert Millan <rmh@aybabtu.com>
6699
6700 * term/i386/pc/console.c (grub_console_fini): Call
6701 grub_term_set_current() before grub_term_unregister().
6702
ebd97f6e 67032007-05-04 Robert Millan <rmh@aybabtu.com>
6704
6705 * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
6706 util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
6707 * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS
6708 and update-grub_DATA.
6709 * conf/common.rmk: Build and install update-grub components.
6710 * conf/common.mk: Regenerate.
6711 * util/update-grub.in: New. Core of update-grub.
6712 * util/grub.d/00_header.in: New. Generates grub.cfg header.
6713 * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd.
6714 * util/grub.d/10_linux.in: New. Generates boot entries for Linux.
6715 * util/grub.d/README: New. Document grub.d directory layout.
6716
b06a264d 67172007-05-01 Robert Millan <rmh@aybabtu.com>
6718
6719 * util/grub-emu.c: Move initialization functions
6720 grub_util_biosdisk_init() and grub_init_all() before
6721 grub_util_biosdisk_get_grub_dev(), which relies on them.
6722
41f0050e 67232007-04-19 Robert Millan <rmh@aybabtu.com>
6724
6725 * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
6726 it is used later.
6727
04582bb3 67282007-04-18 Jerone Young <jerone@gmail.com>
6729
f19dbdb7 6730 * kernel/elf.c: Add missing parenthesis for conditional statement
04582bb3 6731 stanza.
6732
08db4632 67332007-04-10 Jerone Young <jerone@gmail.com>
49892fdf 6734
08db4632 6735 * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
6736 continue on and look for device node with real device name.
6737
801b76be 67382007-04-10 Jerone Young <jerone@gmail.com>
f19dbdb7 6739
fe6b695a 6740 * configure.ac: Add argument for autoconf to use transformation
1d543c3e 6741 ability.
6742 * Makefile.in: Add autoconf package transformation code.
6743 * util/i386/pc/grub-install.in: Likewise.
6744 * util/powerpc/ieee1275/grub-install.in: Likewise.
6745
6795c4e1 67462007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
6747
6748 * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
6749 (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
6750 (EXT2_REVISION): Likewise.
6751 (EXT2_INODE_SIZE): Likewise.
6752 (struct grub_ext2_block_group): Added a missing member
6753 "used_dirs".
6754 (grub_ext2_read_inode): Divide by the inode size in a superblock
6755 instead of 128 to obtain INODES_PER_BLOCK.
6756 Use the macro EXT2_INODE_SIZE instead of directly using
6757 SBLOCK->INODE_SIZE.
6758
d70af616 67592007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
6760
6761 * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
6762 superblock instead of the structure size to compute an
6763 offset. This fixes the problem that GRUB could not read a
6764 filesystem when inode size is different from 128-byte.
6765
3b801603 67662007-03-05 Marco Gerards <marco@gnu.org>
6767
6768 * normal/main.c (read_config_file): When "menu" is not set, create
6769 an initial context.
6770
4785bfe4 67712007-02-21 Hollis Blanchard <hollis@penguinppc.org>
6772
6773 * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
6774 (HEAP_LIMIT): New macro.
6775 (grub_claim_heap): Claim memory up to `heaplimit'.
6776
a0cbb023 67772007-02-21 Hollis Blanchard <hollis@penguinppc.org>
6778
6779 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
6780 * kern/powerpc/ieee1275/init.c (_end): Add declaration.
6781 (_start): Likewise.
6782 (grub_arch_modules_addr): Return address after `_end'.
6783 * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
6784 (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
6785 (add_segments): Calculate `_end' from phdr size and location.
6786 (ALIGN_UP): Moved to ...
6787 * include/grub/misc.h: here.
6788 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
6789 New macro.
6790 (GRUB_IEEE1275_MODULE_BASE): Removed.
6791
fd7d8eba 67922007-02-20 Hollis Blanchard <hollis@penguinppc.org>
6793
6794 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
6795 loop boundary.
6796
9b09e6fc 67972007-02-20 Hollis Blanchard <hollis@penguinppc.org>
6798
6799 * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
6800 All users updated.
6801 (grub_elf64_load_hook_t): Likewise.
6802 * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
6803 debug output.
6804
3ce27299 68052007-02-20 Hollis Blanchard <hollis@penguinppc.org>
6806
6807 * kern/mm.c: Update copyright.
6808 (grub_mm_debug): Correct syntax error.
6809 (grub_mm_dump_free): New function.
6810 (grub_debug_free): Call `grub_free'.
6811 * include/grub/mm.h: Update copyright.
6812 (grub_mm_dump_free): Add declaration.
6813
077d5fee 68142007-02-12 Hollis Blanchard <hollis@penguinppc.org>
6815
6816 * include/grub/ieee1275/ieee1275.h: Update copyright.
6817 * kern/powerpc/ieee1275/init.c: Likewise.
6818 * kern/powerpc/ieee1275/openfw.c: Likewise.
6819
6820 * loader/powerpc/ieee1275/linux.c: Likewise.
6821 * include/grub/elfload.h: Likewise.
6822 * kern/elf.c: Likewise.
6823 (grub_elf32_load): Pass `base' and `size' parameters. Update all
6824 callers.
6825 (grub_elf64_load): Likewise.
6826 (grub_elf32_load_segment): Move to a nested function.
6827 (grub_elf64_load_segment): Likewise.
6828
dc946850 68292007-02-12 Hollis Blanchard <hollis@penguinppc.org>
6830
6831 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
6832 prototype.
6833 * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
6834 (grub_heap_len): Likewise.
6835 (HEAP_SIZE): New macro.
6836 (grub_claim_heap): New function.
6837 (grub_machine_init): Don't claim heap directly. Call
6838 `grub_claim_heap'.
6839 * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
6840 (grub_available_iterate): New function.
6841
baa2a121 68422007-02-03 Thomas Schwinge <tschwinge@gnu.org>
6843
6844 * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
6845 * configure.ac: Use it for testing the HOST and TARGET compilers.
6846
4fe9862e 68472006-12-13 Thomas Schwinge <tschwinge@gnu.org>
6848
6849 * Makefile.in (enable_grub_emu): New variable.
6850 * configure.ac (--enable-grub-emu): New option.
6851 Do the checks for (n)curses only if `--enable-grub-emu' is requested.
6852 * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
6853 * conf/i386-pc.rmk: Likewise.
6854 * conf/powerpc-ieee1275.rmk: Likewise.
6855 * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
6856
a8aa5762 68572006-12-12 Marco Gerards <marco@gnu.org>
6858
6859 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
6860
6861 * kern/env.c (grub_env_unset): Don't free the member `value' when
6862 the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
6863 pointer.
6864
6865 * normal/main.c (current_menu): Removed.
6866 (free_menu): Unset the `menu' environment variable.
6867 (grub_normal_menu_addentry): Make use of the environment variable
6868 `menu', instead of using the global `current_menu'. Allocate
6869 memory for the sourcecode of this entry.
6870 (read_config_file): New argument `nested', changed all callers.
6871 Only in the case of a new context, initialize a new menu. Set the
6872 `menu' environment variable.
6873 (grub_normal_execute): Don't set and unset the environment
6874 variable `menu' here anymore. Only free the menu when leaving the
6875 context.
6876
6877 * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
6878 leak.
6879
957b3a3e 68802006-12-11 Marco Gerards <marco@gnu.org>
6881
6882 * normal/menu_entry.c (run): Fix off by one bug so the last line
6883 is executed. Move the loader check to outside the loop.
6884
ef875714 68852006-12-08 Hollis Blanchard <hollis@penguinppc.org>
6886
6887 * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
6888
4e739985 68892006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
6890
6891 * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
6892 the number of sectors. Reported by Andrey Shuvikov
6893 <mr_hyro@yahoo.com>.
f19dbdb7 6894
790707f2 68952006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
6896
6897 * kern/disk.c (grub_disk_read): When there is a read error, always
6898 try to read only the necessary data.
f19dbdb7 6899
790707f2 6900 * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
6901 disk/raid.c.
6902 * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
6903 prototype.
6904 [GRUB_UTIL] (grub_raid_fini): Likewise.
6905 [GRUB_UTIL] (grub_lvm_init): Likewise.
f19dbdb7 6906 [GRUB_UTIL] (grub_lvm_fini): Likewise.
790707f2 6907 * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
6908 RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
6909 (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
6910 and grub_raid_fini().
f19dbdb7 6911
03e58196 69122006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
6913
6914 * include/grub/types.h (__unused): Rename to UNUSED.
6915 * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
6916 (grub_elf64_size): Likewise.
f19dbdb7 6917
ae4f23bf 69182006-11-03 Hollis Blanchard <hollis@penguinppc.org>
6919
6920 * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
6921 grub_error_push and grub_error_pop in the error-handling path.
6922 (grub_elf32_load_segment): Only call grub_file_read with non-zero
6923 length.
6924
2166cc83 69252006-11-03 Hollis Blanchard <hollis@penguinppc.org>
6926
6927 * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
6928 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
6929 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6930 (kernel_elf_SOURCES): Likewise.
6931 * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
6932 * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
6933 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
6934 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
6935 * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
6936 (elf_mod_SOURCES): New variable.
6937 (elf_mod_CFLAGS): Likewise.
6938 (elf_mod_LDFLAGS): Likewise.
6939 * include/grub/types.h (__unused): New macro.
6940 * include/grub/elfload.h: New file.
6941 * kern/elf.c: Likewise.
6942 * loader/powerpc/ieee1275/linux.c: Include elfload.h.
6943 (ELF32_LOADMASK): New macro.
6944 (ELF64_LOADMASK): Likewise.
6945 (vmlinux): Removed.
6946 (grub_linux_load32): New function.
6947 (grub_linux_load64): Likewise.
6948 (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
6949 Use grub_elf_t instead of grub_file_t.
6950
a09d5aa5 69512006-11-02 Hollis Blanchard <hollis@penguinppc.org>
6952
6953 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
6954 `catch_result' to struct set_color_args.
6955
d976fc51 69562006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
6957
6958 * normal/menu.c: Include grub/script.h.
6959 * normal/menu_entry.c: Likewise.
6960 * include/grub/normal.h: Do not include grub/script.h.
6961
67507549 69622006-10-27 Hollis Blanchard <hollis@penguinppc.org>
6963
6964 * kern/disk.c (grub_disk_read): Correct debug printf formatting.
6965
69203a99 69662006-10-27 Hollis Blanchard <hollis@penguinppc.org>
6967
6968 * kern/disk.c (grub_disk_open): Print debug messages when opening a
6969 disk.
6970 (grub_disk_close): Print debug messages when closing a disk.
6971 (grub_disk_read): Print debug messages when disk read fails.
6972 * kern/fs.c (grub_fs_probe): Print debug messages when detecting
6973 filesystem type.
6974 * kern/partition.c: Include misc.h.
6975 (grub_partition_iterate): Print debug messages when detecting
6976 partition type.
6977
e2b8278c 69782006-10-27 Hollis Blanchard <hollis@penguinppc.org>
6979
6980 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
6981 is negative.
6982 * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
6983
97b2f2ff 69842006-10-26 Hollis Blanchard <hollis@penguinppc.org>
6985
6986 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
6987 Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
6988
6555d655 69892006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
6990
6991 * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
6992 instead of sizeof(lv). Patch by Michael Guntsche.
6993
4d42b77f 69942006-10-18 Jeroen Dekkers <jeroen@dekkers.cx>
6995
6996 * disk/lvm.c: Rename VGS to VG_LIST.
6997 (grub_lvm_iterate): Change VGS->LV to VG-LV.
6998 (grub_lvm_open): Likewise.
6999 Thanks to Michael Guntsche for finding this bug.
7000
5d74d927 70012006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
7002
7003 * configure.ac (AC_INIT): Bumped to 1.95.
7004
a1bb27e4 70052006-10-14 Robert Millan <rmh@aybabtu.com>
7006
7007 * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
7008 with "/dev/.static/dev/md".
7009
e0994b8b 70102006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
7011
7012 * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
7013 DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
7014 DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
7015 DRIVE_NAME are always freed.
7016
7017 * util/i386/pc/biosdisk.c (make_device_name): Add one into
7018 DOS_PART, as a DOS partition is counted from one instead of zero
7019 now. Reported by Robert Millan.
7020
ddd5cee9 70212006-10-14 Robert Millan <rmh@aybabtu.com>
7022
7023 * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
7024 grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
7025 * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
7026 string returned by grub_guess_root_device.
7027 * util/i386/pc/grub-setup.c: Likewise.
7028 * util/i386/pc/grub-probefs.c: Likewise.
7029
7030 * util/i386/pc/grub-probefs.c: Rename to ...
7031 * util/i386/pc/grub-probe.c: ... this.
7032 * DISTLIST: Remove grub-probefs, add grub-probe.
7033 * conf/i386-efi.rmk: Likewise.
7034 * conf/i386-pc.rmk: Likewise.
7035 * util/i386/pc/grub-install.in: Likewise.
7036
7037 * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
7038 choose which information we want to print.
7039
2b002173 70402006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
7041
7042 * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
7043 include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
7044 include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
7045 include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
7046 video/readers/tga.c and video/i386/pc/vbeutil.c.
7047
70482006-10-14 Jeroen Dekkers <jeroen@dekkers.cx>
7049
7050 Added support for RAID and LVM.
f19dbdb7 7051
2b002173 7052 * disk/lvm.c: New file.
7053 * disk/raid.c: Likewise.
7054 * include/grub/lvm.h: Likewise.
f19dbdb7 7055 * include/grub/raid.h: Likewise.
2b002173 7056 * include/grub/util/lvm.h: Likewise.
7057 * include/grub/util/raid.h: Likewise.
7058 * util/lvm.c: Likewise.
7059 * util/raid.c: Likewise.
7060
7061 * include/grub/disk.h (grub_disk_dev_id): Add
7062 GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
7063 (grub_disk_get_size): New prototype.
7064 * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
7065 returns a partition.
7066 (grub_disk_get_size): New function.
f19dbdb7 7067
2b002173 7068 * kern/i386/pc/init.c (make_install_device): Copy the prefix
7069 verbatim if grub_install_dos_part is -2.
7070
7071 * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
7072 and LVM devices.
7073
7074 * util/i386/pc/grub-setup.c (setup): New argument
7075 MUST_EMBED. Force embedding of GRUB when the argument is
7076 true. Close FILE before returning.
7077 (main): Add support for RAID and LVM.
f19dbdb7 7078
2b002173 7079 * conf/common.rmk: Add RAID and LVM modules.
7080 * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
7081 util/lvm.c.
7082 (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
7083
7084 * kern/misc.c (grub_strstr): New function.
7085 * include/grub/misc.h (grub_strstr): New prototype.
7086
050548d0 70872006-10-10 Tristan Gingold <tristan.gingold@bull.net>
7088
7089 * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
7090
da849d2d 70912006-10-05 Tristan Gingold <tristan.gingold@bull.net>
7092
7093 * kern/misc.c (grub_strtoull): Guess the base only if not
7094 specified.
7095
97b2f2ff 70962006-10-01 Hollis Blanchard <hollis@penguinppc.org>
4f0acd39 7097
7098 * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
7099 PowerMac support.
7100
97b2f2ff 71012006-10-01 Hollis Blanchard <hollis@penguinppc.org>
fba51f48 7102
7103 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
7104
7105 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
7106 Remove `flags' argument. All callers changed.
7107 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
7108 (IEEE1275_IHANDLE_INVALID): New variable.
7109 (IEEE1275_CELL_INVALID): New variable.
7110 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
7111 grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
7112 grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
7113 grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
7114 grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
7115 codes from Open Firmware. All callers updated.
7116 (grub_ieee1275_next_property): Directly return Open Firmware return
7117 code.
7118 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
7119 Standardize error checking from `grub_ieee1275_get_property'.
7120 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
7121 `devalias' to `aliases'. Correct comments. Consolidate error paths.
7122
97b2f2ff 71232006-10-01 Hollis Blanchard <hollis@penguinppc.org>
cc6d3df3 7124
7125 * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
7126 `instance_to_package_args' to `instance_to_path_args'.
7127
7128 * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
7129 `grub_ieee1275_chosen'.
7130
7131 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
7132 `grub_ieee1275_interpret'.
7133
97b2f2ff 71342006-09-25 Hollis Blanchard <hollis@penguinppc.org>
02bb8acc 7135
7136 * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
7137
97b2f2ff 71382006-09-25 Hollis Blanchard <hollis@penguinppc.org>
663b72f0 7139
7140 * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
7141 (__cmpdi): Likewise.
7142
7143 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
7144 `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type
7145 `grub_ssize_t'.
7146
02bb8acc 7147 * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
663b72f0 7148
7149 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
7150 to type `grub_ssize_t'.
7151 (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
7152
7f9a8531 71532006-09-22 Marco Gerards <marco@gnu.org>
7154
7155 * normal/script.c (grub_script_create_cmdmenu): Skip leading
7156 newlines.
7157
b5ef1102 71582006-09-22 Marco Gerards <marco@gnu.org>
7159
7160 * commands/echo.c: New file.
7161
7162 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
7163
7164 * conf/common.rmk (echo_mod_SOURCES): New variable.
7165 (echo_mod_CFLAGS): Likewise.
7166 (echo_mod_LDFLAGS): Likewise.
7167
2cff3677 71682006-09-22 Marco Gerards <marco@gnu.org>
7169
7170 * normal/main.c (get_line): Malloc memory instead of using
7171 preallocated memory. Removed the arguments `cmdline' and
7172 `max_len'. Updated all callers.
7173
6ba4688b 71742006-09-22 Marco Gerards <marco@gnu.org>
7175
7176 * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
7177 (normal_mod_DEPENDENCIES): Likewise.
7178
7179 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
7180 (normal_mod_DEPENDENCIES): Likewise.
7181
7182 * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
7183
e02ac02c 71842006-09-22 Johan Rydberg <jrydberg@gnu.org>
7185
7186 * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
7187 programs.
7188 * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
7189 (normal_mod_DEPENDENCIES): Likewise.
7190 * conf/i386-pc.mk: Regenerate.
7191 * conf/i386-efi.mk: Likewise
7192 * conf/common.mk: Likewise.
7193 * conf/powerpc-ieee1275.mk: Likewise.
7194 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 7195
8d252e44 71962006-09-22 Robert Millan <rmh@aybabtu.com>
7197
7198 Sync with i386 version.
7199 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
7200 * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
7201
209bf7ac 72022006-09-21 Robert Millan <rmh@aybabtu.com>
7203
7204 Import from GRUB Legacy (lib/device.c):
7205 * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
7206 (init_device_map) [__linux__]: Add support for I2O devices.
7207
6b146090 72082006-09-14 Marco Gerards <marco@gnu.org>
7209
7210 * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
7211 `-melf_i386'.
7212
e38600a8 72132006-09-14 Robert Millan <rmh@aybabtu.com>
2952da5d 7214
7215 * util/i386/pc/grub-install.in: Skip menu.lst when removing
7216 /boot/grub/*.lst.
78fa1790 7217
2952da5d 7218 * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
6b146090 7219
2952da5d 7220 * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
7221 before adding it to device.map.
7222
01b82a64 72232006-08-15 Johan Rydberg <jrydberg@gnu.org>
7224
fe6b695a 7225 * genmk.rb: Let GCC generate dependencies the first time it
01b82a64 7226 compiles a file; using the -MD option.
7227 * conf/common.mk: Regenerate.
7228 * conf/i386-pc.mk: Likewise.
7229 * conf/i386-efi.mk: Likewise.
7230 * conf/powerpc-ieee1275.mk: Likewise.
7231 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 7232
1064790d 72332006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
7234
7235 Move the prototypes of grub_setjmp and grub_longjmp to
7236 cpu/setjmp.h, so that each architecture may specify different
7237 attributes.
f19dbdb7 7238
1064790d 7239 * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
7240 (grub_longjmp): Likewise.
7241 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
7242 (grub_longjmp): Likewise.
7243 * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
7244 (grub_longjmp): Likewise.
7245
7246 * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
7247 [!GRUB_UTIL] (grub_longjmp): Removed.
7248
29dda3ed 72492006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
7250
7251 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
7252 "color!" method does not return any value.
7253
ad2a06ed 72542006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
7255
7256 * include/grub/bitmap.h: New file.
7257
7258 * include/grub/i386/pc/vbeutil.h: Likewise.
7259
7260 * video/bitmap.c: Likewise.
7261
7262 * video/readers/tga.c: Likewise.
7263
7264 * video/i386/pc/vbeutil.c: Likewise.
7265
7266 * commands/videotest.c: Code cleanup and updated to reflect to new
7267 video API.
7268
7269 * term/gfxterm.c: Likewise.
7270
7271 * video/video.c: Likewise.
7272
7273 * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
7274 (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
7275 (bitmap_mod_SOURCES): New entry.
7276 (bitmap_mod_CFLAGS): Likewise.
7277 (bitmap_mod_LDFLAGS): Likewise.
7278 (tga_mod_SOURCES): Likewise.
7279 (tga_mod_CFLAGS): Likewise.
7280 (tga_mod_LDFLAGS): Likewise.
7281
7282 * include/grub/video.h (grub_video_blit_operators): New enum type.
7283 (grub_video_render_target): Changed as forward declaration and moved
7284 actual definition to be video driver specific.
7285 (grub_video_adapter.blit_bitmap): Added blitting operator.
7286 (grub_video_adapter.blit_render_target): Likewise.
7287 (grub_video_blit_bitmap): Likewise.
7288 (grub_video_blit_render_target): Likewise.
7289
7290 * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
7291 driver specific render target definition.
7292 (grub_video_vbe_map_rgba): Added driver internal helper.
7293 (grub_video_vbe_unmap_color): Updated to use
7294 grub_video_i386_vbeblit_info.
7295 (grub_video_vbe_get_video_ptr): Likewise.
7296
7297 * include/grub/i386/pc/vbeblit.h
7298 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
7299 grub_video_i386_vbeblit_info.
7300 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
7301 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
7302 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
7303 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
7304 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
7305 (grub_video_i386_vbeblit_index_index): Likewise.
7306 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
7307 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
7308 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
7309 (grub_video_i386_vbeblit_blend): Added generic blitter for blend
7310 operator.
7311 (grub_video_i386_vbeblit_replace): Added generic blitter for replace
7312 operator.
7313
7314 * video/i386/pc/vbeblit.c: Updated to reflect changes on
7315 include/grub/i386/pc/vbeblit.h.
7316
7317 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
7318 Updated to use grub_video_i386_vbeblit_info.
7319 (grub_video_i386_vbefill_R8G8B8): Likewise.
7320 (grub_video_i386_vbefill_index): Likewise.
7321 (grub_video_i386_vbefill): Added generic filler.
7322
7323 * video/i386/pc/vbefill.c: Updated to reflect changes on
7324 include/grub/i386/pc/vbefill.h.
7325
7326 * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
7327 grub_video_i386_vbeblit_info.
7328 (grub_video_vbe_unmap_color): Likewise.
7329 (grub_video_vbe_blit_glyph): Likewise.
7330 (grub_video_vbe_scroll): Likewise.
7331 (grub_video_vbe_draw_pixel): Removed function.
7332 (grub_video_vbe_get_pixel): Likewise.
7333 (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
7334 updated code to use it.
7335 (common_blitter): Added common blitter for render target and bitmap.
7336 (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
7337 (grub_video_vbe_blit_render_target): Likewise.
7338
bc8c036d 73392006-07-30 Johan Rydberg <jrydberg@gnu.org>
7340
7341 * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
7342 is in text mode if there is no console control protocol instance
7343 available.
7344
684a8eff 73452006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
7346
7347 * include/grub/video.h: Code cleanup.
7348
7349 * include/grub/i386/pc/vbe.h: Likewise.
7350
7351 * video/i386/pc/vbe.c: Likewise.
7352
7353 * video/i386/pc/vbeblit.c: Likewise.
7354
7355 * video/i386/pc/vbefill.c: Likewise.
7356
7357 * video/video.c: Likewise. Also added more comments.
7358
5915059b 73592006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
7360
7361 * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
7362 (struct grub_biosdisk_dap): Likewise.
7363
7364 * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected
7365 linkage settings for all functions.
7366
90ce5d56 73672006-07-12 Marco Gerards <marco@gnu.org>
7368
7369 * configure.ac (--enable-mm-debug): Fix typo.
7370
7371 * genkernsyms.sh.in: Use proper quoting for `CC'.
7372
43e7f879 73732006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
7374
7375 * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
7376 (normal_mod_ASFLAGS): Remove "-m32".
7377
4889bdec 73782006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
7379
7380 * util/misc.c: Include config.h.
7381 [!HAVE_MEMALIGN]: Do not include malloc.h.
7382 (grub_memalign): Use posix_memalign, if present. Then, use
7383 memalign, if present. Otherwise, emit an error.
7384
7385 * util/grub-emu.c: Do not include malloc.h.
7386
7387 * include/grub/util/misc.h: Include unistd.h. This is required for
7388 FreeBSD, because off_t is defined in unistd.h. Reported by Harley
7389 D. Eades III <hde@foobar-qux.org>.
7390
7391 * configure.ac (AC_GNU_SOURCE): Added.
7392 (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
7393 type.
7394
fd39d4da 73952006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
7396
7397 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
7398 ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
7399
b786f3b5 74002006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
7401
7402 * include/grub/types.h (grub_host_addr_t): Rename to
7403 grub_target_addr_t.
7404 (grub_host_off_t): Rename to grub_target_off_t.
7405 (grub_host_size_t): Rename to grub_target_size_t.
7406 (grub_host_ssize_t): Rename to grub_target_ssize_t.
7407 Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
7408
7409 * include/grub/kernel.h (struct grub_module_header): Change type
7410 of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
7411 (grub_module_info): Likewise.
f19dbdb7 7412
051988bb 74132006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
7414
7415 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
7416 of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
7417 Velazquez <jesus.velazquez@gmail.com>.
7418
deae281b 74192006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
7420
7421 Count partitions from 1 instead of 0 in the string representation
7422 of partitions. Still use 0-based internally.
f19dbdb7 7423
deae281b 7424 * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
7425 (sun_partition_map_iterate): Use grub_partition_t instead of
7426 struct grub_partition *. Cast DESC->START_CYLINDER to
7427 grub_uint64_t after converting the endian.
7428 (sun_partition_map_probe): Subtract 1 for PARTNUM.
7429 (sun_partition_map_get_name): Add 1 to P->INDEX.
7430
7431 * partmap/pc.c (grub_partition_parse): Subtract 1 for
7432 PCDATA->DOS_PART.
7433 (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
7434
7435 * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
7436 zero instead of one.
7437 (gpt_partition_map_probe): Subtract 1 for PARTNUM.
7438 (gpt_partition_map_get_name): Add 1 into P->INDEX.
7439
7440 * partmap/apple.c (apple_partition_map_iterate): Change the type
7441 of POS to unsigned.
7442 (apple_partition_map_probe): Subtract 1 for PARTNUM.
7443 (apple_partition_map_get_name): Add 1 into P->INDEX.
7444
7445 * partmap/amiga.c (amiga_partition_map_iterate): Change the type
7446 of POS to unsigned.
7447 (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
7448 calculate the offset of a partition.
7449 (amiga_partition_map_probe): Subtract 1 for PARTNUM.
7450 (amiga_partition_map_get_name): Add 1 into P->INDEX.
7451
7452 * partmap/acorn.c (acorn_partition_map_find): Change the type of
7453 SECTOR to grub_disk_addr_t.
7454 (acorn_partition_map_iterate): Likewise.
7455 (acorn_partition_map_probe): Subtract 1 for PARTNUM.
7456 Change the type of SECTOR to grub_disk_addr_t. Declare P on the
7457 top.
7458 (acorn_partition_map_get_name): Add 1 into P->INDEX.
7459
7460 * kern/i386/pc/init.c (make_install_device): Add 1 into
7461 GRUB_INSTALL_DOS_PART.
7462
7463 * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
7464 conditional.
7465
524a1e6a 74662006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
7467
7468 Clean up the code to support 64-bit addressing in disks and
7469 files. This change is not enough for filesystems yet.
f19dbdb7 7470
524a1e6a 7471 * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
7472 type of "start" to grub_uint64_t.
7473 (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
7474 grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
7475 save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
7476 convert addresses.
7477
7478 * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
7479 to grub_disk_addr_t.
7480
7481 * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
7482 string.
7483
7484 * partmap/pc.c (pc_partition_map_iterate): Likewise.
7485
7486 * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
7487 to char *.
7488
7489 * normal/script.c (grub_script_parse): Remove unused MEMFREE.
7490
7491 * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
7492
7493 * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
7494
7495 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
7496 to grub_off_t, to detect an error from grub_file_seek.
7497 (grub_multiboot_load_elf32): Likewise.
7498
7499 * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
7500 maximum unsigned long value when an overflow is detected.
7501 (grub_strtoull): New function.
7502 (grub_divmod64): Likewise.
7503 (grub_lltoa): use grub_divmod64.
7504
7505 * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
7506 grub_disk_addr_t.
7507 (grub_fs_blocklist_open): Increase P if P is not NULL to advance
7508 the pointer to next character. Use grub_strtoull instead of
7509 grub_strtoul.
7510 (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
7511 SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
7512 respectively.
7513
fe6b695a 7514 * kern/file.c (grub_file_read): Prevent an overflow of LEN, as the
524a1e6a 7515 return value is signed.
7516 (grub_file_seek): Change the type of OLD to grub_off_t. Do not
7517 test if OFFSET is less than zero, as OFFSET is unsigned now.
7518
7519 * kern/disk.c (struct grub_disk_cache): Change the type of
7520 "sector" to grub_disk_addr_t.
7521 (grub_disk_cache_get_index): Change the type of SECTOR to
7522 grub_disk_addr_t. Calculate the hash with SECTOR casted to
7523 unsigned after shifting.
7524 (grub_disk_cache_invalidate): Change the type of SECTOR to
7525 grub_disk_addr_t.
7526 (grub_disk_cache_unlock): Likewise.
7527 (grub_disk_cache_store): Likewise.
7528 (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
7529 START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
7530 grub_disk_addr_t and grub_uint64_t, respectively.
7531 (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
7532 body, as the value of OFFSET is tweaked by
7533 grub_disk_check_range. Change the types of START_SECTOR, LEN and
7534 POS to grub_disk_addr_t, grub_size_t and grub_size_t,
7535 respectively.
7536 (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
7537 body, as the value of OFFSET is tweaked by
7538 grub_disk_check_range. Change the types of LEN and N to
7539 grub_size_t.
7540
7541 * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
7542 and "saved_offset" to grub_off_t.
7543 (test_header): Cast BUF to char *.
7544 (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
7545 to char *.
7546 (grub_gzio_read): Change the types of OFFSET and SIZE to
7547 grub_off_t and grub_size_t, respectively.
7548
7549 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
7550 Removed.
7551 (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
7552 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
7553 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
7554 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
7555 (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
7556
7557 * include/grub/types.h (grub_off_t): Unconditionally set to
7558 grub_uint64_t.
7559 (grub_disk_addr_t): Changed to grub_uint64_t.
7560
7561 * include/grub/partition.h (struct grub_partition): Change the
7562 types of "start", "len" and "offset" to grub_disk_addr_t,
7563 grub_uint64_t and grub_disk_addr_t, respectively.
7564 (grub_partition_get_start): Return grub_disk_addr_t.
7565 (grub_partition_get_len): Return grub_uint64_t.
7566
7567 * include/grub/misc.h (grub_strtoull): New prototype.
7568 (grub_divmod64): Likewise.
7569
7570 * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
7571 of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
7572 grub_off_t, respectively.
7573 All callers and references changed.
7574
7575 * include/grub/fs.h (struct grub_fs): Change the type of LEN to
7576 grub_size_t in "read".
7577 All callers and references changed.
7578
7579 * include/grub/file.h (struct grub_file): Change the types of
7580 "offset" and "size" to grub_off_t and grub_off_t,
7581 respectively. Change the type of SECTOR to grub_disk_addr_t in
7582 "read_hook".
7583 (grub_file_read): Change the type of LEN to grub_size_t.
7584 (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
7585 grub_off_t.
7586 (grub_file_size): Return grub_off_t.
7587 (grub_file_tell): Likewise.
7588 All callers and references changed.
7589
7590 * include/grub/disk.h (struct grub_disk_dev): Change the types of
7591 SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
7592 "write".
7593 (struct grub_disk): Change the type of "total_sectors" to
7594 grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
f19dbdb7 7595 "read_hook".
524a1e6a 7596 (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
7597 grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
7598 (grub_disk_write): Likewise.
7599 All callers and references changed.
7600
7601 * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
7602 char * for grub_strncmp to silence gcc.
7603 (grub_iso9660_mount): Likewise.
7604 (grub_iso9660_mount): Likewise.
7605 (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
7606 return statement.
7607 (grub_iso9660_iterate_dir): Likewise.
7608 (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
7609
7610 * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
7611 LEN to grub_disk_addr_t and grub_size_t, respectively.
7612
7613 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
7614
7615 * fs/jfs.c (grub_jfs_read_file): Likewise.
7616
7617 * fs/minix.c (grub_jfs_read_file): Likewise.
7618
7619 * fs/sfs.c (grub_jfs_read_file): Likewise.
7620
7621 * fs/ufs.c (grub_jfs_read_file): Likewise.
7622
7623 * fs/xfs.c (grub_jfs_read_file): Likewise.
7624
7625 * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
7626 and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
7627 respectively.
7628
7629 * fs/ext2.c (grub_ext2_read_block): When an error happens, set
7630 BLKNR to -1 instead of returning GRUB_ERRNO.
7631 (grub_ext2_read_file): Change the types of SECTOR and
7632 LEN to grub_disk_addr_t and grub_size_t, respectively.
7633
7634 * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
7635 LEN to grub_disk_addr_t and grub_size_t, respectively.
7636
7637 * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
7638 grub_file_read.
7639
7640 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
7641 string. Do not cast SECTOR explicitly.
7642
7643 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
7644 TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
7645 (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
7646 grub_disk_addr_t and grub_size_t, respectively. If the sector is
7647 over 2TB and LBA mode is not supported, raise an error.
7648 (get_safe_sectors): New function.
7649 (grub_biosdisk_read): Use get_safe_sectors.
7650 (grub_biosdisk_write): Likewise.
7651
7652 * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
7653 (grub_efidisk_write): Likewise.
7654
7655 * disk/loopback.c (delete_loopback): Cosmetic changes.
7656 (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
7657 correctly.
7658 (grub_loopback_open): Likewise.
7659 (grub_loopback_read): Likewise. Also, change the type of POS to
7660 grub_off_t, and fix the usage of grub_memset.
7661
7662 * commands/i386/pc/play.c: Include grub/machine/time.h.
7663
7664 * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
7665 print FILE->SIZE.
7666
7667 * commands/configfile.c: Include grub/env.h.
7668
7669 * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
7670 GRUB_ERRNO directly instead. Change the type of POS to
7671 grub_off_t. Follow the coding standard.
7672
7673 * commands/blocklist.c: Include grub/partition.h.
7674 (grub_cmd_blocklist): Return an error if the underlying device is
7675 not a disk. Take the starting sector of a partition into account,
7676 if a partition is used.
7677
7678 * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
7679 a length field.
7680 (lba_mode): Support 64-bit addresses.
7681 (chs_mode): Likewise.
7682 (copy_buffer): Adapted to the new offsets of a length field and a
7683 segment field.
7684 (blocklist_default_start): Allocate 64-bit space.
7685
7686 * boot/i386/pc/boot.S (force_lba): Removed.
7687 (boot_drive): Moved to under KERNEL_SECTOR.
fe987087 7688 (kernel_sector): Moved to under KERNEL_SEGMENT. Allocate 64-bit
524a1e6a 7689 space.
7690 (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
7691 is useless.
7692 (lba_mode): Refactored to support a 64-bit address. More size
7693 optimization.
7694 (setup_sectors): Likewise.
7695
53af98ad 76962006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
7697
7698 * DISTLIST: Added include/grub/i386/linux.h. Removed
7699 include/grub/i386/pc/linux.h
7700
7701 * configure.ac (AC_INIT): Bumped to 1.94.
7702
7703 * config.guess: Updated from gnulib.
7704 * config.sub: Likewise.
7705 * install-sh: Likewise.
7706 * mkinstalldirs: Likewise.
7707
b4c1940a 77082006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
7709
7710 * conf/common.rmk (grub_modules_init.lst): Depended on
7711 grub_emu_SOURCES, excluding grub_emu_init.c, instead of
7712 MODSRCFILES.
7713
7714 * genmk.rb (PModule::rule): Reverted the previous change.
7715
cfca1cfd 77162006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
7717
7718 * conf/common.rmk (grub_modules_init.lst): Depends on
7719 $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
7720 that the target does not exist before producing.
7721 (grub_modules_init.h): Remove the target before generating.
7722 (grub_emu_init.c): Likewise.
7723
7724 * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
7725
aa6d7826 77262006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
7727
7728 * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
7729 for the target-specific tests. Make sure that we also have the
7730 up-to-date target variables for those tests.
7731
26c607b9 77322006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
7733
7734 * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
7735 (PModule::rule): Likewise.
7736
0162321a 77372006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
7738
7739 * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
7740 TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
7741 target-specific flags should be prefixed.
7742 (PModule::rule): Likewise.
7743
6c826348 77442006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
7745
7746 * configure.ac (CMP): Check if cmp is available explicitly.
7747
b977bf01 77482006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
7749
7750 * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
7751 (target_cpu): New variable.
7752 (pkglibdir): Use target_cpu instead of host_cpu.
f19dbdb7 7753
b977bf01 7754 * util/i386/pc/grub-install.in (host_cpu): Removed.
7755 (target_cpu): New variable.
7756 (pkglibdir): Use target_cpu instead of host_cpu.
7757
7758 * util/genmoddep.c: Removed.
f19dbdb7 7759
b977bf01 7760 * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
7761 instead of GRUB_HOST_SIZEOF_VOID_P.
7762 * kern/dl.c: Likewise.
7763
7764 * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
7765 ...
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 * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
7772 to ...
7773 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
7774 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
7775 (GRUB_TARGET_SIZEOF_LONG): ... this.
7776 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
7777 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
7778 * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
7779 to ...
7780 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
7781 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
7782 (GRUB_TARGET_SIZEOF_LONG): ... this.
7783 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
7784 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
7785
7786 * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
7787 GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
7788 [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
7789 instead of GRUB_HOST_SIZEOF_LONG.
7790 [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
7791 GRUB_HOST_WORDS_BIGENDIAN to define or undefine
7792 GRUB_CPU_WORDS_BIGENDIAN.
7793 Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
7794 define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
7795 grub_host_ssize_t.
7796
7797 * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
7798 (genmoddep_SOURCES): Likewise.
7799 * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
7800 (genmoddep_SOURCES): Likewise.
7801 * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
7802 (genmoddep_SOURCES): Likewise.
7803 * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
7804 Likewise.
7805 (genmoddep_SOURCES): Likewise.
7806
7807 * genmoddep.awk: New file.
7808
7809 * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
7810 TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
7811 CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
7812 (PModule::rule): Likewise.
7813 (Program::rule): Likewise.
7814 (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
7815 BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
7816 respectively.
7817
7818 * configure.ac: Rewritten intensively to use host and target
7819 instead of build and host, respectively.
7820
7821 * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
7822 (host_cpu): Removed.
7823 (target_cpu): New variable.
7824 (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
7825 (BUILD_CC): Removed.
7826 (BUILD_CFLAGS): Likewise.
7827 (BUILD_CPPFLAGS): Likewise.
7828 (TARGET_CC): New variable.
7829 (TARGET_CFLAGS): Likewise.
7830 (TARGET_CPPFLAGS): Likewise.
7831 (TARGET_LDFLAGS): Likewise.
7832 (AWK): Likewise.
7833 (include): Use target_cpu instead of host_cpu.
7834 (moddep.lst:): Use genmoddep.awk instead of genmoddep.
f19dbdb7 7835
b977bf01 7836 * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
7837
f09771a1 78382006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
7839
7840 * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
7841 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed
7842 field 'false' to 'exec_on_false'.
7843 (grub_script_create_cmdif): Renamed argument names to reflect above
7844 changes.
7845
7846 * normal/execute.c (grub_script_execute_cmdif): Likewise.
7847
7848 * normal/script.c (grub_script_create_cmdif): Likewise.
7849
118f4fb3 78502006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
7851
7852 * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
7853 top.
7854 (grub_hfsplus_btree_recptr): Likewise.
7855 (grub_hfsplus_find_block): Do not take RETRY any longer. Use
7856 FILEBLOCK both to pass a block number and store next block
7857 number.
7858 (grub_hfsplus_read_block): Rewritten heavily to support an extent
7859 overflow file correctly. Specify errors appropriately, because
7860 fshelp expects that GRUB_ERRNO is set when fails. Reuse
7861 grub_hfsplus_btree_recptr to get the pointer to a found key.
7862 (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
7863 is found.
7864
7865 * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
7866 linux.mod.
7867 (_linux_mod_SOURCES): New variable.
7868 (_linux_mod_CFLAGS): Likewise.
7869 (_linux_mod_LDFLAGS): Likewise.
7870 (linux_mod_SOURCES): Likewise.
7871 (linux_mod_CFLAGS): Likewise.
7872 (linux_mod_LDFLAGS): Likewise.
7873
7874 * DISTLIST: Added loader/i386/efi/linux.c,
7875 loader/i386/efi/linux_normal.c and
7876 include/grub/i386/efi/loader.h.
7877
7878 * loader/i386/efi/linux.c: New file.
7879 * loader/i386/efi/linux_normal.c: Likewise.
7880 * include/grub/i386/efi/loader.h: Likewise.
7881
89a7d726 78822006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
7883
7884 * commands/blocklist.c: New file.
7885
7886 * DISTLIST: Added commands/blocklist.c.
7887
7888 * term/efi/console.c (grub_console_highlight_color): Use a lighter
43b553ad 7889 color for the background, and a darker color for the foreground.
89a7d726 7890 (grub_console_checkkey): Return READ_KEY.
7891 (grub_console_cls): Set the background to
7892 GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
7893
7894 * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
7895
7896 * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
7897 the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
7898
7899 * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
7900 prototype.
7901
7902 * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
7903 BG. The spec is wrong again.
7904
7905 * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
7906 prototype.
7907 [GRUB_UTIL] (grub_blocklist_fini): Likewise.
7908
7909 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
7910 commands/blocklist.c.
7911 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
f19dbdb7 7912
89a7d726 7913 * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
7914 (blocklist_mod_SOURCES): New variable.
7915 (blocklist_mod_CFLAGS): Likewise.
7916 (blocklist_mod_LDFLAGS): Likewise.
7917
75c8f258 79182006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
7919
7920 * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
7921 duplication.
7922 (lba_mode): Use %eax more intensively to reduce the code size.
7923
da2eb181 79242006-05-20 Marco Gerards <marco@gnu.org>
7925
7926 * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
7927
7928 * normal/parser.y (commandblock): Defined as <cmd>. A subroutine
7929 for `menuentry'.
7930 (script): Accept leading newlines.
7931 (newlines): New rule to describe 0 or more newlines.
7932 (commands): Accept `command' with trailing newline. Fixed the
7933 order in which arguments were passed to `grub_script_add_cmd'.
7934 Accept commands separated by newlines.
7935 (function): Changed to accept newlines.
7936 (menuentry) Rewritten.
7937
7938 * normal/script.c (grub_script_create_cmdmenu): Add new entries in
7939 front of the list, instead of to the end.
7940
577b4050 79412006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
7942
7943 * util/i386/pc/grub-install.in (bindir): New variable.
7944 (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
7945 Shaver <lbgwjl@gmail.com>.
7946
0d6e1189 79472006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
7948
7949 * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
7950 grub/machine/linux.h
7951 * loader/i386/pc/linux.c: Likewise.
7952
7953 * include/grub/i386/pc/linux.h: Moved to ...
7954 * include/grub/i386/linux.h: ... here.
7955
7956 * include/grub/i386/linux.h (struct linux_kernel_params): New
7957 struct.
f19dbdb7 7958
31b86e9f 79592006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
7960
7961 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
7962 checking.
7963 (grub_video_vbe_blit_glyph): Likewise.
7964 (grub_video_vbe_blit_bitmap): Likewise.
7965 (grub_video_vbe_blit_render_target): Likewise.
7966
83b984de 79672006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
7968
7969 * configure.ac (--with-platform): Properly quote the square
7970 brackets.
7971
5f0413bd 79722006-05-08 Marco Gerards <marco@gnu.org>
7973
7974 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
7975 this...
7976 (kernel_elf_HEADERS): ...to this. Updated all users.
7977 (grubof_symlist.c): Renamed from this...
7978 (kernel_elf_symlist.c): ...to this. Updated all users.
7979 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
7980 (grubof_SOURCES): Renamed from this...
7981 (kernel_elf_SOURCES): ...to this.
7982 (grubof_HEADERS): Renamed from this...
7983 (kernel_elf_HEADERS): ...to this.
7984 (grubof_CFLAGS): Renamed from this...
7985 (kernel_elf_CFLAGS): ...to this.
7986 (grubof_ASFLAGS): Renamed from this...
7987 (kernel_elf_ASFLAGS): ...to this.
7988 (grubof_LDFLAGS): Renamed from this...
7989 (kernel_elf_LDFLAGS): ...to this.
7990
7991 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
7992 this...
7993 (kernel_elf_HEADERS): ...to this. Updated all users.
7994 (grubof_symlist.c): Renamed from this...
7995 (kernel_elf_symlist.c): ...to this. Updated all users.
7996 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
7997 (grubof_SOURCES): Renamed from this...
7998 (kernel_elf_SOURCES): ...to this.
7999 (grubof_HEADERS): Renamed from this...
8000 (kernel_elf_HEADERS): ...to this.
8001 (grubof_CFLAGS): Renamed from this...
8002 (kernel_elf_CFLAGS): ...to this.
8003 (grubof_ASFLAGS): Renamed from this...
8004 (kernel_elf_ASFLAGS): ...to this.
8005 (grubof_LDFLAGS): Renamed from this...
8006 (kernel_elf_LDFLAGS): ...to this.
8007
8008 * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
8009 `kernel.elf' instead of `grubof'.
8010
05568c2e 80112006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
8012
8013 Add --with-platform to configure. Use pkglibdir instead of
8014 pkgdatadir. This is reported by Roger Leigh.
8015
8016 * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
8017 (host_vendor): Likewise.
8018 (host_os): Likewise.
8019 (pkgdatadir): Likewise.
8020 (platform): New variable.
8021 (pkglibdir): Likewise.
8022 Use PKGLIBDIR instead of PKGDATADIR.
f19dbdb7 8023
05568c2e 8024 * util/i386/pc/grub-install.in (datadir): Removed.
8025 (host_vendor): Likewise.
8026 (host_os): Likewise.
8027 (pkgdatadir): Likewise.
8028 (platform): New variable.
8029 (pkglibdir): Likewise.
8030 Use PKGLIBDIR instead of PKGDATADIR.
8031
8032 * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
8033 instead of GRUB_DATADIR.
8034 (main): Likewise.
8035 * util/i386/pc/grub-mkimage.c (usage): Likewise.
8036 (main): Likewise.
8037 * util/i386/efi/grub-mkimage.c (usage): Likewise.
8038 (main): Likewise.
8039
8040 * configure.ac (--with-platform): New option.
8041 Use PLATFORM instead of HOST_VENDOR to specify a platform.
8042
8043 * Makefile.in: Include a makefile based on PLATFORM instead of
8044 HOST_VENDOR.
8045 (pkgdatadir): Not appended by the machine type.
8046 (pkglibdir): Appended by the machine type.
8047 (host_vendor): Removed.
8048 (platform): New variable.
8049 (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
8050 (install-local): Use PKGLIBDIR instead of PKGDATADIR.
8051 (uninstall): Likewise.
8052
4e93851c 80532006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
8054
8055 Use the environment context in the menu. Remove the commands
8056 "default" and "timeout", and use variables instead.
f19dbdb7 8057
4e93851c 8058 * normal/menu.c: Include grub/env.h.
8059 (print_entry): Cast TITLE to silence gcc.
8060 (get_timeout): New function.
8061 (set_timeout): Likewise.
8062 (get_entry_number): Likewise.
8063 (run_menu): Use a default entry, a fallback entry and a timeout
8064 in the environment variables "default", "fallback" and
8065 "timeout". Also, tweak the default entry if it is not within the
8066 current menu entries.
8067 (grub_menu_run): Use a fallback entry in the environment variable
8068 "fallback".
8069
8070 * normal/main.c (read_config_file): Do not initialize
8071 NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
8072 NEWMENU->TIMEOUT.
8073 (grub_normal_execute): Use a data slot to store the menu.
8074
8075 * include/grub/normal.h (struct grub_menu): Removed default_entry,
8076 fallback_entry and timeout.
8077 (struct grub_menu_list): Removed.
8078 (grub_menu_list_t): Likewise.
8079 (struct grub_context): Likewise.
8080 (grub_context_t): Likewise.
8081 (grub_context_get): Likewise.
8082 (grub_context_get_current_menu): Likewise.
8083 (grub_context_push_menu): Likewise.
8084 (grub_context_pop_menu): Likewise.
8085 (grub_default_init): Likewise.
8086 (grub_default_fini): Likewise.
8087 (grub_timeout_init): Likewise.
8088 (grub_timeout_fini): Likewise.
8089
8090 * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
8091 and timeout.mod.
8092 (normal_mod_SOURCES): Removed normal/context.c.
8093
8094 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
8095 commands/default.c, commands/timeout.c and normal/context.c.
8096 (normal_mod_SOURCES): Removed normal/context.c.
8097
8098 * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
8099 commands/timeout.c and normal/context.c.
8100 (normal_mod_SOURCES): Removed normal/context.c.
8101
8102 * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
8103 commands/default.c, commands/timeout.c and normal/context.c.
8104 (normal_mod_SOURCES): Removed normal/context.c.
8105
8106 * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
8107 timeout.mod.
8108 (default_mod_SOURCES): Removed.
8109 (default_mod_CFLAGS): Likewise.
8110 (default_mod_LDFLAGS): Likewise.
8111 (timeout_mod_SOURCES): Removed.
8112 (timeout_mod_CFLAGS): Likewise.
8113 (timeout_mod_LDFLAGS): Likewise.
8114
8115 * DISTLIST: Removed commands/default.c, commands/timeout.c and
8116 normal/context.c.
8117
8118 * commands/default.c: Removed.
8119 * commands/timeout.c: Likewise.
8120 * normal/context.c: Likewise.
8121
1eb9cc1d 81222006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
8123
8124 * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
8125
385bd9c1 81262006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
8127
8128 * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
8129 "next" to "prev" for readability.
8130 (struct grub_env_sorted_var): New struct.
8131 (grub_env_context): Renamed to ...
8132 (initial_context): ... this.
8133 (grub_env_var_context): Renamed to ...
8134 (current_context): ... this.
8135 (grub_env_find): Look only at CURRENT_CONTEXT.
8136 (grub_env_context_open): Rewritten to copy exported variables from
8137 previous context.
8138 (grub_env_context_close): Rewritten according to the new
8139 scheme. Also, add an assertion to prevent the initial context from
8140 removed.
8141 (grub_env_insert): Removed the code for the sorted list.
8142 (grub_env_remove): Likewise.
8143 (grub_env_export): Simply mark the variable with
8144 GRUB_ENV_VAR_GLOBAL.
8145 (grub_env_set): A cosmetic change for naming consistency.
8146 (grub_env_get): Likewise.
8147 (grub_env_unset): Likewise.
8148 (grub_env_iterate): Rewritten to sort variables within this
8149 function.
8150 (grub_register_variable_hook): Fixed for naming consistency. Call
8151 grub_env_find again, only if NAME is not found at the first time.
8152 (mangle_data_slot_name): New function.
8153 (grub_env_set_data_slot): Likewise.
8154 (grub_env_get_data_slot): Likewise.
8155 (grub_env_unset_data_slot): Likewise.
8156
8157 * include/grub/env.h (grub_env_var_type): New enum.
8158 (GRUB_ENV_VAR_LOCAL): New constant.
8159 (GRUB_ENV_VAR_GLOBAL): Likewise.
8160 (GRUB_ENV_VAR_DATA): Likewise.
8161 (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
8162 "type".
8163 (grub_env_set): Replace VAR with NAME for consistency.
8164 (grub_register_variable_hook): Likewise.
8165 (grub_env_export): Specify the name of the argument.
8166 (grub_env_set_data_slot): New prototype.
8167 (grub_env_get_data_slot): Likewise.
8168 (grub_env_unset_data_slot): Likewise.
8169
7f362539 81702006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
8171
8172 Extend the loader so that GRUB can accept a loader which comes
8173 back to GRUB when a loaded image exits. Also, this change adds
8174 support for a chainloader on EFI.
f19dbdb7 8175
7f362539 8176 * term/efi/console.c: Include grub/misc.h.
8177 (grub_console_checkkey): Display a scan code on the top for
8178 debugging. This will be removed once the EFI port gets stable.
8179 Correct the scan code mapping.
8180
8181 * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
8182 allocate memory from larger regions, in order to reduce the number
8183 of allocated regions. Otherwise, the MacOSX loader panics.
8184 (filter_memory_map): Avoid less than 1MB for compatibility with
8185 other loaders.
8186 (add_memory_regions): Allocate from the tail of a region, if
8187 possible, to avoid allocating a region near to 1MB, for the MacOSX
8188 loader.
8189
8190 * kern/efi/init.c (grub_efi_set_prefix): Specify
8191 GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
8192
8193 * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
8194 argument IMAGE_HANDLE and specify it to get a loaded image.
8195 (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
8196 grub_efi_get_loaded_image.
fe6b695a 8197 (grub_efi_get_filename): Divide the length by the size of
7f362539 8198 grub_efi_char16_t.
8199 (grub_efi_get_device_path): New function.
8200 (grub_efi_print_device_path): Print End Device Path nodes. Divide
8201 the length by the size of grub_efi_char16_t for a file path device
8202 path node.
8203
8204 * kern/loader.c (grub_loader_noreturn): New variable.
8205 (grub_loader_set): Accept a new argument NORETURN. Set
8206 GRUB_LOADER_NORETURN to NORETURN.
8207 All callers changed.
8208 (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
8209 grub_machine_fini.
8210
8211 * include/grub/efi/efi.h (grub_efi_get_device_path): New
8212 prototype.
8213 (grub_efi_get_loaded_image): Take an argument to specify an image
8214 handle.
8215
8216 * include/grub/loader.h (grub_loader_set): Added one more argument
8217 NORETURN.
8218
8219 * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
8220 instead of grub_efi_open_protocol.
8221 (grub_efidisk_get_device_name): Likewise.
8222 (grub_efidisk_close): Print a newline.
8223 (grub_efidisk_get_device_handle): Fixed to use
8224 GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
8225 GRUB_EFI_DEVICE_PATH_TYPE.
8226
8227 * disk/efi/efidisk.c (device_path_guid): Moved to ...
8228 * kern/efi/efi.c (device_path_guid): ... here.
8229
8230 * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
8231 chain.mod.
8232 (kernel_mod_HEADERS): Added efi/disk.h.
8233 (_chain_mod_SOURCES): New variable.
8234 (_chain_mod_CFLAGS): Likewise.
8235 (_chain_mod_LDFLAGS): Likewise.
8236 (chain_mod_SOURCES): Likewise.
8237 (chain_mod_CFLAGS): Likewise.
8238 (chain_mod_LDFLAGS): Likewise.
8239
8240 * DISTLIST: Added include/grub/efi/chainloader.h,
8241 loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
8242
8243 * include/grub/efi/chainloader.h: New file.
8244 * loader/efi/chainloader.c: Likewise.
8245 * loader/efi/chainloader_normal.c: Likewise.
8246
c0111d6e 82472006-04-30 Marco Gerards <marco@gnu.org>
8248
8249 * commands/configfile.c (grub_cmd_source): New function.
8250 (GRUB_MOD_INIT): Register the commands `source' and `.'.
8251 (GRUB_MOD_FINI): De-register the commands `source' and `.'.
8252
df5341da 82532006-04-30 Marco Gerards <marco@gnu.org>
8254
8255 * normal/execute.c (grub_script_execute_cmd): Change the return
8256 type to `grub_err_t'. Correctly return the error.
8257 (grub_script_execute_cmdline): In case a command line is not a
8258 command or a function, try to interpret it as an assignment.
8259
f85934bd 82602006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
8261
8262 * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
8263 (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
8264 skip a node whose name is obviously invalid as UTF-16,
8265 i.e. contains a NUL character. Stop the iteration when the last
8266 directory entry is found. Instead of using the return value of
8267 grub_hfsplus_btree_iterate_node, store the value in RET and use
8268 it, because the iterator can be stopped by the last directory
8269 entry.
8270
8f8a2cf8 82712006-04-30 Marco Gerards <marco@gnu.org>
8272
8273 * include/grub/env.h (grub_env_export): New prototype. Reported
8274 by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
8275
a27e84ce 82762006-04-30 Marco Gerards <marco@gnu.org>
8277
8278 * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
8279 size of the extents in a catalog file record.
8280
eaef0553 82812006-04-29 Marco Gerards <marco@gnu.org>
8282
8283 * commands/configfile.c (grub_cmd_configfile): Execute the
8284 configfile within its own context.
8285
8286 * include/grub/env.h (grub_env_context_open): New prototype.
8287 (grub_env_context_close): Likewise.
8288
8289 * kern/env.c (grub_env): Removed.
8290 (grub_env_sorted): Likewise.
8291 (grub_env_context): New variable.
8292 (grub_env_var_context): Likewise.
8293 (grub_env_find): Search both the active context and the global
8294 context.
8295 (grub_env_context_open): New function.
8296 (grub_env_context_close): Likewise.
8297 (grub_env_insert): Likewise.
8298 (grub_env_remove): Likewise.
8299 (grub_env_export): Likewise.
8300 (grub_env_set): Changed to use helper functions to avoid code
8301 duplication.
8302 (grub_env_iterate): Rewritten so both the current context and the
8303 global context are being used.
8304
8305 * normal/command.c (export_command): New function.
8306 (grub_command_init): Register the `export' function.
8307
7b455f4d 83082006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
8309
8310 * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
8311 explicitly to suppress gcc's warnings.
8312 * fs/fat.c (grub_fat_find_dir): Likewise.
8313 (grub_fat_label): Likewise.
8314 * fs/xfs.c (grub_xfs_read_inode): Likewise.
8315 (grub_xfs_mount): Likewise.
8316 (grub_xfs_label): Likewise.
8317 * fs/affs.c (grub_affs_mount): Likewise.
8318 (grub_affs_label): Likewise.
8319 (grub_affs_iterate_dir): Likewise.
8320 * fs/sfs.c (grub_sfs_mount): Likewise.
8321 (grub_sfs_iterate_dir): Likewise.
8322 * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
8323 * fs/hfs.c (grub_hfs_mount): Likewise.
8324 (grub_hfs_cmp_catkeys): Likewise.
8325 (grub_hfs_find_dir): Likewise.
8326 (grub_hfs_dir): Likewise.
8327 (grub_hfs_label): Likewise.
8328 * fs/jfs.c (grub_jfs_mount): Likewise.
8329 (grub_jfs_opendir): Likewise.
8330 (grub_jfs_getent): Likewise.
8331 (grub_jfs_lookup_symlink): Likewise.
8332 (grub_jfs_label): Likewise.
8333 * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
8334 (grub_hfsplus_iterate_dir): Likewise.
8335 (grub_hfsplus_btree_iterate_node): Made static.
8336
8337 * util/grub-emu.c (prefix): New variable.
8338 (grub_machine_set_prefix): New function.
8339 (main): Do not set the environment variable "prefix" here. Only
8340 set PREFIX, which is used later by grub_machine_set_prefix.
8341
8342 * include/grub/video.h: Do not include grub/symbol.h.
8343 (grub_video_register): Not exported. This symbol is not defined in
8344 the kernel.
8345 (grub_video_unregister): Likewise.
8346 (grub_video_iterate): Likewise.
8347 (grub_video_setup): Likewise.
8348 (grub_video_restore): Likewise.
8349 (grub_video_get_info): Likewise.
8350 (grub_video_get_blit_format): Likewise.
8351 (grub_video_set_palette): Likewise.
8352 (grub_video_get_palette): Likewise.
8353 (grub_video_set_viewport): Likewise.
8354 (grub_video_get_viewport): Likewise.
8355 (grub_video_map_color): Likewise.
8356 (grub_video_map_rgb): Likewise.
8357 (grub_video_map_rgba): Likewise.
8358 (grub_video_fill_rect): Likewise.
8359 (grub_video_blit_glyph): Likewise.
8360 (grub_video_blit_bitmap): Likewise.
8361 (grub_video_blit_render_target): Likewise.
8362 (grub_video_scroll): Likewise.
8363 (grub_video_swap_buffers): Likewise.
8364 (grub_video_create_render_target): Likewise.
8365 (grub_video_delete_render_target): Likewise.
8366 (grub_video_set_active_render_target): Likewise.
8367
8368 * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
8369 Undefined.
8370 [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
8371
8372 * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
8373 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
8374 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
8375 instead of $(srcdir)/genkernsyms.sh.
8376
8377 * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
8378 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
8379 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
8380 instead of $(srcdir)/genkernsyms.sh.
8381
8382 * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
8383 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
8384 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
8385 instead of $(srcdir)/genkernsyms.sh.
8386
8387 * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
8388 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
8389 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
8390 instead of $(srcdir)/genkernsyms.sh.
8391
8392 * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
8393 genkernsyms.sh.
8394
8395 * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
8396 genkernsyms.sh.
8397 (gensymlist.sh): New target.
8398 (genkernsyms.sh): Likewise.
8399
8400 * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
8401 genkernsyms.sh.in and gensymlist.sh.in.
8402
8403 * genkernsyms.sh: Removed.
8404 * gensymlist.sh: Likewise.
f19dbdb7 8405
7b455f4d 8406 * genkernsyms.sh.in: New file.
8407 * gensymlist.sh.in: Likewise.
8408
1885bb27 84092006-04-25 Hollis Blanchard <hollis@penguinppc.org>
8410
8411 * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
8412 clobber "prefix", since we may have already set it manually.
8413
71538dff 84142006-04-25 Hollis Blanchard <hollis@penguinppc.org>
8415
8416 * kern/misc.c (abort): New alias for grub_abort.
8417
2965c7cc 84182006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
8419
8420 A new machine-specific function "grub_machine_set_prefix" is
8421 defined. This is called after loading modules, so that a prefix
8422 initialization can use modules. Also, this change adds an
8423 intensive debugging feature for the memory manager via the
8424 configure option "--enable-mm-debug".
f19dbdb7 8425
2965c7cc 8426 * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
8427 PART.LEN.
8428
8429 * kern/sparc64/ieee1275/init.c (abort): Removed.
8430 (grub_stop): Likewise.
8431 (grub_exit): New function.
8432 (grub_set_prefix): Renamed to ...
8433 (grub_machine_set_prefix): ... this.
8434 (grub_machine_init): Do not call grub_set_prefix.
8435
8436 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
8437 (grub_machine_set_prefix): ... this.
8438 (grub_machine_init): Do not call grub_set_prefix.
8439
8440 * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
8441 (grub_machine_init): Do not set the prefix here.
8442
8443 * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
8444
8445 * kern/efi/init.c: Include grub/mm.h.
8446 (grub_efi_set_prefix): New function.
8447
8448 * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
8449 (grub_efi_get_filename): New function.
8450 (grub_print_device_path): Renamed to ...
8451 (grub_efi_print_device_path): ... this.
8452
8453 * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
8454 [MM_DEBUG] (grub_realloc): Likewise.
8455 [MM_DEBUG] (grub_free): Likewise.
8456 [MM_DEBUG] (grub_memalign): Likewise.
8457 [MM_DEBUG] (grub_mm_debug): New variable.
8458 [MM_DEBUG] (grub_debug_malloc): New function.
8459 [MM_DEBUG] (grub_debug_free): New function.
8460 [MM_DEBUG] (grub_debug_realloc): New function.
8461 [MM_DEBUG] (grub_debug_memalign): New function.
8462
8463 * kern/misc.c (grub_abort): Print a newline to distinguish
8464 the message.
8465
8466 * kern/main.c (grub_main): Call grub_machine_set_prefix and
8467 grub_set_root_dev after loading modules. This is necessary when
8468 setting a prefix depends on modules.
8469
8470 * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
8471 (grub_efi_print_device_path): ... this.
8472 (grub_efi_get_filename): New prototype.
8473 (grub_efi_set_prefix): Likewise.
8474
8475 * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
8476 and grub/disk.h.
8477 (grub_efidisk_get_device_handle): New prototype.
8478 (grub_efidisk_get_device_name): Likewise.
8479
8480 * include/grub/mm.h: Include config.h.
8481 (MM_DEBUG): Removed.
8482 [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
8483 [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
8484 [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
8485 [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
8486 [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
8487 [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
8488 [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
8489 [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
8490 [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
8491
8492 * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
8493
8494 * disk/efi/efidisk.c: Include grub/partition.h.
8495 (iterate_child_devices): New function.
8496 (add_device): First, compare only last device path nodes, so that
8497 devices are sorted by the types.
8498 (grub_efidisk_get_device_handle): New function.
8499 (grub_efidisk_get_device_name): Likewise.
8500
8501 * configure.ac (--enable-mm-debug): New option to enable the
8502 memory manager debugging feature. This makes the binary much
8503 bigger, so is disabled by default.
8504
9cacaa17 85052006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
8506
8507 Use grub_abort instead of grub_stop, and grub_exit must be
8508 define in each architecture now. Also, this change adds support
8509 for EFI disks.
f19dbdb7 8510
9cacaa17 8511 * util/i386/pc/grub-probefs.c: Include grub/term.h.
8512 (grub_getkey): New function.
8513 (grub_term_get_current): Likewise.
8514
8515 * util/i386/pc/grub-setup.c: Include grub/term.h.
8516 (grub_getkey): New function.
8517 (grub_term_get_current): Likewise.
8518
8519 * util/misc.c (grub_stop): Renamed to ...
8520 (grub_exit): ... this.
8521
8522 * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
8523 (grub_exit): ... this.
8524 (grub_machine_init): Use grub_abort instead of abort.
8525 (grub_stop): Removed.
8526
8527 * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
8528 abort.
8529
8530 * kern/i386/pc/startup.S (grub_exit): New function.
8531 (cold_reboot): New label.
8532
8533 * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
8534 (grub_efi_init): Call grub_efidisk_init.
8535 (grub_efi_fini): Call grub_efidisk_fini.
8536
8537 * kern/efi/efi.c: Include grub/mm.h.
8538 (grub_efi_console_control_guid): Renamed to ...
8539 (console_control_guid): ... this.
8540 (grub_efi_loaded_image_guid): Renamed to ...
8541 (loaded_image_guid): ... this.
8542 (grub_efi_locate_handle): New function.
8543 (grub_efi_open_protocol): Likewise.
8544 (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
8545 GRUB_EFI_CONSOLE_CONTROL_GUID.
8546 (grub_efi_exit): Removed.
8547 (grub_stop): Likewise.
8548 (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
8549 (grub_exit): New function.
8550 (grub_print_device_path): Likewise.
8551
8552 * kern/rescue.c (grub_rescue_cmd_exit): New function.
8553 (grub_enter_rescue_mode): Register "exit".
8554
8555 * kern/misc.c (grub_real_dprintf): A cosmetic change.
8556 (grub_abort): New function.
8557
8558 * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
8559
8560 * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
8561
8562 * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
8563
8564 * include/grub/efi/efi.h (grub_efi_exit): Removed.
8565 (grub_print_device_path): New prototype.
8566 (grub_efi_locate_handle): Likewise.
8567 (grub_efi_open_protocol): Likewise.
8568
8569 * include/grub/efi/disk.h (grub_efidisk_fini): New file.
8570 * disk/efi/efidisk.c: Likewise.
8571
8572 * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
8573
8574 * include/grub/efi/console_control.h
8575 (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
8576
8577 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
8578 last 8 bytes as an array.
8579 (GRUB_EFI_DISK_IO_GUID): New macro.
8580 (GRUB_EFI_BLOCK_IO_GUID): Likewise.
8581 (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
8582 (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
8583 grub_uint8_t.
8584 (struct grub_efi_guid): Use an array to specify the last 8 bytes.
8585 (struct grub_efi_device_path): Rename the member "sub_type" to
8586 "subtype".
8587 (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
8588 (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
8589 (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
8590 (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
8591 (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
8592 (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
8593 (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
8594 (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
8595 (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
8596 (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
8597 (struct grub_efi_pci_device_path): New structure.
8598 (grub_efi_pci_device_path_t): New type.
8599 (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
8600 (struct grub_efi_pccard_device_path): New structure.
8601 (grub_efi_pccard_device_path_t): New type.
8602 (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
8603 (struct grub_efi_memory_mapped_device_path): New structure.
8604 (grub_efi_memory_mapped_device_path_t): New type.
8605 (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
8606 (struct grub_efi_vendor_device_path): New structure.
8607 (grub_efi_vendor_device_path_t): New type.
8608 (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
8609 (struct grub_efi_controller_device_path): New structure.
8610 (grub_efi_controller_device_path_t): New type.
8611 (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
8612 (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
8613 (struct grub_efi_acpi_device_path): New structure.
8614 (grub_efi_acpi_device_path_t): New type.
8615 (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
8616 (struct grub_efi_expanded_acpi_device_path): New structure.
8617 (grub_efi_expanded_acpi_device_path_t): New type.
8618 (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
8619 (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
8620 (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
8621 (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
8622 (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
8623 (struct grub_efi_atapi_device_path): New structure.
8624 (grub_efi_atapi_device_path_t): New type.
8625 (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
8626 (struct grub_efi_fibre_channel_device_path): New structure.
8627 (grub_efi_fibre_channel_device_path_t): New type.
8628 (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
8629 (struct grub_efi_1394_device_path): New structure.
8630 (grub_efi_1394_device_path_t): New type.
8631 (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
8632 (struct grub_efi_usb_device_path): New structure.
8633 (grub_efi_usb_device_path_t): New type.
8634 (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
8635 (struct grub_efi_usb_class_device_path): New structure.
8636 (grub_efi_usb_class_device_path_t): New type.
8637 (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
8638 (struct grub_efi_i2o_device_path): New structure.
8639 (grub_efi_i2o_device_path_t): New type.
8640 (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
8641 (struct grub_efi_mac_address_device_path): New structure.
8642 (grub_efi_mac_address_device_path_t): New type.
8643 (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
8644 (struct grub_efi_ipv4_device_path): New structure.
8645 (grub_efi_ipv4_device_path_t): New type.
8646 (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
8647 (struct grub_efi_ipv6_device_path): New structure.
8648 (grub_efi_ipv6_device_path_t): New type.
8649 (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
8650 (struct grub_efi_infiniband_device_path): New structure.
8651 (grub_efi_infiniband_device_path_t): New type.
8652 (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
8653 (struct grub_efi_uart_device_path): New structure.
8654 (grub_efi_uart_device_path_t): New type.
8655 (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
8656 (struct grub_efi_vendor_messaging_device_path): New structure.
8657 (grub_efi_vendor_messaging_device_path_t): New type.
8658 (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
8659 (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
8660 (struct grub_efi_hard_drive_device_path): New structure.
8661 (grub_efi_hard_drive_device_path_t): New type.
8662 (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
8663 (struct grub_efi_cdrom_device_path): New structure.
8664 (grub_efi_cdrom_device_path_t): New type.
8665 (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
8666 (struct grub_efi_vendor_media_device_path): New structure.
8667 (grub_efi_vendor_media_device_path_t): New type.
8668 (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
8669 (struct grub_efi_file_path_device_path): New structure.
8670 (grub_efi_file_path_device_path_t): New type.
8671 (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
8672 (struct grub_efi_protocol_device_path): New structure.
8673 (grub_efi_protocol_device_path_t): New type.
8674 (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
8675 (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
8676 (struct grub_efi_bios_device_path): New structure.
8677 (grub_efi_bios_device_path_t): New type.
8678 (struct grub_efi_disk_io): New structure.
8679 (grub_efi_disk_io_t): New type.
8680 (struct grub_efi_block_io_media): New structure.
8681 (grub_efi_block_io_media_t): New type.
8682 (struct grub_efi_block_io): New structure.
8683 (grub_efi_block_io_t): New type.
8684
8685 * include/grub/misc.h (grub_stop): Removed.
8686 (grub_exit): New prototype.
8687 (grub_abort): Likewise.
8688
8689 * include/grub/disk.h (enum grub_disk_dev_id): Added
8690 GRUB_DISK_DEVICE_EFIDISK_ID.
8691
8692 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
8693 disk/efi/efidisk.c.
8694 (kernel_syms.lst): Remove the target if an error occurs.
8695
49986a9f 86962006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
8697
8698 * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
8699 as it was simply too buggy.
8700
970d3b8a 87012006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
8702
8703 * kern/misc.c (grub_lltoa): New function.
8704 (grub_vsprintf): Added support for the long long suffix,
8705 i.e. "ll".
8706
ff04ec24 87072006-04-20 Hollis Blanchard <hollis@penguinppc.org>
8708
8709 * Makefile.in (LDFLAGS): Add variable.
8710 (LD): Remove variable.
8711 * configure.ac: Add -m32 to LDFLAGS.
8712 * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
8713 * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
8714 (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
8715 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
8716 suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
8717 variables.
8718 * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
8719 * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
8720 * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
8721
37e5e1a4 87222006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
8723
8724 * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
8725 length for unknown glyph.
8726
c352d8dd 87272006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
8728
2eab1c0d 8729 Add support for pre-loaded modules into the EFI port.
f19dbdb7 8730
2eab1c0d 8731 * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
8732 completely. Accept one more argument DIR. The caller has changed.
8733
8734 * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
8735
8736 * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
8737 (grub_efi_loaded_image_guid): New variable.
8738 (grub_efi_get_loaded_image): New function.
8739 (grub_arch_modules_addr): Likewise.
8740
8741 * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
8742 prototype.
8743
8744 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
8745 (struct grub_efi_loaded_image): New structure.
8746 (grub_efi_loaded_image_t): New type.
8747
87482006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 8749
c352d8dd 8750 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
8751 size with GRUB_OS_AREA_SIZE as grub_size_t instead of
8752 grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
8753
6d01d6b4 87542006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
8755
8756 * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
8757
976a4ea0 87582006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
8759
8760 * DISTLIST: Added include/grub/efi/console.h,
8761 include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
8762 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
8763
8764 * include/grub/efi/console.h: New file.
8765 * include/grub/efi/time.h: Likewise.
8766 * include/grub/i386/efi/kernel.h: Likewise.
8767 * kern/efi/init.c: Likewise.
8768 * kern/efi/mm.c: Likewise.
8769 * term/efi/console.c: Likewise.
f19dbdb7 8770
976a4ea0 8771 * kern/i386/efi/init.c: Do not include grub/machine/time.h.
8772 (grub_stop): Removed.
8773 (grub_get_rtc): Likewise.
8774 (grub_machine_init): Simply call grub_efi_init.
8775 (grub_machine_fini): Call grub_efi_fini.
8776
8777 * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
8778 (grub_efi_output_string): Removed.
8779 (grub_efi_stall): New function.
8780 (grub_stop): Likewise.
8781 (grub_get_rtc): Likewise.
8782
8783 * include/grub/efi/efi.h (grub_efi_output_string): Removed.
8784 (grub_efi_stall): New prototype.
8785 (grub_efi_allocate_pages): Likewise.
8786 (grub_efi_free_pages): Likewise.
8787 (grub_efi_get_memory_map): Likewise.
8788 (grub_efi_mm_init): Likewise.
8789 (grub_efi_mm_fini): Likewise.
8790 (grub_efi_init): Likewise.
8791 (grub_efi_fini): Likewise.
8792
8793 * include/grub/i386/efi/time.h: Do not include
8794 grub/symbol.h. Include grub/efi/time.h.
8795 (GRUB_TICKS_PER_SECOND): Removed.
8796 (grub_get_rtc): Likewise.
8797
8798 * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
8799 Added padding. The EFI spec is buggy.
8800 (GRUB_EFI_BLACK): New macro.
8801 (GRUB_EFI_BLUE): Likewise.
8802 (GRUB_EFI_GREEN): Likewise.
8803 (GRUB_EFI_CYAN): Likewise.
8804 (GRUB_EFI_RED): Likewise.
8805 (GRUB_EFI_MAGENTA): Likewise.
8806 (GRUB_EFI_BROWN): Likewise.
8807 (GRUB_EFI_LIGHTGRAY): Likewise.
8808 (GRUB_EFI_BRIGHT): Likewise.
8809 (GRUB_EFI_DARKGRAY): Likewise.
8810 (GRUB_EFI_LIGHTBLUE): Likewise.
8811 (GRUB_EFI_LIGHTGREEN): Likewise.
8812 (GRUB_EFI_LIGHTCYAN): Likewise.
8813 (GRUB_EFI_LIGHTRED): Likewise.
8814 (GRUB_EFI_LIGHTMAGENTA): Likewise.
8815 (GRUB_EFI_YELLOW): Likewise.
8816 (GRUB_EFI_WHITE): Likewise.
8817 (GRUB_EFI_BACKGROUND_BLACK): Likewise.
8818 (GRUB_EFI_BACKGROUND_BLUE): Likewise.
8819 (GRUB_EFI_BACKGROUND_GREEN): Likewise.
8820 (GRUB_EFI_BACKGROUND_CYAN): Likewise.
8821 (GRUB_EFI_BACKGROUND_RED): Likewise.
8822 (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
8823 (GRUB_EFI_BACKGROUND_BROWN): Likewise.
8824 (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
8825 (GRUB_EFI_TEXT_ATTR): Likewise.
8826
8827 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
8828 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
8829 (kernel_mod_HEADERS): Added efi/time.h.
8830
83709125 88312006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
8832
8833 * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
8834 include/grub/efi/api.h, include/grub/efi/console_control.h,
8835 include/grub/efi/efi.h, include/grub/efi/pe32.h,
8836 include/grub/i386/efi/time.h, kern/efi/efi.c,
8837 kern/i386/efi/init.c, kern/i386/efi/startup.S,
8838 and util/i386/efi/grub-mkimage.c.
8839
8840 * Makefile.in (RMKFILES): Added i386-efi.rmk.
8841
8842 * genmk.rb (PModule#rule): Do not export symbols if
8843 #{prefix}_EXPORTS is set to "no".
8844
8845 * conf/i386-efi.mk: New file.
8846 * conf/i386-efi.rmk: Likewise.
8847 * include/grub/efi/api.h: Likewise.
8848 * include/grub/efi/console_control.h: Likewise.
8849 * include/grub/efi/efi.h: Likewise.
8850 * include/grub/efi/pe32.h: Likewise.
8851 * include/grub/i386/efi/time.h: Likewise.
8852 * kern/efi/efi.c: Likewise.
8853 * kern/i386/efi/init.c: Likewise.
8854 * kern/i386/efi/startup.S: Likewise.
8855 * util/i386/efi/grub-mkimage.c: Likewise.
8856
88572006-04-17 Marco Gerards <marco@gnu.org>
bfa2bd9e 8858
8859 * include/grub/script.h: Include <grub/parser.h> and
8860 "grub_script.tab.h".
8861 (struct grub_lexer_param): New struct.
8862 (struct grub_parser_param): Likewise.
8863 (grub_script_create_arglist): Pass the state in an argument.
8864 (grub_script_add_arglist): Likewise.
8865 (grub_script_create_cmdline): Likewise.
8866 (grub_script_create_cmdblock): Likewise.
8867 (grub_script_create_cmdif): Likewise.
8868 (grub_script_create_cmdmenu): Likewise.
8869 (grub_script_add_cmd): Likewise.
8870 (grub_script_arg_add): Likewise.
8871 (grub_script_lexer_ref): Likewise.
8872 (grub_script_lexer_deref): Likewise.
8873 (grub_script_lexer_record_start): Likewise.
8874 (grub_script_lexer_record_stop): Likewise.
8875 (grub_script_mem_record): Likewise.
8876 (grub_script_mem_record_stop): Likewise.
8877 (grub_script_malloc): Likewise.
8878 (grub_script_yylex): Likewise.
8879 (grub_script_yyparse): Likewise.
8880 (grub_script_yyerror): Likewise.
8881 (grub_script_yylex): Likewise.
8882 (grub_script_lexer_init): Return the state.
8883
8884 * normal/lexer.c (grub_script_lexer_state): Removed variable.
8885 (grub_script_lexer_done): Likewise.
8886 (grub_script_lexer_getline): Likewise.
8887 (grub_script_lexer_refs): Likewise.
8888 (script): Likewise.
8889 (newscript): Likewise.
8890 (record): Likewise.
8891 (recording): Likewise.
8892 (recordpos): Likewise.
8893 (recordlen): Likewise.
8894 (grub_script_lexer_init): Return the state instead of setting
8895 global variables.
8896 (grub_script_lexer_ref): Use the newly added argument for state
8897 instead of globals.
8898 (grub_script_lexer_deref): Likewise.
8899 (grub_script_lexer_record_start): Likewise.
8900 (grub_script_lexer_record_stop): Likewise.
8901 (recordchar): Likewise.
8902 (nextchar): Likewise.
8903 (grub_script_yylex2): Likewise.
8904 (grub_script_yylex): Likewise.
8905 (grub_script_yyerror): Likewise.
8906
8907 * normal/parser.y (func_mem): Removed variable.
8908 (menu_entry): Likewise.
8909 (err): Likewise.
8910 (%lex-param): New parser option.
8911 (%parse-param): Likewise.
8912 (script): Always return the AST.
8913 (argument): Pass the state around.
8914 (arguments): Likewise.
8915 (grubcmd): Likewise.
8916 (commands): Likewise.
8917 (function): Likewise.
8918 (menuentry): Likewise.
8919 (if_statement): Likewise.
8920 (if): Likewise.
8921
8922 * normal/script.c (grub_script_memused): Removed variable.
8923 (grub_script_parsed): Likewise.
8924 (grub_script_malloc): Added a state argument. Use that instead of
8925 global variables.
8926 (grub_script_mem_record): Likewise.
8927 (grub_script_mem_record_stop): Likewise.
8928 (grub_script_arg_add): Likewise.
8929 (grub_script_add_arglist): Likewise.
8930 (grub_script_create_cmdline): Likewise.
8931 (grub_script_create_cmdif): Likewise.
8932 (grub_script_create_cmdmenu): Likewise.
8933 (grub_script_add_cmd): Likewise.
8934 (grub_script_parse): Setup the state before calling the parser.
f19dbdb7 8935
e2a8c904 89362006-04-16 Marco Gerards <marco@gnu.org>
6de2ee99 8937
8938 * normal/command.c (grub_command_init): Remove the title command.
8939
8940 * normal/lexer.c (grub_script_yylex): Renamed from this...
8941 (grub_script_yylex2): ... to this.
8942 (grub_script_yylex): New function. Temporary
8943 introduced to filter some tokens.
8944 (grub_script_yyerror): Print a newline.
8945
8946 * normal/main.c (read_config_file): Output information about the
8947 lines that contain errors. Wait for a key after all lines have
8948 been processed. Don't return an empty menu.
8949
8950 * normal/parser.y (func_mem): Don't initialize.
8951 (menu_entry): Likewise.
8952 (err): New variable.
8953 (script): Don't return anything when an error was encountered.
8954 (ws, returns): Removed rules.
8955 (argument): Disabled concatenated variable support.
8956 (arguments): Remove explicit separators.
8957 (grubcmd): Likewise.
8958 (function): Likewise.
8959 (menuentry): Likewise.
8960 (if): Likewise.
8961 (commands): Likewise. Add error handling.
8962
8963 * normal/script.c (grub_script_create_cmdline): If
8964 `grub_script_parsed' is 0, assume the parser encountered an error.
8965
c9a86192 89662006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
8967
8968 * configure.ac: Add support for EFI. Fix the typo
8969 BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
8970
70f3b243 89712006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
8972
8973 * util/unifont2pff.rb: Removed unnecessary byte ordering. Now
8974 foreign multibyte characters should be shown correctly.
8975
65f201ad 89762006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
8977
8978 * normal/main.c (grub_normal_menu_addentry): Fixed menu size
8979 calculation.
8980 (read_config_file): Made it to close file before returning.
8981
b4b93674 89822006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
8983
8984 * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
8985 include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
8986 video/i386/pc/vbefill.c.
8987
8988 * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
8989 video/i386/pc/vbefill.c.
8990
8991 * include/grub/video.h (grub_video_blit_format): New enum.
8992 (grub_video_mode_info): Added new member blit_format.
8993 (grub_video_get_blit_format): New function prototype.
8994
8995 * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
8996 function prototype.
8997 (grub_video_vbe_map_rgb): Likewise.
8998 (grub_video_vbe_unmap_color): Likewise.
8999
9000 * include/grub/i386/pc/vbeblit.h: New file.
9001
9002 * include/grub/i386/pc/vbefill.h: New file.
9003
9004 * video/video.c (grub_video_get_blit_format): New function.
9005 (grub_video_vbe_get_video_ptr): Re-declared as non-static.
9006 (grub_video_vbe_map_rgb): Likewise.
9007 (grub_video_vbe_unmap_color): Likewise.
9008
9009 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
9010 optimized fills.
9011 (grub_video_vbe_blit_render_target): Changed to use more optimized
9012 blits.
9013 (grub_video_vbe_setup): Added detection for optimized settings.
9014 (grub_video_vbe_create_render_target): Likewise.
9015
9016 * video/i386/pc/vbeblit.c: New file.
9017
9018 * video/i386/pc/vbefill.c: New file.
9019
c2379b9c 90202006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
9021
9022 * font/manager.c (grub_font_get_glyph): Removed font fixup from
9023 here...
9024
9025 * util/unifont2pff.rb: ... and moved it to here. Improved argument
9026 parsing to support both hex and dec ranges. If filename was missing
9027 show usage information.
9028
bd0d7896 90292006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
9030
9031 * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
9032 video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c.
9033
9034 * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
9035 gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod.
9036 (video_mod_SOURCES): Added.
9037 (video_mod_CFLAGS): Likewise.
9038 (video_mod_LDFLAGS): Likewise.
9039 (gfxterm_mod_SOURCES): Likewise.
9040 (gfxterm_mod_CFLAGS): Likewise.
9041 (gfxterm_mod_LDFLAGS): Likewise.
9042 (videotest_mod_SOURCES): Likewise.
9043 (videotest_mod_CFLAGS): Likewise.
9044 (videotest_mod_LDFLAGS): Likewise.
9045 (vesafb_mod_SOURCES): Removed.
9046 (vesafb_mod_CFLAGS): Likewise.
9047 (vesafb_mod_LDFLAGS): Likewise.
9048 (vga_mod_SOURCES): Likewise.
9049 (vga_mod_CFLAGS): Likewise.
9050 (vga_mod_LDFLAGS): Likewise.
9051
9052 * commands/videotest.c: New file.
9053
9054 * font/manager.c (fill_with_default_glyph): Modified to use
9055 grub_font_glyph.
9056 (grub_font_get_glyph): Likewise.
9057 (fontmanager): Renamed from this...
9058 (font_manager): ... to this.
9059
9060 * include/grub/font.h (grub_font_glyph): Added new structure.
9061 (grub_font_get_glyph): Modified to use grub_font_glyph.
9062
9063 * include/grub/misc.h (grub_abs): Added as inline function.
9064
9065 * include/grub/video.h: New file.
9066
9067 * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
9068 (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
9069 (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
9070 (grub_vbe_get_controller_info): Renamed from this...
9071 (grub_vbe_bios_get_controller_info): ... to this.
9072 (grub_vbe_get_mode_info): Renamed from this...
9073 (grub_vbe_bios_get_mode_info): ... to this.
9074 (grub_vbe_set_mode): Renamed from this...
9075 (grub_vbe_bios_set_mode): ... to this.
9076 (grub_vbe_get_mode): Renamed from this...
9077 (grub_vbe_bios_get_mode): ... to this.
9078 (grub_vbe_set_memory_window): Renamed from this...
9079 (grub_vbe_bios_set_memory_window): ... to this.
9080 (grub_vbe_get_memory_window): Renamed from this...
9081 (grub_vbe_bios_get_memory_window): ... to this.
9082 (grub_vbe_set_scanline_length): Renamed from this...
9083 (grub_vbe_set_scanline_length): ... to this.
9084 (grub_vbe_get_scanline_length): Renamed from this...
9085 (grub_vbe_bios_get_scanline_length): ... to this.
9086 (grub_vbe_set_display_start): Renamed from this...
9087 (grub_vbe_bios_set_display_start): ... to this.
9088 (grub_vbe_get_display_start): Renamed from this...
9089 (grub_vbe_bios_get_display_start): ... to this.
9090 (grub_vbe_set_palette_data): Renamed from this...
9091 (grub_vbe_bios_set_palette_data): ... to this.
9092 (grub_vbe_set_pixel_rgb): Removed.
9093 (grub_vbe_set_pixel_index): Likewise.
9094
9095 * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
9096 from this...
9097 (grub_vbe_bios_get_controller_info): ... to this.
9098 (grub_vbe_get_mode_info): Renamed from this...
9099 (grub_vbe_bios_get_mode_info): ... to this.
9100 (grub_vbe_set_mode): Renamed from this...
9101 (grub_vbe_bios_set_mode): ... to this.
9102 (grub_vbe_get_mode): Renamed from this...
9103 (grub_vbe_bios_get_mode): ... to this.
9104 (grub_vbe_set_memory_window): Renamed from this...
9105 (grub_vbe_bios_set_memory_window): ... to this.
9106 (grub_vbe_get_memory_window): Renamed from this...
9107 (grub_vbe_bios_get_memory_window): ... to this.
9108 (grub_vbe_set_scanline_length): Renamed from this...
9109 (grub_vbe_set_scanline_length): ... to this.
9110 (grub_vbe_get_scanline_length): Renamed from this...
9111 (grub_vbe_bios_get_scanline_length): ... to this.
9112 (grub_vbe_set_display_start): Renamed from this...
9113 (grub_vbe_bios_set_display_start): ... to this.
9114 (grub_vbe_get_display_start): Renamed from this...
9115 (grub_vbe_bios_get_display_start): ... to this.
9116 (grub_vbe_set_palette_data): Renamed from this...
9117 (grub_vbe_bios_set_palette_data): ... to this.
9118 (grub_vbe_bios_get_controller_info): Fixed problem with registers
9119 getting corrupted after calling it. Added more pushes and pops.
9120 (grub_vbe_bios_set_mode): Likewise.
9121 (grub_vbe_bios_get_mode): Likewise.
9122 (grub_vbe_bios_get_memory_window): Likewise.
9123 (grub_vbe_bios_set_scanline_length): Likewise.
9124 (grub_vbe_bios_get_scanline_length): Likewise.
9125 (grub_vbe_bios_get_display_start): Likewise.
9126 (grub_vbe_bios_set_palette_data): Likewise.
9127
9128 * normal/cmdline.c (cl_set_pos): Refresh the screen.
9129 (cl_insert): Likewise.
9130 (cl_delete): Likewise.
9131
9132 * term/gfxterm.c: New file.
9133
9134 * term/i386/pc/vesafb.c: Removed file.
9135
9136 * video/video.c: New file.
9137
9138 * video/i386/pc/vbe.c (real2pm): Added new function.
9139 (grub_video_vbe_draw_pixel): Likewise.
9140 (grub_video_vbe_get_video_ptr): Likewise.
9141 (grub_video_vbe_get_pixel): Likewise
9142 (grub_video_vbe_init): Likewise.
9143 (grub_video_vbe_fini): Likewise.
9144 (grub_video_vbe_setup): Likewise.
9145 (grub_video_vbe_get_info): Likewise.
9146 (grub_video_vbe_set_palette): Likewise.
9147 (grub_video_vbe_get_palette): Likewise.
9148 (grub_video_vbe_set_viewport): Likewise.
9149 (grub_video_vbe_get_viewport): Likewise.
9150 (grub_video_vbe_map_color): Likewise.
9151 (grub_video_vbe_map_rgb): Likewise.
9152 (grub_video_vbe_map_rgba): Likewise.
9153 (grub_video_vbe_unmap_color): Likewise.
9154 (grub_video_vbe_fill_rect): Likewise.
9155 (grub_video_vbe_blit_glyph): Likewise.
9156 (grub_video_vbe_blit_bitmap): Likewise.
9157 (grub_video_vbe_blit_render_target): Likewise.
9158 (grub_video_vbe_scroll): Likewise.
9159 (grub_video_vbe_swap_buffers): Likewise.
9160 (grub_video_vbe_create_render_target): Likewise.
9161 (grub_video_vbe_delete_render_target): Likewise.
9162 (grub_video_vbe_set_active_render_target): Likewise.
9163 (grub_vbe_set_pixel_rgb): Remove function.
9164 (grub_vbe_set_pixel_index): Likewise.
9165 (index_color_mode): Remove static variable.
9166 (active_mode): Likewise.
9167 (framebuffer): Likewise.
9168 (bytes_per_scan_line): Likewise.
9169 (grub_video_vbe_adapter): Added new static variable.
9170 (framebuffer): Likewise.
9171 (render_target): Likewise.
9172 (initial_mode): Likewise.
9173 (mode_in_use): Likewise.
9174 (mode_list): Likewise.
9175
5f97350b 91762006-03-10 Marco Gerards <marco@gnu.org>
9177
9178 * configure.ac (AC_INIT): Bumped to 1.93.
9179
9180 * DISTLIST: Added `include/grub/hfs.h'.
9181
a3c5c6f8 91822006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
9183
9184 * boot/i386/pc/boot.S (general_error): Before looping, try INT
9185 18H, which might help the BIOS falling back to next boot media.
9186
6de53d26 91872006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
9188
9189 * util/i386/pc/grub-install.in: Escape a backslash. Reported by
9190 Poe Chen <poe.poechen@gmail.com>.
9191
77c4a393 91922006-01-17 Marco Gerards <marco@gnu.org>
9193
9194 * include/grub/normal.h: Include <grub/script.h>.
9195 (grub_command_list): Removed struct.
9196 (grub_command_list_t): Removed type.
9197 (grub_menu_entry): Remove members `num' and `command_list'. Add
9198 members `commands' and `sourcecode'.
9199 * include/grub/script.h: Add inclusion guards.
9200 (grub_script_cmd_menuentry): New struct.
9201 (grub_script_execute_menuentry): New prototype.
9202 (grub_script_lexer_record_start): Likewise.
9203 (grub_script_lexer_record_stop): Likewise.
9204 * normal/execute.c (grub_script_execute_menuentry): New function.
9205 * normal/lexer.c (record, recording, recordpos, recordlen): New
9206 variables.
9207 (grub_script_lexer_record_start): New function.
9208 (grub_script_lexer_record_stop): Likewise.
9209 (recordchar): Likewise.
9210 (nextchar): Likewise.
9211 (grub_script_yylex): Use `nextchar' to fetch new characters. Use
9212 2048 as the buffer size. Add the tokens `menuentry' and `@'.
9213 * normal/main.c: Include <grub/parser.h> and <grub/script.h>
9214 (current_menu): New variable.
9215 (free_menu): Mainly rewritten.
9216 (grub_normal_menu_addentry): New function.
9217 (read_config_file): Rewritten.
9218 * normal/menu.c (run_menu_entry): Mainly rewritten.
fe987087 9219 * normal/menu_entry.c (make_screen): Rewritten the code to insert
77c4a393 9220 the menu entry.
9221 (run): Mainly rewritten.
9222 * normal/parser.y (menu_entry): New variable.
9223 (GRUB_PARSER_TOKEN_MENUENTRY): New token.
9224 (menuentry): New rule.
9225 (command): Add `menuentry'.
9226 (if_statement): Allow additional returns before `fi'.
9227 * normal/script.c (grub_script_create_cmdmenu): New function.
9228
144f1f98 92292006-01-03 Marco Gerards <marco@gnu.org>
9230
9231 * INSTALL: GNU Bison is required.
9232 * configure.ac: Rewritten the test to detect Bison.
9233 * Makefile.in (YACC): New variable. Reported by Xun Sun
9234 <xun.sun.cn@gmail.com>.
9235
af4b2d89 92362006-01-03 Marco Gerards <marco@gnu.org>
9237
9238 * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
9239 the HFS+ filesystem to filesystem blocks.
9240 (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
9241 GCC warning is silenced.
9242
15643b71 92432006-01-03 Marco Gerards <marco@gnu.org>
9244
9245 * partmap/apple.c (apple_partition_map_iterate): Convert the data
9246 read from disk from big endian to host byte order.
9247
00905879 92482006-01-03 Hollis Blanchard <hollis@penguinppc.org>
9249
9250 * fs/hfs.c: Include <grub/hfs.h>. Added reference to the official
9251 documentation.
9252 (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
9253 (grub_hfs_mount): Grammar fix in error. Make sure this is not an
9254 embedded HFS+ filesystem.
9255 (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
9256 (grub_hfs_sblock): Move from here...
9257 * include/grub/hfs.h: To here... New file.
9258 * fs/hfsplus.c: Include <grub/hfs.h>. Added reference to the official
9259 documentation.
9260 (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
9261 New macros.
9262 (grub_hfsplus_volheader): Change type of member `magic' to
9263 `grub_uint16_t'.
9264 (grub_hfsplus_data): Add new member `embedded_offset'.
9265 (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
9266 returned block.
9267 (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
9268 Calculate the offset.
9269
8899bc3e 92702005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
9271
9272 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
9273 Removed.
9274 (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
9275
ae8c0277 92762005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
9277
9278 * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
9279 ENV->NAME is NULL after allocating ENV->VALUE.
9280
07084456 92812005-12-25 Marco Gerards <marco@gnu.org>
9282
9283 * kern/env.c (grub_env_set): Rewritten the error handling code.
9284
4750f5f1 92852005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
9286
9287 * geninit.sh: Made more robust, and more portable.
9288
50214199 92892005-12-25 Marco Gerards <marco@gnu.org>
9290
9291 Add support for Apple HFS+ filesystems.
f19dbdb7 9292
50214199 9293 * fs/hfsplus.c: New file.
9294
9295 * DISTLIST: Added `fs/hfsplus.c'.
9296
9297 * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
9298 (hfsplus_mod_SOURCES): New variable.
9299 (hfsplus_mod_CFLAGS): Likewise.
9300 (hfsplus_mod_LDFLAGS): Likewise.
9301 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
9302 (grub_setup_SOURCES): Likewise.
9303 (grub_mkdevicemap_SOURCES): Likewise.
9304 (grub_emu_SOURCES): Likewise.
9305 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
9306
9307 * fs/fshelp.c (grub_fshelp_log2blksize): New function.
9308
9309 * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
9310
befaed6c 93112005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
9312
9313 * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
9314 commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
9315 include/grub/parser.h, include/grub/script.h, kern/parser.c,
9316 kern/sparc64/cache.S, normal/execute.c, normal/function.c,
9317 normal/lexer.c, normal/parser.y, normal/script.c, and
9318 partmap/gpt.c.
9319 Removed kern/sparc64/cache.c.
9320
9321 * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
9322 grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
9323 grub_emu_init.c.
9324
9325 * configure.ac (AC_INIT): Bumped to 1.92.
9326
6a124103 93272005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
9328
9329 * kern/err.c (grub_error_push): Added new function to support error
9330 stacks.
9331 (grub_error_pop): Likewise.
9332 (grub_error_stack_items): New local variable to support error stacks.
9333 (grub_error_stack_pos): Likewise.
9334 (grub_error_stack_assert): Likewise.
9335 (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
9336 stack depth.
9337 (grub_print_error): Added support to print errors from error stack.
9338
9339 * include/grub/err.h (grub_error_push): Added function prototype.
9340 (grub_error_pop): Likewise.
9341
be973c1b 93422005-12-09 Hollis Blanchard <hollis@penguinppc.org>
9343
9344 * configure.ac: Accept `powerpc64' as host_cpu.
9345 (amd64): Rename to `biarch32'.
9346
9347 * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
9348 non-cacheline-aligned addresses.
9349
9350 * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
9351 (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
9352 if `size' is non-zero.
9353
b04216ab 93542005-12-03 Marco Gerards <mgerards@xs4all.nl>
9355
9356 * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
9357 and `cd' to make sure the filename is not prefixed with a
9358 directory name.
9359 (pkgdata_MODULES): Add `gpt.mod'.
9360 (gpt_mod_SOURCES): New variable.
9361 (gpt_mod_CFLAGS): Likewise.
9362 (gpt_mod_LDFLAGS): Likewise.
9363
9364 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
9365
9366 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
9367 New macro.
9368
9369 * partmap/gpt.c: New file.
9370
9371 * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
9372 GPT partition map is detected.
9373
41730ed9 93742005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
9375
9376 * commands/i386/pc/play.c: New file.
9377 * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
9378 (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
9379 macros.
f19dbdb7 9380
95dc3643 93812005-11-27 Marco Gerards <mgerards@xs4all.nl>
9382
9383 * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
9384 ((unused))' to silence gcc warning.
9385
1569ec51 93862005-11-26 Hollis Blanchard <hollis@penguinppc.org>
9387
9388 * configure.ac: Correct `AC_PROG_YACC' test.
9389
9abde152 93902005-11-22 Hollis Blanchard <hollis@penguinppc.org>
9391
9392 * util/powerpc/ieee1275/grub-install.in: Run the mount point
9393 check before installing files.
9394
44b83271 93952005-11-22 Mike Small <smallm@panix.com>
9396
9397 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
9398 number regex so multidigit numbers are recognized correctly.
9399
94002005-11-22 Mike Small <smallm@panix.com>
9401
9402 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
9403 debugging message before attempting to claim memory.
9404 (grub_rescue_cmd_initrd): Add a claim debugging message and try
9405 multiple addresses in case of failure.
9406
9c12956b 94072005-11-22 Hollis Blanchard <hollis@penguinppc.org>
9408
9409 * term/tparm.c (get_space): Remove empty `if' statement.
9410
9411 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
9412
9413 * kern/parser.c (check_varstate): Rename `state' to 's'.
9414
aeaf81d9 94152005-11-22 Hollis Blanchard <hollis@penguinppc.org>
9416
9417 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
9418 variable definitions to the beginning of each function. Sort stack
9419 variables by size.
9420 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
9421 `buf' argument to `char *'.
9422
79bbb63f 94232005-11-22 Hollis Blanchard <hollis@penguinppc.org>
9424
9425 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
9426 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 9427 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
79bbb63f 9428 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
9429 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
9430 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
9431 configfile.mod, search.mod, gzio.mod and test.mod.
9432 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
9433 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
9434 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
9435 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
9436 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
9437 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
9438 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
9439 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
9440 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
9441 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
9442 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
9443 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
9444 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
9445 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
9446 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
9447 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
9448 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
9449 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
9450 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
9451 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
9452 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
9453 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
9454 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
9455
9456 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
9457 `grep --include'.
9458 (pkgdata_MODULES): Add test.mod.
9459
233b1628 94602005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
9461
9462 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
9463 appending to variables with "+=".
9464 (PModule): Use full pathname to generate *.lst filenames.
9465
9466 * Makefile.in: Fixed list rules moved from genmk.rb.
9467 (.DELETE_ON_ERROR): New special target.
9468 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
9469
9470 * conf/i386-pc.rmk: Include conf/common.mk.
9471 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 9472 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
233b1628 9473 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
9474 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
9475 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
9476 configfile.mod, search.mod, gzio.mod and test.mod.
9477 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
9478 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
9479 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
9480 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
9481 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
9482 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
9483 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
9484 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
9485 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
9486 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
9487 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
9488 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
9489 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
9490 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
9491 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
9492 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
9493 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
9494 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
9495 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
9496 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
9497 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
9498 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
9499 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
9500 here...
9501 * conf/common.rmk: ... to here. New file.
9502
9503 * conf/common.mk: New file.
9504
16f820c8 95052005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
9506
9507 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
9508 (grub_script.tab.c): ... here.
9509
9510 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
9511 (grub_script.tab.c): ... here.
9512
9513 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
9514 (grub_script.tab.c): ... here.
9515
9516 * normal/command.c (grub_command_find): Fixed a memory leak of
9517 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
9518
63ba1554 95192005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
9520
9521 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
9522 "@" which marks the start of a comment on ARM.
9523 (VARIABLE): Likewise.
9524
7f67dc13 95252005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
9526
79bbb63f 9527 Add support for Linux/ADFS partition tables.
7f67dc13 9528
9529 * partmap/acorn.c: New file.
9530
9531 * include/grub/acorn_filecore.h: Likewise.
9532
9533 * DISTLIST: Added `partmap/acorn.c' and
9534 `include/grub/acorn_filecore.h'.
f19dbdb7 9535
7f67dc13 9536 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
9537 `partmap/acorn.c'.
9538 (pkgdata_MODULES): Add `acorn.mod'.
9539 (acorn_mod_SOURCES): New variable.
9540 (acorn_mod_CFLAGS): Likewise.
9541
9542 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
9543 `partmap/acorn.c'.
9544 (pkgdata_MODULES): Add `acorn.mod'.
9545 (acorn_mod_SOURCES): New variable.
9546 (acorn_mod_CFLAGS): Likewise.
9547
9548 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
9549 (pkgdata_MODULES): Add `acorn.mod'.
9550 (acorn_mod_SOURCES): New variable.
9551 (acorn_mod_CFLAGS): Likewise.
9552 (acorn_mod_LDFLAGS): Likewise.
9553
9554 * include/types.h (grub_disk_addr_t): New typedef.
9555
6d099807 95562005-11-13 Marco Gerards <mgerards@xs4all.nl>
9557
9558 * geninit.sh: New file.
9559
9560 * geninitheader.sh: Likewise.
9561
9562 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
9563 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
9564 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
9565 * commands/configfile.c (grub_configfile_init)
9566 (grub_configfile_fini): Likewise.
9567 * commands/default.c (grub_default_init, grub_default_fini):
9568 Likewise.
9569 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
9570 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
9571 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
9572 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
9573 Likewise.
9574 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
9575 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
9576 Likewise.
9577 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
fe6b695a 9578 * commands/ieee1275/halt.c (grub_halt_init, grub_halt_fini):
6d099807 9579 Likewise.
9580 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
9581 Likewise.
fe6b695a 9582 * commands/ieee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
6d099807 9583 Likewise.
9584 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
9585 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
9586 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
9587 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
9588 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
9589 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
9590 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
9591 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
9592 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
9593 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
9594 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
9595 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
9596 * partmap/amiga.c (grub_amiga_partition_map_init)
9597 (grub_amiga_partition_map_fini): Likewise.
9598 * partmap/apple.c (grub_apple_partition_map_init)
9599 (grub_apple_partition_map_fini): Likewise.
9600 * partmap/pc.c (grub_pc_partition_map_init)
9601 (grub_pc_partition_map_fini): Likewise.
9602 * partmap/sun.c (grub_sun_partition_map_init,
9603 grub_sun_partition_map_fini): Likewise.
9604 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
9605 Likewise.
9606
9607 * util/grub-emu.c: Include <grub_modules_init.h>.
9608 (main): Don't initialize and de-initialize any modules directly,
9609 use `grub_init_all' and `grub_fini_all' instead.
9610
9611 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
9612 `grub_vesafb_mod_init'.
9613 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
9614 all users.
9615 * term/i386/pc/vga.c (grub_vga_init): Renamed to
9616 `grub_vga_mod_init'. Updated all users.
9617 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
f19dbdb7 9618
6d099807 9619 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
9620 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
9621 rules.
9622
9623 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
9624 Generate a function to initialize the module in utilities.
9625 Updated all callers.
9626 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
9627 initialize the module in utilities. Updated all callers.
9628
9046bcf0 96292005-11-09 Hollis Blanchard <hollis@penguinppc.org>
9630
9631 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
9632 escape sequence and a literal ^L to clear the screen.
9633
9634 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
9635 when returning from Open Firmware.
9636
d13ea639 96372005-11-09 Hollis Blanchard <hollis@penguinppc.org>
9638
9639 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
9640 (grub_ofconsole_height): Likewise.
9641 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
9642 manually insert a '\n'.
9643 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
9644 `grub_ofconsole_height'. Return early if these are already set.
9645
a8fcf206 96462005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
9647
9648 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
9649 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
9650 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
9651 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
9652 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 (test_mod_LDFLAGS): Likewise.
9658 (pkgdata_MODULES): Add `test.mod'.
9659 (grub_script.tab.c): New rule.
9660 (grub_script.tab.h): Likewise.
9661
b6b32745 96622005-11-07 Marco Gerards <mgerards@xs4all.nl>
9663
9664 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
9665 `commands/test.c', `normal/execute.c', `normal/lexer.c',
9666 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
9667 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
9668 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
9669 (test_mod_SOURCES): New variable.
9670 (test_mod_CFLAGS): Likewise.
9671 (pkgdata_MODULES): Add `test.mod'.
9672 (grub_script.tab.c): New rule.
9673 (grub_script.tab.h): Likewise.
9674
daac212a 96752005-11-06 Marco Gerards <mgerards@xs4all.nl>
9676
9677 Add initial scripting support.
9678
9679 * commands/test.c: New file.
9680 * include/grub/script.h: Likewise.
9681 * normal/execute.c: Likewise.
9682 * normal/function.c: Likewise.
9683 * normal/lexer.c: Likewise.
9684 * normal/parser.y: Likewise.
9685 * normal/script.c: Likewise.
9686
9687 * configure.ac: Add `AC_PROG_YACC' test.
f19dbdb7 9688
daac212a 9689 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
9690 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
9691 `normal/function.c' and `normal/script.c'.
9692 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
9693 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
b6b32745 9694 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
9695 variables.
daac212a 9696 (pkgdata_MODULES): Add `test.mod'.
9697 (grub_script.tab.c): New rule.
9698 (grub_script.tab.h): Likewise.
9699
9700 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
9701
9702 * include/grub/normal.h (grub_test_init): New prototype.
9703 (grub_test_fini): Likewise.
f19dbdb7 9704
daac212a 9705 * normal/command.c: Include <grub/script.h>.
9706 (grub_command_execute): Rewritten.
f19dbdb7 9707
daac212a 9708 * util/grub-emu.c (main): Call `grub_test_init' and
9709 `grub_test_fini'.
9710
77500b2b 97112005-11-03 Hollis Blanchard <hollis@penguinppc.org>
9712
9713 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
9714 to 0.
9715 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
9716 there are no pending characters.
9717
e45deb9e 97182005-11-03 Hollis Blanchard <hollis@penguinppc.org>
9719
9720 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
9721 `grub_strndup' to drop device arguments. Replace unnecessary
9722 `grub_strndup' with `grub_strdup'.
9723
4ce32619 97242005-11-03 Hollis Blanchard <hollis@penguinppc.org>
9725
9726 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
9727 `debug' environment variable has been set.
9728
97292005-11-02 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 9730
4ce32619 9731 * Makefile.in (install-local): Use $(DATA).
9732 (uninstall): Likewise.
9733 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
9734 (sbin_UTILITIES): ... to here.
9735 (sbin_SCRIPTS): New variable.
9736 (grub_install_SOURCES): New variable.
9737 * util/powerpc/ieee1275/grub-install.in: New file.
9738 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
9739 variable.
9740 (add_segments): Call `grub_util_get_path'.
9741
25fe6f03 97422005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
9743
9744 From Timothy Baldwin:
9745 * commands/ls.c (grub_ls_list_files): Close FILE with
9746 grub_file_close.
9747 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
9748
04ccf3ec 97492005-10-24 Marco Gerards <mgerards@xs4all.nl>
9750
9751 * include/grub/parser.h: New file.
9752
9753 * kern/parser.c: Likewise.
9754
9755 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
9756 (grub_setup_SOURCES): Likewise.
9757 (grub_probefs_SOURCES): Likewise.
9758 (grub_emu_SOURCES): Likewise.
9759 (kernel_img_HEADERS): Add `parser.h'.
9760
9761 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
9762 (grub_emu_SOURCES): Add `kern/parser.c'.
9763 (grubof_SOURCES): Likewise.
9764
9765 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
9766 (grubof_SOURCES): Add `kern/parser.c'.
9767
9768 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
9769
9770 * kern/misc.c (grub_split_cmdline): Removed function.
9771
9772 * kern/rescue.c: Include <grub/parser.h>.
9773 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
9774 of `grub_split_cmdline'.
9775
9776 * normal/command.c: Include <grub/parser.h>.
9777 (grub_command_execute): Use `grub_parser_split_cmdline' instead
9778 of `grub_split_cmdline'.
9779
9780 * normal/completion.c: Include <grub/parser.h>.
9781 (cmdline_state): New variable.
9782 (iterate_dir): End the filename with a quote depending on the
9783 command line state.
9784 (get_state): new function.
9785 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
9786 split the arguments and determine the current argument. When the
9787 argument string is not quoted, escape all spaces.
9788
6d8f4b0e 97892005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
9790
9791 * normal/sparc64/setjmp.S: New file.
9792
15cf03ed 97932005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
9794
9795 * include/grub/sparc64/libgcc.h: New file.
9796 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
9797 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
9798 normal/sparc64/setjmp.c.
9799
03e8661a 98002005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
9801
9802 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
9803 * kern/sparc64/cache.S: New file.
9804 * kern/sparc64/cache.c: Removed.
9805 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
9806 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
9807 -mtune=ultrasparc.
9808 (COMMON_LDFLAGS): Add -melf64_sparc.
9809 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
9810 (grubof_SOURCES): Use cache.S instead of cache.c.
9811 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
9812 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
9813 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
9814 commented though.
9815 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
9816 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
9817 (linux_mod_CFLAGS): Commented out.
9818 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
9819 out because module isn't built.
9820 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
9821 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
9822 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
9823 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
9824 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
9825 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
9826 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
9827 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
9828 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
9829 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
9830 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
9831 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
9832 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
9833 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
9834
34eeec8a 98352005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
9836
9837 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
9838 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
9839 longer, because HFS should not be used on PC.
9840
708367a3 98412005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
9842
9843 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
9844 consistently within the loop.
9845
6fa1251a 98462005-10-15 Marco Gerards <mgerards@xs4all.nl>
9847
9848 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
9849 directory can not be read.
9850
4801580b 98512005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
9852
9853 * configure.ac (AC_INIT): Increase the version number to 1.91.
9854
9855 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
9856 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
9857 term/i386/pc/serial.c.
9858
219ad426 98592005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
9860
9861 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
9862 file size must be permitted.
9863
9864 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
9865 between %ah and %al.
9866
688e5699 98672005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
9868
9869 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
9870 grub_uint64_t.
9871 Call the hook with a NUL-terminated filename.
9872 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
9873 grub_cpu_to_be32.
9874
9875 * kern/term.c (cursor_state): New variable.
9876 (grub_term_set_current): Reset the cursor state on a new
9877 terminal.
9878 (grub_setcursor): Rewritten to use CURSOR_STATE.
9879 (grub_getcursor): New function.
9880
9881 * include/grub/term.h (grub_getcursor): New prototype.
9882
9883 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
9884 integers on ARM. Reported by Timothy Baldwin
9885 <T.E.Baldwin99@members.leeds.ac.uk>.
9886
bb34586c 98872005-10-11 Marco Gerards <mgerards@xs4all.nl>
9888
9889 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
9890 allocated.
9891 (grub_sfs_dir): Likewise.
9892
9a909877 98932005-10-09 Marco Gerards <mgerards@xs4all.nl>
9894
9895 Add support for the SFS filesystem.
9896
9897 * fs/sfs.c: New file.
9898
9899 * DISTLIST: Added `fs/sfs.c'.
9900
9901 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
9902 (grub_probefs_SOURCES): Likewise.
9903 (grub_emu_SOURCES): Likewise.
9904 (pkgdata_MODULES): Add `sfs.mod'.
9905 (sfs_mod_SOURCES): New variable.
9906 (sfs_mod_CFLAGS): Likewise.
9907 (sfs_mod_LDFLAGS): Likewise.
9908
9909 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
9910 (pkgdata_MODULES): Add `sfs.mod'.
9911 (sfs_mod_SOURCES): New variable.
9912 (sfs_mod_CFLAGS): Likewise.
9913
9914 * util/grub-emu.c (main): Call `grub_sfs_init' and
9915 `grub_sfs_fini'.
9916
9917 * include/grub/fs.h (grub_sfs_init): New prototype.
9918 (grub_sfs_fini): Likewise.
9919
57bdbde3 99202005-10-07 Marco Gerards <mgerards@xs4all.nl>
9921
9922 Add support for the AFFS filesystem.
9923
9924 * fs/affs.c: New file.
9925
9926 * DISTLIST: Added `fs/affs.c'.
9927
9928 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
9929 (grub_probefs_SOURCES): Likewise.
9930 (grub_emu_SOURCES): Likewise.
9931 (pkgdata_MODULES): Add `affs.mod'.
9932 (affs_mod_SOURCES): New variable.
9933 (affs_mod_CFLAGS): Likewise.
9934 (affs_mod_LDFLAGS): Likewise.
9935
9936 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
9937 (pkgdata_MODULES): Add `affs.mod'.
9938 (affs_mod_SOURCES): New variable.
9939 (affs_mod_CFLAGS): Likewise.
9940
9941 * util/grub-emu.c (main): Call `grub_affs_init' and
9942 `grub_affs_fini'.
9943
9944 * include/grub/fs.h (grub_affs_init): New prototype.
9945 (grub_affs_fini): Likewise.
9946
047b67e0 99472005-10-01 Marco Gerards <mgerards@xs4all.nl>
9948
9949 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
9950
59b8208a 99512005-10-01 Marco Gerards <mgerards@xs4all.nl>
9952
9953 * configure.ac: Accept `x86_64' as host_cpu. In that case add
9954 `-m32' to CFLAGS.
9955
9956 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
9957 linking.
f19dbdb7 9958
59b8208a 9959 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
9960 (COMMON_LDFLAGS): New variable.
9961 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
9962 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
9963 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
9964 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
9965 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
9966 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
9967 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
9968 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
9969 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
9970 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
9971 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
9972 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
9973 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
9974 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
9975 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
9976 variables.
9977 (normal_mod_ASFLAGS): Add `-m32'.
9978
9979 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
9980 (grub_host_size_t, grub_host_ssize_t): New types.
9981 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
fe6b695a 9982 dependent of `GRUB_CPU_SIZEOF_VOID_P' instead on
59b8208a 9983 `GRUB_HOST_SIZEOF_VOID_P'.
9984
9985 * include/grub/kernel.h (struct grub_module_header): Type of
9986 member offset changed to `grub_host_off_t'. Type of member size
9987 changed to `grub_host_size_t'.
9988 (struct grub_module_info): Type of member offset changed to
9989 `grub_host_off_t'. Type of member size changed to
9990 `grub_host_size_t'.
9991
b4093103 99922005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
9993
9994 Make GRUB's kernel compliant to Multiboot Specification.
f19dbdb7 9995
b4093103 9996 * kern/i386/pc/startup.S (multiboot_header): New label.
9997 (multiboot_entry): Likewise.
9998 (multiboot_trampoline): Likewise.
9999
10000 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
10001 Increased to 0x4A0.
10002
10003 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
10004 put parentheses after a question mark.
10005 [!GRUB_UTIL] (my_mod): New variable.
10006
10007 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
10008
b2499b29 100092005-09-28 Marco Gerards <mgerards@xs4all.nl>
10010
10011 Adds support for the XFS filesystem. Btrees are not supported
10012 yet.
10013
10014 * fs/xfs.c: New file.
10015
10016 * DISTLIST: Added `fs/xfs.c'.
10017
10018 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
10019 (grub_probefs_SOURCES): Likewise.
10020 (grub_emu_SOURCES): Likewise.
10021 (pkgdata_MODULES): Add `xfs.mod'.
10022 (xfs_mod_SOURCES): New variable.
10023 (xfs_mod_CFLAGS): Likewise.
10024
10025 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
10026 (pkgdata_MODULES): Add `xfs.mod'.
10027 (xfs_mod_SOURCES): New variable.
10028 (xfs_mod_CFLAGS): Likewise.
10029
10030 * util/grub-emu.c (main): Call `grub_xfs_init' and
10031 `grub_xfs_fini'.
10032
10033 * include/grub/fs.h (grub_xfs_init): New prototype.
10034 (grub_xfs_fini): Likewise.
10035
f19dbdb7 10036
83d37a62 100372005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
10038
10039 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
10040 color modes, allow greater than 16 colors to be configured as
10041 a default palette.
10042
47d2d65e 100432005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
10044
10045 * normal/completion.c (complete_arguments): Add the qualifier
10046 const into OPTIONS.
10047
10048 From Omniflux <omniflux+lists@omniflux.com>:
10049 * include/grub/terminfo.h: New file.
10050 * include/grub/tparm.h: Likewise.
10051 * include/grub/i386/pc/serial.h: Likewise.
10052 * term/terminfo.c: Likewise.
10053 * term/tparm.c: Likewise.
10054 * term/i386/pc/serial.c: Likewise.
10055 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
10056 serial.mod.
10057 (terminfo_mod_SOURCES): New variable.
10058 (terminfo_mod_CFLAGS): Likewise.
10059 (serial_mod_SOURCES): Likewise.
10060 (serial_mod_CFLAGS): Likewise.
10061
48b671ff 100622005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
10063
10064 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
10065 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
10066 and kern/powerpc/ieee1275/cmain.c, respectively.
10067
10068 * boot/powerpc/ieee1275/crt0.S: Moved to ...
10069 * kern/powerpc/ieee1275/crt0.S: ... here.
10070
10071 * boot/powerpc/ieee1275/cmain.c: Moved to ...
10072 * kern/powerpc/ieee1275/cmain.c: ... here.
f19dbdb7 10073
48b671ff 10074 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
10075 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
10076 instead of boot/powerpc/ieee1275/crt0.S and
10077 boot/powerpc/ieee1275/cmain.c, respectively.
10078
10079 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
10080 sectors. It was not used anyway.
10081
09fc77a7 100822005-08-30 Hollis Blanchard <hollis@penguinppc.org>
10083
10084 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
10085 `unused parameter' warning.
10086
003789c7 100872005-08-30 Hollis Blanchard <hollis@penguinppc.org>
10088
10089 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
10090 function.
10091 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
10092 getcharwidth.
10093
67f44c86 100942005-08-28 Marco Gerards <metgerards@student.han.nl>
10095
10096 * include/grub/normal.h (enum grub_completion_type): Added
10097 `GRUB_COMPLETION_TYPE_ARGUMENT'.
10098
10099 * normal/cmdline.c (print_completion): Handle
10100 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
10101 * normal/menu_entry.c (store_completion): Likewise.
10102
10103 * normal/completion.c (complete_arguments): New function.
10104 (grub_normal_do_completion): Call `complete_arguments' when the
10105 current words start with a dash.
10106
0b5abe02 101072005-08-27 Marco Gerards <metgerards@student.han.nl>
10108
10109 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
10110 `gzio.mod' instead of `io.mod').
10111
d9864ee1 101122005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
10113
10114 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
10115 (DISTDIRS): Added io and video.
10116 Rewrite the search routine to make an output consistently.
10117
10118 * DISTLIST: Added conf/sparc64-ieee1275.mk,
10119 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
10120 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
10121 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
10122 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
10123 util/powerpc/ieee1275/misc.c.
f19dbdb7 10124
d9864ee1 10125 * include/grub/gzio.h: New file.
10126 * io/gzio.c: Likewise.
f19dbdb7 10127
d9864ee1 10128 * kern/file.c (grub_file_close): Call grub_device_close only if
10129 FILE->DEVICE is not NULL.
10130
10131 * include/grub/mm.h [!NULL] (NULL): New macro.
10132
10133 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
10134
10135 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
10136 (pkgdata_MODULES): Added gzio.mod.
10137 (gzio_mod_SOURCES): New variable.
10138 (gzio_mod_CFLAGS): Likewise.
10139
10140 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
10141 (pkgdata_MODULES): Added gzio.mod.
10142 (gzio_mod_SOURCES): New variable.
10143 (gzio_mod_CFLAGS): Likewise.
10144
10145 * commands/cat.c: Include grub/gzio.h.
10146 (grub_cmd_cat): Use grub_gzfile_open instead of
10147 grub_file_open.
f19dbdb7 10148
d9864ee1 10149 * commands/cmp.c: Include grub/gzio.h.
10150 (grub_cmd_cmp): Use grub_gzfile_open instead of
10151 grub_file_open.
10152
10153 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
10154 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
10155 grub_file_open.
10156 (grub_rescue_cmd_module): Likewise.
10157
fa46f4b5 101582005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
10159
10160 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
10161 kern/sparc64/ieee1275/init.c because it contains _start.
10162 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
10163
e9211b5d 101642005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
10165
10166 * configure.ac: Add support for sparc64 host with ieee1275
10167 firmware.
10168 * configure: Generated from configure.ac.
10169 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
10170 instead of int.
10171 (grub_ofdisk_read): Likewise.
10172 (grub_ofdisk_open): Use %p to print pointer values, and cast the
10173 pointers as (void *) to remove a warning.
10174 (grub_ofdisk_close): Likewise.
10175 (grub_ofdisk_read): Likewise.
10176 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
10177 returns, so make it return void to remove a warning.
10178 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
10179 Corresponding prototype change.
10180 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
10181 values, and cast the pointers as (void *) to remove a warning.
10182 (grub_mm_dump): Likewise.
10183 * conf/sparc64-ieee1275.mk: New file.
10184 * conf/sparc64-ieee1275.rmk: Likewise.
10185 * include/grub/sparc64/setjmp.h: Likewise.
10186 * include/grub/sparc64/types.h: Likewise.
10187 * include/grub/sparc64/ieee1275/console.h: Likewise.
10188 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
10189 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
10190 * include/grub/sparc64/ieee1275/time.h: Likewise.
10191 * kern/sparc64/cache.c: Likewise.
10192 * kern/sparc64/dl.c: Likewise.
10193 * kern/sparc64/ieee1275/init.c: Likewise.
10194 * kern/sparc64/ieee1275/openfw.c: Likewise.
10195
385c6a92 101962005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
10197
10198 * util/console.c (grub_ncurses_putchar): If C is greater than
10199 0x7f, set C to a question mark.
10200 (grub_ncurses_getcharwidth): New function.
10201 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
10202 getcharwidth.
10203
10204 * normal/menu.c (print_entry): Made aware of Unicode. First,
10205 convert TITLE to UCS-4, and predict the cursor position by
10206 grub_getcharwidth.
10207
10208 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
10209 const to SRC.
10210 * kern/misc.c (grub_utf16_to_utf8): Likewise.
10211
16ccb8b1 102122005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
10213
10214 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
10215 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
10216 grub_strcat.
10217
10218 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
10219 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
10220 grub_strcpy and grub_strlen. Take it into account that a space
10221 character is inserted as a delimiter.
10222
6a85ce79 102232005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
10224
10225 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
fe6b695a 10226 invalid magic in the error.
6a85ce79 10227
10228 * commands/search.c: New file.
f19dbdb7 10229
6a85ce79 10230 * util/grub-emu.c (main): Call grub_search_init and
10231 grub_search_fini.
10232
10233 * kern/rescue.c (grub_rescue_print_disks): Removed.
10234 (grub_rescue_print_devices): New function.
10235 (grub_rescue_cmd_ls): Use grub_device_iterate with
10236 grub_rescue_print_devices instead of grub_disk_dev_iterate with
10237 grub_rescue_print_disks.
10238
10239 * kern/partition.c (grub_partition_iterate): Return the result of
10240 PARTMAP->ITERATE instead of GRUB_ERRNO.
10241
10242 * kern/device.c: Include grub/partition.h.
10243 (grub_device_iterate): New function.
10244
10245 * include/grub/partition.h (grub_partition_iterate): Return int
10246 instead of grub_err_t.
10247
10248 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
10249 prototype.
10250 [GRUB_UTIL] (grub_search_fini): Likewise.
10251
10252 * include/grub/device.h (grub_device_iterate): New prototype.
10253
10254 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
10255 commands/search.c.
10256 (pkgdata_MODULES): Added search.mod.
10257 (search_mod_SOURCES): New variable.
10258 (search_mod_CFLAGS): Likewise.
10259
10260 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
10261 (pkgdata_MODULES): Added search.mod.
10262 (search_mod_SOURCES): New variable.
10263 (search_mod_CFLAGS): Likewise.
10264
10265 * commands/ls.c (grub_ls_list_disks): Renamed to ...
10266 (grub_ls_list_devices): ... this, and use grub_device_iterate.
10267 All callers changed.
10268
10269 * DISTLIST: Added commands/search.c.
10270
ef095434 102712005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
10272
10273 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
10274 conversion.
10275 (grub_getcharwidth): New function.
10276
10277 * kern/misc.c (grub_utf8_to_ucs4): New function.
10278
10279 * include/grub/term.h (struct grub_term): Added a new member
10280 "getcharwidth".
10281 (grub_getcharwidth): New prototype.
10282
10283 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
10284
10285 * term/i386/pc/console.c (map_char): New function. Segregated from
10286 grub_console_putchar.
10287 (grub_console_putchar): Use map_char.
10288 (grub_console_getcharwidth): New function.
10289 (grub_console_term): Specified grub_console_getcharwidth as
10290 getcharwidth.
10291
10292 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
10293 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
10294
10295 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
10296 GRUB_ERRNO.
10297 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
10298 on grub_strtoul completely.
10299 (write_char): Declare local variables in the beginning of the
10300 function.
10301 (grub_vesafb_getcharwidth): New function.
10302 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
10303 getcharwidth.
10304
1f0a95e4 103052005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
10306
10307 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
10308 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
10309 commands/i386/pc/vbetest.c.
10310
10311 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
10312 call grub_vbe_get_controller_info again, because the returned
10313 information is volatile.
10314 (grub_vbe_set_video_mode): Mostly rewritten.
10315 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
10316 grub_vbe_status_t correctly.
10317 (grub_vbe_get_video_mode_info): Likewise.
10318 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
10319 several if statements.
10320
10321 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
10322 * commands/i386/pc/vbeinfo.c: ... this.
10323
10324 * commands/i386/pc/vbe_test.c: Renamed to ...
10325 * commands/i386/pc/vbetest.c: ... this.
10326
10327 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
10328 ...
10329 (grub_cmd_vbeinfo): ... this. Save video modes before
10330 iterating. Skip a video mode, if it is not available, not enough
10331 information is given or it is monochrome. Show the memory
10332 model. Leave the interpretation of MODEVAR to grub_strtoul
10333 completely.
10334 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
10335 (GRUB_MOD_FINI): Likewise.
10336
10337 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
10338 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
10339 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
10340 duplicated grub_env_get. Leave the interpretation of MODEVAR to
10341 grub_strtoul completely.
10342 (real2pm): Removed.
10343 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
10344 (GRUB_MOD_FINI): Likewise.
10345
10346 * normal/misc.c: Include grub/mm.h.
10347
10348 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
10349 vbe_list_modes with vbetest.mod and vbeinfo.mod.
10350 (vbe_list_modes_mod_SOURCES): Removed.
10351 (vbe_list_modes_mod_CFLAGS): Likewise.
10352 (vbe_test_mod_SOURCES): Likewise.
10353 (vbe_test_mod_CFLAGS): Likewise.
10354 (vbeinfo_mod_SOURCES): New variable.
10355 (vbeinfo_mod_CFLAGS): Likewise.
10356 (vbetest_mod_SOURCES): Likewise.
10357 (vbetest_mod_CFLAGS): Likewise.
10358
992ffbbe 103592005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
10360
10361 * normal/misc.c: New file.
10362
10363 * DISTLIST: Added normal/misc.c.
f19dbdb7 10364
992ffbbe 10365 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
10366 DISK to HOOK. Call HOOK with DISK.
10367 * partmap/apple.c (apple_partition_map_iterate): Likewise.
10368 * partmap/pc.c (pc_partition_map_iterate): Likewise.
10369 * partmap/sun.c (sun_partition_map_iterate): Likewise.
10370
10371 * normal/menu_entry.c (struct screen): Added a new member
10372 "completion_shown".
10373 (completion_buffer): New global variable.
10374 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
10375 (store_completion): New function.
10376 (complete): Likewise.
10377 (clear_completions): Likewise.
10378 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
10379 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
10380 a tab, call complete.
10381
10382 * normal/completion.c (disk_dev): Removed.
10383 (print_simple_completion): Likewise.
10384 (print_partition_completion): Likewise.
10385 (print_func): New global variable.
10386 (add_completion): Do not take the arguments WHAT or PRINT any
10387 longer. Added a new argument TYPE. Instead of printing directly,
10388 call PRINT_FUNC if not NULL.
10389 All callers changed.
10390 (complete_device): Use a local variable DEV instead of
10391 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
10392 (grub_normal_do_completion): Take a new argument HOOK. Do not
10393 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
10394 empty string, return NULL instead.
10395 All callers changed.
10396
10397 * normal/cmdline.c (print_completion): New function.
10398
10399 * kern/partition.c (grub_partition_iterate): Add an argument DISK
10400 to HOOK.
10401 All callers changed.
10402
10403 * kern/disk.c (grub_print_partinfo): Removed.
10404
10405 * include/grub/partition.h (struct grub_partition_map): Add a new
10406 argument DISK into HOOK of ITERATE.
10407 (grub_partition_iterate): Add a new argument DISK to HOOK.
10408
10409 * include/grub/normal.h (enum grub_completion_type): New enum.
10410 (grub_completion_type_t): New type.
10411 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
10412 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
10413 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
10414 (GRUB_COMPLETION_TYPE_FILE): Likewise.
10415 (grub_normal_do_completion): Added a new argument HOOK.
10416 (grub_normal_print_device_info): New prototype.
10417
10418 * include/grub/disk.h (grub_print_partinfo): Removed.
10419
10420 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
10421 (normal_mod_SOURCES): Likewise.
10422 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
10423 (normal_mod_SOURCES): Likewise.
10424
10425 * commands/ls.c (grub_ls_list_disks): Use
10426 grub_normal_print_device_info instead of grub_print_partinfo. Free
10427 PNAME.
10428 (grub_ls_list_files): Use grub_normal_print_device_info instead of
10429 duplicating the code.
10430
0bd41162 104312005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
10432
10433 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
f19dbdb7 10434 follow GCS more precisely.
10435 * commands/i386/pc/vbe_test.c: Likewise.
10436 * include/grub/i386/pc/vbe.h: Likewise.
10437 * term/i386/pc/vesafb.c: Likewise.
10438 * video/i386/pc/vbe.c: Likewise.
0bd41162 10439
6323696a 104402005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
10441
10442 * DISTLIST: Added term/i386/pc/vesafb.c
10443 DISTLIST: Added video/i386/pc/vbe.c
10444 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
10445 DISTLIST: Added commands/i386/pc/vbe_test.c.
10446 * commands/i386/pc/vbe_list_modes.c: New file.
10447 * commands/i386/pc/vbe_test.c: Likewise.
10448 * term/i386/pc/vesafb.c: Likewise.
10449 * video/i386/pc/vbe.c: Likewise.
10450 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
10451 (grub_vbe_probe) Added prototype.
10452 (grub_vbe_set_video_mode) Likewise.
10453 (grub_vbe_get_video_mode) Likewise.
10454 (grub_vbe_get_video_mode_info) Likewise.
10455 (grub_vbe_set_pixel_rgb) Likewise.
10456 (grub_vbe_set_pixel_index) Likewise.
10457 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
10458 (pkgdata_MODULES): Added vesafb.mod.
10459 (pkgdata_MODULES): Added vbe_list_modes.mod.
10460 (pkgdata_MODULES): Added vbe_test.mod.
10461 (vbe_mod_SOURCES): Added.
10462 (vbe_mod_CFLAGS): Likewise.
10463 (vesafb_mod_SOURCES): Likewise.
10464 (vesafb_mod_CFLAGS): Likewise.
10465 (vbe_list_modes_mod_SOURCES): Likewise.
10466 (vbe_list_modes_mod_CFLAGS): Likewise.
10467 (vbe_test_mod_SOURCES): Likewise.
10468 (vbe_test_mod_CFLAGS): Likewise.
10469
0a74e62f 104702005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
10471
0a74e62f 10472 * normal/command.c (grub_command_execute): If INTERACTIVE is
10473 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
10474 CMDLINE. Disable the pager if INTERACTIVE is true.
10475 All callers are changed.
10476
10477 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
10478 before reading a config file.
10479 * normal/main.c (read_config_file): Even if a command is not
10480 found, register it if it is within an entry.
10481
10482 * util/grub-emu.c: Include sys/types.h and unistd.h.
10483 (options): Added --hold.
10484 (struct arguments): Added a new member "hold".
10485 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
10486 missing.
10487 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
10488 cleared by a debugger, if it is not zero.
10489
10490 * include/grub/normal.h (grub_command_execute): Add an argument
10491 INTERACTIVE.
10492
e51f85ae 104932005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
10494
10495 * DISTLIST: Added include/grub/i386/pc/vbe.h.
10496
e9c6f39b 104972005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
10498
10499 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
10500 program with another one, because the old one didn't detect a bug
10501 in gcc-3.4. Always use regparm 2, because the new test is still
10502 not enough for gcc-4.0. Someone must investigate a simple test
10503 case which detects a bug in gcc-4.0.
10504
8de3495c 105052005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
10506
10507 * DISTLIST: Added normal/completion.c.
10508
10509 * normal/completion.c: New file.
f19dbdb7 10510
8de3495c 10511 * term/i386/pc/console.c (grub_console_getwh): New function.
10512 (grub_console_term): Assign grub_console_getwh to getwh.
10513
10514 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
10515 function is defined in normal/completion.c as
10516 grub_normal_do_completion.
10517 (grub_cmdline_get): Use grub_normal_do_completion instead of
10518 grub_tab_complete.
10519
10520 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
10521 returns non-zero, otherwise return 0.
10522 (grub_partition_iterate): First, probe the partition map. Then,
10523 call ITERATE only for this partition map.
10524
10525 * kern/misc.c (grub_strncmp): Rewritten.
10526
10527 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
10528 returns non-zero. Otherwise return 0.
10529
10530 * include/grub/partition.h (grub_partition_map_iterate): Return
10531 int instead of void.
10532
10533 * include/grub/normal.h (grub_normal_do_completion): New prototype.
10534
10535 * include/grub/misc.h (grub_strncmp): Change the type of N to
10536 grub_size_t.
10537
10538 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
10539 of void.
10540
10541 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
fe6b695a 10542 unsigned explicitly before comparing it with I.
8de3495c 10543
10544 * kern/main.c (grub_env_write_root): Add the attribute unused into
10545 VAR.
10546
10547 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
10548 normal/completion.c.
10549 (normal_mod_SOURCES): Likewise.
10550 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
10551 (normal_mod_SOURCES): Likewise.
10552
10553 * normal/command.c (grub_iterate_commands): If ITERATE returns
10554 non-zero, return one immediately.
10555
e85e144b 105562005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
10557
10558 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
10559 * kern/i386/pc/startup.S: Updated Global Descriptor table's
10560 descriptions.
10561 (grub_vbe_get_controller_info): New function.
10562 (grub_vbe_get_mode_info): Likewise.
10563 (grub_vbe_set_mode): Likewise.
10564 (grub_vbe_get_mode): Likewise.
10565 (grub_vbe_set_memory_window): Likewise.
10566 (grub_vbe_get_memory_window): Likewise.
10567 (grub_vbe_set_scanline_length): Likewise.
10568 (grub_vbe_get_scanline_length): Likewise.
10569 (grub_vbe_set_display_start): Likewise.
10570 (grub_vbe_get_display_start): Likewise.
10571 (grub_vbe_set_palette_data): Likewise.
10572 * include/grub/i386/pc/vbe.h: New file.
10573
c46153d2 105742005-08-08 Hollis Blanchard <hollis@penguinppc.org>
10575
10576 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
10577 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
10578 * DISTLIST: Likewise.
10579 * kern/ieee1275/of.c: Moved to ...
10580 * kern/ieee1275/ieee1275.c: ... here.
10581
0cb90c45 105822005-08-08 Hollis Blanchard <hollis@penguinppc.org>
10583
10584 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
10585 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
10586 Pass 0 as `end' parameter to grub_strtoul().
10587
a19fb360 105882005-08-08 Hollis Blanchard <hollis@penguinppc.org>
10589
10590 * include/grub/powerpc/ieee1275/console.h: Do not include
10591 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
10592 ifdef.
10593 (grub_console_cur_color): Remove i386-specific prototype.
10594 (grub_console_real_putchar): Likewise.
10595 (grub_console_checkkey): Likewise.
10596 (grub_console_getkey): Likewise.
10597 (grub_console_getxy): Likewise.
10598 (grub_console_gotoxy): Likewise.
10599 (grub_console_cls): Likewise.
10600 (grub_console_setcursor): Likewise.
10601 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
10602 Include <grub/machine/console.h>.
10603 * term/ieee1275/ofconsole.c: Likewise.
10604
4ac9bd04 106052005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
10606
10607 * Makefile.in (LIBLZO): New variable.
10608
10609 * configure.ac: Check for LZO version 2.
10610
10611 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
10612 lzo/lzo1x.h instead of lzo1x.h.
10613
10614 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
10615 of -llzo.
10616
10617 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
10618 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
10619
10620 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
10621 copying the data from PARTITION to P.
10622
f4917dfd 106232005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
10624
10625 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
10626 negative, unload the module.
10627
10628 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
10629 map is "pc_partition_map" but not "pc".
10630 (usage): Fix the description. The options are --boot-image and
10631 --core-image but not --boot-file or --core-file.
10632 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
10633 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
10634 DEFAULT_DIRECTORY.
10635
10636 * util/i386/pc/grub-install.in: Do not specify --boot-file or
10637 --core-file. Specify INSTALL_DEVICE as an argument.
10638
10639 * util/console.c: Include config.h.
10640 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
10641 [HAVE_NCURSES_H]: Include ncurses.h.
10642 [HAVE_CURSES_H]: Include curses.h.
10643 [!A_NORMAL] (A_NORMAL): Defined as zero.
10644 [!A_STANDOUT] (A_STANDOUT): Likewise.
10645
10646 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
10647 -lncurses.
10648 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
10649
10650 * configure.ac: Check for curses libraries and headers.
10651
10652 * Makefile.in (LIBCURSES): New variable.
10653
10654 * genmk.rb (Script::rule): Set the executable bits.
10655
10656 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
10657 name of the PC partition map is "pc_partition_map" but not "pc".
10658
0e143073 106592005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
10660
10661 * util/i386/pc/grub-install.in (grub_probefs): New variable.
10662 (modules): Likewise.
10663 (usage): Added descriptions for --modules and --grub-probefs.
10664 Handle --modules and --grub-probefs. Save the arguments in MODULES
10665 and GRUB_PROBEFS, respectively.
10666 Auto-detect a filesystem module against GRUBDIR. If the result is
10667 empty and modules are not specified explicitly, abort the
10668 installation. Add the result to MODULES.
10669
10670 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
10671 disk/powerpc/ieee1275/ofdisk.c,
10672 include/grub/powerpc/ieee1275/init.h and
10673 term/powerpc/ieee1275/ofconsole.c.
10674 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
10675 term/ieee1275/ofconsole.c.
10676
10677 * include/grub/powerpc/ieee1275/console.h: Resurrected.
10678
10679 * COPYING: Upgraded to the latest version. Only the address of the
10680 FSF office has changed.
f19dbdb7 10681
efd6e6d5 106822005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
10683
10684 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
10685 kern/ieee1275.c with kern/ieee1275/of.c.
10686
10687 * kern/ieee1275.c: Moved to ...
10688 * kern/ieee1275/of.c: ... here.
10689
8ceafda2 106902005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
10691
10692 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
fe6b695a 10693 readability.
8ceafda2 10694
10695 * config.guess: Updated to the latest version from gnulib.
10696 * config.sub: Likewise.
10697 * install.sh: Likewise.
10698 * mkinstalldirs: Likewise.
10699
10700 * include/grub/console.h: Removed. This file is arch-specific. Do
10701 not put this in include/grub.
10702
10703 * include/grub/i386/pc/console.h: Resurrected.
10704
10705 * util/console.c: Include grub/machine/console.h instead of
10706 grub/console.h.
10707 * util/grub-emu.c: Likewise.
10708
267f6cd9 107092005-08-04 Marco Gerards <metgerards@student.han.nl>
10710
10711 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
10712 hardcoded value.
f19dbdb7 10713
267f6cd9 10714 From Vincent Pelletier <subdino2004@yahoo.fr>
10715 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
10716 Redefined to use grub_getwh.
10717 (grub_term): New member named getwh.
10718 (grub_getwh): New prototype.
10719 * kern/term.c (grub_getwh): New function.
10720 * term/i386/pc/console.c (grub_console_getwh): New function.
10721 (grub_console_term): New member `getwh'.
10722 * term/i386/pc/vga.c (grub_vga_getwh): New function.
10723 (grub_vga_term): New member `getwh'.
0b5abe02 10724 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
267f6cd9 10725 grub_ssize_t.
10726 (grub_ofconsole_getw): New function.
10727 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
10728 (grub_ofconsole_term): New field named getwh and new initial
10729 value.
10730
3be7266d 107312005-08-03 Hollis Blanchard <hollis@penguinppc.org>
10732
10733 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
10734 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
10735 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
10736 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
10737 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
10738 of <grub/machine/ieee1275.h>.
10739 * commands/ieee1275/reboot.c: Likewise.
10740 * boot/powerpc/ieee1275/ieee1275.c: Move ...
10741 * kern/ieee1275.c: ... to here. All users updated. Change all
10742 parameter structs to use new type `grub_ieee1275_cell_t'.
10743 * term/powerpc/ieee1275/ofconsole.c: Move ...
10744 * term/ieee1275/ofconsole.c: ... to here. All users updated.
10745 * disk/powerpc/ieee1275/ofdisk.c: Move ...
10746 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
10747 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
10748 to return int.
10749 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
10750 Remove unused prototypes. All users updated.
10751 * include/grub/powerpc/ieee1275/console.h: Removed.
10752 * include/grub/powerpc/ieee1275/ieee1275.h: Define
10753 `grub_ieee1275_cell_t'.
10754 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
10755 Cast comparisons with -1 to the correct type.
10756 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
10757 type to match `grub_ieee1275_entry_fn'.
10758
8b5f3938 107592005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
10760
10761 * DISTLIST: Added util/i386/pc/grub-probefs.c.
10762
10763 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
10764 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
10765 partmap/sun.c.
10766 (grub_probefs_SOURCES): New variable.
10767
10768 * util/i386/pc/grub-probefs.c: New file.
10769
10770 * util/i386/pc/grub-setup.c (main): Call
10771 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
10772 grub_hfs_init and grub_jfs_init to initialize the system. Call
10773 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
10774 grub_pc_partition_map_fini to finish the system.
10775
ea409713 107762005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
10777
10778 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
10779 function.
10780 (grub_multiboot_load_elf32): Likewise.
10781 (grub_multiboot_is_elf64): Likewise.
10782 (grub_multiboot_load_elf64): Likewise.
10783 (grub_multiboot_load_elf): Likewise.
10784 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
10785 an ELF32 or ELF64 file.
10786 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
10787
10788 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
10789 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
10790 NULL before calling FS->LABEL.
10791 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
10792 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
10793 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
10794 before calling FS->LABEL.
10795
141a288b 107962005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
10797
10798 * util/i386/pc/grub-install.in (datadir): New variable.
10799 (libdir): Removed.
10800 (pkgdatadir): New variable.
10801 (pkglibdir): Removed.
10802
0d5f8a54 108032005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
10804
10805 * DISTLIST: Added util/i386/pc/grub-install.in.
10806
10807 * util/i386/pc/grub-install.in: New file.
10808
10809 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
10810 (grub_install_SOURCES): Likewise.
10811
10812 * genmk.rb: Added support for scripts.
10813 (Script): New class.
10814 (scripts): New variable.
10815
10816 * Makefile.in (install-local): Install sbin_SCRIPTS by
10817 INSTALL_SCRIPT.
10818 (uninstall): Remove sbin_SCRIPTS.
10819
10820 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
10821 device, try to get a GRUB device by
10822 grub_util_biosdisk_get_grub_dev.
10823 Free DEST_DEV.
10824
10825 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
10826 description for --device-map.
10827
5f968e1e 108282005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
10829
10830 Change the semantics of variable hooks. They now return strings
10831 instead of error values.
f19dbdb7 10832
5f968e1e 10833 * util/i386/pc/grub-setup.c: Include grub/env.h.
10834 (setup): Use grub_device_set_root instead of grub_env_set.
10835
10836 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
10837 grub_env_get instead of grub_device_set_root and
10838 grub_device_get_root, respectively.
10839
10840 * kern/main.c (grub_env_write_root): New function.
10841 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
10842 grub_env_set instead of grub_device_set_root.
10843
10844 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
10845 many variables.
10846 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
10847 rather than calling ENV->WRITE_HOOK afterwards.
10848 (grub_env_get): Return the result of ENV->READ_HOOK rather than
10849 passing a pointer of a pointer.
10850 (grub_register_variable_hook): Change the types of "read_hook" and
10851 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
10852 respectively.
10853 Allocate the default empty string on the heap, because this string
10854 may be freed later.
10855
10856 * kern/device.c: Include grub/env.h.
10857 (grub_device_set_root): Removed.
10858 (grub_device_get_root): Likewise.
10859 (grub_device_open): Use grub_env_get instead of
10860 grub_device_get_root.
10861
10862 * include/grub/env.h (grub_env_read_hook_t): New type.
10863 (grub_env_write_hook_t): Likewise.
10864 (grub_env_var): Change the types of "read_hook" and "write_hook"
10865 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
10866 (grub_register_variable_hook): Likewise.
10867
10868 * include/grub/device.h (grub_device_set_root): Removed.
10869 (grub_device_set_root): Likewise.
10870
10871 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
10872 make sure that DIRNAME terminates with '/', so that
10873 grub_fat_find_dir will fail if PATH is not a directory.
10874
10875 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
10876 from DIRNAME.
10877 Use the qualifier auto for print_files and print_files_long.
10878 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
10879 as a regular file.
10880 Put a newline only if there is no error.
10881 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
10882 used.
10883
896f0afd 108842005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
10885
10886 * kern/partition.c (grub_partition_probe): Initialize PART to
10887 NULL. Otherwise, when no partition map is registered, this returns
10888 a garbage.
10889
b28b81b2 108902005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
10891
10892 * partmap/apple.c (apple_partition_map_iterate): Check if POS
10893 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
10894 valid.
10895
5f3607e0 108962005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
10897
10898 * commands/ls.c (grub_ls_list_disks): Print the filesystem
10899 information on each device, if it does not have partitions. Print
10900 "Device" instead of "Disk", because this function is not specific
10901 to disk devices.
10902
10903 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
10904 static to ensure that it is put on the memory rather than a
10905 register.
10906
502c87e8 109072005-07-17 Yoshinori Okuji <okuji@enbug.org>
10908
10909 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
10910 (grub_cat_init): Likewise.
10911 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
10912 (options): Likewise.
10913 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
10914 (grub_configfile_init): Likewise.
10915 * font/manager.c (GRUB_MOD_INIT): Likewise.
10916 * commands/help.c (GRUB_MOD_INIT): Likewise.
10917 (grub_help_init): Likewise.
10918 * normal/command.c (grub_command_init): Likewise.
10919 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
10920 * disk/loopback.c (grub_loop_init): Likewise.
10921 (GRUB_MOD_INIT): Likewise.
10922 * commands/ls.c (grub_ls_init): Likewise.
10923 (GRUB_MOD_INIT): Likewise.
10924 (options): Likewise.
10925 * commands/boot.c (grub_boot_init): Likewise.
10926 (GRUB_MOD_INIT): Likewise.
10927 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
10928 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
10929 (GRUB_MOD_INIT): Likewise.
10930 * commands/cmp.c (grub_cmp_init): Likewise.
10931 (GRUB_MOD_INIT): Likewise.
10932
10933 * normal/arg.c: Use <> instead of "" to include header files.
10934 (SHORT_ARG_HELP): New macro.
10935 (SHORT_ARG_USAGE): Likewise.
10936 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
10937 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
10938 descriptions.
10939 (find_short): Check if C is 'h' or 'u' explicitly.
10940 (grub_arg_show_help): Use space characters instead of tabs. Treat
10941 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
10942 are shown with --help and --usage only if they are not used for
10943 the command itself.
10944 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
10945 'h' and 'u'.
10946
10947 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
10948 const into "longarg". Change the type of "shortarg" to int.
10949
f806d18e 109502005-07-17 Yoshinori Okuji <okuji@enbug.org>
10951
10952 * boot/i386/pc/boot.S (boot_drive_check): New label.
10953
10954 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
10955 macro.
10956
10957 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
10958 which do not pass a boot drive correctly. Copied from GRUB Legacy.
10959
e293232b 109602005-07-17 Yoshinori Okuji <okuji@enbug.org>
10961
10962 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
10963 When turning off Gate A20, skip the check and return immediately,
10964 because this is not fatal usually.
10965
ebedfd00 109662005-07-17 Yoshinori Okuji <okuji@enbug.org>
10967
10968 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
10969 be 0x7C00 instead of 0x8000.
10970
10971 * boot/i386/pc/pxeboot.S: Rewritten.
10972
10973 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
10974 EXT_C.
10975 (gate_a20_check_state): Read a byte from 0x108000. Invert the
10976 result.
10977
654fc59f 109782005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
10979
10980 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
10981 robustness. This routine now supports a BIOS call and System
10982 Control Port A to modify the gate A20.
10983
10984 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
10985 Increased to 0x440.
10986
09f9923f 109872005-07-12 Hollis Blanchard <hollis@penguinppc.org>
10988
10989 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
10990 device path and resulting ihandle.
10991 (grub_ofdisk_close): dprintf the ihandle being closed.
10992 (grub_ofdisk_read): dprintf function parameters.
10993 * kern/mm.c (grub_mm_init_region): Likewise.
10994 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
10995 (grub_linux_boot): dprintf the Linux entry point, initrd address and
10996 size, and boot arguments.
10997 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
10998 before loading into memory.
10999 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
11000 before loading into memory.
11001
7ef504d8 110022005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
11003
11004 * kern/mm.c: Added much documentation.
11005 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
11006 8, set to 5 instead of 8.
11007
e0f050c2 110082005-07-10 Yoshinori Okuji <okuji@enbug.org>
11009
11010 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
11011
11012 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
11013 (grub_mkdevicemap_SOURCES): New variable.
11014
11015 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
11016 lib/device.c of GRUB Legacy.
11017
7224189a 110182005-07-10 Yoshinori Okuji <okuji@enbug.org>
11019
11020 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
11021 instead of PATH is NULL.
11022
68c864eb 110232005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
11024
11025 * commands/cmp.c (BUFFER_SIZE): New macro.
11026 (grub_cmd_cmp): Close the right file at the right time. Compare
11027 only data just read. Don't report files of different size as
11028 identical. Dynamically allocate buffers. Move variable
11029 declarations at the beginning of function.
11030
e6f3e614 110312005-07-09 Yoshinori Okuji <okuji@enbug.org>
11032
11033 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
11034 reverse.
11035
f8f1559a 110362004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
11037
11038 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
11039 when backspace is pressed at beginning of line.
11040
39c9d41d 110412005-07-03 Yoshinori Okuji <okuji@enbug.org>
11042
11043 * DISTLIST: Added genfslist.sh.
11044
11045 * normal/main.c (fs_module_list): New variable.
11046 (autoload_fs_module): New function.
11047 (read_fs_list): Likewise.
11048 (grub_normal_execute): Call read_fs_list.
11049
11050 * kern/fs.c (grub_fs_autoload_hook): New variable.
11051 (grub_fs_probe): Added support for auto-loading.
11052
11053 * include/grub/normal.h (struct grub_fs_module_list): New struct.
11054 (grub_fs_module_list_t): New type.
11055
11056 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
11057 (grub_fs_autoload_hook): New prototype.
11058
11059 * genfslist.sh: New file.
f19dbdb7 11060
39c9d41d 11061 * genmk.rb: Added a rule to generate a filesystem list.
11062
121c1d83 110632005-06-30 Marco Gerards <metgerards@student.han.nl>
11064
11065 * configure.ac: Fix the test for cross-compiling.
11066
11067 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
11068 define GRUB_UTIL anymore.
11069
11070 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
11071 so this function works on other systems than just big endian.
11072 (load_modules): Likewise.
11073 (add_segments): Likewise.
11074
e75d76e1 110752005-06-23 Hollis Blanchard <hollis@penguinppc.org>
11076
11077 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
11078 contains `l' modifier, get a long from va_arg().
11079
50b5a0a7 110802005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
11081
11082 * kern/mm.c (grub_free): If the next free block which is being
11083 merged is the first free block, set the first block to the block
11084 being freed.
11085 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
11086
89371b20 110872005-05-08 Hollis Blanchard <hollis@penguinppc.org>
11088
11089 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
11090 `grub_ieee1275_chosen'.
11091
168d6e58 110922005-05-08 Hollis Blanchard <hollis@penguinppc.org>
11093
11094 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
11095 (grub_ieee1275_chosen): New variable.
11096 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
11097 `chosen'.
11098 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
11099 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
11100 Rename first argument to `phandle' for consistency.
11101 (grub_ieee1275_get_property_length): Likewise.
11102 (grub_ieee1275_next_property): Likewise. Change type of first argument
11103 to grub_ieee1275_phandle_t.
11104 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
11105 Move export next to declaration.
11106 (grub_ieee1275_chosen): New variable.
11107 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
11108 Correct cosmetic typo.
11109 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
11110 `grub_ieee1275_chosen'.
11111 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
11112 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
11113 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
11114 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
11115 `grub_ieee1275_chosen'.
11116
ca5baa3f 111172005-05-10 Hollis Blanchard <hollis@penguinppc.org>
11118
11119 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
11120 /chosen/bootargs.
11121 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
11122 /chosen/bootargs as "variable=value" pairs.
11123
708b345f 111242005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
11125
11126 * include/grub/misc.h (grub_dprintf): New macro.
11127 (grub_real_dprintf): New prototype.
11128 (grub_strword): Likewise.
11129 (grub_iswordseparator): Likewise.
11130 * kern/misc.c (grub_real_dprintf): New function.
11131 (grub_strword): Likewise.
11132 (grub_iswordseparator): Likewise.
11133
f4c5e67c 111342005-04-30 Hollis Blanchard <hollis@penguinppc.org>
11135
11136 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
11137 (roundup): Remove macro.
11138 (grub_ieee1275_flags): Make static.
11139 (grub_ieee1275_realmode): Remove.
11140 (grub_ieee1275_test_flag): New function.
11141 (grub_ieee1275_set_flag): Likewise.
11142 (find_options): Rename to `grub_ieee1275_find_options'; update
11143 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
11144 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
11145 (cmain): New prototype.
11146 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
11147 `grub_ieee1275_flags' directly.
11148 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
11149 machine/biosdisk.h.
11150 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
11151 Don't include grub/machine/init.h.
11152 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
11153 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
11154 Remove prototype.
11155 (grub_ieee1275_realmode): Likewise.
11156 (grub_ieee1275_flag): New enum.
11157 (grub_ieee1275_test_flag): New prototype.
11158 (grub_ieee1275_set_flag): New prototype.
11159 * include/grub/powerpc/ieee1275/init.h: Remove file.
11160 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
11161 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
11162 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
11163 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
11164 comment.
11165 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
11166 `grub_ieee1275_test_flag'.
11167 (grub_ieee1275_encode_devname): Likewise.
11168
ed16607e 111692005-04-21 Hollis Blanchard <hollis@penguinppc.org>
11170
11171 * include/grub/powerpc/ieee1275/ieee1275.h
11172 (grub_ieee1275_encode_devname): New prototype.
11173 (grub_ieee1275_get_filename): Likewise.
11174 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
11175 function.
11176 (grub_set_prefix): Likewise.
11177 (grub_machine_init): Call grub_set_prefix.
11178 * kern/powerpc/ieee1275/openfw.c: Fix typos.
11179 (grub_parse_type): New enum.
11180 (grub_ieee1275_get_devargs): New function.
11181 (grub_ieee1275_get_devname): Likewise.
11182 (grub_ieee1275_parse_args): Likewise.
11183 (grub_ieee1275_get_filename): Likewise.
11184 (grub_ieee1275_encode_devname): Likewise.
11185
be369920 111862005-03-30 Marco Gerards <metgerards@student.han.nl>
11187
11188 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
11189 `grub_loader_unset'.
11190
a5ce3a4a 111912005-03-26 Hollis Blanchard <hollis@penguinppc.org>
11192
11193 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
11194 instead of grub_ieee1275_interpret.
11195 (grub_halt_init): New function.
11196 (grub_halt_fini): Likewise.
11197 (GRUB_MOD_INIT): Correct message grammar.
11198 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
11199 instead of grub_ieee1275_interpret.
11200 (grub_reboot_init): New function.
11201 (grub_reboot_fini): Likewise.
11202 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
11203 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
11204 util/i386/pc/misc.c with commands/ieee1275/halt.c,
11205 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
11206 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
11207 function.
11208 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
11209 Add prototype.
11210 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
11211 prototype.
11212 (grub_halt): Likewise.
11213 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
11214 (cmain): Remove __attribute__((unused)).
11215 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
11216 (grub_heap_len): Likewise.
11217 (grub_machine_fini): New function.
11218 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
11219 (grub_halt): Likewise.
11220 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
11221 function.
11222 * util/powerpc/ieee1275/misc.c: New file.
11223
0058f771 112242005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
11225
11226 * DISTLIST: New file.
11227 * gendistlist.sh: Likewise.
f19dbdb7 11228
0058f771 11229 * Makefile.in (COMMON_DISTFILES): Removed.
11230 (BOOT_DISTFILES): Likewise.
11231 (CONF_DISTFILES): Likewise.
11232 (DISK_DISTFILES): Likewise.
11233 (FS_DISTFILES): Likewise.
11234 (INCLUDE_DISTFILES): Likewise.
11235 (KERN_DISTFILES): Likewise.
11236 (LOADER_DISTFILES): Likewise.
11237 (TERM_DISTFILES): Likewise.
11238 (UTIL_DISTFILES): Likewise.
11239 (DISTFILES): Likewise.
11240 (uninstall): Uninstall files in $(pkgdata_DATA).
11241 (DISTLIST): New target.
11242 (distdir): Use the contents of the file DISTLIST to get a list of
11243 distributed files.
11244
46b3b8a5 112452005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
11246
11247 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
11248 descriptor. This is ported from GRUB Legacy.
11249
11250 * gencmdlist.sh: Added an extra semicolon to make it work with
11251 old sed versions. Reported by Robert Bihlmeyer
11252 <robbe@orcus.priv.at>.
11253
5822ff87 112542005-03-08 Yoshinori Okuji <okuji@enbug.org>
11255
11256 Automatic loading of commands is supported.
f19dbdb7 11257
5822ff87 11258 * normal/main.c (read_command_list): New function.
11259 (grub_normal_execute): Call read_command_list.
11260
11261 * normal/command.c (grub_register_command): Return zero or CMD.
11262 Allocate CMD->NAME from the heap.
11263 Initialize CMD->MODULE_NAME to zero.
11264 Find the same name as well. If the same command is found and it is
11265 a dummy command, overwrite members. If it is not a dummy command,
11266 return zero.
11267 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
11268 (grub_command_find): If a dummy command is found, load a module
11269 and retry to find a command only once.
11270
11271 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
11272 make sure that each command is loaded.
11273
11274 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
11275 macro.
11276 (struct grub_command): Remove const from the member `name'.
11277 Add a new member `module_name'.
11278 (grub_register_command): Return grub_command_t.
11279
11280 * commands/help.c (grub_cmd_help): Call grub_command_find to make
11281 sure that each command is loaded.
11282
11283 * genmk.rb (PModule::rule): Specify a module name without the
11284 suffix ".mod" to gencmdlist.sh.
11285
7b1f4b57 112862005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
11287
11288 * gencmdlist.sh: New file.
f19dbdb7 11289
7b1f4b57 11290 * genmk.rb (PModule::rule): Generate a rule for a command list.
11291 Clean command.lst.
11292 Generate command.lst from $(COMMANDFILES).
11293
11294 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
11295 (DATA): Added $(pkgdata_DATA).
11296 (install-local): Install files in $(pkgdata_DATA).
11297
062aaf39 112982005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
11299
11300 * term/i386/pc/vga.c (debug_command): Removed.
11301 (GRUB_MOD_INIT): Do not register the command "debug".
11302
11303 From Hollis Blanchard:
11304 * commands/configfile.c: New file.
11305 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
11306 commands/configfile.c.
11307 (pkgdata_MODULES): Added configfile.mod.
11308 (configfile_mod_SOURCES): New variable.
11309 (configfile_mod_CFLAGS): Likewise.
11310 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
11311 commands/configfile.c.
11312 (pkgdata_MODULES): Added configfile.mod.
11313 (configfile_mod_SOURCES): New variable.
11314 (configfile_mod_CFLAGS): Likewise.
11315 * util/grub-emu.c (main): Call grub_configfile_init and
11316 grub_configfile_fini.
11317 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
11318 prototype.
11319 [GRUB_UTIL] (grub_configfile_fini): Likewise.
f19dbdb7 11320
cee01aa6 113212005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
11322
11323 * normal/arg.c (grub_arg_show_help): Do not show the bug report
11324 address.
11325
11326 * commands/help.c (grub_cmd_help): Do not print newlines after
11327 the last command in print_command_help.
11328
93f3a1d8 113292005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
11330
11331 * commands/default.h: New file.
11332 * commands/timeout.h: Likewise.
11333 * normal/context.c: Likewise.
f19dbdb7 11334
93f3a1d8 11335 * util/misc.c: Do not include sys/times.h.
11336 Include sys/time.h and grub/machine/time.h.
11337 (grub_get_rtc): Rewritten with gettimeofday.
11338
11339 * util/grub-emu.c (main): Call grub_default_init and
11340 grub_timeout_init before grub_normal_init, and call
11341 grub_timeout_fini and grub_default_fini after grub_main.
11342
11343 * util/console.c (grub_ncurses_checkkey): Return the read
11344 character or -1.
11345
11346 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
11347 timeouts.
11348
11349 * normal/main.c (read_config_file): Push MENU. If this fails,
11350 print an error and wait for a user input.
11351 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
11352 If a menu is empty or an error occurs, pop MENU.
11353 (grub_normal_execute): Pop and free MENU after grub_menu_run
11354 returns.
11355
11356 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
11357
11358 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
11359 include time.h.
11360 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
11361 without GRUB_UTIL.
11362 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
11363 time.h.
11364 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
11365 without GRUB_UTIL.
11366
11367 * include/grub/normal.h (struct grub_menu_list): New struct.
11368 (grub_menu_list_t): New type.
11369 (struct grub_context): New struct.
11370 (grub_context_t): New type.
11371 (grub_register_command): Got rid of EXPORT_FUNC.
11372 (grub_unregister_command): Likewise.
11373 (grub_context_get): New prototype.
11374 (grub_context_get_current_menu): Likewise.
11375 (grub_context_push_menu): Likewise.
11376 (grub_context_pop_menu): Likewise.
11377 [GRUB_UTIL] (grub_default_init): Likewise.
11378 [GRUB_UTIL] (grub_default_fini): Likewise.
11379 [GRUB_UTIL] (grub_timeout_init): Likewise.
11380 [GRUB_UTIL] (grub_timeout_fini): Likewise.
11381
11382 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
11383 commands/timeout.c and normal/context.c.
11384 (pkgdata_MODULES): Added default.mod and timeout.mod.
11385 (normal_mod_SOURCES): Added normal/context.c.
11386 (default_mod_SOURCES): New variable.
11387 (default_mod_CFLAGS): Likewise.
11388 (timeout_mod_SOURCES): Likewise.
11389 (timeout_mod_CFLAGS): Likewise.
11390 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
11391 conf/i386-pc.rmk.
11392 (pkgdata_MODULES): Added default.mod and timeout.mod.
11393 (normal_mod_SOURCES): Added normal/context.c.
11394 (default_mod_SOURCES): New variable.
11395 (default_mod_CFLAGS): Likewise.
11396 (timeout_mod_SOURCES): Likewise.
11397 (timeout_mod_CFLAGS): Likewise.
11398
11399 * Makefile.in (all-local): Added $(MKFILES).
11400
4ed2e1dd 114012005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
11402
11403 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
11404 (grub_emu_SOURCES): Likewise.
11405 (pkgdata_MODULES): Add `sun.mod'.
11406 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
11407 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
11408 `partmap/sun.c'.
11409 (pkgdata_MODULES): Add `sun.mod'.
11410 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
11411 * include/grub/partition.h (grub_sun_partition_map_init): New
11412 prototype.
11413 (grub_sun_partition_map_fini): Likewise.
11414 * partmap/sun.c: New file.
11415 * util/grub-emu.c (main): Initialize and de-initialize the sun
11416 partitionmap support.
11417
4d4e372e 114182005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
11419
11420 This implements an Emacs-like menu entry editor.
f19dbdb7 11421
4d4e372e 11422 * normal/menu_entry.c: New file.
f19dbdb7 11423
4d4e372e 11424 * util/console.c (grub_ncurses_putchar): Translate some Unicode
11425 characters to ASCII.
11426 (saved_char): New variable.
11427 (grub_ncurses_checkkey): Rewritten completely.
11428 (grub_ncurses_getkey): Likewise.
11429 (grub_ncurses_init): Call raw instead of cbreak.
11430
11431 * normal/menu.c (print_entry): Do not put a space.
11432 (init_page): Renamed to ...
11433 (grub_menu_init_page): ... this. All callers changed.
11434 (edit_menu_entry): Removed.
11435 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
11436
11437 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
11438
11439 * kern/misc.c (grub_vprintf): Call grub_refresh.
11440
11441 * normal/menu.c (DISP_LEFT): Renamed to ...
11442 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
11443 * normal/menu.c (DISP_UP): Renamed to ...
11444 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
11445 * normal/menu.c (DISP_RIGHT): Renamed to ...
11446 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
11447 * normal/menu.c (DISP_DOWN): Renamed to ...
11448 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
11449 * normal/menu.c (DISP_HLINE): Renamed to ...
11450 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
11451 * normal/menu.c (DISP_VLINE): Renamed to ...
11452 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
11453 * normal/menu.c (DISP_UL): Renamed to ...
11454 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
11455 * normal/menu.c (DISP_UR): Renamed to ...
11456 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
11457 * normal/menu.c (DISP_LL): Renamed to ...
11458 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
11459 * normal/menu.c (DISP_LR): Renamed to ...
11460 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
11461 * normal/menu.c (TERM_WIDTH): Renamed to ...
11462 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
11463 * normal/menu.c (TERM_HEIGHT): Renamed to ...
11464 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
11465 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
11466 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
11467 * normal/menu.c (TERM_MARGIN): Renamed to ...
11468 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
11469 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
11470 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
11471 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
11472 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
11473 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
11474 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
11475 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
11476 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
11477 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
11478 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
11479 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
11480 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
11481 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
11482 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
11483 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
11484 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
11485 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
11486 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
11487 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
11488 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
11489 All callers changed.
11490
11491 * include/grub/normal.h: New prototype.
11492
11493 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
11494 normal/menu_entry.c.
11495 (normal_mod_SOURCES): Likewise.
11496 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
11497 (normal_mod_SOURCES): Likewise.
11498
e6b92c8a 114992005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
11500
11501 * include/grub/normal.h (grub_halt_init): New prototype.
11502 (grub_halt_fini): Likewise.
11503 (grub_reboot_init): Likewise.
11504 (grub_reboot_fini): Likewise.
11505
11506 * util/grub-emu.c: Include signal.h.
11507 (main_env): New global variable.
11508 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
11509 catch C-c.
11510 (grub_machine_fini): New function.
11511 (main): Call grub_halt_init and grub_reboot_init before
11512 grub_main, and grub_reboot_fini and grub_halt_fini after it.
11513 Call setjmp with MAIN_ENV to go back afterwards.
11514 Call grub_machine_fini right before return.
11515
11516 * include/grub/util/misc.h: Include setjmp.h.
11517 (main_env): New prototype.
11518
11519 * include/grub/kernel.h (grub_machine_fini): New prototype.
11520 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
11521 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
11522
11523 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
11524 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
11525 * term/i386/pc/console.c (grub_console_fini): Likewise.
f19dbdb7 11526
e6b92c8a 11527 * util/i386/pc/misc.c: New file.
f19dbdb7 11528
e6b92c8a 11529 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
11530 util/i386/pc/misc.c, commands/i386/pc/halt.c and
11531 commands/i386/pc/reboot.c.
11532
c642636f 115332005-02-14 Guillem Jover <guillem@hadrons.org>
11534
11535 * include/grub/dl.h (grub_dl_check_header): New prototype.
11536 (grub_arch_dl_check_header): Change return type to grub_err_t,
11537 remove size parameter and export function. Update all callers.
11538 * kern/dl.c (grub_dl_check_header): New function.
11539 (grub_dl_load_core): Use `grub_dl_check_header' instead of
11540 `grub_arch_dl_check_header'. Check ELF type. Check if sections
11541 are inside the core.
11542 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
11543 independent ELF header checks.
11544 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
11545 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
11546 `grub_dl_check_header' instead of explicit checks. Check for the
11547 ELF type.
11548 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
11549 `grub_dl_check_header' instead of explicit checks. Remove arch
11550 specific ELF header checks.
11551
e6b92c8a 11552 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
11553 argument SIZE.
11554
5eabe94b 115552005-02-13 Hollis Blanchard <hollis@penguinppc.org>
11556
11557 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
11558 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
11559
1b14a681 115602005-02-12 Hollis Blanchard <hollis@penguinppc.org>
11561
11562 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
f19dbdb7 11563 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
1b14a681 11564 (part_map_iterate): Clear `grub_errno' and return 0 if
f19dbdb7 11565 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
1b14a681 11566 * partmap/amiga.c (amiga_partition_map_iterate): Return
11567 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
11568 * partmap/apple.c (apple_partition_map_iterate): Likewise.
11569
aca108aa 115702005-02-01 Guillem Jover <guillem@hadrons.org>
11571
11572 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
11573 help info.
11574
c9f9c556 115752005-01-31 Marco Gerards <metgerards@student.han.nl>
11576
11577 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
11578 Removed prototype.
11579 (grub_rescue_cmd_linux): New prototype.
11580 (grub_rescue_cmd_initrd): Likewise.
11581 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
11582 `bi_rec'.
11583 (grub_linux_release_mem): Release the memory for the initrd.
11584 (grub_load_linux): Renamed from this...
11585 (grub_rescue_cmd_linux): ...To this. Changed all callers.
11586 Changed `entry' not to be static. Loop over memory regions to
11587 find another one when the default fails.
11588 (grub_rescue_cmd_initrd): New function.
11589 (grub_linux_init): Remove function.
11590 (grub_linux_fini): Likewise.
11591 (GRUB_MOD_INIT): Register `initrd'.
11592 (GRUB_MOD_FINI): Unregister `initrd'.
11593 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
11594 Function removed.
11595 (grub_linux_normal_fini): Likewise.
11596 (GRUB_MOD_INIT): Register `initrd'.
11597 (GRUB_MOD_FINI): Unregister `initrd'.
11598
990cf3aa 115992005-01-31 Marco Gerards <metgerards@student.han.nl>
11600
11601 * commands/help.c: New file.
11602 * normal/arg.c (show_help): Renamed to...
11603 (grub_arg_show_help): ... this.
11604 * commands/i386/pc/halt.c: New file.
11605 * commands/i386/pc/reboot.c: Likewise.
11606 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
11607 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
11608 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
11609 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
11610 variables.
11611 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
11612 `commands/help.c'.
11613 (pkgdata_MODULES): Add `help.mod'.
11614 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
11615 * grub/i386/pc/init.h (grub_reboot): New prototype.
11616 (grub_halt): Likewise.
11617 * include/grub/normal.h (grub_arg_show_help): New prototype.
11618 (grub_help_init): Likewise.
11619 (grub_help_fini): Likewise.
11620 * util/grub-emu.c (main): Initialize and deinitialize the help
11621 command.
11622
11623 * normal/cmdline.c (grub_cmdline_get): Doc fix.
11624
11625 * normal/command.c (grub_command_init): Fixed the description of
11626 the `set' and `unset' commands.
11627
116282005-01-31 Marco Gerards <metgerards@student.han.nl>
0f79cdc1 11629
11630 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
11631 function.
11632 * commands/ieee1275/halt.c: New file.
11633 * commands/ieee1275/reboot.c: Likewise.
11634 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
11635 `__attribute__ ((unused))'. Some GCS related fixed.
11636 (grub_suspend_init) [GRUB_UTIL]: Function removed.
11637 (grub_suspend_fini): Likewise.
11638 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
11639 and `halt.mod'.
11640 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
11641 (halt_mod_CFLAGS): New variables.
11642 * include/grub/powerpc/ieee1275/ieee1275.h
11643 (grub_ieee1275_interpret): New prototype.
11644
1ab09cc7 116452005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
11646
11647 * include/grub/misc.h (memmove): New prototype.
11648 (memcpy): Likewise.
11649
8b8cbdb2 116502005-01-22 Hollis Blanchard <hollis@penguinppc.org>
11651
11652 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
11653 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
11654
e3741a27 116552005-01-22 Marco Gerards <metgerards@student.han.nl>
11656
11657 * kern/misc.c (grub_strndup): Function rewritten.
11658
776bd780 116592005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
11660
11661 * normal/menu.c (TERM_WIDTH): Macro redefined.
11662 (TERM_TOP_BORDER_Y): Likewise.
11663 (draw_border): Replaced while-loop by a for-loop. Make the number
11664 of lines consistent with the number of lines displayed in
11665 print_entries. Added a margin below the rectangle.
11666 (print_entry): Make the entry fit in the rectangle.
11667 (print_entries): Display the scroll arrows next to the right
11668 border.
11669
78026bce 116702005-01-21 Marco Gerards <metgerards@student.han.nl>
11671
11672 * fs/minix.c (grub_minix_find_file): Reserve more space for
11673 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
11674 `grub_strncpy' to copy `path' into it.
11675
67bbaf0f 116762005-01-21 Marco Gerards <metgerards@student.han.nl>
11677
11678 Add the loopback device, a device via which files can be accessed
11679 as devices.
f19dbdb7 11680
67bbaf0f 11681 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
11682 (pkgdata_MODULES): Add loopback.mod.
11683 (loopback_mod_SOURCES): New variable.
11684 (loopback_mod_CFLAGS): Likewise.
11685 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
11686 `disk/loopback.c'.
11687 (pkgdata_MODULES): Add loopback.mod.
11688 (loopback_mod_SOURCES): New variable.
11689 (loopback_mod_CFLAGS): Likewise.
11690 * disk/loopback.c: new file.
11691 * include/grub/normal.h (grub_loop_init): New prototype.
11692 (grub_loop_fini): New prototype.
11693 * util/grub-emu.c (main): Initialize and de-initialize loopback
11694 support.
11695 * include/grub/disk.h (grub_disk_dev_id): Add
11696 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
11697
6f1c18bd 116982005-01-20 Hollis Blanchard <hollis@penguinppc.org>
11699
11700 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
11701 function.
11702 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
11703 (suspend_mod_SOURCES): New variable.
11704 (suspend_mod_CFLAGS): Likewise.
11705 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
11706 New prototype.
11707 * commands/ieee1275/suspend.c: New file.
11708
b38551da 117092005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
11710
11711 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
f19dbdb7 11712 ((unused))' to `__attribute__ ((used))'.
b38551da 11713 (GRUB_MOD_FINI): Likewise.
11714 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
11715 * genmk.rb (PModule): Assign space to common symbols when linking
11716 modules.
11717
777aff39 117182005-01-20 Marco Gerards <metgerards@student.han.nl>
11719
11720 * include/grub/mm.h (grub_mm_init_region): Change the type of the
11721 `unsigned' arguments to `grub_size_t'.
11722 (grub_malloc): Likewise.
11723 (grub_realloc): Likewise.
11724 (grub_memalign): Likewise.
11725 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
11726 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
11727 * util/misc.c (grub_malloc): Likewise.
11728 (grub_realloc): Likewise.
11729 * kern/mm.c (get_header_from_pointer): Change the casts to
11730 `unsigned' into a cast to `grub_size_t'.
11731
11732 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
11733 point to `currnode' when `currnode' is changed.
11734
11735 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
11736 Schottelius <nico-linux@schottelius.org>.
11737
d0ff18e1 117382005-01-09 Hollis Blanchard <hollis@penguinppc.org>
11739
11740 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
11741 (note_path): Remove variable.
11742 (GRUB_IEEE1275_NOTE_NAME): New macro.
11743 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
11744 (grub_ieee1275_note_hdr): New structure.
11745 (grub_ieee1275_note_desc): Likewise.
11746 (grub_ieee1275_note): Likewise.
11747 (load_note): Remove `dir' argument. All callers updated. Remove
11748 `note_img' and `path'. Do not load a file from `note_path'.
11749 Initialize a struct grub_ieee1275_note and write that to `out'.
11750 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
11751
4ca7004c 117522005-01-05 Marco Gerards <metgerards@student.han.nl>
11753
11754 * util/misc.c (grub_util_read_image): Revert last change. It
11755 called `grub_util_read_at', which seeks from the beginning of the
11756 file.
11757
0b412211 117582005-01-04 Hollis Blanchard <hollis@penguinppc.org>
11759
11760 * TODO: Add note about endianness in grub-mkimage.
11761 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
11762 section.
11763 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
11764 (grub_mkimage_SOURCES): New target.
11765 * include/grub/kernel.h (grub_start_addr): Remove variable.
11766 (grub_end_addr): Likewise.
11767 (grub_total_module_size): Likewise.
11768 (grub_kernel_image_size): Likewise.
11769 (GRUB_MODULE_MAGIC): New constant.
11770 (grub_module_info): New structure.
11771 (grub_arch_modules_addr): New prototype.
11772 (grub_get_end_addr): Remove prototype.
11773 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
11774 * include/grub/powerpc/ieee1275/kernel.h: New file.
11775 * include/grub/util/misc.h (grub_util_get_fp_size): New
11776 prototype.
11777 (grub_util_read_at): Likewise.
11778 (grub_util_write_image_at): Likewise.
11779 * kern/main.c (grub_get_end_addr): Remove function.
11780 (grub_load_modules): Call grub_arch_modules_addr instead of using
11781 grub_end_addr. Look for a grub_module_info struct in memory. Use
11782 the grub_module_info fields instead of calling grub_get_end_addr
11783 as loop conditions. Move grub_add_unused_region code here.
11784 (grub_add_unused_region): Remove function.
11785 * kern/i386/pc/init.c: Include grub/cache.h.
11786 (grub_machine_init): Remove call to grub_get_end_addr. Remove
11787 one call to add_mem_region.
11788 (grub_arch_modules_addr): New function.
11789 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
11790 (grub_total_module_size): Likewise.
11791 Include grub/machine/kernel.h.
11792 (grub_arch_modules_addr): New function.
11793 * util/grub-emu.c (grub_end_addr): Remove variable.
11794 (grub_total_module_size): Likewise.
11795 (grub_arch_modules_addr): New function.
11796 * util/misc.c: Include unistd.h.
11797 (grub_util_get_fp_size): New function.
11798 (grub_util_read_at): Likewise.
11799 (grub_util_write_image_at): Likewise.
11800 (grub_util_read_image): Call grub_util_read_at.
11801 (grub_util_write_image): Call grub_util_write_image_at.
11802 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
11803 additional memory in kernel_img for a struct grub_module_info.
11804 Fill in that grub_module_info.
11805 * util/powerpc/ieee1275/grub-mkimage.c: New file.
11806
458786f8 118072005-01-03 Hollis Blanchard <hollis@penguinppc.org>
11808
11809 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
11810 New function.
11811 * include/grub/powerpc/ieee1275/ieee1275.h
11812 (grub_ieee1275_milliseconds): New prototype.
11813 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
11814 Change to 1000.
11815 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
11816 grub_ieee1275_milliseconds.
11817
ac507d1b 118182005-01-03 Hollis Blanchard <hollis@penguinppc.org>
11819
11820 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
11821 variable.
11822 (find_options): New function.
11823 (cmain): Call find_options.
11824 * include/grub/powerpc/ieee1275/ieee1275.h
11825 (grub_ieee1275_realmode): New extern variable.
11826 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
11827 grub_map if grub_ieee1275_realmode is false.
11828
6b8fd1c4 118292004-12-29 Marco Gerards <metgerards@student.han.nl>
11830
11831 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
11832 lines are inserted and make it work like readline. Reported by
11833 Vincent Pelletier <subdino2004@yahoo.fr>.
11834
8514a1e0 118352004-12-28 Marco Gerards <metgerards@student.han.nl>
11836
11837 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
11838
11839 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
11840 `kern/powerpc/cache.S'.
11841
924b6140 118422004-12-27 Marco Gerards <metgerards@student.han.nl>
11843
11844 * genmk.rb: Handle the `Program' class in the main loop. Written
11845 by Johan Rydberg <jrydberg@gnu.org>.
11846 (Program): New class.
11847 (programs): New variable.
11848 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
11849 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
11850 instead of "grub/kernel.h". Include <grub/machine/init.h>.
11851 (help_arch): Function removed.
11852 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
11853 `powerpc/libgcc.h' and `loader.h'.
11854 (pkgdata_PROGRAMS): New variable.
11855 (sbin_UTILITIES): Variable removed.
11856 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
11857 (grubof_SOURCES): Variable re-defined so it only includes the
11858 core functionality.
11859 (grubof_CFLAGS): Remove `-DGRUBOF'.
11860 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
11861 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
11862 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
11863 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
11864 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
11865 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
11866 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
11867 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
11868 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
11869 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
11870 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
11871 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
11872 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
11873 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
11874 (pc_mod_CFLAGS): New variables.
11875 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
11876 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
11877 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
11878 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
11879 Moved from here...
11880 * include/grub/i386/pc/init.h (grub_os_area_addr)
11881 (rub_os_area_size): ... to here.
11882 * include/grub/powerpc/ieee1275/ieee1275.h
11883 (grub_ieee1275_entry_fn): Export symbol.
11884 * include/grub/powerpc/ieee1275/init.h: New file.
11885 * include/grub/powerpc/libgcc.h: Likewise.
11886 * include/grub/cache.h: Likewise.
11887 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
11888 <hollis@penguinppc.org>.
11889 * kern/dl.c: Include <grub/cache.h>.
11890 (grub_dl_flush_cache): New function.
11891 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
11892 for this module.
11893 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
11894 (grub_console_init): Removed prototypes.
11895 (grub_machine_init): Don't initialize the modules anymore.
11896 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
11897 static.
11898 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
11899 Macro undef removed.
11900 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
11901 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
11902 relocation `R_PPC_REL32'. Return an error when the relocation is
11903 unknown.
11904 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
11905 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
11906 * util/misc.c (grub_arch_sync_caches): Likewise.
11907
e4b47e0c 119082004-12-19 Marco Gerards <metgerards@student.han.nl>
11909
11910 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
11911 `symlist.c', add `grubof_symlist.c'.
11912 (symlist.c): Variable removed.
11913 (grubof_HEADERS): Variable added.
11914 (grubof_symlist.c): New target.
11915 (kernel_syms.lst): Use `grubof_HEADERS' instead of
11916 `kernel_img_HEADERS'.
11917 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
11918 * kern/powerpc/dl.c: New file.
11919 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
11920 Function removed.
11921 (grub_arch_dl_relocate_symbols): Likewise.
11922 (grub_register_exported_symbols): Likewise.
11923
4ceb3636 119242004-12-13 Marco Gerards <metgerards@student.han.nl>
11925
11926 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
11927 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
11928 to fail instead. Reported by Vincent Pelletier
11929 <subdino2004@yahoo.fr>.
11930
11931 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
11932 it is not allocated. Reported by Vincent Pelletier
11933 <subdino2004@yahoo.fr>.
11934
11935 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
11936 output so the output looks better.
f19dbdb7 11937
3f1578fe 119382004-12-04 Marco Gerards <metgerards@student.han.nl>
11939
11940 Modulize the partition map support and add support for the amiga
11941 partition map.
f19dbdb7 11942
3f1578fe 11943 * commands/ls.c: Include <grub/partition.h> instead of
11944 <grub/machine/partition.h>.
11945 * kern/disk.c: Likewise.
11946 * kern/rescue.c: Likewise.
11947 * loader/i386/pc/chainloader.c: Likewise.
11948 * normal/cmdline.c: Likewise.
11949 * kern/powerpc/ieee1275/init.c: Likewise.
11950 (grub_machine_init): Call `grub_pc_partition_map_init',
11951 `grub_amiga_partition_map_init' and
11952 `grub_apple_partition_map_init'.
11953 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
11954 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
11955 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
11956 `partition.h' and `pc_partition.h'.
11957 (grub_setup_SOURCES): Remove
11958 `disk/i386/pc/partition.c'. Add `kern/partition.c',
11959 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
11960 (grub_emu_SOURCES): Likewise.
11961 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
11962 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
11963 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
11964 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
11965 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
11966 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
11967 (grubof_SOURCES): Likewise.
11968 * disk/i386/pc/partition.c: File removed.
11969 * disk/powerpc/ieee1275/partition.c: Likewise.
11970 * include/grub/powerpc/ieee1275/partition.h: Likewise.
11971 * include/grub/i386/pc/partition.h: Likewise.
11972 * kern/partition.c: New file.
11973 * partmap/amiga.c: Likewise.
11974 * partmap/apple.c: Likewise.
11975 * partmap/pc.c: Likewise.
11976 * include/grub/partition.h: Likewise..
11977 * include/grub/pc_partition.h: Likewise.
11978 * util/grub-emu.c: Include <grub/partition.h> instead of
11979 <grub/machine/partition.h>.
11980 (main): Call `grub_pc_partition_map_init',
11981 `grub_amiga_partition_map_init' and
11982 `grub_apple_partition_map_init' and deinitialize afterwards.
11983 * util/i386/pc/biosdisk.c: Include `#include
11984 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
11985 `<grub/machine/partition.h>'.
11986 * util/i386/pc/grub-setup.c: Likewise.
11987 * util/i386/pc/biosdisk.c: Likewise.
11988 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
11989 partition information in case of a PC partition.
11990 * util/i386/pc/grub-setup.c: Include `#include
11991 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
11992 `<grub/machine/partition.h>'.
11993 (setup): Only access the PC specific partition information in case
11994 of a PC partition.
11995
0ef4ced9 119962004-11-17 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 11997
0ef4ced9 11998 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
11999 (grub_longjmp): Likewise.
12000 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
12001 20.
12002 * normal/powerpc/setjmp.S: New file.
12003 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
12004 `normal/powerpc/setjmp.S'.
12005 (grubof_CFLAGS): Add `-DGRUBOF'.
12006 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
12007 [GRUB_UTIL && !GRUBOF].
f19dbdb7 12008
19950e29 120092004-11-16 Marco Gerards <metgerards@student.han.nl>
12010
12011 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
12012 property named `name'. Correctly handle the error returned by
12013 `grub_ieee1275_finddevice' if a device can not be opened.
12014
a2fea427 120152004-11-02 Hollis Blanchard <hollis@penguinppc.org>
12016
12017 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
12018 `actual' for negativity.
12019 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
12020 kern/fshelp.c.
12021
41ea0ea3 120222004-11-01 Marco Gerards <metgerards@student.han.nl>
12023
12024 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
12025 (PAGE_OFFSET): New macro.
12026 (CRTC_ADDR_PORT): Likewise.
12027 (CRTC_DATA_PORT): Likewise.
12028 (START_ADDR_HIGH_REGISTER): Likewise.
12029 (START_ADDR_LOW_REGISTER): Likewise.
12030 (GRAPHICS_ADDR_PORT): Likewise.
12031 (GRAPHICS_DATA_PORT): Likewise.
12032 (READ_MAP_REGISTER): Likewise.
12033 (INPUT_STATUS1_REGISTER): Likewise.
12034 (INPUT_STATUS1_VERTR_BIT): Likewise.
12035 (page): New variable.
12036 (wait_vretrace): New function.
12037 (set_read_map): Likewise.
12038 (set_start_address): Likewise.
12039 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
12040 the right page.
12041 (check_vga_mem): Take the page into account.
12042 (write_char): Likewise.
12043 (write_cursor): Likewise.
12044 (scroll_up): Likewise. Copy the page to the page that is not
12045 shown and switch between both pages.
12046 (grub_vga_putchar): Fix off by one error.
12047 (grub_vga_cls): Wait for the vertical retrace. Take the page into
12048 account.
12049
ad0bd20b 120502004-11-01 Marco Gerards <metgerards@student.han.nl>
12051
12052 Add support for iso9660 (including rockridge).
f19dbdb7 12053
ad0bd20b 12054 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
12055 (iso9660_mod_SOURCES): New variable.
12056 (iso9660_mod_CFLAGS): Likewise.
12057 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
12058 * include/grub/fs.h (grub_iso9660_init): New prototype.
12059 * util/grub-emu.c (main): Call `grub_iso9660_init'.
12060 * fs/iso9660.c: New file.
12061
12062 * include/grub/misc.h (grub_strncat): New prototype.
12063 * kern/misc.c (grub_strncat): New function.
f19dbdb7 12064
ad0bd20b 12065 * fs/hfs.c (grub_hfs_mount): Translate the error
12066 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
12067 * fs/jfs.c (grub_jfs_mount): Likewise.
12068 * fs/ufs.c (grub_ufs_mount): Likewise.
12069
a5477a59 120702004-10-28 Hollis Blanchard <hollis@penguinppc.org>
12071
12072 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
12073 which initialized BAT registers.
12074 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
12075 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
12076 Move from here...
12077 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
12078 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
12079 ... to here.
12080 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
12081 (grub_mapclaim): Likewise.
12082 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
12083 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
12084 hand.
12085
9304c1f8 120862004-10-19 Hollis Blanchard <hollis@penguinppc.org>
12087
12088 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
12089 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
12090 -ffreestanding and -msoft-float.
12091
86f4ae25 120922004-10-15 Hollis Blanchard <hollis@penguinppc.org>
12093
12094 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
12095 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
12096 set in grub_ieee1275_flags.
12097
38912228 120982004-10-14 Hollis Blanchard <hollis@penguinppc.org>
12099
12100 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
12101 prototype.
12102 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
12103 grub_console_init first.
12104 Change the memory range used for grub_ieee1275_claim and
12105 grub_mm_init_region.
12106 Print an error message if the claim fails.
12107 Include <grub/misc.h>.
12108
d1923dc8 121092004-10-13 Hollis Blanchard <hollis@penguinppc.org>
12110
12111 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
12112 Call grub_children_iterate for device nodes of type `scsi',
12113 `ide', or `ata'.
12114 (grub_ofdisk_open): Remove manual device alias resolution.
12115 Fix memory leak when device cannot be opened.
f19dbdb7 12116 * include/grub/powerpc/ieee1275/ieee1275.h
d1923dc8 12117 (grub_children_iterate): New prototype.
12118 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
12119 New function.
12120 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
12121 Return -1 if args.size was -1.
12122
4512e4f3 121232004-10-11 Hollis Blanchard <hollis@penguinppc.org>
12124
12125 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
12126 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
12127 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
12128 Open Firmware's memory for it; claim memory from _start to _end.
12129 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
12130 (_end): New extern.
12131 (_start): Zero BSS from __bss_start to _end.
12132 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
12133 New extern.
12134 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
12135
4d61feb0 121362004-10-11 Hollis Blanchard <hollis@penguinppc.org>
12137
ad0bd20b 12138 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
12139 -1 if args.base was -1.
4d61feb0 12140
026fa2f9 121412004-10-08 Hollis Blanchard <hollis@penguinppc.org>
12142
12143 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
12144 escape sequence instead of a literal ^L. Also call
12145 grub_ofconsole_gotoxy.
12146
9f2220ef 121472004-10-03 Hollis Blanchard <hollis@penguinppc.org>
12148
12149 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
12150 void * arguments to grub_addr_t. All callers updated. Also make
12151 the `result' argument optional.
12152 (grub_ieee1275_release): change void * arguments to grub_addr_t.
12153 All callers updated.
12154
8a572cd7 121552004-09-22 Hollis Blanchard <hollis@penguinppc.org>
12156
12157 * commands/ls.c (grub_ls_list_files): Use the string following the
12158 initial ')', if present, as the filesystem path.
12159 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
12160
12161 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
12162
18aa81f2 121632004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
12164
12165 Make the source code of the menu interface more readable.
f19dbdb7 12166
18aa81f2 12167 * normal/menu.c: Include grub/mm.h.
12168 (TERM_WIDTH): New macro.
12169 (TERM_HEIGHT): Likewise.
12170 (TERM_INFO_HEIGHT): Likewise.
12171 (TERM_MARGIN): Likewise.
12172 (TERM_SCROLL_WIDTH): Likewise.
12173 (TERM_TOP_BORDER_Y): Likewise.
12174 (TERM_LEFT_BORDER_X): Likewise.
12175 (TERM_BORDER_WIDTH): Likewise.
12176 (TERM_MESSAGE_HEIGHT): Likewise.
12177 (TERM_BORDER_HEIGHT): Likewise.
12178 (TERM_NUM_ENTRIES): Likewise.
12179 (TERM_FIRST_ENTRY_Y): Likewise.
12180 (TERM_ENTRY_WIDTH): Likewise.
12181 (TERM_CURSOR_X): Likewise.
12182 (draw_border): Use macros instead of magic numbers.
12183 (print_entry): Likewise.
12184 (print_entries): Likewise.
12185 (run_menu): Likewise. Also, handle the key 'e'.
12186 (run_menu_entry): Ignore empty command lines.
12187 (print_message): Added a new argument EDIT. If EDIT is true,
12188 print a different message.
12189 (init_page): Likewise.
12190 (edit_menu_entry): New function. Not implemented yet.
12191
b47efe30 121922004-09-17 Marco Gerards <metgerards@student.han.nl>
12193
12194 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
12195 can be loaded from normal mode.
f19dbdb7 12196
b47efe30 12197 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
12198 `multiboot.mod'.
12199 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
12200 (multiboot_mod_CFLAGS): New variables.
12201 * loader/i386/pc/linux_normal.c: New file.
f19dbdb7 12202 * loader/i386/pc/multiboot_normal.c: Likewise.
12203
b47efe30 12204 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
12205 attribute `unused'.
f19dbdb7 12206
b47efe30 12207 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
12208 `fdiro' to read the mode information from instead of `diro'.
12209
12210 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
12211 looking up a symlink.
12212
12213 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
12214 macro.
12215 * normal/command.c (grub_command_execute): Don't parse the
12216 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
12217 flags of the command.
12218
12219 * normal/menu.c (grub_menu_run): Fix typo.
12220
da75ac71 122212004-09-14 Hollis Blanchard <hollis@penguinppc.org>
12222
12223 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
12224
12225 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
12226 `y + 1' instead of `y - 1'.
12227
12228 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
f19dbdb7 12229
062b24c2 122302004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
12231
12232 From Hollis Blanchard <hollis@penguinppc.org>:
12233 * kern/misc.c (memmove): New alias for grub_memmove.
12234 (memcmp): New alias for grub_memcmp.
12235 (memset): New alias for grub_memset.
f19dbdb7 12236 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
062b24c2 12237 Change "int handle" to "grub_ieee1275_phandle_t handle".
f19dbdb7 12238 * include/grub/powerpc/ieee1275/ieee1275.h
062b24c2 12239 (grub_ieee1275_get_property): Likewise.
f19dbdb7 12240
8ddad845 122412004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
12242
12243 Added normal mode command `chainloader' as module chain.mod, which
12244 depends on normal.mod and _chain.mod.
f19dbdb7 12245
8ddad845 12246 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
12247 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
12248 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
12249 Deleted prototype.
12250 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
12251 but arguments parsing moved to ...
12252 (grub_chainloader_cmd): ... here. New function.
12253 * include/grub/i386/pc/chainloader.h: New file.
12254 * loader/i386/pc/chainloader_normal.c: Likewise.
12255
2c1f4ce3 122562004-09-11 Marco Gerards <metgerards@student.han.nl>
12257
12258 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
12259 (grub_mkimage_LDFLAGS): Likewise.
12260 (grub_emu_SOURCES): Likewise.
12261 (kernel_img_HEADERS): Added fshelp.h.
12262 * fs/ext2.c: Include <grub/fshelp.h>.
12263 (FILETYPE_REG): New macro.
12264 (FILETYPE_INO_REG): Likewise.
12265 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
12266 Changed all users.
12267 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
12268 all users.
12269 (grub_fshelp_node): New struct.
12270 (grub_ext2_data): Added member `diropen'. Changed member `inode'
12271 to a pointer.
12272 (grub_ext2_get_file_block): Removed function.
12273 (grub_ext2_read_block): New function.
12274 (grub_ext2_read_file): Replaced parameter `data' by `node'.
12275 This function was written.
12276 (grub_ext2_mount): Read the root inode. Create a diropen struct.
12277 (grub_ext2_find_file): Removed function.
12278 (grub_ext2_read_symlink): New function.
12279 (grub_ext2_iterate_dir): Likewise.
12280 (grub_ext2_open): Rewritten.
12281 (grub_ext2_dir): Rewritten.
12282 * include/grub/fshelp.h: New file.
12283 * fs/fshelp.c: Likewise.
12284
3c52136a 122852004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
12286
12287 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
12288 (print_message): Add a missing newline.
12289 (run_menu): Added timeout support.
12290 (run_menu_entry): New local function.
12291 (grub_menu_run): Added support for booting.
12292
12293 * kern/loader.c (grub_loader_is_loaded): New function.
12294
12295 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
12296 (grub_get_rtc): Exported.
12297
12298 * include/grub/i386/pc/time.h: Include grub/symbol.h.
12299 (grub_get_rtc): Exported.
12300
12301 * include/grub/normal.h (struct grub_command_list): Remove
12302 constant from the member `command'.
12303
12304 * include/grub/loader.h (grub_loader_is_loaded): Declared.
12305
12306 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
12307
12308 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
12309
aa033560 123102004-08-28 Marco Gerards <metgerards@student.han.nl>
12311
12312 Add support for the JFS filesystem.
12313
12314 * fs/jfs.c: New file.
12315 * include/grub/fs.h (grub_jfs_init): New prototype.
12316 (grub_jfs_fini): New prototype.
12317 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
12318 (grub_emu_SOURCES): Likewise.
12319 (pkgdata_MODULES): Add jfs.mod.
12320 (jfs_mod_SOURCES): New variable.
12321 (jfs_mod_CFLAGS): Likewise.
12322 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
12323 (grubof_SOURCES): Likewise.
12324 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
12325
12326 * fs/fat.c (grub_fat_find_dir): Convert the filename little
12327 endian to the host endian.
12328 (grub_fat_utf16_to_utf8): Move function from there...
12329 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
fe987087 12330 the endianness of the source string anymore.
aa033560 12331 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
12332
94bc45af 123332004-08-24 Marco Gerards <metgerards@student.han.nl>
12334
12335 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
12336 (grub_boot_fini) [GRUB_UTIL]: Likewise.
12337 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
12338 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
f19dbdb7 12339
94bc45af 12340 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
12341 (grub_hfs_iterate_dir): Make the function static. Add prototypes
12342 for `node_found' and `it_dir'.
12343 (grub_hfs_dir): Add prototype for `dir_hook'.
12344
12345 * fs/minix.c (grub_minix_get_file_block): Add prototype for
12346 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
12347 and `indir32' to silence a gcc warning.
12348
12349 * include/grub/fs.h (grub_hfs_init): New prototype.
12350 (grub_hfs_fini): Likewise.
f19dbdb7 12351
12352
97543f08 123532004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
12354
12355 Each disk device has its own id now. This is useful to make use
12356 of multiple disk devices.
f19dbdb7 12357
97543f08 12358 * include/grub/disk.h (grub_disk_dev_id): New enum.
12359 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
12360 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
12361
12362 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
12363 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
12364
12365 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
12366 GRUB_DISK_DEVICE_OFDISK_ID as an id.
12367
12368 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
12369 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
12370
12371 * include/grub/disk.h (struct grub_disk_dev): Added a new member
12372 "id" which is used by the cache manager.
12373
12374 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
12375 of just "GRUB".
12376
64372eb4 123772004-08-18 Marco Gerards <metgerards@student.han.nl>
12378
12379 * fs/hfs.c: New file.
12380 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
12381 (grub_emu_SOURCES): Likewise.
12382 (pkgdata_MODULES): Add hfs.mod.
12383 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
12384 (grubof_SOURCES): Likewise.
12385 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
12386
12387 * include/grub/misc.h (grub_strncasecmp): Add prototype.
12388 * kern/misc.c (grub_strncasecmp): Add function.
12389
cc61b58f 123902004-08-14 Marco Gerards <metgerards@student.han.nl>
12391
12392 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
12393 with parentheses.
12394
12395 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
12396 (grub_ext2_dir): In case the directory entry type is unknown, read
12397 it from the inode.
12398
0ef123f6 123992004-08-02 Peter Bruin <pjbruin@dds.nl>
12400
12401 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
12402 grub_load_linux instead of grub_rescue_cmd_linux as second
12403 argument of grub_rescue_register_command.
12404
12405 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
12406
a447c5df 124072004-07-27 Marco Gerards <metgerards@student.han.nl>
12408
12409 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
12410 function.
12411 * commands/boot.c: Remove the check for `GRUB_UTIL'.
12412 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
12413 `loader/powerpc/ieee1275/linux.c',
12414 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
12415 * include/grub/powerpc/ieee1275/ieee1275.h
12416 (grub_ieee1275_release): New prototype.
12417 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
12418 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
12419 normal, boot, linux and linux_normal.
12420 * loader/powerpc/ieee1275/linux.c: New file.
12421 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
12422
5a9e3546 124232004-07-12 Marco Gerards <metgerards@student.han.nl>
12424
12425 * normal/arg.c (grub_arg_parse): Correct error handling after
12426 reallocating the argumentlist (check if `argl' is not null instead
12427 of checking if `args' is not null).
12428 * kern/mm.c (grub_realloc): Return the same pointer when using the
12429 same region, instead of returning the header address.
12430
e15199cb 124312004-07-11 Marco Gerards <metgerards@student.han.nl>
12432
12433 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
12434 one block instead of two when looking for the initial partition.
12435 (grub_partition_probe): Initialize the local variable `p' with 0.
12436 Use base 10 for the grub_strtoul call.
12437 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
12438 need for one local variable.
12439 (grub_strtoul): Don't add the new value to `num', instead of that
12440 just assign it.
12441
020616c2 124422004-07-11 Marco Gerards <metgerards@student.han.nl>
12443
12444 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
12445 (pxeboot_img_SOURCES): New variable.
12446 (pxeboot_img_ASFLAGS): Likewise.
12447 (pxeboot_img_LDFLAGS): Likewise.
12448 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
12449 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
12450 <lode_leroy@hotmail.com>.
12451
6c51eb64 124522004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
12453
12454 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
12455 there was no input.
12456
cfb12aff 124572004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
12458
12459 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
12460 the history buffer logic.
12461
6eabba74 124622004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
12463
12464 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
12465 (FILETYPE_INO_SYMLINK): New macros.
12466 (grub_ext2_find_file): Check if the node is a directory using the
12467 inode stat information instead of using the filetype in the
12468 dirent. Exclude the first character of an absolute symlink.
12469 (grub_ext2_dir): Mask out the filetype part of the mode member of
12470 the inode.
12471
66e19ef8 124722004-05-24 Marco Gerards <metgerards@student.han.nl>
12473
12474 Add support for UFS version 1 and 2. Add support for the minix
12475 filesystem version 1 and 2, both the variants with 14 and 30 long
12476 filenames.
f19dbdb7 12477
66e19ef8 12478 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
12479 fs/minix.c.
12480 (grub_emu_SOURCES): Likewise.
12481 (pkgdata_MODULES): Add ufs.mod and minix.mod.
12482 (ufs_mod_SOURCES): New variable.
12483 (ufs_mod_CFLAGS): Likewise.
12484 (minix_mod_SOURCES): Likewise.
12485 (minix_mod_CFLAGS): Likewise.
12486 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
12487 fs/minix.c.
12488 (grubof_SOURCES): Likewise.
12489 * fs/ufs.c: New file.
12490 * fs/minix.c: New file.
12491 * include/grub/fs.h (grub_ufs_init): New prototype.
12492 (grub_ufs_fini): Likewise.
12493 (grub_minix_init): Likewise.
12494 (grub_minix_fini): Likewise.
12495 * util/grub-emu.c (main): Initialize and deinitialize UFS and
12496 minix fs.
12497
cc2e748a 124982004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
12499
12500 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
12501 commands/ls.c, commands/terminal.c, commands/boot.c,
12502 commands/cmp.c and commands/cat.c.
12503 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
12504
12505 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
12506 "env.h"
12507
4b13b216 125082004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
12509
12510 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
12511 and grub_, respectively. Because the conversion is trivial and
12512 mechanical, I omit the details here. Please refer to the CVS
12513 if you need more information.
12514
6a142551 125152004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
12516
12517 * include/pupa: Renamed to ...
12518 * include/grub: ... this.
12519 * util/i386/pc/pupa-mkimage.c: Renamed to ...
12520 * util/i386/pc/grub-mkimage.c: ... this.
12521 * util/i386/pc/pupa-setup.c: Renamed to ...
12522 * util/i386/pc/grub-setup.c: ... this.
12523 * util/pupa-emu.c: Renamed to ...
12524 * util/grub-emu.c: ... this.
12525
e56cdf21 125262004-03-29 Marco Gerards <metgerards@student.han.nl>
12527
12528 Add support for the newworld apple macintosh (PPC). This has been
12529 tested on the powerbook 2000 only. It only adds support for
12530 generic ieee1275 functions, console and disk support. This should
12531 be easy to port to other architectures with support for Open
12532 Firmware.
f19dbdb7 12533
e56cdf21 12534 * configure.ac: Accept the powerpc as host_cpu. In the case of
12535 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
12536 specific tests are only executed while building for the i386.
12537 Inverse test for crosscompile.
12538 * genmk.rb (Utility): Allow assembler files.
12539 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
12540 * conf/powerpc-ieee1275.rmk: New file.
12541 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
12542 * disk/powerpc/ieee1275/partition.c: Likewise.
12543 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
12544 * include/pupa/powerpc/ieee1275/console.h: Likewise.
12545 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
12546 * include/pupa/powerpc/ieee1275/time.h: Likewise.
12547 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
12548 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
12549 * include/pupa/powerpc/ieee1275/loader.h
12550 * include/pupa/powerpc/setjmp.h: Likewise.
12551 * include/pupa/powerpc/types.h: Likewise.
12552 * kern/powerpc/ieee1275/init.c: Likewise.
12553 * kern/powerpc/ieee1275/openfw.c: Likewise.
12554 * term/powerpc/ieee1275/ofconsole.c: Likewise.
12555
12556 These files were written by Johan Rydberg
12557 (jrydberg@night.trouble.net) and I only modified them slightly.
f19dbdb7 12558
e56cdf21 12559 * boot/powerpc/ieee1275/cmain.c: New file.
12560 * boot/powerpc/ieee1275/crt0.S: Likewise.
12561 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
12562 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
12563
8c8cc205 125642004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
12565
12566 * Makefile.in: Update copyright.
12567 * genmodsrc.sh: Likewise.
12568 * gensymlist.sh: Likewise.
12569 * term/i386/pc/vga.c: Indent correctly.
12570
12571 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
12572 bugreporting address.
12573 * util/i386/pc/pupa-setup.c (usage): Likewise,
12574 (main): Call pupa_ext2_init and pupa_ext2_fini.
12575
f19dbdb7 12576 * fs/fat.c (log2): Renamed to ...
8c8cc205 12577 (fat_log2): ... this.
12578 All callers changed.
12579 * kern/misc.c (memcpy): Alias to pupa_memmove.
12580 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
12581 lvalue cast.
12582 * util/console.c (pupa_ncurses_fini): Return 0.
12583
12584 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
12585 Move fail label here.
12586 [__GNU__]: Don't warn when using stat.
12587 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
12588 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
12589 long int. Use strtol instead of strtoul.
f19dbdb7 12590
db1771cf 125912004-03-14 Marco Gerards <metgerards@student.han.nl>
12592
12593 * commands/boot.c: New file.
12594 * commands/cat.c: Likewise.
12595 * commands/cmp.c: Likewise.
12596 * commands/ls.c: Likewise.
12597 * commands/terminal.c: Likewise.
12598 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
12599 (pupa_register_command): Changed interface to match the new
12600 argument parser.
12601 (pupa_command_execute): Changed (almost rewritten) so it uses
12602 pupa_split_command. Added support for setting variables using the
12603 syntax `foo=bar'.
12604 (rescue_command): Changed to work with the new argument parser.
12605 (terminal_command): Moved from here to commands/terminal.c.
12606 (set_command): New function.
12607 (unset_command): New function.
12608 (insmod_command): New function.
12609 (rmmod_command): New function.
12610 (lsmod_command): New function.
12611 (pupa_command_init): Don't initialize the command terminal
12612 anymore. Initialize the commands set, unset, insmod, rmmod and
12613 lsmod.
12614 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
12615 (kernel_img_HEADERS): Add arg.h and env.h.
12616 (pupa_mkimage_LDFLAGS): Add kern/env.c.
12617 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
12618 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
12619 normal/arg.c.
12620 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
12621 terminal.mod.
12622 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
12623 (boot_mod_SOURCES): New variable.
12624 (terminal_mod_SOURCES): Likewise.
12625 (ls_mod_SOURCES): Likewise.
12626 (cmp_mod_SOURCES): Likewise.
12627 (cat_mod_SOURCES): Likewise.
12628
12629 * normal/arg.c: New file.
12630 * kern/env.c: Likewise.
12631 * include/pupa/arg.h: Likewise.
12632 * include/pupa/env.h: Likewise.
12633 * font/manager.c (font_command): Changed to match argument parsing
12634 interface changes.
12635 (PUPA_MOD_INIT): Likewise.
12636 * hello/hello.c (pupa_cmd_hello): Likewise.
12637 (PUPA_MOD_INIT): Likewise.
12638 * include/pupa/disk.h: Include <pupa/device.h>.
12639 (pupa_print_partinfo): New prototype.
12640 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
12641 (pupa_dl_get_prefix): Likewise.
12642 * include/pupa/misc.h: Include <pupa/err.h>.
12643 (pupa_isgraph): New prototype.
12644 (pupa_isdigit): Likewise.
12645 (pupa_split_cmdline): Likewise.
12646 * include/pupa/normal.h: Include <pupa/arg.h>.
12647 (pupa_command): Changed the prototype of the member `func' to
12648 match the argument parsing interface. Added member `options'.
12649 (pupa_register_command): Updated to match function.
12650 (pupa_arg_parse): New prototype.
12651 (pupa_hello_init) [PUPA_UTIL]: New prototype.
12652 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
12653 (pupa_ls_init) [PUPA_UTIL]: Likewise.
12654 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
12655 (pupa_cat_init) [PUPA_UTIL]: Likewise.
12656 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
12657 (pupa_boot_init) [PUPA_UTIL]: Likewise.
12658 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
12659 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
12660 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
12661 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
12662 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
12663 * kern/disk.c: Include <pupa/file.h>.
12664 (pupa_print_partinfo): New function.
12665 * kern/dl.c: Include <pupa/env.h>.
12666 (pupa_dl_dir): Variable removed.
12667 (pupa_dl_load): Use the environment variable `prefix' instead of
12668 the variable pupa_dl_dir.
12669 (pupa_dl_set_prefix): Function removed.
12670 (pupa_dl_get_prefix): Likewise.
12671 * kern/i386/pc/init.c: Include <pupa/env.h>.
12672 (pupa_machine_init): Use the environment variable `prefix' instead of
12673 using pupa_dl_set_prefix to set the prefix.
12674 * kern/main.c: Include <pupa/env.h>.
12675 (pupa_set_root_dev): Use the environment variable `prefix' instead of
12676 using pupa_dl_get_prefix to get the prefix.
12677 * kern/misc.c: Include <pupa/env.h>.
12678 (pupa_isdigit): New function.
12679 (pupa_isgraph): Likewise.
12680 (pupa_ftoa): Likewise.
12681 (pupa_vsprintf): Added support for printing values of the type
12682 `double'. Make it possible to format variable output when using
12683 formatting like `%1.2%f'.
12684 (pupa_split_cmdline): New function.
12685 * kern/rescue.c: Include <pupa/env.h>.
12686 (next_word): Removed function.
12687 (pupa_rescue_cmd_prefix): Likewise.
12688 (pupa_rescue_cmd_set): New function.
12689 (pupa_rescue_cmd_unset): New function.
12690 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
12691 split the command line instead of splitting it here. Added
12692 support for setting variables using the syntax `foo=bar'. Don't
12693 initialize the prefix command anymore. Initialized the set and
12694 unset commands.
12695 * normal/cmdline.c: Include <pupa/env.h>.
12696 (pupa_tab_complete): Added prototypes for print_simple_completion,
12697 print_partition_completion, add_completion, iterate_commands,
12698 iterate_dev, iterate_part and iterate_dir. Moved code to print
12699 partition information from here to kern/disk.c.
fe6b695a 12700 (pupa_cmdline_run): Don't check if the function exists anymore.
db1771cf 12701 * normal/main.c: Include <pupa/env.h>.
12702 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
12703 instead of using pupa_dl_get_prefix to get the prefix.
12704 * term/i386/pc/vga.c: Include <pupa/arg.h>.
12705 (check_vga_mem): Cast pointers to `void *' to silence a gcc
12706 warning.
12707 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
12708 (pupa_vga_setcolor): Declare unused variables with `__attribute__
12709 ((unused))' to silence a gcc warning.
12710 (pupa_vga_setcolor): Likewise.
12711 (debug_command): Changed to match argument parsing
12712 interface changes.
12713 * util/pupa-emu.c: Include <pupa/env.h>.
12714 (options): Added 0's for unused fields to silence a gcc warning.
12715 (argp): Likewise.
12716 (main): Use the environment variable `prefix' instead of using
12717 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
12718 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
12719 and terminal.
12720
12721 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
12722 * util/misc.c: Include <malloc.h>.
12723 (pupa_malloc): Rewritten so errors are correctly reported.
12724 (pupa_realloc): Likewise.
12725 (pupa_memalign): Likewise.
12726 (pupa_mm_init_region): Declare unused variables with
12727 `__attribute__ ((unused))' to silence a gcc warning.
12728 * normal/i386/setjmp.S: Remove tab at the end of the file to
12729 silence a gcc warning.
12730 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
12731 variables with `__attribute__ ((unused))' to silence a gcc
12732 warning.
12733 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
12734 local variable i unsigned to silence a gcc warning.
12735
12736 * kern/term.c: Include <pupa/misc.h>.
12737 (pupa_more_lines): New variable.
12738 (pupa_more): Likewise.
12739 (pupa_putcode): When the pager is active pause at the end of every
12740 screen.
12741 (pupa_set_more): New function.
12742 * include/pupa/term.h (pupa_set_more): New prototype.
12743
12744
3b1139cb 127452004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
12746
12747 Now this project is GRUB 2 rather than PUPA. The location of
12748 the CVS repository was moved to GRUB's.
f19dbdb7 12749
3b1139cb 12750 * configure.ac: Use bug-grub as the reporting address.
12751 Use GRUB instead of PUPA.
12752 Change the version number to 1.90.
12753
8367695c 127542004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
12755
12756 * genkernsyms.sh: Updated copyright information.
12757 * genmk.rb: Likewise.
12758 * genmodsrc.sh: Likewise.
12759 * gensymlist.sh: Likewise.
12760 * boot/i386/pc/boot.S: Likewise.
12761 * boot/i386/pc/diskboot.S: Likewise.
12762 * disk/i386/pc/biosdisk.c: Likewise.
12763 * disk/i386/pc/partition.c: Likewise.
12764 * font/manager.c: Likewise.
12765 * fs/ext2.c: Likewise.
12766 * fs/fat.c: Likewise.
12767 * include/pupa/boot.h: Likewise.
12768 * include/pupa/device.h: Likewise.
12769 * include/pupa/disk.h: Likewise.
12770 * include/pupa/dl.h: Likewise.
12771 * include/pupa/elf.h: Likewise.
12772 * include/pupa/err.h: Likewise.
12773 * include/pupa/file.h: Likewise.
12774 * include/pupa/font.h: Likewise.
12775 * include/pupa/fs.h: Likewise.
12776 * include/pupa/kernel.h: Likewise.
12777 * include/pupa/loader.h: Likewise.
12778 * include/pupa/misc.h: Likewise.
12779 * include/pupa/mm.h: Likewise.
12780 * include/pupa/net.h: Likewise.
12781 * include/pupa/normal.h: Likewise.
12782 * include/pupa/rescue.h: Likewise.
12783 * include/pupa/setjmp.h: Likewise.
12784 * include/pupa/symbol.h: Likewise.
12785 * include/pupa/term.h: Likewise.
12786 * include/pupa/types.h: Likewise.
12787 * include/pupa/i386/setjmp.h: Likewise.
12788 * include/pupa/i386/types.h: Likewise.
12789 * include/pupa/i386/pc/biosdisk.h: Likewise.
12790 * include/pupa/i386/pc/boot.h: Likewise.
12791 * include/pupa/i386/pc/console.h: Likewise.
12792 * include/pupa/i386/pc/init.h: Likewise.
12793 * include/pupa/i386/pc/kernel.h: Likewise.
12794 * include/pupa/i386/pc/linux.h: Likewise.
12795 * include/pupa/i386/pc/loader.h: Likewise.
12796 * include/pupa/i386/pc/memory.h: Likewise.
12797 * include/pupa/i386/pc/multiboot.h: Likewise.
12798 * include/pupa/i386/pc/partition.h: Likewise.
12799 * include/pupa/i386/pc/time.h: Likewise.
12800 * include/pupa/i386/pc/vga.h: Likewise.
12801 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
12802 * include/pupa/util/getroot.h: Likewise.
12803 * include/pupa/util/misc.h: Likewise.
12804 * include/pupa/util/resolve.h: Likewise.
12805 * kern/device.c: Likewise.
12806 * kern/disk.c: Likewise.
12807 * kern/dl.c: Likewise.
12808 * kern/err.c: Likewise.
12809 * kern/file.c: Likewise.
12810 * kern/fs.c: Likewise.
12811 * kern/loader.c: Likewise.
12812 * kern/main.c: Likewise.
12813 * kern/misc.c: Likewise.
12814 * kern/mm.c: Likewise.
12815 * kern/rescue.c: Likewise.
12816 * kern/term.c: Likewise.
12817 * kern/i386/dl.c: Likewise.
12818 * kern/i386/pc/init.c: Likewise.
12819 * kern/i386/pc/lzo1x.S: Likewise.
12820 * kern/i386/pc/startup.S: Likewise.
12821 * loader/i386/pc/chainloader.c: Likewise.
12822 * loader/i386/pc/linux.c: Likewise.
12823 * loader/i386/pc/multiboot.c: Likewise.
12824 * normal/cmdline.c: Likewise.
12825 * normal/command.c: Likewise.
12826 * normal/main.c: Likewise.
12827 * normal/menu.c: Likewise.
12828 * normal/i386/setjmp.S: Likewise.
12829 * term/i386/pc/console.c: Likewise.
12830 * term/i386/pc/vga.c: Likewise.
12831 * util/console.c: Likewise.
12832 * util/genmoddep.c: Likewise.
12833 * util/misc.c: Likewise.
12834 * util/pupa-emu.c: Likewise.
12835 * util/resolve.c: Likewise.
12836 * util/unifont2pff.rb: Likewise.
12837 * util/i386/pc/biosdisk.c: Likewise.
12838 * util/i386/pc/getroot.c: Likewise.
12839 * util/i386/pc/pupa-mkimage.c: Likewise.
12840 * util/i386/pc/pupa-setup.c: Likewise.
12841
e6eced71 128422004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
12843
12844 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
12845 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
12846 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
12847 reading and reset it after reading.
12848 (pupa_ext2_close): Return PUPA_ERR_NONE.
12849
12850 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
12851 Correct value.
12852 (struct linux_kernel_header): Add kernel_version and
12853 initrd_addr_max.
12854 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
12855 pupa_file_read succeeds.
12856 (pupa_rescue_cmd_initrd): Implement.
12857
5aded270 128582003-12-03 Marco Gerards <metgerards@student.han.nl>
12859
12860 * fs/ext2.c (pupa_ext2_label): New function.
12861 (pupa_ext2_fs): Added label.
12862 * fs/fat.c (pupa_fat_label): New function.
12863 (pupa_fat_fs): Added label.
12864 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
12865
12866 * kern/misc.c (pupa_strndup): New function.
12867 * include/pupa/misc.h (pupa_strndup): New prototype.
12868
12869 * include/pupa/normal.h: Include <pupa/err.h>.
12870 (pupa_set_history): New prototype.
12871 (pupa_iterate_commands): New prototype.
12872 * normal/cmdline.c: Include <pupa/machine/partition.h>,
12873 <pupa/disk.h>, <pupa/file.h>.
12874 (hist_size): New variable.
12875 (hist_lines): Likewise.
12876 (hist_end): Likewise.
12877 (hist_used): Likewise.
12878 (pupa_set_history): New function.
12879 (pupa_history_get): Likewise.
12880 (pupa_history_add): Likewise.
12881 (pupa_history_replace): Likewise.
12882 (pupa_tab_complete): Likewise.
12883 (pupa_cmdline_run): Added tab completion and history buffer. Tab
12884 completion shows partitionnames while completing partitions, this
12885 feature was suggested by Jeff Bailey.
12886 * normal/command.c (pupa_iterate_commands): New function.
12887 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
12888 (pupa_normal_init): Initialize history buffer.
12889 (PUPA_MOD_INIT): Likewise.
12890 (pupa_normal_fini): Free the history buffer.
12891 (PUPA_MOD_FINI): Likewise.
12892
12893 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
12894 key.
12895
12896 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
12897 * configure.ac [i386]: Check for regparam bug.
12898 (NESTED_FUNC_ATTR) [! i386]: Defined.
12899
1f7315a3 129002003-11-17 Marco Gerards <metgerards@student.han.nl>
12901
12902 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
12903 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
12904 (pupa_emu_SOURCES): New variable.
12905 (pupa_emu_LDFLAGS): Likewise.
12906 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
12907 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
12908 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
12909 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
12910 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
12911 (pupa_jmp_buf): New typedef.
12912 (pupa_setjmp) [PUPA_UTIL]: New macro.
12913 (pupa_longjmp) [PUPA_UTIL]: Likewise.
12914 * include/pupa/term.h (struct pupa_term): New member `refresh'.
12915 (pupa_refresh): New prototype.
12916 * include/pupa/util/getroot.h: New file.
12917 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
12918 it.
12919 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
12920 (pupa_rescue_cmd_cat): Likewise.
12921 (pupa_rescue_cmd_ls): Likewise.
12922 (pupa_rescue_cmd_testload): Likewise.
12923 (pupa_rescue_cmd_lsmod): Likewise.
12924 * normal/cmdline.c (pupa_cmdline_get): Likewise.
12925 * normal/menu.c (run_menu): Likewise.
12926 * kern/term.c (pupa_cls): Likewise.
12927 (pupa_refresh): New function.
12928 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
12929 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
12930 * util/console.c: New file.
f19dbdb7 12931
1f7315a3 12932 * util/i386/pc/getroot.c: New file.
12933 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
12934 (pupa_putchar): New function.
12935 (pupa_refresh): Likewise.
12936 (xgetcwd): Function moved to ...
12937 (strip_extra_slashes): Likewise.
12938 (get_prefix): Likewise.
f19dbdb7 12939 * util/i386/pc/getroot.c: ... here.
1f7315a3 12940 (find_root_device): Function moved and renamed to...
12941 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
12942 Changed all callers.
12943 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
12944 and renamed to...
12945 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
12946 Changed all callers.
12947 * util/misc.c (pupa_memalign): New function.
12948 (pupa_mm_init_region): Likewise.
12949 (pupa_register_exported_symbols): Likewise.
12950 (pupa_putchar): Function removed.
12951 * util/pupa-emu.c: New file.
12952
9a5c1ade 129532003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
12954
12955 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
12956 (_multiboot_mod_SOURCES): New variable.
12957 (_multiboot_mod_CFLAGS): Likewise.
12958 * loader/i386/pc/multiboot.c: New file.
12959 * include/pupa/i386/pc/multiboot.h: Likewise.
12960 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
12961 (pupa_multiboot_real_boot): New function.
12962 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
12963 (pupa_multiboot_real_boot): New prototype.
12964 (pupa_rescue_cmd_multiboot): Likewise
12965 (pupa_rescue_cmd_module): Likewise.
12966
12967 * kern/loader.c (pupa_loader_set): Continue when
12968 pupa_loader_unload_func() fails.
12969 (pupa_loader_unset): New function.
12970 * include/pupa/loader.h (pupa_loader_unset): New prototype.
12971
12972 * kern/misc.c (pupa_stpcpy): New function.
12973 * include/pupa/misc.h (pupa_stpcpy): New prototype.
12974
8e72a9c0 129752003-11-12 Marco Gerards <metgerards@student.han.nl>
12976
12977 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
12978 for available extensions.
12979
12980 * include/pupa/i386/pc/time.h: New file.
12981 * kern/disk.c: Include <pupa/machine/time.h>.
12982 (PUPA_CACHE_TIMEOUT): New macro.
12983 (pupa_last_time): New variable.
12984 (pupa_disk_open): Flush the cache when there was a timeout.
12985 (pupa_disk_close): Reset the timer.
12986 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
12987 pupa_currticks.
12988 * util/misc.c: Include <sys/times.h>
12989 (pupa_get_rtc): New function.
12990
c4adbd32 129912003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
12992
12993 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
12994 as blocks.
12995 (pupa_ext2_get_file_block): Use blocks member.
12996
12997 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
12998 first block. Return -1 instead of pupa_errno on error.
12999
bfd30f06 130002003-10-27 Marco Gerards <metgerards@student.han.nl>
13001
13002 * README: In the pupa-mkimage example use _chain instead of chain
13003 and ext2 instead of fat.
13004 * TODO: Replace ext2fs with jfs as an example. Add an item for
13005 adding journal playback for ext2fs.
13006 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
13007 (pkgdata_MODULES): Added ext2.mod.
13008 (ext2_mod_SOURCES): New variable.
13009 (ext2_mod_CFLAGS): Likewise.
13010 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
13011 * include/pupa/misc.h (pupa_strncpy): New prototype.
13012 (pupa_strcat): Likewise.
13013 (pupa_strncmp): Likewise.
13014 * kern/misc.c (pupa_strcat): Enable function.
13015 (pupa_strncpy): New function.
13016 (pupa_strncmp): Likewise.
13017 * fs/ext2.c: New file.
f19dbdb7 13018
bfd30f06 13019 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
13020 when the read failed before retrying.
13021 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
13022 (_FILE_OFFSET_BITS): Likewise.
13023 * configure.ac: Added AC_SYS_LARGEFILE.
13024
98d15063 130252003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
13026
13027 * genmk.rb (PModule#rule): Make sure to get only symbol names
13028 from the output of nm.
13029 Reported by Robert Millan <zeratul2@wanadoo.es>.
13030
18d9c7cd 130312003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
13032
13033 I forgot to check in these changes for a long time. This adds
13034 incomplete support for VGA console, and this is still very
13035 buggy. Also, a lot of consideration is required for I18N,
13036 UNICODE, and VGA font issues. Therefore, assume that this is
13037 such that "better than nothing".
f19dbdb7 13038
18d9c7cd 13039 * font/manager.c: New file.
13040 * include/pupa/font.h: Likewise.
13041 * include/pupa/i386/pc/vga.h: Likewise.
13042 * term/i386/pc/vga.c: Likewise.
13043 * util/unifont2pff.rb: Likewise.
13044
13045 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
13046 (pkgdata_MODULES): Added vga.mod and font.mod.
13047 (vga_mod_SOURCES): New variables.
13048 (vga_mod_CFLAGS): Likewise.
13049 (font_mod_SOURCES): Likewise.
13050 (font_mod_CFLAGS): Likewise.
13051
13052 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
13053
13054 * include/pupa/term.h: Include pupa/err.h.
f19dbdb7 13055 (struct pupa_term): Added init and fini.
18d9c7cd 13056 Changed the argument of putchar to pupa_uint32_t.
13057
13058 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
13059 (pupa_console_real_putchar): New prototype.
13060 (pupa_console_putchar): Removed.
13061 (pupa_console_checkkey): Exported.
13062 (pupa_console_getkey): Likewise.
13063
13064 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
13065 characters.
13066
13067 * kern/term.c (pupa_term_set_current): Rewritten.
13068 (pupa_putchar): Likewise.
13069 (pupa_putcode): New function.
13070
13071 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
13072 (pupa_console_real_putchar): ... this.
13073 (pupa_vga_set_mode): New function.
13074 (pupa_vga_get_font): Likewise.
13075
13076 * normal/command.c: Include pupa/term.h.
13077 (terminal_command): New function.
13078 (pupa_command_init): Register the command "terminal".
13079
13080 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
13081 (DISP_UP): Likewise.
13082 (DISP_RIGHT): Likewise.
13083 (DISP_DOWN): Likewise.
13084 (DISP_HLINE): Likewise.
13085 (DISP_VLINE): Likewise.
13086 (DISP_UL): Likewise.
13087 (DISP_UR): Likewise.
13088 (DISP_LL): Likewise.
13089 (DISP_LR): Likewise.
13090
13091 * term/i386/pc/console.c (pupa_console_putchar): New function.
f19dbdb7 13092
977329f5 130932003-02-08 NIIBE Yutaka <gniibe@m17n.org>
13094
13095 * util/resolve.c (pupa_util_resolve_dependencies): BUG
13096 FIX. Reverse the path_list.
13097
13098 * include/pupa/normal.h: Export pupa_register_command and
13099 pupa_unregister_command.
13100
13101 * hello/hello.c (pupa_cmd_hello): New module.
13102 * conf/i386-pc.rmk: Added hello.mod.
13103
1f5ab428 131042003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
13105
13106 * kern/i386/pc/lzo1x.S: New file.
f19dbdb7 13107
1f5ab428 13108 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
13109 (compress_kernel): New variable.
13110 (generate_image): Heavily modified to support compressing a
13111 large part of the core image.
13112
13113 * util/misc.c (pupa_util_read_image): Fix a file descriptor
13114 leak.
13115 (pupa_util_load_image): New function.
13116
13117 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
13118 (pupa_compressed_size): New variable.
13119 (codestart): Enable Gate A20 here.
13120 Decompress the compressed part of the core image.
13121 Rearrange the code to put functions and variables which are
13122 required for initialization in the non-compressed part.
13123 Include lzo1x.S.
13124
13125 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
13126 here.
13127
13128 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
13129
f19dbdb7 13130 * include/pupa/i386/pc/kernel.h
1f5ab428 13131 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
13132 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
13133 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
13134 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
13135 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
13136
13137 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
13138
13139 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
13140 (Utility#rule): Likewise.
13141
13142 * configure.ac: Check if LZO is available.
13143
ce5bf700 131442003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
13145
13146 * include/pupa/normal.h: New file.
13147 * include/pupa/setjmp.h: Likewise.
13148 * include/pupa/i386/setjmp.h: Likewise.
13149 * normal/cmdline.c: Likewise.
13150 * normal/command.c: Likewise.
13151 * normal/main.c: Likewise.
13152 * normal/menu.c: Likewise.
13153 * normal/i386/setjmp.S: Likewise.
f19dbdb7 13154
ce5bf700 13155 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
13156 (pupa_rescue_cmd_initrd): Likewise.
13157
13158 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
13159 Likewise.
13160
13161 * kern/i386/pc/startup.S (translation_table): New variable.
13162 (translate_keycode): New function.
13163 (pupa_console_getkey): Call translate_keycode.
13164
13165 * kern/rescue.c (attempt_normal_mode): New function.
13166 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
13167 it failed, print a message.
13168
13169 * kern/mm.c (pupa_real_malloc): Print more information when a
13170 free magic is broken.
13171 (pupa_free): If the first free header is not free actually, set
13172 it to P.
13173
13174 * kern/main.c (pupa_load_normal_mode): Just load the module
13175 "normal".
13176 (pupa_main): Don't print the message
13177 "Entering into rescue mode..." here.
13178
13179 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
13180 Declared.
13181 (pupa_rescue_cmd_initrd): Likewise.
13182 (pupa_rescue_cmd_initrd): Likewise.
13183
13184 * include/pupa/symbol.h (FUNCTION): Specify the type.
13185 (VARIABLE): Likewise.
13186
13187 * include/pupa/err.h (pupa_err_t): Added
13188 PUPA_ERR_UNKNOWN_COMMAND.
13189
13190 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
13191 (pupa_dl_get_prefix): Likewise.
13192
13193 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
13194 Added _chain.mod and _linux.mod instead of chain.mod and
13195 linux.mod.
13196 (chain_mod_SOURCES): Renamed to ...
13197 (_chain_mod_SOURCES): ... this.
13198 (chain_mod_CFLAGS): Renamed to ...
13199 (_chain_mod_CFLAGS): ... this.
13200 (linux_mod_SOURCES): Renamed to ...
13201 (_linux_mod_SOURCES): ... this.
13202 (linux_mod_CFLAGS): Renamed to ...
13203 (_linux_mod_CFLAGS): ... this.
13204 (normal_mod_SOURCES): New variable.
13205 (normal_mod_CFLAGS): Likewise.
13206 (normal_mod_ASFLAGS): Likewise.
13207
132082003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
13209
13210 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
13211 possible.
13212
fe6b695a 13213 * kern/dl.c (pupa_dl_ref): Refer depending modules
ce5bf700 13214 recursively.
13215 (pupa_dl_unref): Unrefer depending modules recursively.
13216 Don't call pupa_dl_unload implicitly, because PUPA can crash if
13217 a module is unloaded before one depending on that module is
13218 unloaded.
13219 (pupa_dl_unload): Unload depending modules explicitly,
13220 if possible.
13221
c04da074 132222003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
13223
13224 * include/pupa/i386/pc/linux.h: New file.
13225 * loader/i386/pc/linux.c: Likewise.
f19dbdb7 13226
c04da074 13227 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
13228 Removed.
13229 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
13230 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
13231 of PUPA_CHAINLOADER_BOOT_SECTOR.
13232
13233 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
13234 (pupa_linux_prot_size): New variable.
13235 (pupa_linux_tmp_addr): Likewise.
13236 (pupa_linux_real_addr): Likewise.
13237 (pupa_linux_boot_zimage): New function.
13238 (pupa_linux_boot_bzimage): Likewise.
13239
13240 * kern/i386/pc/init.c (struct mem_region): New structure.
13241 (MAX_REGIONS): New macro.
13242 (mem_regions): New variable.
13243 (num_regions): Likewise.
13244 (pupa_os_area_addr): Likewise.
13245 (pupa_os_area_size): Likewise.
13246 (pupa_lower_mem): Likewise.
13247 (pupa_upper_mem): Likewise.
13248 (add_mem_region): New function.
13249 (compact_mem_regions): Likewise.
13250 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
13251 the size of the conventional memory and that of so-called upper
13252 memory (before the first memory hole).
13253 Instead of adding each found region to free memory, use
13254 add_mem_region and add them after removing overlaps.
13255 Also, add only 1/4 of the upper memory to free memory. The rest
13256 is used for loading OS images. Maybe this is ad hoc, but this
13257 makes it much easier to relocate OS images when booting.
13258
13259 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
13260 (pupa_enter_rescue_mode): Don't register initrd and module.
13261
13262 * kern/mm.c: Include pupa/dl.h.
13263
13264 * kern/main.c: Include pupa/file.h and pupa/device.h.
13265
13266 * kern/loader.c (pupa_loader_load_module_func): Removed.
13267 (pupa_loader_load_module): Likewise.
13268
13269 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
13270 ``.o''.
13271
13272 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
13273 (pupa_linux_tmp_addr): Likewise.
13274 (pupa_linux_real_addr): Likewise.
13275 (pupa_linux_boot_zimage): Likewise.
13276 (pupa_linux_boot_bzimage): Likewise.
13277
13278 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
13279 (pupa_upper_mem): Likewise.
13280 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
13281 module is too dangerous.
13282
13283 * include/pupa/loader.h (pupa_os_area_addr): Declared.
13284 (pupa_os_area_size): Likewise.
13285 (pupa_loader_set): Remove the first argument. Loader doesn't
13286 manage modules or initrd any longer.
13287 (pupa_loader_load_module): Removed.
13288
13289 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
13290 (linux_mod_SOURCES): New variable.
13291 (linux_mod_CFLAGS): Likewise.
13292
a13f9237 132932003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
13294
13295 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
13296 the length of a blocklist correctly.
13297
13298 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
13299 Use ioctl only if the OS file is a block device.
13300 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
13301 not very useful for normal files.
13302
13303 * kern/main.c (pupa_set_root_dev): New function.
13304 (pupa_load_normal_mode): Likewise.
13305 (pupa_main): Call those above.
13306
13307 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
13308 pupa_uint16_t.
13309
13310 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
13311
a5ffe966 133122003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
13313
13314 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
13315 (setup): Configure the installed partition information and the
13316 dl prefix.
13317
13318 * loader/i386/pc/chainloader.c (my_mod): New variable.
13319 (pupa_chainloader_unload): New function.
13320 (pupa_rescue_cmd_chainloader): Refer itself.
13321 (PUPA_MOD_INIT): Save its own module in MY_MOD.
13322
13323 * kern/i386/pc/startup.S (install_partition): Removed.
13324 (version_string): Likewise.
13325 (config_file): Likewise.
13326 (pupa_install_dos_part): New variable.
13327 (pupa_install_bsd_part): Likewise.
13328 (pupa_prefix): Likewise.
13329 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
13330
13331 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
13332 and pupa/misc.h.
13333 (make_install_device): New function.
13334 (pupa_machine_init): Set the dl prefix.
13335
13336 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
13337 (buf): Renamed to ...
13338 (linebuf): ... this.
13339 (pupa_rescue_cmd_prefix): New function.
13340 (pupa_rescue_cmd_insmod): Likewise.
13341 (pupa_rescue_cmd_rmmod): Likewise.
13342 (pupa_rescue_cmd_lsmod): Likewise.
13343 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
13344 rmmod and lsmod.
13345
13346 * kern/mm.c (pupa_memalign): If failed even after invalidating
13347 disk caches, unload unneeded modules and retry.
13348
13349 * kern/misc.c (pupa_memmove): New function.
13350 (pupa_memcpy): Removed.
13351 (pupa_strcpy): New function.
13352 (pupa_itoa): Made static.
13353
13354 * kern/dl.c (pupa_dl_iterate): New function.
13355 (pupa_dl_ref): Likewise.
13356 (pupa_dl_unref): Likewise.
13357 (pupa_dl_unload): Return if succeeded or not.
13358 (pupa_dl_unload_unneeded): New function.
13359 (pupa_dl_unload_all): Likewise.
13360 (pupa_dl_init): Renamed to ...
13361 (pupa_dl_set_prefix): ... this.
13362 (pupa_dl_get_prefix): New function.
13363
13364 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
13365 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
13366 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
13367 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
13368 (pupa_install_dos_part): Declared.
13369 (pupa_install_bsd_part): Likewise.
13370 (pupa_prefix): Likewise.
13371 (pupa_boot_drive): Likewise.
13372
13373 * include/pupa/types.h: Fix a typo.
13374
13375 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
13376 pupa_memmove.
13377 (pupa_memmove): Declared.
13378 (pupa_strcpy): Likewise.
13379
13380 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
13381 pupa_mod_init takes one argument, its own module.
13382 (pupa_dl_unload_unneeded): Declared.
13383 (pupa_dl_unload_all): Likewise.
13384 (pupa_dl_ref): Likewise.
13385 (pupa_dl_unref): Likewise.
13386 (pupa_dl_iterate): Likewise.
13387 (pupa_dl_init): Renamed to ...
13388 (pupa_dl_set_prefix): ... this.
13389 (pupa_dl_get_prefix): Declared.
13390
13391 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
f19dbdb7 13392 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
a5ffe966 13393 unloaded.
13394 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
13395 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
13396
13397 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
13398 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
13399
012d7999 134002003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
13401
13402 * util/i386/pc/pupa-setup.c (setup): Define the internal
13403 function find_first_partition_start at the top level, because GCC
13404 3.0.x cannot compile internal functions in deeper scopes
13405 correctly.
13406 (find_root_device): Use lstat instead of stat.
13407 Don't follow symbolic links.
13408 Fix the path-constructing code.
13409
13410 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
13411 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
13412 by a BLKGETSIZE ioctl first, because block devices don't fill
13413 the member st_mode of the structure stat on Linux.
13414 [__linux__] (linux_find_partition): Use a temporary buffer
13415 REAL_DEV for the working space. Copy it to DEV before returning.
13416 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
13417 buffer cache consistent.
13418 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
13419 strncmp. The previous value was merely wrong.
13420 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
13421
13422 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
13423 FAT size is 12. The previous value was merely wrong.
13424
13425 * kern/main.c (pupa_main): Don't split the starting message from
13426 newlines.
13427
13428 * kern/term.c (pupa_putchar): Put CR after LF instead of before
13429 LF, because BIOS goes crazy about character attributes in this
13430 case.
13431
1cc73a62 134322003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
13433
13434 * include/i386/pc/util/biosdisk.h: New file.
13435 * util/i386/pc/biosdisk.c: Likewise.
13436 * util/i386/pc/pupa-setup.c: Likewise.
f19dbdb7 13437
1cc73a62 13438 * Makefile.in (INCLUDE_DISTFILES): Added
13439 include/pupa/i386/pc/util/biosdisk.h.
13440 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
13441 directory util/i386/pc.
13442 (install-local): Added a rule for sbin_UTILITIES.
13443 (uninstall): Likewise.
13444
13445 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
13446
13447 * util/misc.c (xrealloc): New function.
13448 (pupa_malloc): Likewise.
13449 (pupa_free): Likewise.
13450 (pupa_realloc): Likewise.
13451 (pupa_stop): Likewise.
13452 (pupa_putchar): Likewise.
13453
13454 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
13455
13456 * include/pupa/util/misc.h (xrealloc): Declared.
13457
13458 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
13459 macro.
13460 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
13461 (PUPA_BOOT_MACHINE_BPB_END): ... this.
13462
13463 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
13464 [PUPA_UTIL] (pupa_fat_fini): Likewise.
13465
13466 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
13467 way should be implemented.
13468 [PUPA_UTIL] (pupa_fat_fini): Likewise.
13469
13470 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
13471 the size of NAME for safety.
13472 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
13473 0x88.
13474
13475 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
13476 (pupa_setup_SOURCES): Likewise.
13477
13478 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
13479
08b70fe8 134802002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
13481
13482 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
13483 bunch of pushl's from pusha, because this destroys the return
13484 value.
13485
62ddcc8f 134862002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
13487
13488 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
13489 This means that any missing prototypes could be fatal. Also, you
13490 must take care when writing assembly code. See the comments at
13491 the beginning of startup.S, for more details.
f19dbdb7 13492
62ddcc8f 13493 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
13494 compilation mechanism.
13495 (pupa_chainloader_real_boot): Likewise.
13496 (pupa_biosdisk_rw_int13_extensions): Likewise.
13497 (pupa_biosdisk_rw_standard): Likewise.
13498 (pupa_biosdisk_check_int13_extensions): Likewise.
13499 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
13500 (pupa_biosdisk_get_diskinfo_standard): Likewise.
13501 (pupa_get_memsize): Likewise.
13502 (pupa_get_mmap_entry): Likewise.
13503 (pupa_console_putchar): Likewise.
13504 (pupa_console_setcursor): Likewise.
13505 (pupa_getrtsecs): Use pushl instead of push.
13506
13507 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
13508 memory instead of the stack for a mmap entry, because some
13509 BIOSes may ignore the maximum size and overflow.
13510
13511 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
13512
13513 * genmk.rb (PModule#rule): Compile automatically generated
13514 sources with module-specific CFLAGS as well as other sources.
13515
9962ed99 135162002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
13517
13518 * configure.ac: Check ld.
13519 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
13520 respectively, before checking endianness and sizes.
13521
13522 * Makefile.in (LD): New variable.
f19dbdb7 13523
abdfc3c5 135242002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
13525
13526 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
13527
6a161fa9 135282002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
13529
13530 * Changelog: New file.
13531