]> git.proxmox.com Git - grub2.git/blob - ChangeLog
2009-07-16 Vladimir Serbinenko <phcoder@gmail.com>
[grub2.git] / ChangeLog
1 2009-07-16 Vladimir Serbinenko <phcoder@gmail.com>
2
3 Fix libusb
4
5 * Makefile.in (LIBUSB): new macro
6 * genmk.rb (Utility/print_tail): new method
7 (Utility/rule): use intermediary variable #{prefix}_OBJECTS
8 (top level): call util.print_tail at the end.
9
10 2009-07-16 Vladimir Serbinenko <phcoder@gmail.com>
11
12 Make FreeBSD accept zpool.cache
13
14 * loader/i386/bsd.c (grub_freebsd_add_meta_module): spoof filename if
15 type is /boot/zfs/zpool.cache
16
17 2009-07-16 Vladimir Serbinenko <phcoder@gmail.com>
18
19 Fix 64-bit efiemu
20
21 * include/grub/efiemu/efiemu.h (grub_efiemu_configuration_table64_t):
22 correct wrong typedef
23 * efiemu/prepare.c (SUFFIX (grub_efiemu_prepare)): minor style fixes
24
25 2009-07-15 Pavel Roskin <proski@gnu.org>
26
27 * include/grub/disk.h (struct grub_disk_dev): Use enum for id.
28 * kern/disk.c (struct grub_disk_cache): Likewise.
29
30 * commands/probe.c (options): Typo fix.
31
32 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_BPB_END):
33 Increase to 0x5a to accommodate FAT32. Adjust other offsets
34 accordingly.
35 Original patch by Yves Blusseau <yves.grub-devel@zetam.org>
36
37 * boot/i386/pc/boot.S (general_error_string): Add DOS newline at
38 the end of "Error" to make the message more readable.
39
40 * boot/i386/pc/boot.S (kernel_segment): Remove.
41 (copy_buffer): Use GRUB_BOOT_MACHINE_KERNEL_ADDR in segment 0
42 for destination.
43
44 * boot/i386/pc/boot.S (boot_version): Remove.
45 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_VER_MAJ):
46 Remove.
47
48 * include/grub/i386/pc/boot.h: Sort all offsets.
49 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Remove, it's unused.
50 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Likewise.
51 * boot/i386/pc/boot.S: Assert location of every offset listed in
52 include/grub/i386/pc/boot.h.
53
54 2009-07-13 Pavel Roskin <proski@gnu.org>
55
56 * include/grub/i386/coreboot/machine.h: Rename
57 GRUB_MACHINE_LINUXBIOS to GRUB_MACHINE_COREBOOT.
58 * loader/multiboot_loader.c (grub_cmd_multiboot_loader): Allow
59 multiboot 1 for GRUB_MACHINE_COREBOOT and GRUB_MACHINE_QEMU.
60
61 * kern/dl.c: Force native word size to suppress warnings when
62 compiling grub-emu.
63
64 * kern/device.c (grub_device_iterate): Change struct part_ent to
65 hold the name, not a pointer to it. Use one grub_malloc() per
66 partition, not two. Free partition_name if grub_malloc() fails.
67 Set ents to NULL only before grub_partition_iterate() is called.
68
69 2009-07-11 Bean <bean123ch@gmail.com>
70
71 * kern/ieee1275/openfw.c (grub_children_iterate): Fix size of
72 childname.
73
74 2009-07-10 Bean <bean123ch@gmail.com>
75 2009-07-10 Robert Millan <rmh.grub@aybabtu.com>
76
77 * kern/ieee1275/openfw.c (grub_children_iterate)
78 (grub_devalias_iterate): Fix size evaluation for property or path
79 strings, which was broken since r2132.
80
81 2009-07-07 Pavel Roskin <proski@gnu.org>
82
83 * commands/search.c (search_file): Merge into ...
84 (search_fs): ... this. Accept search type as argument.
85 (grub_cmd_search): Pass search type to search_fs().
86
87 * include/grub/util/console.h: New file.
88 * util/console.c: Use it instead of grub/machine/console.h.
89 * util/grub-emu.c: Likewise.
90
91 * lib/arg.c (find_long_option): Remove.
92 (find_long): Add `len' argument, make `s' const char *.
93 (grub_arg_parse): Parse long options in place, not in a
94 temporary buffer.
95
96 2009-07-06 Pavel Roskin <proski@gnu.org>
97
98 * commands/search.c (search_fs): Fix potential NULL pointer
99 dereference.
100
101 * commands/search.c (search_fs): Replace QUID macro with quid_fn
102 function pointer.
103
104 2009-07-06 Daniel Mierswa <impulze@impulze.org>
105
106 * commands/search.c (search_fs): Use grub_strcasecmp() for UUID
107 comparison.
108
109 2009-07-05 Pavel Roskin <proski@gnu.org>
110
111 * include/grub/i386/linux.h (struct linux_kernel_params):
112 Restore padding3, it's still needed.
113
114 * util/grub.d/10_freebsd.in: Fix spelling of `device.hints' on
115 FreeBSD.
116 * util/osdetect.lua: Likewise.
117
118 2009-07-05 Bean <bean123ch@gmail.com>
119
120 * conf/common.rmk (lua_mode_SOURCES): Add script/lua/lstrlib.c.
121
122 * script/lua/grub_lib.c (grub_lua_run): Check input parameter.
123 (grub_lua_getenv): Likewise.
124 (grub_lua_setenv): Likewise.
125 (save_errno): New function.
126 (push_result): Likewise.
127 (grub_lua_enum_device): Likewise.
128 (grub_lua_enum_file): Likewise.
129 (grub_lua_file_open): Likewise.
130 (grub_lua_file_close): Likewise.
131 (grub_lua_file_seek): Likewise.
132 (grub_lua_file_read): Likewise.
133 (grub_lua_file_getline): Likewise.
134 (grub_lua_file_getsize): Likewise.
135 (grub_lua_file_getpos): Likewise.
136 (grub_lua_file_eof): Likewise.
137 (grub_lua_file_exist): Likewise.
138 (grub_lua_add_menu): Likewise.
139
140 * script/lua/grub_lua.h (isupper): New inline function.
141 (islower): Likewise.
142 (ispunct): Likewise.
143 (isxdigit): Likewise.
144 (strcspn): Change to normal function.
145 (strpbkr): New function declaration.
146 (memchr): Likewise.
147
148 * script/lua/grub_main.c (scan_str): New function.
149 (strcspn): Likewise.
150 (strpbrk): Likewise.
151 (memchr): Likewise.
152
153 * script/lua/linit.c (lualibs): Enable the string library.
154
155 * util/osdetect.lua: New file.
156
157 2009-07-04 Robert Millan <rmh.grub@aybabtu.com>
158
159 * include/grub/i386/linux.h (struct linux_kernel_params): Add
160 `capabilities' member.
161
162 2009-07-02 Pavel Roskin <proski@gnu.org>
163
164 * genparttoollist.sh: Add missing newline at the end.
165
166 2009-07-01 Pavel Roskin <proski@gnu.org>
167
168 * kern/x86_64/efi/callwrap.S: Add missing newline at the end.
169
170 * util/hostdisk.c (open_device): Remove `const' from
171 `sysctl_size', as sysctlbyname() can change it (in this case it
172 doesn't actually happen).
173
174 * include/grub/types.h: Define GRUB_LONG_MAX and GRUB_LONG_MIN
175 using signed long int constants.
176
177 * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Make `p'
178 constant to avoid a warning on FreeBSD.
179
180 * util/hostdisk.c (device_is_wholedisk): Compile only on systems
181 where it's needed.
182
183 * Makefile.in: Install include/grub/machine symlink.
184
185 * Makefile.in: When installing symlinks, use "cp -fR", which
186 works on FreeBSD and MacOSX.
187 From Yves Blusseau <cl7m42e02@sneakemail.com>
188
189 * kern/dl.c (grub_dl_resolve_symbol): Make static.
190 * include/grub/dl.h: Remove grub_dl_resolve_symbol().
191
192 * util/misc.c: Move grub_reboot() and grub_halt() ...
193 * util/grub-emu.c: ... here. Make main_env static.
194 * include/grub/util/misc.h: Remove main_env.
195
196 * kern/mm.c: Use correct format to print size_t.
197
198 * include/grub/elf.h: Define Elf_Sword and Elf_Xword.
199 * kern/i386/dl.c: Use ELF symbols without "32" or "64".
200 * kern/powerpc/dl.c: Likewise.
201 * kern/sparc64/dl.c: Likewise.
202 * kern/x86_64/dl.c: Likewise.
203
204 2009-07-01 Robert Millan <rmh.grub@aybabtu.com>
205
206 Fix grub-emu build on sparc64-ieee1275.
207
208 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Syncronize with ...
209 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): ... this.
210
211 2009-07-01 Robert Millan <rmh.grub@aybabtu.com>
212
213 * util/misc.c: Include `<setjmp.h>' and `<grub/machine/machine.h>'.
214 (grub_reboot, grub_halt): New functions.
215
216 * util/i386/pc/misc.c: Delete. Update all users.
217 * util/sparc64/ieee1275/misc.c: Likewise.
218 * util/powerpc/ieee1275/misc.c: Likewise.
219
220 2009-07-01 Robert Millan <rmh.grub@aybabtu.com>
221
222 * conf/i386.rmk (setjmp_mod_SOURCES)
223 (setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): Move to ...
224 * conf/common.rmk (setjmp_mod_SOURCES)
225 (setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): ... here, and modify
226 to use $(target_cpu).
227 * conf/x86_64-efi.rmk (setjmp_mod_SOURCES)
228 (setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): Remove.
229 * conf/powerpc-ieee1275.rmk: Likewise.
230 * conf/sparc64-ieee1275.rmk: Likewise.
231
232 * conf/i386-pc.rmk (kernel_img_SOURCES): Use
233 $(target_cpu) for kern/$(target_cpu)/dl.c.
234 * conf/i386-efi.rmk: Likewise.
235 * conf/i386-ieee1275.rmk: Likewise.
236 * conf/x86_64-efi.rmk: Likewise.
237 * conf/i386-coreboot.rmk: Likewise.
238 * conf/powerpc-ieee1275.rmk (kernel_img_SOURCES): Use
239 $(target_cpu) for kern/$(target_cpu)/dl.c and for
240 kern/$(target_cpu)/cache.S.
241 * conf/sparc64-ieee1275.rmk: Likewise.
242
243 2009-07-01 Robert Millan <rmh.grub@aybabtu.com>
244
245 * include/grub/i386/linux.h (linux_kernel_params): Change `mmap_size'
246 type to `grub_uint8_t', and adjust `padding9' accordingly.
247
248 2009-06-29 Robert Millan <rmh.grub@aybabtu.com>
249
250 * include/grub/i386/linux.h (GRUB_VIDEO_TYPE_TEXT): New macro.
251
252 * loader/i386/linux.c [__i386__] (grub_linux_boot): Simplify inline
253 assembly in final jump, using register constraints.
254
255 (grub_linux_boot): For text mode, initialize `have_vga' using
256 GRUB_VIDEO_TYPE_TEXT rather than 0 (this changes its value to 1).
257
258 Initialize `video_cursor_x' and `video_cursor_y' as late as possible,
259 right before the final jump.
260
261 Set `video_mode' to 0x3.
262
263 Document initialization of `video_page', `video_mode' and
264 `video_ega_bx'.
265
266 2009-06-29 Robert Millan <rmh.grub@aybabtu.com>
267
268 * include/grub/i386/linux.h (GRUB_LINUX_FLAG_QUIET): New macro.
269 * loader/i386/linux.c (grub_cmd_linux): Recognize "quiet" option,
270 and set GRUB_LINUX_FLAG_QUIET appropiately.
271
272 2009-06-29 Robert Millan <rmh.grub@aybabtu.com>
273
274 Fix build on Debian / sparc.
275
276 * configure.ac: Recognize `sparc' target_cpu (as sparc64).
277
278 2009-06-28 Pavel Roskin <proski@gnu.org>
279
280 * kern/i386/qemu/mmap.c (grub_machine_mmap_iterate): Use cast to
281 fix a warning.
282
283 * util/grub.d/10_linux.in: Match SUSE style initrd names.
284
285 2009-06-27 Robert Millan <rmh.grub@aybabtu.com>
286
287 * loader/i386/linux.c (grub_linux_boot): Fix uninitialized use of
288 `err'.
289
290 2009-06-27 Robert Millan <rmh.grub@aybabtu.com>
291
292 Revert r2338.
293
294 * loader/i386/linux.c (grub_cmd_linux): Don't call grub_error when
295 file can't be opened. grub_file_open() is already supposed to set
296 grub_errno / grub_errmsg appropiately.
297 * loader/i386/pc/linux.c (grub_cmd_linux): Likewise.
298
299 2009-06-27 Pavel Roskin <proski@gnu.org>
300 2009-06-27 Robert Millan <rmh.grub@aybabtu.com>
301
302 * include/grub/dl.h: Include grub/elf.h.
303 (struct grub_dl): Add symtab field.
304 * kern/dl.c [GRUB_MACHINE_QEMU]: Define
305 GRUB_MODULES_MACHINE_READONLY.
306 (grub_dl_resolve_symbols): Populate mod->symtab, making a copy
307 of the header for read-only modules.
308 (grub_dl_unload): Free mod->symtab for read-only modules.
309 * kern/i386/dl.c: Use mod->symtab.
310 * kern/powerpc/dl.c: Likewise.
311 * kern/sparc64/dl.c: Likewise.
312 * kern/x86_64/dl.c: Likewise.
313
314 * conf/i386-qemu.rmk: New file.
315 * kern/i386/qemu/startup.S: Likewise.
316 * kern/i386/qemu/mmap.c: Likewise.
317 * boot/i386/qemu/boot.S: Likewise.
318 * include/grub/i386/qemu/time.h: Likewise.
319 * include/grub/i386/qemu/serial.h: Likewise.
320 * include/grub/i386/qemu/kernel.h: Likewise.
321 * include/grub/i386/qemu/console.h: Likewise.
322 * include/grub/i386/qemu/boot.h: Likewise.
323 * include/grub/i386/qemu/init.h: Likewise.
324 * include/grub/i386/qemu/machine.h: Likewise.
325 * include/grub/i386/qemu/loader.h: Likewise.
326 * include/grub/i386/qemu/memory.h: Likewise.
327
328 * conf/i386-coreboot.rmk (GRUB_BOOT_MACHINE_LINK_ADDR)
329 (GRUB_KERNEL_MACHINE_LINK_ADDR): New variables.
330 [qemu] (pkglib_IMAGES): Add `boot.img'.
331 [qemu] (boot_img_SOURCES, boot_img_ASFLAGS, boot_img_LDFLAGS)
332 [qemu] (boot_img_FORMAT): New variables.
333 [qemu] (bin_UTILITIES): Add `grub-mkimage'.
334 [qemu] (grub_mkimage_SOURCES, grub_mkimage_CFLAGS): New variables.
335 [qemu] (kernel_img_SOURCES, kernel_img_HEADERS, kernel_img_CFLAGS)
336 [qemu] (kernel_img_ASFLAGS, kernel_img_LDFLAGS)
337 [qemu] (kernel_img_FORMAT): New variables.
338
339 * configure.ac: Recognise `i386-qemu'.
340
341 * util/i386/pc/grub-mkimage.c (compress_kernel): Add dummy variant
342 (for no compression).
343 [GRUB_MACHINE_QEMU] (generate_image): Misc adjustments to produce
344 a valid i386 ROM image. Make `GRUB_KERNEL_MACHINE_COMPRESSED_SIZE',
345 `GRUB_KERNEL_MACHINE_INSTALL_DOS_PART' and
346 `GRUB_KERNEL_MACHINE_INSTALL_BSD_PART' optional features (with
347 ifdefs).
348
349 2009-06-27 Pavel Roskin <proski@gnu.org>
350
351 * efiemu/prepare.c: Eliminate TYPE macro, it makes code hard to
352 read.
353 * efiemu/prepare32.c: Likewise.
354 * efiemu/prepare64.c: Likewise.
355
356 2009-06-26 Pavel Roskin <proski@gnu.org>
357
358 * include/grub/types.h: Define GRUB_TARGET_WORDSIZE.
359 * include/grub/elf.h: Define symbols without "32" or "64" based
360 on GRUB_TARGET_WORDSIZE.
361 * include/grub/multiboot2.h: Use GRUB_TARGET_WORDSIZE.
362 * efiemu/loadcore32.c: Redefine GRUB_TARGET_WORDSIZE, remove own
363 ELF definitions.
364 * efiemu/loadcore64.c: Likewise.
365 * loader/i386/bsd32.c: Likewise.
366 * loader/i386/bsd64.c: Likewise.
367 * kern/dl.c: Remove own ELF definitions.
368 * util/i386/efi/grub-mkimage.c: Likewise.
369
370 2009-06-23 Robert Millan <rmh.grub@aybabtu.com>
371
372 * kern/i386/pc/startup.S (real_to_prot): Access `gdtdesc' using
373 segment 0x0 unconditionally, because the reference generated by
374 GAS is an absolute address.
375
376 2009-06-22 Robert Millan <rmh.grub@aybabtu.com>
377
378 * include/grub/i386/kernel.h: Include `<grub/machine/machine.h>'.
379 [! GRUB_MACHINE_IEEE1275]: Set `GRUB_MOD_ALIGN' to 0x1.
380
381 2009-06-22 Robert Millan <rmh.grub@aybabtu.com>
382
383 * commands/search.c (grub_cmd_search): Macroify hardcoded args[]
384 indexes. Check for -f explicitly.
385 (search_file): Improve error message.
386 (GRUB_MOD_INIT(search)): Add missing `-n' to help output.
387
388 2009-06-22 Robert Millan <rmh.grub@aybabtu.com>
389
390 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): Rename to ...
391 (GRUB_KERNEL_MACHINE_LINK_ADDR): ... this. Update all users.
392
393 2009-06-22 Robert Millan <rmh.grub@aybabtu.com>
394
395 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/misc.S'.
396 * conf/i386-ieee1275.rmk: Likewise.
397 * conf/i386-coreboot.rmk: Likewise.
398
399 * kern/i386/pc/startup.S (grub_stop): Remove function.
400 * kern/i386/ieee1275/startup.S: Likewise.
401 * kern/i386/coreboot/startup.S: Likewise.
402 * kern/i386/misc.S (grub_stop): New function.
403
404 2009-06-22 Robert Millan <rmh.grub@aybabtu.com>
405
406 * kern/i386/pc/startup.S (real_to_prot): Move from here ...
407 * kern/i386/realmode.S (real_to_prot): ... to here.
408
409 2009-06-22 Robert Millan <rmh.grub@aybabtu.com>
410
411 * conf/i386-ieee1275.rmk (pkglib_PROGRAMS): Replace `kernel.elf'
412 with `kernel.img'.
413 (kernel_elf_SOURCES): Rename to ...
414 (kernel_img_SOURCES): ... this.
415 (kernel_elf_HEADERS): Rename to ...
416 (kernel_img_HEADERS): ... this. Update all users.
417 (kernel_elf_ASFLAGS): Rename to ...
418 (kernel_img_ASFLAGS): ... this.
419 (kernel_elf_CFLAGS): Rename to ...
420 (kernel_img_CFLAGS): ... this.
421 (kernel_elf_LDFLAGS): Rename to ...
422 (kernel_img_LDFLAGS): ... this.
423 * conf/i386-coreboot.rmk: Likewise.
424 * conf/powerpc-ieee1275.rmk: Likewise.
425
426 * util/elf/grub-mkimage.c (add_segments): Replace "kernel.elf"
427 with "kernel.img".
428
429 2009-06-21 Pavel Roskin <proski@gnu.org>
430
431 * loader/powerpc/ieee1275/linux.c (offset_phdr): Fix prototypes
432 to match nested functions.
433 * loader/sparc64/ieee1275/linux.c: Likewise.
434
435 * conf/i386-ieee1275.rmk: Define kernel_elf_ASFLAGS.
436
437 2009-06-21 Robert Millan <rmh.grub@aybabtu.com>
438
439 * configure.ac: Enable `END_SYMBOL' / `BSS_START_SYMBOL' test on
440 all i386 platforms.
441
442 2009-06-21 Robert Millan <rmh.grub@aybabtu.com>
443
444 Fix asm file handling on ELF, and remove workarounds.
445
446 * genmk.rb (class Programs): Detect assembly files, and set ASFLAGS
447 and -DASM_FILE=1 appropiately (copied from `class Images' stanza).
448 * kern/i386/ieee1275/startup.S (ASM_FILE): Remove macro.
449 * kern/i386/coreboot/startup.S (ASM_FILE): Likewise.
450
451 2009-06-21 Vladimir Serbinenko <phcoder@gmail.com>
452
453 Load BSD ELF modules
454
455 * conf/i386-pc.rmk (bsd_mod_SOURCES): Add loader/i386/bsd32.c
456 and loader/i386/bsd64.c
457 * include/grub/i386/bsd.h (FREEBSD_MODTYPE_MODULE): Remove
458 (FREEBSD_MODTYPE_ELF_MODULE): New definition
459 (FREEBSD_MODTYPE_ELF_MODULE_OBJ): Likewise
460 (grub_freebsd_load_elfmodule32): New declaration
461 (grub_freebsd_load_elfmoduleobj64): Likewise
462 (grub_freebsd_load_elf_meta32): Likewise
463 (grub_freebsd_load_elf_meta64): Likewise
464 (grub_freebsd_add_meta): Likewise
465 (grub_freebsd_add_meta_module): Likewise
466 * loader/i386/bsd.c (grub_freebsd_add_meta): Make global
467 (grub_freebsd_add_meta_module): Likewise and move module-specific
468 parts to grub_cmd_freebsd and grub_cmd_freebsd_module
469 (grub_cmd_freebsd): Add elf-kernel specific parts
470 based on grub_freebsd_add_meta_module
471 (grub_cmd_freebsd_module): Add type parsing moved from
472 grub_freebsd_add_meta_module
473 (grub_cmd_freebsd_module_elf): New function
474 (cmd_freebsd_module_elf): New variable
475 (GRUB_MOD_INIT): Register freebsd_module_elf
476 * loader/i386/bsd32.c: New file
477 * loader/i386/bsd64.c: Likewise
478 * loader/i386/bsdXX.c: Likewise
479 * kern/elf.c (grub_elf32_load): Let hook decide which pheaders to load
480 (grub_elf64_load): Likewise
481 * include/grub/elfload.h (grub_elf32_load_hook_t): New parameter do_load
482 All users updated
483 (grub_elf64_load_hook_t): Likewise
484
485 2009-06-21 Colin Watson <cjwatson@ubuntu.com>
486
487 * util/grub-mkconfig.in (GRUB_DISABLE_LINUX_RECOVERY): Export
488 variable.
489 * util/grub.d/10_linux.in: If GRUB_DISABLE_LINUX_RECOVERY is true,
490 don't write a menu entry for recovery mode.
491
492 2009-06-20 Robert Millan <rmh.grub@aybabtu.com>
493
494 * util/i386/pc/grub-mkimage.c (main): Oops, free `output' only
495 after it's no longer needed.
496
497 2009-06-20 Robert Millan <rmh.grub@aybabtu.com>
498
499 * include/grub/i386/loader.h (grub_linux_prot_size)
500 (grub_linux_tmp_addr, grub_linux_real_addr)
501 (grub_linux_is_bzimage, grub_linux16_boot): Declare only on
502 GRUB_MACHINE_PCBIOS.
503 * util/i386/pc/grub-mkimage.c (compress_kernel): Move
504 common grub_util_info() call to ...
505 (generate_image): ... here.
506 Fix use of uninitialized memory, comparison of signed with
507 unsigned integers and memory leak.
508 Remove bogus module address message.
509
510 2009-06-20 Vladimir Serbinenko <phcoder@gmail.com>
511
512 * disk/mdraid_linux.c (GRUB_MOD_FINI): use grub_raid_unregister and not
513 grub_raid_register
514 * disk/dmraid_nvidia.c (GRUB_MOD_FINI): likewise
515
516 2009-06-19 Pavel Roskin <proski@gnu.org>
517
518 * configure.ac: Remove stray AC_MSG_CHECKING.
519
520 2009-06-19 Vladimir Serbinenko <phcoder@gmail.com>
521
522 * disk/scsi.c (grub_scsi_open): use continue instead of big if
523
524 2009-06-18 Pavel Roskin <proski@gnu.org>
525
526 * conf/common.rmk: Add fs_file.mod.
527 * disk/fs_file.c: New file.
528 * include/grub/disk.h (enum grub_disk_dev_id): Add
529 GRUB_DISK_DEVICE_FILE_ID.
530
531 2009-06-18 Vladimir Serbinenko <phcoder@gmail.com>
532
533 Fix build with Apple's toolchain. Part 2
534
535 * aclocal.m4 (grub_PROG_TARGET_CC): add missing prototype for main and
536 a fake start
537
538 2009-06-18 Vladimir Serbinenko <phcoder@gmail.com>
539
540 Fix build with Apple's toolchain. Part 1
541
542 * commands/i386/pc/drivemap_int13h.S: use assembly-time constants
543 for long calls
544 * configure.ac: remove a leftover AC_MSG_RESULT
545 (CFLAGS): don't add -Wl,--defsym,___main=0x8100 when building with
546 Apple's toolchain
547
548 2009-06-18 Vladimir Serbinenko <phcoder@gmail.com>
549
550 Fix warnings
551
552 * fs/ntfscomp.c (decomp_get16): initialize c1 and c2
553 (decomp_block): initialize ch
554 use grub_memcpy instead of memcpy
555
556 2009-06-17 Pavel Roskin <proski@gnu.org>
557
558 * include/grub/i386/coreboot/console.h: Don't use the i386-pc
559 version, use declarations needed to use vga_text as the startup
560 console.
561
562 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Remove
563 term/i386/pc/at_keyboard.c, it doesn't need to be compiled into
564 the kernel.
565 * kern/i386/coreboot/init.c: Don't call grub_at_keyboard_init()
566 and grub_at_keyboard_fini(), it's done on module load and
567 unload.
568
569 2009-06-17 Felix Zielcke <fzielcke@z-51.de>
570
571 * loader/i386/linux.c (grub_cmd_linux): Set grub_error if the
572 file can't be found.
573 * loader/i386/pc/linux.c (grub_cmd_linux): Likewise.
574
575 2009-06-17 Vladimir Serbinenko <phcoder@gmail.com>
576
577 Fix newline handling
578
579 * include/grub/script_sh.h (grub_lexer_param): new field was_newline
580 * script/sh/lexer.c (grub_script_lexer_init): initialize was_newline
581 (grub_script_yylex): don't segfault on unterminated script
582 newline terminates command and variable
583
584 2009-06-17 Vladimir Serbinenko <phcoder@gmail.com>
585
586 avoid double grub_adjust_range call. Bug reported by David Simner
587
588 * kern/disk.c (grub_disk_write): change to raw disk access before
589 calling disk_read
590
591 2009-06-17 Colin Watson <cjwatson@ubuntu.com>
592
593 * util/elf/grub-mkimage.c (usage): Prefix each option line with two
594 spaces, for the benefit of help2man.
595 * util/i386/efi/grub-mkimage.c (usage): Likewise.
596
597 2009-06-16 Pavel Roskin <proski@gnu.org>
598
599 * kern/i386/halt.c: Include grub/machine/init.h.
600 * kern/i386/reboot.c: Include grub/cpu/reboot.h.
601
602 2009-06-16 Felix Zielcke <fzielcke@z-51.de>
603
604 * util/grub.d/30_os-prober.in: Use ${root} in the generated
605 drivemap menuentry.
606
607 2009-06-16 James Jarvis <James.Jarvis@ed.ac.uk>
608
609 * commands/help.c GRUB_MOD_INIT(echo): Fix the help output of
610 `echo' command.
611
612 2009-06-16 Pavel Roskin <proski@gnu.org>
613
614 * boot/i386/pc/boot.S: Remove root_drive. Assert offset of
615 boot_drive_check by using GRUB_BOOT_MACHINE_DRIVE_CHECK. Don't
616 save %dx, we only need %dl and we never change it.
617 * boot/i386/pc/cdboot.S: Don't set the root drive.
618 * boot/i386/pc/pxeboot.S: Likewise.
619 * include/grub/i386/pc/boot.h: Remove
620 GRUB_BOOT_MACHINE_ROOT_DRIVE, adjust
621 GRUB_BOOT_MACHINE_DRIVE_CHECK.
622 * include/grub/i386/pc/kernel.h: Remove grub_root_drive.
623 * kern/i386/pc/init.c (make_install_device): Remove references
624 to grub_root_drive.
625 * kern/i386/pc/startup.S: Likewise.
626 * util/i386/pc/grub-setup.c (setup): Don't set root_drive.
627
628 2009-06-16 Vladimir Serbinenko <phcoder@gmail.com>
629
630 xnu_uuid command
631
632 * commands/xnu_uuid.c: new file
633 * conf/common.rmk (pkglib_MODULES): add xnu_uuid.mod
634 (xnu_uuid_mod_SOURCES): new variable
635 (xnu_uuid_mod_CFLAGS): likewise
636 (xnu_uuid_mod_LDFLAGS): likewise
637 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/probe.c
638 * conf/i386-ieee1275.rmk: likewise
639 * conf/i386-pc.rmk: likewise
640 * conf/powerpc-ieee1275.rmk: likewise
641 * conf/sparc64-ieee1275.rmk: likewise
642 * util/grub.d/30_os-prober.in: use UUID for Mac OS X/Darwin
643
644 2009-06-16 Pavel Roskin <proski@gnu.org>
645
646 * configure.ac: Avoid '==' in test command, it's not portable.
647
648 2009-06-16 Vladimir Serbinenko <phcoder@gmail.com>
649
650 Probe command
651
652 * commands/probe.c: new file
653 * conf/common.rmk (pkglib_MODULES): add probe.mod
654 (probe_mod_SOURCES): new variable
655 (probe_mod_CFLAGS): likewise
656 (probe_mod_LDFLAGS): likewise
657 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/probe.c
658 * conf/i386-ieee1275.rmk: likewise
659 * conf/i386-pc.rmk: likewise
660 * conf/powerpc-ieee1275.rmk: likewise
661 * conf/sparc64-ieee1275.rmk: likewise
662
663 2009-06-15 Vladimir Serbinenko <phcoder@gmail.com>
664
665 Fix handling of string like \"hello\" and "a
666 b"
667
668 * script/sh/lexer.c (check_textstate): accept GRUB_PARSER_STATE_ESC
669 (grub_script_yylex): fix parsing of quoting, escaping and newline
670
671 2009-06-13 Vladimir Serbinenko <phcoder@gmail.com>
672
673 * loader/i386/multiboot.c (grub_multiboot_get_bootdev): fix partition
674 handling
675
676 2009-06-13 Jun Inoue <jun.lambda@gmail.com>
677
678 * util/grub-mkconfig.in: Fix parsing of --output option.
679
680 2009-06-12 Pavel Roskin <proski@gnu.org>
681
682 * Makefile.in (pkgdata_SRCDIR): Remove. genmodsrc.sh and
683 genmk.rb don't need to be generated or installed.
684
685 2009-06-12 Vladimir Serbinenko <phcoder@gmail.com>
686
687 * commands/i386/pc/drivemap_int13h.S: add more comments
688
689 2009-06-11 Pavel Roskin <proski@gnu.org>
690
691 * Makefile.in (uninstall): Uninstall manuals.
692
693 * Makefile.in: Rename lib_DATA to lib_SCRIPTS, move it from
694 PKGLIB to SCRIPTS. This fixes installation of grub-mkconfig_lib
695 and update-grub_lib in two places.
696 * conf/common.rmk: Rename lib_DATA to lib_SCRIPTS.
697
698 * disk/usbms.c (grub_usbms_transfer): Initialize `err' to fix
699 a compiler warning.
700
701 * loader/i386/bsd.c (grub_freebsd_boot): Rename `entry' to
702 `entry_lo' to fix variable shadowing.
703
704 2009-06-11 Christian Franke <franke@computer.org>
705
706 * kern/misc.c (__enable_execute_stack): Add missing return type
707 to prevent gcc warning.
708
709 2009-06-11 Felix Zielcke <fzielcke@z-51.de>
710
711 * conf/i386-ieee1275.rmk (COMMON_LDFLAGS): Remove `-static -lgcc'.
712
713 2009-06-11 Pavel Roskin <proski@gnu.org>
714
715 * Makefile.in: Don't rely on any scripts being executable.
716 Always use $(SHELL) to run shell scripts.
717
718 * configure.ac: Always define ___main if using -nostdlib. This
719 fixes tests on Cygwin.
720
721 2009-06-11 Giuseppe Caizzone <acaizzo@gmail.com>
722
723 UDF fix
724
725 * fs/udf.c (grub_udf_read_block): handle the fact that ad->length
726 is in bytes and not in blocks
727
728 2009-06-11 Pavel Roskin <proski@gnu.org>
729
730 * kern/i386/halt.c (grub_halt): Make `i' unsigned to fix a
731 warning.
732
733 2009-06-11 Felix Zielcke <fzielcke@z-51.de>
734
735 * util/grub.d/30_os-prober.in: Fix a comment. Source
736 ${libdir}/grub/grub-mkconfig_lib. Use prepare_grub_to_access_device
737 to set the root device. Place drivemap command in the generated
738 chain entry.
739
740 2009-06-11 Pavel Roskin <proski@gnu.org>
741
742 * configure.ac: Remove host_m32. Issues with 64-bit utilities
743 have long been resolved.
744
745 2009-06-11 Colin Watson <cjwatson@ubuntu.com>
746
747 * util/grub.d/10_linux.in: Capitalise "Linux".
748
749 * util/grub-pe2elf.c (usage): Fix references to grub-editenv.
750
751 2009-06-11 Pavel Roskin <proski@gnu.org>
752
753 * kern/efi/efi.c (grub_exit): Add infinite loop at the end to
754 fix a gcc warning and ensure that the function won't ever exit.
755
756 * kern/i386/ieee1275/init.c: Add missing prototype for
757 grub_stop_floppy().
758
759 * loader/ieee1275/multiboot2.c [__i386__]: Include
760 grub/cpu/multiboot.h.
761
762 * term/i386/pc/serial.c (serial_translate_key_sequence): Avoid
763 casts to short - they are not portable and cause warnings. Fix
764 use of uninitialized values in input_buf. Use ARRAY_SIZE.
765
766 2009-06-11 Vladimir Serbinenko <phcoder@gmail.com>
767
768 Drivemap fixes
769
770 * commands/i386/pc/drivemap.c (grub_get_root_biosnumber_drivemap):
771 new function
772 (grub_get_root_biosnumber_saved): new variable
773 (GRUB_MOD_INIT): register grub_get_root_biosnumber_drivemap
774 (GRUB_MOD_FINI): unregister grub_get_root_biosnumber_drivemap
775 * commands/i386/pc/drivemap_int13h.S (grub_drivemap_handler): restore
776 %dx after the call if necessary
777 * conf/common.rmk (pkglib_MODULES): remove boot.mod
778 (boot_mod_SOURCES): remove
779 (boot_mod_CFLAGS): remove
780 (boot_mod_LDFLAGS): remove
781 * conf/i386-coreboot.rmk (pkglib_MODULES): add boot.mod
782 (boot_mod_SOURCES): new variable
783 (boot_mod_CFLAGS): likewise
784 (boot_mod_LDFLAGS): likewise
785 * conf/i386-efi.rmk: likewise
786 * conf/i386-ieee1275.rmk: likewise
787 * conf/i386-pc.rmk: likewise
788 * conf/powerpc-ieee1275.rmk: likewise
789 * conf/sparc64-ieee1275.rmk: likewise
790 * conf/x86_64-efi.rmk: likewise
791 * include/grub/i386/pc/biosnum.h: new file
792 * lib/i386/pc/biosnum.c: likewise
793 * loader/i386/bsd.c (grub_bsd_get_device): use grub_get_root_biosnumber
794 * loader/i386/multiboot.c (grub_multiboot_get_bootdev): likewise
795 * loader/i386/pc/chainloader.c (grub_chainloader_cmd): likewise
796
797 2009-06-10 Pavel Roskin <proski@gnu.org>
798
799 * io/gzio.c (test_header): Don't reuse one buffer for all data.
800 Use separate variables. Read only the file size at the end, but
801 not the checksum that we don't use.
802
803 * kern/file.c (grub_file_read): Use void pointer for the buffer.
804 Adjust all callers.
805
806 * kern/ieee1275/openfw.c: Remove libc includes.
807 * kern/ieee1275/cmain.c: Likewise.
808 * include/grub/ieee1275/ieee1275.h: Likewise.
809
810 * kern/i386/coreboot/init.c: Include grub/cpu/tsc.h to fix
811 compiler warnings.
812
813 2009-06-10 Felix Zielcke <fzielcke@z-51.de>
814
815 * gendistlist.sh (EXTRA_DISTFILES): Add `genhandlerlist.sh' and
816 `genparttoollist.sh'.
817 (DISTDIRS): Add `efiemu', `mmap', `parttool' and `script'.
818 Add `*.sh' to the list find searches for and change `mdate.sh'
819 to `mdate-sh'.
820
821 2009-06-10 Pavel Roskin <proski@gnu.org>
822
823 * include/grub/multiboot2.h: Provide compatibility defines for
824 multiboot2.h.
825 * include/multiboot2.h: Include stdint.h only if needed, using
826 angle brackets.
827 * loader/i386/pc/multiboot2.c: Include multiboot2.h after
828 grub/multiboot2.h.
829 * loader/ieee1275/multiboot2.c: Likewise.
830 * loader/multiboot2.c: Likewise.
831 * loader/multiboot_loader.c: Likewise.
832
833 * configure.ac: Use -nostdlib when probing for the target. It
834 should not be required to have libc for the target.
835
836 * configure.ac: Remove checks for __bswapsi2 and __bswapdi2,
837 they fail without libc headers for the target.
838 * include/grub/powerpc/libgcc.h: Use weak attribute for all
839 exports.
840 * include/grub/sparc64/libgcc.h: Likewise. Don't use
841 preprocessor conditionals.
842
843 * conf/common.rmk: Compile tar.mod from tar.c, not cpio.c. The
844 build system doesn't need to be aware of the tar.c internals.
845
846 2009-06-09 Michel Hermier <michel.hermier@gmail.com>
847
848 * fs/i386/pc/pxe.c (grub_pxefs_read): Fix returned values.
849
850 2009-06-09 Robert Millan <rmh.grub@aybabtu.com>
851
852 * util/deviceiter.c (grub_util_iterate_devices): Increase number of
853 disk limit to 26 for IDE, Virtio, Xen and SCSI.
854
855 2009-06-09 Felix Zielcke <fzielcke@z-51.de>
856
857 * util/i386/pc/grub-install.in: Change the error message if UUIDs
858 aren't available if ata.mod gets used.
859
860 2009-06-09 Oliver Henshaw <oliver.henshaw@gmail.com>
861
862 * bus/usb/ohci.c (grub_ohci_pci_iter): Link struct only after
863 initialising controller.
864 * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
865
866 2009-06-08 Felix Zielcke <fzielcke@z-51.de>
867
868 * util/i386/pc/grub-install.in: Add a parameter --disk-module
869 to choose between ata and biosdisk module on i386-pc.
870
871 2009-06-08 Oliver Henshaw <oliver.henshaw@gmail.com>
872
873 * bus/usb/ohci.c (grub_ohci_pci_iter): Define the Class,
874 Subclass and Programming Interface fields in terms of the 3 byte
875 Class Code register.
876 * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
877
878 * bus/usb/ohci.c (grub_ohci_pci_iter): Check that programming
879 interface is OHCI. Add grub_dprintf for symmetry with
880 bus/usb/uhci.c.
881 * bus/usb/uhci.c (grub_uhci_pci_iter): Check that programming
882 interface is UHCI. Add interf variable for programming
883 interface. Print interface with class/subclass.
884
885 * bus/usb/ohci.c: Set interf with correct field.
886
887 * bus/usb/uhci.c: Remove unneeded doubled lines.
888 * bus/usb/ohci.c: Likewise. Change interf to grub_uint32_t.
889 Remove whitespace inside comment.
890
891 2009-06-08 Robert Millan <rmh.grub@aybabtu.com>
892
893 * loader/i386/linux.c (grub_cmd_linux): When processing `vga=', use
894 as fallback an equivalent option without depth.
895
896 2009-06-08 Vladimir Serbinenko <phcoder@gmail.com>
897
898 Not fail if unable to retrieve C/H/S on LBA disks
899
900 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): behave gracefully
901 if unable to retrieve C/H/S on LBA disks
902
903 2009-06-08 Pavel Roskin <proski@gnu.org>
904
905 * fs/hfs.c (grub_hfs_find_dir): Use union to avoid a warning
906 about aliasing.
907
908 2009-06-08 Felix Zielcke <fzielcke@z-51.de>
909
910 * Makefile.in (uninstall): Remove all $lib_DATA files.
911
912 2009-06-08 Vladimir Serbinenko <phcoder@gmail.com>
913
914 Bugfix: install on partitionless device
915
916 * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): check if os_dev
917 is a whole disk
918
919 2009-06-08 Felix Zielcke <fzielcke@z-51.de>
920
921 * Makefile.in (uninstall): Remove all $include_DATA files.
922
923 2009-06-08 Felix Zielcke <fzielcke@z-51.de>
924
925 * commands/true.c: New file. Implement the true and false commands.
926 * conf/common.rmk.c (pkglib_MODULES): Add `true.mod'.
927 (true_mod_SOURCES): New variable.
928 (true_mod_CFLAGS): Likewise.
929 (true_mod_LDFLAGS): Likewise.
930
931 2009-06-05 Colin D Bennett <colin@gibibit.com>
932
933 Optimized font character lookup using binary search instead of linear
934 search. Fonts now are required to have the character index ordered by
935 code point.
936
937 * font/font.c (load_font_index): Verify that fonts have ordered
938 character indices.
939 (find_glyph): Use binary search instead of linear search to find a
940 character in a font.
941
942 2009-06-05 Michael Scherer <misc@mandriva.org>
943
944 * fs/hfsplus.c (grub_hfsplus_mount): Determine if the filesystem
945 uses case sensitive btree.
946 (grub_hfsplus_iterate_dir): Use GRUB_FSHELP_CASE_INSENSITIVE
947 only for case insensitive filesystems.
948
949 2009-06-05 Vladimir Serbinenko <phcoder@gmail.com>
950
951 * conf/i386-pc.rmk (efiemu_mod_CFLAGS): remove -Werror -Wall
952 * conf/common.rmk (search_mod_CFLAGS): likewise
953
954 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
955
956 * kern/i386/pc/startup.S [APPLE_CC]: block of nops to
957 compensate a compiler bug
958
959 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
960
961 * include/grub/term.h (GRUB_TERM_BACKSPACE): explicitly define as 8
962 instead of '\b'
963
964 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
965
966 Definitions for creating asm symbols with Apple's CC
967
968 * include/grub/symbol.h [APPLE_CC] (FUNCTION): new macro
969 [APPLE_CC] (VARIABLE): likewise
970
971 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
972
973 Disable lnxboot.img when compiled
974 with Apple's CC
975
976 * conf/i386-pc.rmk (pkglib_IMAGES): remove lnxboot.img
977 pkglib_IMAGES [! TARGET_APPLE_CC] (pkglib_IMAGES): add lnxboot.img
978 * boot/i386/pc/lnxboot.S [APPLE_CC]: define an #error
979 [! APPLE_CC] (CODE_LENG): skip
980 [! APPLE_CC] (setup_sects): likewise
981 [! APPLE_CC]: skip filling
982
983 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
984
985 Address in trampolines based on 32-bit registers when compiled
986 with Apple's CC
987
988 * loader/i386/xnu_helper.S [APPLE_CC]: use 32-bit registers
989 for addresses
990 * loader/i386/linux_trampoline.S [APPLE_CC]: likewise
991
992 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
993
994 Avoid aliases when compiling with Apple's CC for PCBIOS machine
995
996 * kern/misc.c [APPLE_CC] (memcpy): new function
997 [APPLE_CC] (memmove): likewise
998 [APPLE_CC && !GRUB_UTIL] (grub_err_printf): likewise
999 (memcpy): define alias conditionally on !APPLE_CC
1000 (memset): likewise
1001 (abort): likewise
1002 * include/grub/misc.h (memove): don't define when both GRUB_UTIL and
1003 APPLE_CC are defined
1004 * include/grub/list.h [APPLE_CC] (grub_assert_fail): new function
1005 (grub_assert_fail): make prototype conditional
1006
1007 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
1008
1009 Use grub-macho2img when compiling with Apple's CC for PCBIOS machine
1010
1011 * conf/common.rmk (bin_UTILITIES): add (on false on condition)
1012 grub-macho2img
1013 (CLEANFILES): add grub-macho2img
1014 (grub_macho2img_SOURCES): new variable
1015 * kern/i386/pc/startup.S (bss_start): new variable
1016 (bss_end): likewise
1017 * genmk.rb: use grub-macho2img for *.img when compiled with Apple's CC
1018 * util/grub-macho2img.c: new file
1019
1020 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
1021
1022 Use objconv when compiling with Apple's CC
1023
1024 * conf/i386-pc.rmk (efiemu32.o): use OBJCONV if defined
1025 (efiemu64.o): likewise
1026 (efiemu64_c.o): omit -mcmodel=large and add -DAPPLE_CC=1
1027 when compiling with Apple's CC
1028 (efiemu64_s.o): likewise
1029 * configure.ac: check for objconv when compiling with Apple's CC
1030 * genmk.rb: use objconv for modules when compiled with Apple's CC
1031
1032 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
1033
1034 Define segment as well as section when compiling with
1035 Apple's CC
1036
1037 * efiemu/runtime/efiemu.c (PHYSICAL_ATTRIBUTE): new definition
1038 (efiemu_set_virtual_address_map): declare with PHYSICAL_ATTRIBUTE
1039 (efiemu_convert_pointer): likewise
1040 (efiemu_set_virtual_address_map): likewise
1041 (efiemu_convert_pointer): likewise
1042 (efiemu_getcrc32): likewise
1043 (init_crc32_table): likewise
1044 (reflect): likewise
1045 * include/grub/dl.h (GRUB_MOD_NAME): define segment with Apple's CC
1046 (GRUB_MOD_DEP): likewise
1047
1048 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
1049
1050 Allow a compilation without -mcmodel=large
1051
1052 * kern/efi/mm.c (grub_efi_allocate_pages): don't allocate >4GiB
1053 when compiled without -mcmodel=large
1054 (filter_memory_map): remove memory post 4 GiB when compiled
1055 without -mcmodel=large
1056 * configure.ac: fail gracefully and add -DMCMODEL_SMALL=1 to
1057 TARGET_CFLAGS when -mcmodel=large isn't supported
1058
1059 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
1060
1061 Remove nested functions in efiemu core
1062
1063 * efiemu/runtime/efiemu.c (reflect): make static instead of nested
1064
1065 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
1066
1067 Avoid clobbering %ebx/%rbx in inline assembly with Apple's CC
1068
1069 * efiemu/runtime/efiemu.c (write_cmos): use %cl instead of %bl as
1070 temporary storage
1071 * include/grub/i386/tsc.h (grub_get_tsc): restore %rbx/%ebx when
1072 using Apple's CC
1073 (grub_cpu_is_tsc_supported): likewise
1074 * loader/i386/xnu.c (guessfsb): restore %rbx/%ebx in inline assembly
1075
1076 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
1077
1078 Absolute addressing through constant with Apple's cc
1079
1080 * kern/i386/pc/startup.S: Define necessary constants
1081 and address through it when using ABS with Apple's CC
1082 * boot/i386/pc/diskboot.S: likewise
1083 * boot/i386/pc/boot.S: likewise
1084 * boot/i386/pc/lnxboot.S: likewise
1085 * boot/i386/pc/cdboot.S: likewise
1086 * mmap/i386/pc/mmap_helper.S: likewise
1087 * commands/i386/pc/drivemap_int13h.S: likewise
1088
1089 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
1090
1091 Check if compiler is apple cc
1092
1093 * Makefile.in (ASFLAGS): new variable
1094 (TARGET_ASFLAGS): likewise
1095 (TARGET_MODULE_FORMAT): likewise
1096 (TARGET_APPLE_CC): likewise
1097 (OBJCONV): likewise
1098 (TARGET_IMG_CFLAGS): likewise
1099 (TARGET_CPPFLAGS): add includedir
1100 * configure.ac: call grub_apple_cc and grub_apple_target_cc
1101 (TARGET_IMG_LDFLAGS): Add -Wl,-Ttext,. All users updated
1102 Check for linker script only if compiler isn't Apple's CC
1103 (TARGET_MODULE_FORMAT): set
1104 (TARGET_APPLE_CC): likewise
1105 (TARGET_ASFLAGS): likewise
1106 (ASFLAGS): likewise
1107 Check for objcopy only if compiler isn't Apple's CC
1108 Check for BSS symbol only if compiler isn't Apple's CC
1109 * genmk.rb: adapt nm options if we use Apple's utils
1110 * aclocal.m4 (grub_apple_cc): new test
1111 (grub_apple_target_cc): likewise
1112
1113 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
1114
1115 Simplify sed expressions and improve awk
1116
1117 * Makefile.in (install-local): simplify sed expression
1118 * gencmdlist.sh: likewise
1119 * genmoddep.awk: avoid adding module as a dependency of itself
1120
1121 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
1122
1123 Add missing start symbols
1124
1125 * boot/i386/pc/boot.S: add start
1126 * boot/i386/pc/pxeboot.S: likewise
1127
1128 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
1129
1130 Fix wrong assumptions with grub-mkimage on EFI
1131
1132 * i386/efi/grub-mkimage.c (read_kernel_module): don't write prefix here
1133 (relocate_addresses): consider both r_addend and value at offset
1134 (make_mods_section): zerofill modinfo and header
1135 (convert_elf): write prefix here
1136
1137 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
1138
1139 Use .asciz instead of .string
1140
1141 * i386/pc/diskboot.S: use .asciz instead of .string
1142 * i386/pc/boot.S: likewise
1143 * include/grub/dl.h (GRUB_MOD_DEP): likewise
1144 (GRUB_MOD_NAME): likewise
1145
1146 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
1147
1148 gfxpayload support
1149
1150 * commands/videotest.c (grub_cmd_videotest): use grub_video_set_mode
1151 * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_PURE_TEXT): new definition
1152 (grub_video_setup): remove
1153 (grub_video_set_mode): new prototype
1154 * loader/i386/linux.c (DEFAULT_VIDEO_MODE): new definition
1155 (vid_mode): remove
1156 (linux_vesafb_res): compile only on PCBIOS
1157 (grub_linux_boot): support gfxpayload
1158 * loader/i386/pc/xnu.c (video_hook): new function
1159 (grub_xnu_set_video): support gfxpayload
1160 * term/gfxterm.c (DEFAULT_VIDEO_WIDTH): removed
1161 (DEFAULT_VIDEO_HEIGHT): likewise
1162 (DEFAULT_VIDEO_FLAGS): likewise
1163 (DEFAULT_VIDEO_MODE): new definition
1164 (video_hook): new function
1165 (grub_gfxterm_init): use grub_video_set_mode
1166 * util/grub.d/30_os-prober.in: remove explicit modesetting before
1167 loading xnu
1168 * video/video.c (grub_video_setup): removed
1169 (grub_video_set_mode): new function based on grub_gfxterm_init and
1170 grub_video_setup
1171
1172 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
1173
1174 Avoid calling biosdisk in drivemap
1175
1176 * commands/i386/pc/drivemap.c (parse_biosdisk): remove
1177 (revparse_biosdisk): likewise
1178 (list_mappings): derive name from id directly
1179 (grub_cmd_drivemap): use tryparse_diskstring
1180
1181 2009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
1182
1183 Script fixes
1184
1185 * include/grub/script_sh.h (grub_script_cmdline): remove cmdline
1186 (grub_lexer_param): add tokenonhold
1187 (grub_script_create_cmdline): remove cmdline. All callers updated
1188 (grub_script_function_create): make functionname
1189 grub_script_arg. All callers updated
1190 (grub_script_execute_argument_to_string): new prototype
1191 * kern/parser.c (state_transitions): reorder
1192 (grub_parser_cmdline_state): fix a bug and make more compact
1193 * script/sh/execute.c (grub_script_execute_argument_to_string):
1194 make global
1195 (grub_script_execute_cmdline): use new format
1196 * script/sh/function.c (grub_script_function_create): make functionname
1197 grub_script_arg. All callers updated
1198 * script/sh/lexer.c (grub_script_lexer_init): initialize tokenonhold
1199 (grub_script_yylex): remove
1200 (grub_script_yylex2): renamed to ...
1201 (grub_script_yylex): ...renamed
1202 parse the expressions like a${b}c
1203 * script/sh/parser.y (GRUB_PARSER_TOKEN_ARG): new typed terminal
1204 (GRUB_PARSER_TOKEN_VAR): remove
1205 (GRUB_PARSER_TOKEN_NAME): likewise
1206 ("if"): declare as typeless
1207 ("while"): likewise
1208 ("function"): likewise
1209 ("else"): likewise
1210 ("then"): likewise
1211 ("fi"): likewise
1212 (text): remove
1213 (argument): likewise
1214 (script): accept empty scripts and make exit on error
1215 (arguments): use GRUB_PARSER_TOKEN_ARG
1216 (function): likewise
1217 (command): move error handling to script
1218 (menuentry): move grub_script_lexer_ref before
1219 * script/sh/script.c (grub_script_create_cmdline): remove cmdline
1220 argument. All callers updated
1221
1222 2009-06-04 Robert Millan <rmh.grub@aybabtu.com>
1223
1224 Prevent GRUB from probing floppies during boot.
1225
1226 * conf/common.rmk (search_mod_CFLAGS): Use `-Werror -Wall'.
1227 * commands/search.c (options): Add --no-floppy.
1228 (search_fs, search_file, grub_cmd_search): Support --no-floppy.
1229 * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Use
1230 --no-floppy when searching for UUIDs.
1231
1232 2009-06-04 Robert Millan <rmh.grub@aybabtu.com>
1233
1234 Simplify the code duplication in commands/search.c.
1235
1236 * commands/search.c (search_label, search_fs_uuid): Merge into ...
1237 (search_fs): ... this. Update all users.
1238
1239 2009-06-03 Felix Zielcke <fzielcke@z-51.de>
1240
1241 * util/grub-mkconfig.in (update_grub_dir): Rename to grub_mkconfig_dir.
1242
1243 2009-05-28 Pavel Roskin <proski@gnu.org>
1244
1245 * Makefile.in: Don't use "cp -d", it doesn't work on FreeBSD.
1246 Remove the original symlink explicitly.
1247
1248 * fs/hfs.c (grub_hfs_find_dir): Skip sequences of slashes, not
1249 just one slash. That's how grub_fshelp_find_file() does it.
1250
1251 2009-05-26 Pavel Roskin <proski@gnu.org>
1252
1253 * genmk.rb: Avoid shadowing variable `s', rename the outer `s'
1254 to `str'.
1255
1256 * util/getroot.c (grub_util_get_dev_abstraction): Mark os_dev as
1257 possibly unused.
1258
1259 2009-05-25 Christian Franke <franke@computer.org>
1260
1261 * disk/ata.c (grub_ata_wait_not_busy): Add debug output of status
1262 register.
1263 (grub_atapi_identify): Add wait after drive select.
1264 (grub_ata_identify): Do more strict status register check before
1265 calling grub_atapi_identify (). Suppress error message if status
1266 register is 0x00 after command failure. Add status register
1267 check after PIO read to avoid bogus identify due to stuck DRQ.
1268 Thanks to Pavel Roskin for testing.
1269 (grub_device_initialize): Remove unsafe status register check.
1270 Thanks to 'phcoder' for problem report and patch.
1271 Prevent sign extension in debug message.
1272
1273 2009-05-23 Colin D Bennett <colin@gibibit.com>
1274
1275 Cleaned up `include/grub/normal.h'. Grouped prototypes by
1276 definition file, and functions defined in `normal/menu.c' have had
1277 their prototypes moved to `include/grub/menu.h' for consistency.
1278
1279 * include/grub/menu.h (grub_menu_execute_callback): Added; moved
1280 from normal.h.
1281 (grub_menu_get_entry): Likewise.
1282 (grub_menu_get_timeout): Likewise.
1283 (grub_menu_set_timeout): Likewise.
1284 (grub_menu_execute_entry): Likewise.
1285 (grub_menu_execute_with_fallback): Likewise.
1286 (grub_menu_entry_run): Likewise.
1287
1288 * include/grub/normal.h: Re-ordered and grouped function
1289 prototypes by file that the function is defined in.
1290 (grub_menu_execute_callback): Removed; moved to menu.h.
1291 (grub_menu_get_entry): Likewise.
1292 (grub_menu_get_timeout): Likewise.
1293 (grub_menu_set_timeout): Likewise.
1294 (grub_menu_execute_entry): Likewise.
1295 (grub_menu_execute_with_fallback): Likewise.
1296 (grub_menu_entry_run): Likewise.
1297 (grub_menu_addentry): Renamed from this ...
1298 (grub_normal_add_menu_entry): ... to this.
1299
1300 * normal/main.c (grub_menu_addentry): Renamed from this ...
1301 (grub_normal_add_menu_entry): ... to this.
1302
1303 * script/sh/execute.c (grub_script_execute_menuentry): Update
1304 reference to renamed grub_menu_addentry function.
1305
1306 2009-05-23 Felix Zielcke <fzielcke@z-51.de>
1307
1308 * commands/i386/pc/drivemap.c (MODNAME): Remove. Update all users.
1309
1310 2009-05-22 Pavel Roskin <proski@gnu.org>
1311
1312 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Remove.
1313 * configure.ac: Don't call grub_I386_CHECK_REGPARM_BUG. Define
1314 NESTED_FUNC_ATTR using AH_BOTTOM. Use regparm(1) only when
1315 compiling for the i386 targets, but not for the utilities.
1316
1317 * include/grub/i386/pc/kernel.h (grub_boot_drive): Change type
1318 to grub_uint8_t.
1319 (grub_root_drive): Likewise.
1320 * kern/i386/pc/startup.S (grub_boot_drive): Change size to byte,
1321 remove alignment.
1322 (grub_root_drive): Change size to byte.
1323 (grub_start_addr): Remove.
1324 (grub_end_addr): Likewise.
1325 (grub_apm_bios_info): Likewise.
1326
1327 2009-05-21 Felix Zielcke <fzielcke@z-51.de>
1328
1329 * normal/i386: Remove.
1330 * normal/powerpc: Likewise.
1331 * normal/sparc64: Likewise.
1332 * normal/x86_64: Likewise.
1333
1334 2009-05-19 Vladimir Serbinenko <phcoder@gmail.com>
1335
1336 * conf/x86_64-efi.rmk (linux_mod_ASFLAGS): Add missing variable
1337 * loader/i386/linux_trampoline.S: Fix indentation
1338 * loader/i386/xnu_helper.S: Likewise
1339
1340 2009-05-18 Colin D Bennett <colin@gibibit.com>
1341
1342 Display error messages when parsing a Lua statement fails.
1343 Previously, executing a syntactically invalid statement like
1344 ")foo" or "bar;" would silently fail.
1345
1346 * script/lua/grub_main.c (handle_lua_error): New function.
1347 (grub_lua_parse_line): Improved reporting of Lua parser and
1348 execution errors.
1349
1350 2009-05-17 Vladimir Serbinenko <phcoder@gmail.com>
1351
1352 Remove -Werror which causes build to fail on some systems
1353
1354 * conf/i386-pc.rmk (xnu_mod_CFLAGS): Remove -Werror -Wall
1355 * conf/i386-efi.rmk (xnu_mod_CFLAGS): Likewise
1356 * conf/x86_64-efi.rmk (xnu_mod_CFLAGS): Likewise
1357
1358 2009-05-17 Vladimir Serbinenko <phcoder@gmail.com>
1359
1360 trampoline for linux on 64-bit platform
1361
1362 * conf/x86_64-efi.rmk (linux_mod_SOURCES): added
1363 loader/i386/efi/linux_trampoline.S
1364 * include/grub/x86_64/efi/loader.h (grub_linux_real_boot): removed
1365 declaration
1366 * kern/x86_64/efi/startup.S (grub_linux_real_boot): moved from
1367 here
1368 * loader/i386/linux_trampoline.S: moved here
1369 * loader/i386/efi/linux.c (allocate_pages): reserve space for
1370 trampoline
1371 (jumpvector): removed
1372 (grub_linux_trampoline_start): new declaration
1373 (grub_linux_trampoline_end): likewise
1374 (grub_linux_boot): use trampoline when on 64-bit platform
1375 * loader/i386/linux.c: likewise
1376
1377 2009-05-16 Pavel Roskin <proski@gnu.org>
1378
1379 * script/lua/grub_lib.c (grub_lua_getenv): Make name and value
1380 const to avoid a warning.
1381 (grub_lua_setenv): Likewise.
1382 * script/lua/grub_main.c (grub_lua_parse_line): Use size_t for
1383 lmsg to fix a warning.
1384
1385 2009-05-16 Felix Zielcke <fzielcke@z-51.de>
1386
1387 * conf/i386.rmk (setjmp_mod_CFLAGS): Rename to ...
1388 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
1389 * conf/x86_64-efi.rmk (setjmp_mod_CFLAGS): Rename to ...
1390 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
1391 * conf/powerpc-ieee1275.rmk (setjmp_mod_CFLAGS): Rename to ...
1392 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
1393 * conf/sparc64-ieee1275.rmk (setjmp_mod_CFLAGS): Rename to ...
1394 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
1395
1396 2009-05-16 Felix Zielcke <fzielcke@z-51.de>
1397
1398 * util/grub-mkconfig.in: Export GRUB_TERMINAL_INPUT.
1399
1400 2009-05-16 Bean <bean123ch@gmail.com>
1401
1402 * conf/common.rmk (pkglib_MODULES): Add lua.mod.
1403 (lua_mod_SOURCES): New variable.
1404 (lua_mod_CFLAGS): Likewise.
1405 (lua_mod_LDFLAGS): Likewise.
1406
1407 * conf/i386.rmk (pkglib_MODULES): Add setjmp.mod.
1408 (setjmp_mod_SOURCES): New variable.
1409 (setjmp_mod_CFLAGS): Likewise.
1410 (setjmp_LDFLAGS): Likewise.
1411
1412 * conf/x86_64-efi.rmk (pkglib_MODULES): Add setjmp.mod.
1413 (setjmp_mod_SOURCES): New variable.
1414 (setjmp_mod_CFLAGS): Likewise.
1415 (setjmp_LDFLAGS): Likewise.
1416
1417 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add setjmp.mod.
1418 (setjmp_mod_SOURCES): New variable.
1419 (setjmp_mod_CFLAGS): Likewise.
1420 (setjmp_LDFLAGS): Likewise.
1421
1422 * conf/sparc64-ieee1275.rmk (pkglib_MODULES): Add setjmp.mod.
1423 (setjmp_mod_SOURCES): New variable.
1424 (setjmp_mod_CFLAGS): Likewise.
1425 (setjmp_LDFLAGS): Likewise.
1426
1427 * normal/i386/setjmp.S: Moved from here ...
1428 * lib/i386/setjmp.S: ... Moved here
1429 * normal/x86_64/setjmp.S: Moved from here ...
1430 * lib/x86_64/setjmp.S: ... Moved here
1431 * normal/powerpc/setjmp.S: Moved from here ...
1432 * lib/powerpc/setjmp.S: ... Moved here
1433 * normal/sparc64/setjmp.S: Moved from here ...
1434 * lib/sparc64/setjmp.S: ... Moved here
1435
1436 * include/grub/i386/setjmp.h (grub_setjmp): Don't use attribute
1437 returns_twice in mingw.
1438
1439 * script/lua/grub_lib.c: New file.
1440 * script/lua/grub_lib.h: Likewise.
1441 * script/lua/grub_lua.h: Likewise.
1442 * script/lua/grub_main.c: Likewise.
1443 * script/lua/lapi.c: Likewise.
1444 * script/lua/lapi.h: Likewise.
1445 * script/lua/lauxlib.c: Likewise.
1446 * script/lua/lauxlib.h: Likewise.
1447 * script/lua/lbaselib.c: Likewise.
1448 * script/lua/lcode.c: Likewise.
1449 * script/lua/lcode.h: Likewise.
1450 * script/lua/ldblib.c: Likewise.
1451 * script/lua/ldebug.c: Likewise.
1452 * script/lua/ldebug.h: Likewise.
1453 * script/lua/ldo.c: Likewise.
1454 * script/lua/ldo.h: Likewise.
1455 * script/lua/ldump.c: Likewise.
1456 * script/lua/lfunc.c: Likewise.
1457 * script/lua/lfunc.h: Likewise.
1458 * script/lua/lgc.c: Likewise.
1459 * script/lua/lgc.h: Likewise.
1460 * script/lua/linit.c: Likewise.
1461 * script/lua/liolib.c: Likewise.
1462 * script/lua/llex.c: Likewise.
1463 * script/lua/llex.h: Likewise.
1464 * script/lua/llimits.h: Likewise.
1465 * script/lua/lmathlib.c: Likewise.
1466 * script/lua/lmem.c: Likewise.
1467 * script/lua/lmem.h: Likewise.
1468 * script/lua/loadlib.c: Likewise.
1469 * script/lua/lobject.c: Likewise.
1470 * script/lua/lobject.h: Likewise.
1471 * script/lua/lopcodes.c: Likewise.
1472 * script/lua/lopcodes.h: Likewise.
1473 * script/lua/loslib.c: Likewise.
1474 * script/lua/lparser.c: Likewise.
1475 * script/lua/lparser.h: Likewise.
1476 * script/lua/lstate.c: Likewise.
1477 * script/lua/lstate.h: Likewise.
1478 * script/lua/lstring.c: Likewise.
1479 * script/lua/lstring.h: Likewise.
1480 * script/lua/lstrlib.c: Likewise.
1481 * script/lua/ltable.c: Likewise.
1482 * script/lua/ltable.h: Likewise.
1483 * script/lua/ltablib.c: Likewise.
1484 * script/lua/ltm.c: Likewise.
1485 * script/lua/ltm.h: Likewise.
1486 * script/lua/lua.h: Likewise.
1487 * script/lua/luaconf.h: Likewise.
1488 * script/lua/lualib.h: Likewise.
1489 * script/lua/lundump.c: Likewise.
1490 * script/lua/lundump.h: Likewise.
1491 * script/lua/lvm.c: Likewise.
1492 * script/lua/lvm.h: Likewise.
1493 * script/lua/lzio.c: Likewise.
1494 * script/lua/lzio.h: Likewise.
1495
1496 2009-05-16 Bean <bean123ch@gmail.com>
1497
1498 * include/grub/kernel.h (grub_module_header_types): Add type
1499 OBJ_TYPE_CONFIG.
1500
1501 * kern/main.c (grub_load_config): New function.
1502 (grub_main): Call grub_load_config to read boot config.
1503
1504 * grub-mkimage (generate_image): New parameter config_path.
1505 (options): New option --config.
1506 (main): Parse --config option, and pass it to generate_image.
1507
1508 2009-05-14 Christian Franke <franke@computer.org>
1509
1510 * commands/i386/pc/drivemap_int13h.S: Add missing EXT_C for symbols.
1511 This fixes build on Cygwin.
1512
1513 2009-05-14 Pavel Roskin <proski@gnu.org>
1514
1515 * commands/i386/pc/drivemap_int13h.S: Eliminate unconditional
1516 jump. This saves two bytes, so the typical case of 2 swapped
1517 drives would fit 32 bytes.
1518
1519 2009-05-13 Pavel Roskin <proski@gnu.org>
1520
1521 * loader/i386/multiboot.c (grub_multiboot): Cast mmap_addr to
1522 grub_uint32_t to avoid a warning.
1523
1524 * loader/i386/linux.c (allocate_pages): When assigning
1525 real_mode_mem, cast through grub_size_t to fix a warning. The
1526 code already makes sure that the value would fit a pointer.
1527 (grub_linux_setup_video): Cast render_target->data to
1528 grub_size_t to fix a warning.
1529
1530 2009-05-13 Javier Martín <lordhabbit@gmail.com>
1531
1532 * commands/i386/pc/drivemap.c: New file - implement drivemap
1533 command.
1534 * commands/i386/pc/drivemap_int13h.S: New file - int13 handler.
1535 * conf/i386-pc.rmk: Add drivemap.c and drivemap_int13h.S.
1536
1537 2009-05-13 Pavel Roskin <proski@gnu.org>
1538
1539 * util/i386/pc/grub-setup.c (setup): Remove unused variable
1540 embedding_area_exists.
1541
1542 2009-05-13 Robert Millan <rmh.grub@aybabtu.com>
1543
1544 * util/i386/pc/grub-setup.c (setup): Restructure code flow to make
1545 it easier to understand / work with.
1546 Improve warning messages for cases where there's no embedding area,
1547 or when it is too small (or core.img too large).
1548
1549 2009-05-13 Pavel Roskin <proski@gnu.org>
1550
1551 * loader/i386/pc/multiboot2.c: Add necessary includes for
1552 grub_multiboot2_real_boot().
1553
1554 * fs/iso9660.c (grub_iso9660_iterate_dir): The file mode in the
1555 PX record is always little-endian. We only need the lower 2
1556 bytes of the mode.
1557
1558 * fs/cpio.c: Use the same name "struct head" for tar and cpio to
1559 facilitate code reuse.
1560 (grub_cpio_mount): Use "struct head", not a char buffer. This
1561 fixes a warning reported by gcc 4.4.
1562
1563 * kernel/disk.c (grub_disk_read): Use void pointer for the
1564 buffer.
1565 (grub_disk_write): Use const void pointer for the buffer.
1566 Adjust all callers. Remove unnecessary casts.
1567
1568 2009-05-10 Robert Millan <rmh.grub@aybabtu.com>
1569
1570 * util/i386/pc/grub-install.in: Update copyright year.
1571
1572 2009-05-09 Vladimir Serbinenko <phcoder@gmail.com>
1573
1574 gptsync
1575
1576 * commands/gptsync.c: new file
1577 * conf/common.rmk (pkglib_MODULES): add gptsync.mod
1578 (gptsync_mod_SOURCES): new variable
1579 (gptsync_mod_CFLAGS): likewise
1580 (gptsync_mod_LDFLAGS): likewise
1581 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_NTFS):
1582 new definition
1583 (GRUB_PC_PARTITION_TYPE_HFS): likewise
1584 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/gptsync.c
1585 * conf/i386-ieee1275.rmk: likewise
1586 * conf/i386-pc.rmk: likewise
1587 * conf/powerpc-ieee1275.rmk: likewise
1588
1589 2009-05-09 Vladimir Serbinenko <phcoder@gmail.com>
1590
1591 Fixed grub-emu
1592
1593 * kern/dl.c (grub_dl_ref): omit when compiling grub-emu
1594 (grub_dl_ref): likewise
1595
1596 2009-05-08 Robert Millan <rmh.grub@aybabtu.com>
1597
1598 * util/i386/pc/grub-setup.c (setup): Factorize find_usable_region(),
1599 split in two functions (one for msdos and one for gpt).
1600
1601 2009-05-08 Pavel Roskin <proski@gnu.org>
1602
1603 * disk/raid.c (grub_raid_block_xor): Make buf2 constant, it's
1604 not modified.
1605
1606 * disk/raid6_recover.c (grub_raid6_recover): Fix warnings about
1607 uninitialized err[0] and err[1]. Rename them to bad1 and bad2.
1608 Initialize them with -1. Add sanity check for bad1. Eliminate
1609 nerr variable.
1610
1611 2009-05-08 David S. Miller <davem@davemloft.net>
1612
1613 * util/sparc64/ieee1275/grub-ofpathname.c (main): Set progname.
1614
1615 2009-05-06 Robert Millan <rmh.grub@aybabtu.com>
1616
1617 * util/i386/pc/grub-setup.c (setup): Fix check for embed region
1618 existence.
1619
1620 2009-05-05 Felix Zielcke <fzielcke@z-51.de>
1621
1622 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
1623 `kern/rescue_reader.c', `kern/rescue_parser.c' and `normal/autofs.c'.
1624
1625 2009-05-05 David S. Miller <davem@davemloft.net>
1626
1627 * util/sparc64/ieee1275/grub-install.in: Fix sed arg quoting.
1628
1629 2009-05-05 Pavel Roskin <proski@gnu.org>
1630
1631 * include/grub/dl.h [GRUB_UTIL]: Provide inline implementations
1632 of grub_dl_ref() and grub_dl_unref().
1633 * commands/parttool.c: Remove preprocessor conditionals around
1634 grub_dl_ref() and grub_dl_unref().
1635 * fs/affs.c: Likewise.
1636 * fs/afs.c: Likewise.
1637 * fs/cpio.c: Likewise.
1638 * fs/ext2.c: Likewise.
1639 * fs/fat.c: Likewise.
1640 * fs/hfs.c: Likewise.
1641 * fs/hfsplus.c: Likewise.
1642 * fs/iso9660.c: Likewise.
1643 * fs/jfs.c: Likewise.
1644 * fs/minix.c: Likewise.
1645 * fs/ntfs.c: Likewise.
1646 * fs/reiserfs.c: Likewise.
1647 * fs/sfs.c: Likewise.
1648 * fs/udf.c: Likewise.
1649 * fs/ufs.c: Likewise.
1650 * fs/xfs.c: Likewise.
1651 * include/grub/dl.h: Likewise.
1652 * loader/xnu.c: Likewise.
1653
1654 2009-05-04 Pavel Roskin <proski@gnu.org>
1655
1656 * commands/acpi.c: Remove unused variable my_mod.
1657 * partmap/amiga.c: Likewise.
1658 * partmap/apple.c: Likewise.
1659 * partmap/gpt.c: Likewise.
1660 * partmap/pc.c: Likewise.
1661 * partmap/sun.c: Likewise.
1662 * term/gfxterm.c: Likewise.
1663 * term/i386/pc/vesafb.c: Likewise.
1664 * term/i386/pc/vga.c: Likewise.
1665
1666 2009-05-04 David S. Miller <davem@davemloft.net>
1667
1668 * kern/ieee1275/openfw.c (grub_children_iterate): Fix string
1669 pointer args to grub_ieee1275_get_property().
1670
1671 * conf/sparc64-ieee1275.rmk: Fix build due to missing '\'.
1672
1673 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Bypass cdrom
1674 devices, and do not traverse down under controller nodes.
1675
1676 * disk/ieee1275/ofdisk.c (compute_dev_path): New.
1677 (grub_ofdisk_open): Use it to un-escape "," characters.
1678 * kern/disk.c (find_part_sep): New.
1679 (grub_disk_open): Use it to find the first non-escaped ','
1680 character in the disk name.
1681 * util/ieee1275/devicemap.c (escape_of_path): New.
1682 (grub_util_emit_devicemap_entry): Use it.
1683 * util/sparc64/ieee1275/grub-install.in: Update script to
1684 strip partition specifiers properly by not triggering on
1685 '\' escaped ',' characters.
1686
1687 2009-05-04 Robert Millan <rmh.grub@aybabtu.com>
1688
1689 * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START): Set
1690 to 0x300.
1691 * loader/i386/linux.c (vga_modes, linux_vesafb_res): Add a few
1692 resolutions.
1693 (linux_vesafb_modes): Add a lot of additional modes to the list (based
1694 on documentation from Wikipedia).
1695
1696 2009-05-04 Pavel Roskin <proski@gnu.org>
1697
1698 * disk/ata.c: Spelling fixes.
1699 * disk/raid.c: Likewise.
1700 * disk/usbms.c: Likewise.
1701 * disk/dmraid_nvidia.c: Likewise.
1702 * kern/ieee1275/openfw.c: Likewise.
1703 * kern/ieee1275/init.c: Likewise.
1704 * kern/ieee1275/cmain.c: Likewise.
1705 * boot/i386/pc/cdboot.S: Likewise.
1706 * video/readers/png.c: Likewise.
1707 * video/i386/pc/vbe.c: Likewise.
1708 * fs/udf.c: Likewise.
1709 * fs/hfs.c: Likewise.
1710 * fs/reiserfs.c: Likewise.
1711 * efiemu/runtime/efiemu.c: Likewise.
1712 * efiemu/main.c: Likewise.
1713 * efiemu/mm.c: Likewise.
1714 * include/grub/elf.h: Likewise.
1715 * include/grub/xnu.h: Likewise.
1716 * include/grub/usbdesc.h: Likewise.
1717 * include/grub/usb.h: Likewise.
1718 * include/grub/script_sh.h: Likewise.
1719 * include/grub/lib/LzmaEnc.h: Likewise.
1720 * include/grub/efiemu/efiemu.h: Likewise.
1721 * include/grub/command.h: Likewise.
1722 * normal/menu.c: Likewise.
1723 * normal/main.c: Likewise.
1724 * normal/datetime.c: Likewise.
1725 * bus/usb/uhci.c: Likewise.
1726 * mmap/i386/uppermem.c: Likewise.
1727 * mmap/mmap.c: Likewise.
1728 * commands/acpi.c: Likewise.
1729 * commands/test.c: Likewise.
1730 * partmap/apple.c: Likewise.
1731 * font/font.c: Likewise.
1732 * loader/sparc64/ieee1275/linux.c: Likewise.
1733 * loader/macho.c: Likewise.
1734 * loader/i386/bsd_trampoline.S: Likewise.
1735 * loader/i386/bsd.c: Likewise.
1736 * loader/xnu.c: Likewise.
1737 * term/i386/pc/vesafb.c: Likewise.
1738 * term/usb_keyboard.c: Likewise.
1739 * util/resolve.c: Likewise.
1740 * util/getroot.c: Likewise.
1741
1742 2009-05-04 Felix Zielcke <fzielcke@z-51.de>
1743
1744 * conf/i386-pc.rmk (libpkg_DATA): Rename to pkglib_DATA.
1745
1746 2009-05-04 Robert Millan <rmh.grub@aybabtu.com>
1747
1748 * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (grub_cmd_linux): Fix
1749 build error.
1750
1751 2009-05-04 Robert Millan <rmh.grub@aybabtu.com>
1752
1753 * loader/i386/linux.c (grub_cmd_linux): Make "vga=" compatibility
1754 parameter only available on BIOS.
1755
1756 2009-05-04 Vladimir Serbinenko <phcoder@gmail.com>
1757
1758 Removed wrong semicolon in declaration
1759
1760 * grub/misc.h (grub_dprintf): remove semicolon
1761
1762 2009-05-04 Robert Millan <rmh.grub@aybabtu.com>
1763
1764 * loader/i386/linux.c (GRUB_ASSUME_LINUX_HAS_FB_SUPPORT): New macro.
1765 (grub_linux_boot): Don't check for `linux_vesafb_modes' bounds (this
1766 is done by grub_cmd_linux() now).
1767 [! GRUB_ASSUME_LINUX_HAS_FB_SUPPORT]: If "vga=" parameter wasn't set,
1768 restore video to text mode.
1769 (grub_cmd_linux): Default `vid_mode' initialization to 0, which
1770 indicates lack of "vga=" parameter. "vga=0" is mapped to
1771 `GRUB_LINUX_VID_MODE_NORMAL'.
1772
1773 2009-05-04 Felix Zielcke <fzielcke@z-51.de>
1774
1775 * conf/i386-efi.rmk (grub_emu_SOURCES): Remove `normal/execute.c',
1776 `normal/lexer.c', `kern/rescue.c', `normal/function.c', `normal/misc.c'
1777 and `normal/script.c'. Add `kern/rescue_reader.c',
1778 `kern/rescue_parser.c', `script/sh/main.c', `script/sh/execute.c',
1779 `script/sh/function.c', `script/sh/lexer.c', `script/sh/script.c' and
1780 `grub_script.tab.c'.
1781
1782 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1783 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1784 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1785 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
1786 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1787
1788 * Makefile.in: Remove duplicated 2008 in Copyright line.
1789
1790 2009-05-04 Robert Millan <rmh.grub@aybabtu.com>
1791
1792 * util/misc.c (grub_util_warn): New function. Emits a warning
1793 unconditionally.
1794 * include/grub/util/misc.h (grub_util_warn): New declaration.
1795
1796 * util/i386/pc/grub-install.in: Understand --force and pass it down
1797 to grub-setup.
1798
1799 * util/i386/pc/grub-setup.c (main): Understand --force and pass it
1800 down to setup().
1801 (setup): Improve error messages and add warnings when requested to
1802 install in odd layouts. Refuse to install using blocklists unless
1803 --force was set.
1804
1805 2009-05-04 martin f. krafft <madduck@madduck.net>
1806
1807 * disk/raid.c (grub_raid_scan_device): Improve debug message.
1808
1809 2009-05-04 Vladimir Serbinenko <phcoder@gmail.com>
1810
1811 Updated copyright year
1812
1813 * fs/hfsplus.c: updated copyright year
1814
1815 2009-05-04 Vladimir Serbinenko <phcoder@gmail.com>
1816
1817 HFS+ UUID
1818
1819 * fs/hfsplus.c (grub_hfsplus_volheader): added num_serial field
1820 in the space previously used by unused3
1821 (grub_hfsplus_uuid): new function
1822 (grub_hfsplus_fs): added uuid field
1823
1824 2009-05-03 Pavel Roskin <proski@gnu.org>
1825
1826 * disk/ata.c: Don't cast mod to void in GRUB_MOD_INIT to
1827 suppress warnings. It's no longer needed.
1828 * disk/host.c: Likewise.
1829 * disk/ata_pthru.c: Likewise.
1830 * disk/loopback.c: Likewise.
1831 * hook/datehook.c: Likewise.
1832 * parttool/pcpart.c: Likewise.
1833 * fs/i386/pc/pxe.c: Likewise.
1834 * fs/ntfscomp.c: Likewise.
1835 * efiemu/main.c: Likewise.
1836 * mmap/mmap.c: Likewise.
1837 * commands/crc.c: Likewise.
1838 * commands/hexdump.c: Likewise.
1839 * commands/hdparm.c: Likewise.
1840 * commands/acpi.c: Likewise.
1841 * commands/echo.c: Likewise.
1842 * commands/minicmd.c: Likewise.
1843 * commands/blocklist.c: Likewise.
1844 * commands/memrw.c: Likewise.
1845 * commands/loadenv.c: Likewise.
1846 * commands/usbtest.c: Likewise.
1847 * commands/lsmmap.c: Likewise.
1848 * commands/boot.c: Likewise.
1849 * commands/parttool.c: Likewise.
1850 * commands/configfile.c: Likewise.
1851 * commands/search.c: Likewise.
1852 * commands/ieee1275/suspend.c: Likewise.
1853 * commands/cat.c: Likewise.
1854 * commands/i386/pc/pxecmd.c: Likewise.
1855 * commands/i386/pc/play.c: Likewise.
1856 * commands/i386/pc/halt.c: Likewise.
1857 * commands/i386/pc/vbeinfo.c: Likewise.
1858 * commands/i386/pc/vbetest.c: Likewise.
1859 * commands/lspci.c: Likewise.
1860 * commands/date.c: Likewise.
1861 * commands/handler.c: Likewise.
1862 * commands/ls.c: Likewise.
1863 * commands/test.c: Likewise.
1864 * commands/cmp.c: Likewise.
1865 * commands/efi/loadbios.c: Likewise.
1866 * commands/efi/fixvideo.c: Likewise.
1867 * commands/halt.c: Likewise.
1868 * commands/help.c: Likewise.
1869 * commands/reboot.c: Likewise.
1870 * hello/hello.c: Likewise.
1871 * script/sh/main.c: Likewise.
1872 * loader/xnu.c: Likewise.
1873 * term/terminfo.c: Likewise.
1874 * term/i386/pc/serial.c: Likewise.
1875 * term/usb_keyboard.c: Likewise.
1876
1877 2009-05-03 David S. Miller <davem@davemloft.net>
1878
1879 * normal/menu.c: Include grub/parser.h
1880
1881 2009-05-03 Pavel Roskin <proski@gnu.org>
1882
1883 * mmap/efi/mmap.c (grub_mmap_malign_and_register): Return void*,
1884 not char*.
1885 * mmap/i386/mmap.c (grub_mmap_malign_and_register): Likewise.
1886 Suggested by Javier Martín <lordhabbit@gmail.com>
1887
1888 * util/i386/pc/grub-mkrescue.in: Allow for the case when
1889 efiemu??.o doesn't exist.
1890 * util/i386/pc/grub-install.in: Likewise. Use "cp -f" for
1891 copying.
1892
1893 2009-05-03 Bean <bean123ch@gmail.com> Vladimir Serbinenko <phcoder@gmail.com>
1894
1895 FreeBSD 64-bit support
1896
1897 * conf/i386-pc.rmk (bsd_mod_SOURCES): add loader/i386/bsd_helper.S
1898 and loader/i386/bsd_trampoline.S
1899 (bsd_mod_ASFLAGS): new variable
1900 * include/grub/i386/bsd.h (FREEBSD_MODINFOMD_SMAP): new definition
1901 (FREEBSD_MODTYPE_KERNEL64): likewise
1902 (grub_bsd64_trampoline_start): likewise
1903 (grub_bsd64_trampoline_end): likewise
1904 (grub_bsd64_trampoline_selfjump): likewise
1905 (grub_bsd64_trampoline_gdt): likewise
1906 * include/grub/i386/loader.h (grub_unix_real_boot): moved from here ...
1907 * include/grub/i386/bsd.h (grub_unix_real_boot): ... moved here
1908 * kern/i386/loader.S (grub_unix_real_boot): moved from here ...
1909 * loader/i386/bsd_helper.S (grub_unix_real_boot): moved here
1910 * include/grub/gpt_partition.h (grub_gpt_partentry): Corrected the type
1911 of "attrib" member
1912 * loader/i386/bsd_pagetable.c: new file
1913 * loader/i386/bsd_trampoline.S: likewise
1914 * loader/i386/bsd.c (ALIGN_QWORD): new macro
1915 (ALIGN_VAR): likewise
1916 (entry_hi): new variable
1917 (kern_end_mdofs): likewise
1918 (is_64bit): likewise
1919 (grub_freebsd_add_meta): use ALIGN_VAR
1920 (grub_e820_mmap): new declaration
1921 (grub_freebsd_add_mmap): new function
1922 (grub_freebsd_add_meta_module): support 64 bit kernels
1923 (grub_freebsd_list_modules): use ALIGN_VAR
1924 (gdt_descriptor): new declaration
1925 (grub_freebsd_boot): support 64 bit kernels
1926 (grub_bsd_elf64_hook): new function
1927 (grub_bsd_load_elf): support elf64
1928
1929 2009-05-03 Bean <bean123ch@gmail.com>
1930
1931 * script/sh/execute.c (grub_script_execute_cmdif): Reset grub_errno
1932 after we get the result of if statement.
1933
1934 2009-05-03 Bean <bean123ch@gmail.com>
1935
1936 * Makefile.in (enable_efiemu): New variable.
1937
1938 * conf/i386-pc.rmk: Only compile efiemu runtimes when enable_efiemu is
1939 set.
1940 (efiemu32.o): Use macro $< for source file, add $(srcdir) to include
1941 path.
1942 (efi64_c.o): Use macro $< for source file, add $(srcdir) to include
1943 path, add -mno-red-zone option.
1944 (efiemu64_s.o): Likewise.
1945 (efiemu64.o): Use macro $^ for source file.
1946
1947 * configure.ac (--enable-efiemu): New option.
1948
1949 2009-05-03 Vladimir Serbinenko <phcoder@gmail.com>
1950
1951 xnu support
1952
1953 * conf/i386-efi.rmk (kernel_mod_HEADERS): added i386/pit.h
1954 (pkglib_MODULES): add xnu.mod
1955 (xnu_mod_SOURCES): new variable
1956 (xnu_mod_CFLAGS): likewise
1957 (xnu_mod_LDFLAGS): likewise
1958 (xnu_mod_ASFLAGS): likewise
1959 * conf/i386-pc.rmk: likewise
1960 * conf/x86_64-efi.rmk: likewise
1961 * include/grub/efi/efi.h (grub_efi_finish_boot_services):
1962 new declaration
1963 * include/grub/i386/macho.h: new file
1964 * include/grub/i386/xnu.h: likewise
1965 * include/grub/macho.h: likewise
1966 * include/grub/machoload.h: likewise
1967 * include/grub/x86_64/macho.h: likewise
1968 * include/grub/x86_64/xnu.h: likewise
1969 * include/grub/xnu.h: likewise
1970 * kern/efi/efi.c (grub_efi_finish_boot_services): new function
1971 * kern/efi/mm.c (MAX_HEAP_SIZE): increase
1972 * loader/i386/efi/xnu.c: new file
1973 * loader/i386/pc/xnu.c: likewise
1974 * loader/i386/xnu.c: likewise
1975 * loader/i386/xnu_helper.S: likewise
1976 * loader/macho.c: likewise
1977 * loader/xnu.c: likewise
1978 * loader/xnu_resume.c: likewise
1979 * util/grub-dumpdevtree: likewise
1980 * include/grub/i386/pit.h: include grub/err.h
1981 (grub_pit_wait): export
1982 * util/grub.d/30_os-prober.in: support Darwin/Mac OS X
1983
1984 2009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
1985
1986 Efiemu
1987
1988 * conf/i386-pc.rmk: new modules efiemu, efiemu_acpi, efiemu_pnvram,
1989 _linux_efi, linux_efi.
1990 new files in grub-emu
1991 new targets efiemu32.o and efiemu64.o
1992 * loader/linux_normal_efiemu.c: likewise
1993 * loader/i386/efi/linux.c: added preliminary efiemu support
1994 * util/i386/pc/grub-install.in: add efiemu??.o to the list of
1995 files to copy
1996 * include/grub/autoefi.h: new file
1997 * include/grub/i386/efiemu.h: likewise
1998 * include/grub/i386/pc/efiemu.h: likewise
1999 * include/grub/efi/api.h: add LL suffix when necessary
2000 new definitions relating to tables
2001 * include/grub/efiemu/efiemu.h: new file
2002 * include/grub/efiemu/runtime.h: likewise
2003 * efiemu/prepare.c: likewise
2004 * efiemu/loadcore_common.c: likewise
2005 * efiemu/loadcore64.c: likewise
2006 * efiemu/runtime/efiemu.sh: likewise
2007 * efiemu/runtime/efiemu.S: likewise
2008 * efiemu/runtime/efiemu.c: likewise
2009 * efiemu/runtime/config.h: likewise
2010 * efiemu/prepare32.c: likewise
2011 * efiemu/main.c: likewise
2012 * efiemu/modules/pnvram.c: likewise
2013 * efiemu/modules/i386: likewise
2014 * efiemu/modules/i386/pc: likewise
2015 * efiemu/modules/acpi.c: likewise
2016 * efiemu/i386/pc/cfgtables.c: likewise
2017 * efiemu/i386/loadcore64.c: likewise
2018 * efiemu/i386/loadcore32.c: likewise
2019 * efiemu/prepare64.c: likewise
2020 * efiemu/loadcore.c: likewise
2021 * efiemu/symbols.c: likewise
2022 * efiemu/mm.c: likewise
2023 * efiemu/loadcore32.c: likewise
2024
2025 2009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
2026
2027 ACPI spoofing
2028
2029 * commands/acpi.c: new file
2030 * commands/i386/pc/acpi.c: likewise
2031 * commands/efi/acpi.c: likewise
2032 * include/grub/acpi.h: likewise
2033 * conf/i386-pc.rmk (pkglib_MODULES): added acpi.mod
2034 (acpi_mod_SOURCES): new variable
2035 (acpi_mod_CFLAGS): likewise
2036 (acpi_mod_LDFLAGS): likewise
2037 * conf/i386-efi.rmk: likewise
2038 * conf/x86_64-efi.rmk: likewise
2039
2040 2009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
2041
2042 Missing part from mmap patch
2043
2044 * mmap/efi/mmap.c (grub_machine_mmap_unregister): renamed to
2045 (grub_mmap_unregister)
2046 (grub_mmap_free_and_unregister): use grub_mmap_register
2047
2048 2009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
2049
2050 Mmap services
2051
2052 * loader/i386/efi/linux.c (grub_linux_boot): use grub_mmap_iterate
2053 * loader/i386/linux.c (find_mmap_size): likewise
2054 (allocate_pages): likewise
2055 * loader/i386/multiboot.c (grub_get_multiboot_mmap_len): likewise
2056 (grub_fill_multiboot_mmap): likewise
2057 (grub_multiboot): use grub_mmap_get_lower and grub_mmap_get_upper
2058 * loader/i386/pc/linux.c (grub_cmd_linux): use grub_mmap_get_lower
2059 * include/grub/i386/bsd.h (OPENBSD_MMAP_AVAILABLE): new definition
2060 (OPENBSD_MMAP_RESERVED): likewise
2061 * include/grub/i386/pc/memory.h: include grub/memory.h
2062 (grub_lower_mem): removed
2063 (grub_upper_mem): likewise
2064 (GRUB_MACHINE_MEMORY_ACPI): new definition
2065 (GRUB_MACHINE_MEMORY_NVS): likewise
2066 (GRUB_MACHINE_MEMORY_MAX_TYPE): likewise
2067 (GRUB_MACHINE_MEMORY_HOLE): likewise
2068 (grub_machine_mmap_register): likewise
2069 (grub_machine_mmap_unregister): likewise
2070 (grub_machine_get_upper): likewise
2071 (grub_machine_get_lower): likewise
2072 (grub_machine_get_post64): likewise
2073 * include/grub/i386/efi/memory.h: new file
2074 * include/grub/x86_64/efi/memory.h: likewise
2075 * include/grub/efi/memory.h: likewise
2076 * conf/i386-pc.rmk (pkglib_MODULES): added mmap.mod
2077 (mmap_mod_SOURCES): new variable
2078 (mmap_mod_LDFLAGS): likewise
2079 (mmap_mod_ASFLAGS): likewise
2080 * conf/i386-coreboot.rmk: likewise
2081 * conf/i386-ieee1275.rmk: likewise
2082 * conf/i386-efi.rmk: likewise
2083 * conf/x86_64-efi.rmk: likewise
2084 * include/grub/types.h (UINT_TO_PTR): new macro
2085 (PTR_TO_UINT32): likewise
2086 (PTR_TO_UINT64): likewise
2087 * include/grub/memory.h: new file
2088 * mmap/i386/pc/mmap.c: likewise
2089 * mmap/i386/pc/mmap_helper.S: likewise
2090 * mmap/i386/uppermem.c: likewise
2091 * mmap/mmap.c: likewise
2092 * mmap/efi/mmap.c: likewise
2093 * kern/i386/coreboot/init.c (grub_machine_init): don't use
2094 grub_upper_mem
2095 * kern/i386/pc/init.c (grub_lower_mem): removed variable
2096 (grub_upper_mem): likewise
2097 (grub_machine_init): don't use grub_upper_mem,
2098 make grub_lower_mem local
2099 * loader/i386/bsd.c (grub_openbsd_boot): use grub_mmap_get_lower,
2100 grub_mmap_iterate and grub_mmap_get_upper
2101 (grub_netbsd_boot): use grub_mmap_get_lower and grub_mmap_get_upper
2102
2103 2009-05-02 Bean <bean123ch@gmail.com>
2104
2105 * conf/common.rmk (grub_script.tab.c): Change normal/parser.y to
2106 script/sh/parser.y.
2107 (pkglib_MODULES): Add normal.mod and sh.mod.
2108 (normal_SOURCES): New variable.
2109 (normal_mod_CFLAGS): Likewise.
2110 (normal_mod_LDFLAGS): Likewise.
2111 (sh_mod_SOURCES): Likewise.
2112 (sh_mod_CFLAGS): Likewise.
2113 (sh_mod_LDFLAGS): Likewise.
2114
2115 * conf/i386-pc.rmk (normal/lexer.c_DEPENDENCIES): Changed to
2116 script/sh/lexer.c_DEPENDENCIES.
2117 (kernel_img_SOURCES): Remove kern/rescue.c, and kern/reader.c,
2118 kern/rescue_reader.c and kern/rescue_parser.c.
2119 (kernel_img_HEADERS): Remove rescue.h, add reader.h.
2120 (grub_emu_SOURCES): Change source files.
2121 (pkglib_MODULES): Remove normal.mod.
2122 (normal_SOURCES): Removed.
2123 (normal_mod_CFLAGS): Likewise.
2124 (normal_mod_LDFLAGS): Likewise.
2125 * conf/i386-coreboot.rmk: Likewise.
2126 * conf/i386-efi.rmk: Likewise.
2127 * conf/i386-ieee1276.rmk: Likewise.
2128 * conf/powerpc-ieee1275.rmk: Likewise.
2129 * conf/sparc64-ieee1275.rmk: Likewise.
2130 * conf/x86_64-efi.rmk: Likewise.
2131
2132 * include/grub/command.h (grub_command_execute): New inline function.
2133
2134 * include/grub/menu.h (grub_menu_entry): Removed commands field.
2135
2136 * include/grub/normal.h: Remove <grub/setjmp.h>.
2137 (grub_fs_module_list): Moved to normal/autofs.c.
2138 (grub_exit_env): Removed.
2139 (grub_command_execute): Likewise.
2140 (grub_normal_menu_addentry): Renamed to grub_menu_addentry, removed
2141 parameter script.
2142 (read_command_list): New function declaration.
2143 (read_fs_list): Likewise.
2144
2145 * include/parser.h: Include <grub/reader.h>.
2146 (grub_parser_split_cmdline): Change type of getline parameter.
2147 (grub_parser): New structure.
2148 (grub_parser_class): New variable.
2149 (grub_parser_execute): New function declaration.
2150 (grub_register_rescue_parser): Likewise.
2151 (grub_parser_register): New inline function.
2152 (grub_parser_unregister): Likewise.
2153 (grub_parser_get_current): Likewise.
2154 (grub_parser_set_current): Likewise.
2155
2156 * include/grub/reader.h: New file.
2157 * kern/reader.c: Likewise.
2158 * kern/rescue_parser.c: Likewise.
2159 * kern/rescue_reader.c: Likewise.
2160 * normal/autofs.c: Likewise.
2161 * normal/dyncmd.c: Likewise.
2162
2163 * include/grub/rescue.h: Removed.
2164 * normal/command.h: Likewise.
2165
2166 * include/grub/script.h: Moved to ...
2167 * include/grub/script_sh.h: ... Moved here.
2168 * normal/execute.c: Moved to ...
2169 * script/sh/execute.c: ... Moved here.
2170 * normal/function.c: Moved to ...
2171 * script/sh/function.c: ... Moved here.
2172 * normal/lexer.c: Moved to ...
2173 * script/sh/lexer.c: ... Moved here.
2174 * normal/parser.y: Moved to ...
2175 * script/sh/parser.y: ... Moved here.
2176 * normal/script.c: Moved to ...
2177 * script/sh/script.c: ... Moved here.
2178
2179 * normal/main.c: Remove <grub/rescue.h> and <grub/script.h>, include
2180 <grub/reader.h>.
2181 (grub_exit_env): Removed.
2182 (fs_module_list): Moved to normal/autofs.c.
2183 (grub_file_getline): Don't handle comment here.
2184 (free_menu): Skip removed field entry->commands.
2185 (grub_normal_menu_addentry): Removed as grub_menu_entry, removed
2186 script parameter.
2187 (read_config_file): Removed nested parameter, change getline function.
2188 (grub_enter_normal_mode): Removed.
2189 (grub_dyncmd_dispatcher): Moved to normal/dyncmd.c.
2190 (read_command_list): Likewise.
2191 (autoload_fs_module): Moved to normal/autofs.c.
2192 (read_fs_list): Likewise.
2193 (reader_nested): New variable.
2194 (grub_normal_execute): Run parser.sh to switch to sh parser.
2195 (grub_cmd_rescue): Removed.
2196 (cmd_normal): Removed.
2197 (grub_cmd_normal): Unregister itself at the beginning. Don't register
2198 rescue command.
2199 (grub_cmdline_run): New function.
2200 (grub_normal_reader_init): Likewise.
2201 (grub_normal_read_line): Likewise.
2202 (grub_env_write_pager): Likewise.
2203 (cmdline): New variable.
2204 (grub_normal_reader): Likewise.
2205 (GRUB_MOD_INIT): Register normal reader and set as current, register
2206 pager hook, register normal command with grub_register_command_prio,
2207 so that it won't show up in command.lst.
2208 (GRUB_MOD_FINI): Unregister normal reader, unhook pager, clear
2209 grub_fs_autoload_hook.
2210
2211 * normal/menu.c: Remove <grub/script.h>, add <grub/command.h>.
2212 (grub_menu_execute_entry): Replace grub_script_execute with
2213 grub_parser_execute, change parameter to grub_command_execute.
2214
2215 * normal/menu_text.c: Remove <grub/script.h>.
2216
2217 * normal/menu_entry.c: Remove <grub/script.h>, add <grub/command.h>
2218 and <grub/parser.h>.
2219 (run): Change editor_getline to use new parser interface. Change
2220 parameter to grub_command_execute.
2221
2222 * kern/main.c: Remove <grub/rescue.h>, include <grub/command.h>,
2223 <grub/reader.h> and <grub/parser.h>.
2224 (grub_load_normal_mode): Execute normal command.
2225 (grub_main): Call grub_register_core_commands,
2226 grub_register_rescue_parser and grub_register_rescue_reader, use
2227 grub_reader_loop to enter input loop.
2228
2229 * kern/parser.c (grub_parser_split_cmdline): Change type of
2230 getline parameter.
2231 (grub_parser_class): New variable.
2232 (grub_parser_execute): New function.
2233
2234 * loader/i386/multiboot.c: Remove <grub/rescue.h>.
2235 * loader/multiboot2.c: Likewise.
2236 * loader/sparc64/ieee1275/linux.c: Likewise.
2237
2238 * util/grub-emu.c (read_command_list): New dummy function.
2239
2240 2009-05-02 Robert Millan <rmh.grub@aybabtu.com>
2241
2242 * util/deviceiter.c (grub_util_iterate_devices): Increase max drive
2243 count to 16 for CCISS and IDA.
2244
2245 2009-05-02 Robert Millan <rmh.grub@aybabtu.com>
2246
2247 * normal/menu_text.c (grub_wait_after_message): Print a newline
2248 after waiting for user input.
2249
2250 * loader/i386/linux.c: Include `<grub/normal.h>'.
2251 (grub_cmd_linux): Improve the error message about `ask' mode, by
2252 waiting for user input so it's not missed (we can do this, since
2253 user requested interaction).
2254
2255 2009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
2256
2257 Added missing lst to grub-mkrescue
2258
2259 * util/i386/pc/grub-mkrescue.in: added ${input_dir}/handler.lst
2260 and ${input_dir}/parttool.lst
2261
2262 2009-04-30 David S. Miller <davem@davemloft.net>
2263
2264 * util/hostdisk.c (device_is_wholedisk): New function.
2265 (grub_util_biosdisk_get_grub_dev): Shortcut when hdg.start is
2266 zero only if device_is_wholedisk() returns true.
2267
2268 * util/hostdisk.c (convert_system_partition_to_system_disk):
2269 Handle virtual disk devices named /dev/vdiskX as found on sparc
2270 and powerpc.
2271
2272 * kern/sparc64/ieee1275/init.c (grub_machine_set_prefix): If
2273 lettered partition specifier is found, convert to numbered.
2274
2275 2009-04-29 David S. Miller <davem@davemloft.net>
2276
2277 * include/grub/powerpc/ieee1275/memory.h: Include ieee1275.h.
2278 * include/grub/sparc64/ieee1275/memory.h: Likewise.
2279
2280 * normal/command.c: Add missing newline at end of file.
2281
2282 * commands/lsmmap.c (grub_cmd_lsmmap): Add casts to avoid printf
2283 warnings.
2284 * kern/ieee1275/openfw.c (grub_claimmap): Likewise.
2285 * disk/ieee1275/ofdisk.c (grub_ofdisk_open, grub_ofdisk_close,
2286 grub_ofdisk_read): Likewise, and deal similarly with the fact that
2287 ihandles have a 32-bit type but need to be stored in a "void *".
2288
2289 2009-04-28 Pavel Roskin <proski@gnu.org>
2290
2291 * disk/fs_uuid.c (grub_fs_uuid_open): Use parent->data for dev,
2292 not disk. Adjust all dependencies.
2293 (grub_fs_uuid_close): Use grub_device_close(), not
2294 grub_disk_close().
2295
2296 * disk/fs_uuid.c (grub_fs_uuid_open): Allocate memory to copy
2297 parent's partition, don't copy it by reference, as it gets freed
2298 on close.
2299
2300 2009-04-27 Vladimir Serbinenko <phcoder@gmail.com>
2301
2302 Preboot hooks support
2303
2304 * commands/boot.c (struct grub_preboot_t): new declaration
2305 (preboots_head): new variable
2306 (preboots_tail): likewise
2307 (grub_loader_register_preboot_hook): new function
2308 (grub_loader_unregister_preboot_hook): likewise
2309 (grub_loader_set): launch preboot hooks
2310 * include/grub/loader.h (grub_loader_preboot_hook_prio_t): new type
2311 (grub_loader_register_preboot_hook): new declaration
2312 (grub_loader_unregister_preboot_hook): likewise
2313
2314 2009-04-27 Vladimir Serbinenko <phcoder@gmail.com>
2315
2316 Warning fix
2317
2318 * disk/scsi.c (grub_scsi_open): added missing cast when
2319 calling grub_dprintf
2320
2321 2009-04-26 Vladimir Serbinenko <phcoder@gmail.com>
2322
2323 Bug and warning fixes
2324
2325 * include/grub/i386/pc/init.h (grub_stop_floppy): added missing
2326 declaration
2327 * commands/test.c (test_parse): fixed bug with file tests and corrected
2328 declaration of find_file
2329
2330 2009-04-26 Pavel Roskin <proski@gnu.org>
2331
2332 * Makefile.in: Don't install empty manual pages if help2man is
2333 missing. Use help2man option for output, not shell redirection.
2334
2335 2009-04-26 David S. Miller <davem@davemloft.net>
2336
2337 * util/grub-mkdevicemap.c (make_device_map): Add missing
2338 NESTED_FUNC_ATTR to process_device().
2339
2340 2009-04-25 Vladimir Serbinenko <phcoder@gmail.com>
2341
2342 Test command
2343
2344 * commands/test.c: rewritten to use bash-like test
2345
2346 2009-04-25 Vladimir Serbinenko <phcoder@gmail.com>
2347
2348 Parttool autoloading and improvements
2349
2350 * Makefile.in (pkglib_DATA): add parttool.lst
2351 (parttool.lst): new target
2352 * genmk.rb: generate parttool-*
2353 (CLEANFILES): add #{parttool}
2354 (PARTTOOLFILES): new variable
2355 * genparttoollist.sh: new file
2356 * parttool/pcpart.c (grub_pcpart_boot): more feedback
2357 (grub_pcpart_type): likewise
2358 * commands/parttool.c (helpmsg): new variable
2359 (grub_cmd_parttool): output help if not enough arguments are supplied
2360 autoload modules
2361 (GRUB_MOD_INIT(parttool)): use helpmsg
2362
2363 2009-04-24 David S. Miller <davem@davemloft.net>
2364
2365 Avoiding opening same device multiple times in device iterator.
2366
2367 * kern/device.c: (grub_device_iterate): Define struct part_ent,
2368 and use it to build a list of partitions in iterate_disk() and
2369 iterate_partition().
2370
2371 * disk/fs_uuid.c (grub_fs_uuid_close): Call grub_disk_close()
2372 on disk->data.
2373
2374 * disk/ieee1275/nand.c (grub_nand_iterate): Return
2375 grub_devalias_iterate() result instead of unconditional 0.
2376 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Likewise.
2377 Also, capture hook return value, either directly or via
2378 grub_children_iterate(), and propagate to caller.
2379 * include/grub/ieee1275/ieee1275.h (grub_devalias_iterate,
2380 grub_children_iterate): Return value is now 'int' instead of
2381 'grub_err_t'.
2382 * kern/ieee1275/openfw.c (grub_children_iterate): Fix to behave
2383 like a proper iterator, stopping when hooks return non-zero.
2384 (grub_devalias_iterate): Likewise.
2385
2386 2009-04-23 David S. Miller <davem@davemloft.net>
2387
2388 * kern/sparc64/ieee1275/openfw.c: Unused, delete.
2389
2390 2009-04-22 David S. Miller <davem@davemloft.net>
2391
2392 * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): If size_cells
2393 is larger than address_cells, use that value for address_cells too.
2394
2395 * include/grub/ieee1275/ieee1275.h (IEEE1275_MAX_PROP_LEN,
2396 IEEE1275_MAX_PATH_LEN): Define.
2397 * kern/ieee1275/openfw.c (grub_children_iterate): Dynamically
2398 allocate 'childtype', 'childpath', 'childname', and 'fullname'.
2399 (grub_devalias_iterate): Dynamically allocate 'aliasname' and
2400 'devtype'. Explicitly NULL terminate devalias expansion.
2401
2402 * util/sparc64/ieee1275/misc.c: New file.
2403 * util/sparc64/ieee1275/grub-setup.c: New file.
2404 * util/sparc64/ieee1275/grub-ofpathname.c: New file.
2405 * util/sparc64/ieee1275/grub-mkimage.c: New file.
2406 * util/sparc64/ieee1275/grub-install.in: New file.
2407 * util/ieee1275/ofpath.c: New file.
2408 * util/ieee1275/devicemap.c: New file.
2409 * util/devicemap.c: New file.
2410 * util/deviceiter.c: New file.
2411 * kern/sparc64/ieee1275/init.c: New file.
2412 * include/grub/util/ofpath.h: New file.
2413 * include/grub/util/deviceiter.h: New file.
2414 * util/grub-mkdevicemap.c: Include deviceiter.h.
2415 Implement using grub_util_emit_devicemap_entry and
2416 grub_util_iterate_devices.
2417 * conf/i386-corebook.rmk: Build util/deviceiter.c and
2418 util/devicemap.c into grub-mkdevicemap
2419 * conf/i386-efi.rmk: Likewise.
2420 * conf/i386-ieee1275.rmk: Likewise.
2421 * conf/i386-pc.rmk: Likewise.
2422 * conf/powerpc-ieee1275.rmk: Likewise.
2423 * conf/sparc64-ieee1275.rmk: Add rules to build boot block
2424 images and installation utilities. Build kernel as image
2425 instead of as elf binary. Use common rules as much as possible.
2426
2427 2009-04-19 Vladimir Serbinenko <phcoder@gmail.com>
2428
2429 Correct GPT definition
2430
2431 * include/grub/gpt_partition.h (grub_gpt_partentry): Corrected the type
2432 of "attrib" member
2433
2434 2009-04-19 Felix Zielcke <fzielcke@z-51.de>
2435
2436 * INSTALL: Replace `autogen.sh' with `./autogen.sh'.
2437
2438 2009-04-19 David S. Miller <davem@davemloft.net>
2439
2440 * loader/sparc64/ieee1275/linux.c: Include grub/command.h
2441 (grub_rescue_cmd_linux): Rename to...
2442 (grub_cmd_linux): and fix prototype.
2443 (grub_rescue_cmd_initrd): Rename to...
2444 (grub_cmd_initrd): and fix prototype.
2445 (cmd_linux, cmd_initrd): New.
2446 (GRUB_MOD_INIT(linux)): Use grub_register_command().
2447 (GRUB_MOD_FINI(linux): Use grub_unregister_command().
2448
2449 2009-04-17 Pavel Roskin <proski@gnu.org>
2450
2451 * bus/usb/ohci.c (grub_ohci_transaction): Fix incorrect printf
2452 format.
2453 (grub_ohci_transfer): Likewise.
2454
2455 * bus/usb/usbtrans.c (grub_usb_control_msg): Warning fix.
2456
2457 * loader/multiboot_loader.c (grub_cmd_multiboot_loader): Fix
2458 return without a value. Fix inconsistent indentation.
2459
2460 * fs/i386/pc/pxe.c (grub_pxefs_dir): Fix function prototype to
2461 match struct grub_fs.
2462
2463 * disk/ata.c (grub_ata_pciinit): Use NESTED_FUNC_ATTR.
2464 * bus/usb/ohci.c (grub_ohci_pci_iter): Likewise.
2465 * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
2466 * commands/lspci.c (grub_lspci_iter): Likewise.
2467
2468 2009-04-16 Bean <bean123ch@gmail.com>
2469
2470 * commands/efi/loadbios.c (grub_cmd_fakebios): Add missing return
2471 value.
2472
2473 2009-04-15 Pavel Roskin <proski@gnu.org>
2474
2475 * include/grub/types.h: Rename ULONG_MAX to GRUB_ULONG_MAX and
2476 LONG_MAX to GRUB_LONG_MAX. Introduce GRUB_LONG_MIN. Update all
2477 users of ULONG_MAX, LONG_MAX and LONG_MIN to use the new
2478 definitions.
2479
2480 2009-04-15 Felix Zielcke <fzielcke@z-51.de>
2481
2482 * disk/lvm.c (grub_lvm_scan_device): Add `LVM' to the error messages,
2483 that no multiple data or metadata areas are supported and `Unknown
2484 metadata header'.
2485
2486 2009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
2487
2488 Move loader out of the kernel
2489
2490 * kern/loader.c: moved to ...
2491 * commands/boot.c: ... moved here
2492 * commands/minicmd.c (grub_mini_cmd_boot): moved to ...
2493 * commands/boot.c (grub_cmd_boot): moved here. All users updated
2494 * include/grub/kernel.h (grub_machine_fini): export
2495 * include/grub/loader.h (grub_loader_is_loaded): update declaration
2496 (grub_loader_set): likewise
2497 (grub_loader_unset): likewise
2498 (grub_loader_boot): likewise
2499 * conf/common.rmk: new module boot.mod
2500 (pkglib_MODULES): add boot.mod
2501 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): remove kern/loader.c
2502 (grub_emu_SOURCES): likewise
2503 * conf/i386-efi.rmk (kernel_elf_SOURCES): likewise
2504 (grub_emu_SOURCES): likewise
2505 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): likewise
2506 (grub_emu_SOURCES): likewise
2507 * conf/i386-pc.rmk (kernel_elf_SOURCES): likewise
2508 (grub_emu_SOURCES): likewise
2509 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): likewise
2510 (grub_emu_SOURCES): likewise
2511 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): likewise
2512 (grub_emu_SOURCES): likewise
2513 * conf/x86_64-efi.rmk (kernel_elf_SOURCES): likewise
2514 (grub_emu_SOURCES): likewise
2515
2516 2009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
2517
2518 use grub_lltoa instead of grub_itoa and grub_ltoa for all purposes
2519
2520 * kern/misc.c (grub_itoa): Removed function
2521 (grub_ltoa): likewise
2522 (grub_vsprintf): use grub_lltoa
2523
2524 2009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
2525
2526 Restore grub-emu
2527
2528 * conf/i386-pc.rmk (grub_emu_SOURCES): add normal/handler.c
2529 * conf/i386-coreboot.rmk: likewise
2530 * conf/i386-ieee1275.rmk: likewise
2531 * conf/powerpc-ieee1275.rmk: likewise
2532
2533 2009-04-15 Felix Zielcke <fzielcke@z-51.de>
2534
2535 * INSTALL: Add that `./autogen.sh' needs to be run before
2536 `./configure.'.
2537
2538 2009-04-14 Bean <bean123ch@gmail.com>
2539
2540 * Makefile.in (pkglib_DATA): Add handler.lst.
2541 (handler.lst): New rule.
2542
2543 * conf/i386-pc.rmk (normal_mod_SOURCES): Add normal/handler.c.
2544 * conf/i386-coreboot.rmk: Likewise.
2545 * conf/i386-ieee1275.rmk: Likewise.
2546 * conf/i386-efi.rmk: Likewise.
2547 * conf/x86_64-efi.rmk: Likewise.
2548 * conf/powerpc-ieee1275.rmk: Likewise.
2549 * conf/sparc64-ieee1275.rmk: Likewise.
2550
2551 * genhandlerlist.sh: New file.
2552
2553 * genmk.rb: Add rules to generate handler.lst.
2554
2555 * include/grub/normal.h (grub_file_getline): New function definition.
2556 (read_handler_list): Likewise.
2557 (free_handler_list): Likewise.
2558
2559 * include/grub/term.h (grub_term_register_input): Add name parameter
2560 for auto generation of handler.lst.
2561 (grub_term_register_output): Likewise.
2562
2563 * normal/handler.c: New file.
2564
2565 * normal/main.c (get_line): Renamed to grub_file_getline.
2566 (read_config_file): Use the newly renamed grub_file_getline.
2567 (read_command_list): Likewise.
2568 (read_fs_list): Likewise.
2569 (grub_normal_execute): Call read_handler_list to parse handler.lst.
2570 (GRUB_MOD_FINI): Call free_handler_list to free handler list.
2571
2572 * term/efi/console.c (grub_console_init): Add name parameter for auto
2573 generation of handler.lst.
2574 * term/gfxterm.c: Likewise.
2575 * term/i386/pc/at_keyboard.c: Likewise.
2576 * term/i386/pc/console.c: Likewise.
2577 * term/i386/pc/serial.c: Likewise.
2578 * term/i386/pc/vesafb.c: Likewise.
2579 * term/i386/pc/vga.c: Likewise.
2580 * term/i386/pc/vga_text.c: Likewise.
2581 * term/ieee1275/ofconsole.c: Likewise.
2582 * term/usb_keyboard.c: Likewise.
2583
2584 2009-04-14 Bean <bean123ch@gmail.com>
2585
2586 * util/grub-pe2elf.c (write_symbol_table): Terminate short name symbol
2587 properly with null character.
2588
2589 2009-04-14 Felix Zielcke <fzielcke@z-51.de>
2590
2591 * configure: Remove.
2592 * config.h.in: Likewise.
2593 * stamp-h.in: Likewise.
2594 * DISTLIST: Likewise.
2595 * conf/common.mk: Likewise.
2596 * conf/i386-coreboot.mk: Likewise.
2597 * conf/i386-efi.mk: Likewise.
2598 * conf/i386-ieee1275.mk: Likewise.
2599 * conf/i386.mk: Likewise.
2600 * conf/i386-pc.mk: Likewise.
2601 * conf/powerpc-ieee1275.mk: Likewise.
2602 * conf/sparc64-ieee1275.mk: Likewise.
2603 * conf/x86_64-efi.mk: Likewise.
2604
2605 * INSTALL: Remove the sentence that Ruby and autoconf are only required if you
2606 develop on GRUB.
2607
2608 2009-04-14 John Stanley <jpsinthemix@verizon.net>
2609 David S. Miller <davem@davemloft.net>
2610
2611 * util/hostdisk.c (make_device_name): Fix buffer length
2612 calculations.
2613
2614 2009-04-14 Felix Zielcke <fzielcke@z-51.de>
2615
2616 * util/hostdisk.c [__FreeBSD__ || __FreeBSD_kernel__]: Include
2617 <sys/param.h> and <sys/sysctl.h>.
2618 (open_device) [__FreeBSD__ || __FreeBSD_kernel_]: Use sysctlgetbyname()
2619 to add 0x10 to `kern.geom.debugflags' if it's not already set, before
2620 opening the device and reset them afterwards.
2621
2622 2009-04-13 Pavel Roskin <proski@gnu.org>
2623
2624 * conf/common.rmk (grub_fstest_SOURCES): Add normal/datetime.c.
2625 Reported by John Stanley <jpsinthemix@verizon.net>
2626
2627 2009-04-13 Robert Millan <rmh@aybabtu.com>
2628
2629 * util/grub.d/10_freebsd.in: Detect Debian GNU/kFreeBSD and use
2630 that name for menuentries when appropriate.
2631
2632 2009-04-13 Felix Zielcke <fzielcke@z-51.de>
2633
2634 * util/grub.d/10_freebsd.in: Add a missing `fi'.
2635
2636 2009-04-13 Robert Millan <rmh@aybabtu.com>
2637
2638 * loader/i386/linux.c (grub_cmd_linux): Don't pass `vga=ask' parameter
2639 to Linux, simply abort telling the user it's no longer supported.
2640
2641 2009-04-13 Felix Zielcke <fzielcke@z-51.de>
2642
2643 * util/grub.d/10_freebsd.in: Don't exit if /boot/devices.hints
2644 doesn't exist. Check also for /boot/kernel/kernel.gz. Print
2645 `freebsd_loadenv' only when devices.hints exist.
2646
2647 2009-04-13 Pavel Roskin <proski@gnu.org>
2648
2649 * term/usb_keyboard.c (grub_usb_keyboard_getkey): Warning fixes.
2650
2651 2009-04-13 Felix Zielcke <fzielcke@z-51.de>
2652
2653 * util/i386/pc/grub-install.in (install_drive): Remove the BSD
2654 partition number.
2655 (grub_drive): Likewise.
2656
2657 2009-04-13 David S. Miller <davem@davemloft.net>
2658
2659 * kern/sparc64/ieee1275/ieee1275.c: New file.
2660 * include/grub/sparc64/ieee1275/ieee1275.h (IEEE1275_MAP_WRITE,
2661 IEEE1275_MAP_READ, IEEE1275_MAP_EXEC, IEEE1275_MAP_LOCKED,
2662 IEEE1275_MAP_CACHED, IEEE1275_MAP_SE, IEEE1275_MAP_GLOBAL,
2663 IEEE1275_MAP_IE, IEEE1275_MAP_DEFAULT): Define.
2664 (grub_ieee1275_map_physical, grub_ieee1275_claim_vaddr,
2665 grub_ieee1275_alloc_physmem): Declare new exported functions.
2666
2667 * include/grub/sparc64/ieee1275/loader.h: New file.
2668 * include/grub/sparc64/ieee1275/memory.h: Likewise.
2669 * include/grub/sparc64/kernel.h: Likewise.
2670 * loader/sparc64/ieee1275/linux.c: Likewise.
2671
2672 * conf/common.rmk (grub_probe_SOURCES): Add Sun partition module.
2673 (grub_fstest_SOURCES): Likewise.
2674
2675 * util/hostdisk.c (make_device_name): Do not make any assumptions
2676 about the length of drive names.
2677
2678 * kern/dl.c (grub_dl_load_file): Close file immediately when
2679 we are done using it.
2680
2681 2009-04-12 David S. Miller <davem@davemloft.net>
2682
2683 * kern/misc.c (grub_ltoa): Fix cast when handling negative
2684 values. Noticed by Pavel Roskin.
2685
2686 * configure.ac: Check for __bswapsi2 and__bswapdi2 using
2687 target compiler.
2688
2689 * genmk.rb: Add more flexible image type specification, also
2690 pass --strip-unneeded to objcopy.
2691 * conf/i386-pc.rmk: Use *_FORMAT.
2692 * conf/i386-pc.mk: Rebuilt.
2693
2694 * disk/ieee1275/ofdisk.c (struct ofdisk_hash_ent): New struct.
2695 (OFDISK_HASH_SZ): Define.
2696 (ofdisk_hash): New hash table.
2697 (ofdisk_hash_fn, ofdisk_hash_find, ofdisk_hash_add): New functions.
2698 (grub_ofdisk_open): Use ofdisk_hash_ent address as disk->id
2699 instead of device phandle which is not unique.
2700
2701 * kern/sparc64/ieee1275/init.c: Delete, replace with...
2702 * kern/sparc64/ieee1275/crt0.S: assembler implementation.
2703 * include/grub/sparc64/ieee1275/kernel.h: Declare grub_prefix[].
2704 (GRUB_MOD_ALIGN, GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_TOTAL_MODULE_SIZE,
2705 GRUB_KERNEL_MACHINE_KERNEL_IMAGE_SIZE,
2706 GRUB_KERNEL_MACHINE_COMPRESSED_SIZE, GRUB_KERNEL_MACHINE_PREFIX,
2707 GRUB_KERNEL_MACHINE_DATA_END): Define.
2708 (grub_kernel_image_size, grub_total_module_size): Declare.
2709
2710 2009-04-12 Pavel Roskin <proski@gnu.org>
2711
2712 * configure.ac: Change the logic when we check for target tools.
2713 Do it when the target is specified and it's different from the
2714 specified value of the host.
2715
2716 2009-04-11 Felix Zielcke <fzielcke@z-51.de>
2717
2718 * util/hostdisk.c [__FreeBSD_kernel__]: Include sys/disk.h.
2719 (grub_util_biosdisk_open) [__FreeBSD_kernel__]: Add support for
2720 GNU/kFreeBSD. Check if a device is a character device. Use
2721 DIOCGMEDIASIZE to get the size.
2722 (convert_system_partition_to_system_disk) [__FreeBSD_kernel__]: Add
2723 support for GNU/kFreeBSD.
2724 (grub_util_biosdisk_get_grub_dev) [__FreeBSD_kernel__]: Check if OS_DEV
2725 is a character device instead of a block device. Add support for
2726 FreeBSD device names.
2727
2728 * util/getroot.c (find_root_device) [__FreeBSD_kernel__]: Check if ENT
2729 is a character device instead of a block device.
2730
2731 * util/grub-probe.c (probe) [__FreeBSD_kernel__]: Check if DEVICE_NAME
2732 is a character device instead of a block device.
2733
2734 2009-04-11 Andrey Shuvikov <mr_hyro@yahoo.com>
2735
2736 * util/hostdisk.c [__FreeBSD__]: Include sys/disk.h.
2737 (grub_util_biosdisk_open) [__FreeBSD__]: Add support for
2738 FreeBSD. Check if a device is a character device. Use
2739 DIOCGMEDIASIZE to get the size.
2740 (convert_system_partition_to_system_disk) [__FreeBSD__]: Add
2741 support for FreeBSD.
2742 (grub_util_biosdisk_get_grub_dev) [__FreeBSD__]: Check if OS_DEV
2743 is a character device instead of a block device. Add support for
2744 FreeBSD device names.
2745
2746 * util/getroot.c (find_root_device) [__FreeBSD__]: Check if ENT is
2747 a character device instead of a block device.
2748 (grub_util_check_char_device): New function.
2749
2750 * util/grub-probe.c (probe) [__FreeBSD__]: Check if DEVICE_NAME is
2751 a character device instead of a block device.
2752
2753 * include/grub/util/getroot.h (grub_util_check_char_device): New
2754 prototype.
2755
2756 2009-04-11 David S. Miller <davem@davemloft.net>
2757
2758 * conf/sparc64-ieee1275.rmk (kernel_img_LDFLAGS): Link with
2759 static libgcc.
2760 * configure.ac: Check for __bswapsi2 and __bswapdi2 presence.
2761 * include/grub/sparc64/libgcc.h (__bswapsi2): Export libgcc
2762 function, if present.
2763 (__bswapdi2): Likewise.
2764
2765 * include/grub/sparc64/ieee1275/boot.h: New file.
2766 * boot/sparc64/ieee1275/boot.S: Likewise.
2767 * boot/sparc64/ieee1275/diskboot.S: Likewise.
2768
2769 * kern/misc.c (grub_ltoa): New function.
2770 (grub_vsprintf): Use it to format 'long' integers.
2771
2772 2009-04-10 David S. Miller <davem@davemloft.net>
2773
2774 * disk/ieee1275/nand.c (grub_nand_open): All ieee1275 call arg
2775 slots are of type grub_ieee1275_cell_t.
2776 (grub_nand_read): Likewise.
2777 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_INVALID,
2778 IEEE1275_IHANDLE_INVALID): Use grub_ieee1275_cell_t since these
2779 macros are used to compare values in arg/ret block of the call.
2780 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
2781 grub_ieee1275_next_property, grub_ieee1275_get_property_length,
2782 grub_ieee1275_instance_to_package, grub_ieee1275_package_to_path,
2783 grub_ieee1275_instance_to_path, grub_ieee1275_write,
2784 grub_ieee1275_read, grub_ieee1275_seek, grub_ieee1275_peer,
2785 grub_ieee1275_child, grub_ieee1275_parent, grub_ieee1275_open,
2786 grub_ieee1275_close, grub_ieee1275_set_property,
2787 grub_ieee1275_set_color): All ieee1275 call arg slots are of type
2788 grub_ieee1275_cell_t.
2789 * kern/ieee1275/openfw.c (grub_map): Likewise.
2790 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_ihandle_t,
2791 grub_ieee1275_phandle_t): Define as grub_unit32_t type.
2792
2793 * kern/ieee1275/init.c (grub_machine_init): Make 'actual' grub_ssize_t.
2794 * kern/ieee1275/openfw.c (grub_children_iterate): Likewise.
2795 (grub_devalias_iterate): Likewise.
2796
2797 2009-04-10 Vladimir Serbinenko <phcoder@gmail.com>
2798
2799 UFS improvements
2800
2801 * fs/ufs.c (INODE_NBLOCKS): new definition
2802 (struct grub_ufs_dirent): added fields for non-BSD dirents
2803 (grub_ufs_get_file_block): fixed double indirect handling
2804 (grub_ufs_lookup_symlink): use more robust way to determine whether
2805 symlink is inline
2806 (grub_ufs_find_file): support for non-BSD dirents
2807 (grub_ufs_dir): support for non-BSD dirents
2808
2809 2009-04-10 Bean <bean123ch@gnail.com>
2810
2811 * include/grub/efi/api.h (grub_efi_configuration_table): Add packed
2812 attribute, otherwise the size would be wrong for i386 platform.
2813
2814 * include/grub/pci.h (grub_pci_read_word): New inline function.
2815 (grub_pci_read_byte): Likewise.
2816 (grub_pci_write): Likewise.
2817 (grub_pci_write_word): Likewise.
2818 (grub_pci_write_byte): Likewise.
2819
2820 * include/grub/pci.h (grub_pci_iteratefunc_t): Add NESTED_FUNC_ATTR.
2821
2822 * loader/i386/efi/linux.c (fake_bios_data): Moved to loadbios module.
2823 (find_framebuf): Scan pci to locate the frame buffer address.
2824
2825 * commands/efi/fixvideo.c: New file.
2826
2827 * commands/efi/loadbios.c: Likewise.
2828
2829 * commands/memrw.c: Likewise.
2830
2831 * util/grub-dumpbios.in: Likewise.
2832
2833 * conf/common.rmk (grub-dumpbios): New utility.
2834 (pkglib_MODULES): New module memrw.mod.
2835 (memrw_mod_SOURCE): New macro.
2836 (memrw_mod_CFLAGS): Likewise.
2837 (memrw_mod_LDFLAGS): Likewise.
2838
2839 * conf/i386-efi.rmk (pkglib_MODULES): New module loadbios.mod and
2840 fixvideo.mod.
2841 (loadbios_mod_SOURCE): New macro.
2842 (loadbios_mod_CFLAGS): Likewise.
2843 (loadbios_mod_LDFLAGS): Likewise.
2844 (fixvideo_mod_SOURCE): Likewise.
2845 (fixvideo_mod_CFLAGS): Likewise.
2846 (fixvideo_mod_LDFLAGS): Likewise.
2847
2848 * conf/x86_64.rmk (pkglib_MODULES): New module loadbios.mod and
2849 fixvideo.mod.
2850 (loadbios_mod_SOURCE): New macro.
2851 (loadbios_mod_CFLAGS): Likewise.
2852 (loadbios_mod_LDFLAGS): Likewise.
2853 (fixvideo_mod_SOURCE): Likewise.
2854 (fixvideo_mod_CFLAGS): Likewise.
2855 (fixvideo_mod_LDFLAGS): Likewise.
2856
2857 2009-04-08 Felix Zielcke <fzielcke@z-51.de>
2858
2859 * disk/lvm.c (grub_lvm_scan_device): Add a missing NULL check.
2860
2861 2009-04-07 David S. Miller <davem@davemloft.net>
2862
2863 * kern/sparc64/dl.c (grub_arch_dl_relocate_symbols): Add
2864 support for R_SPARC_OLO10 relocations. Fix compile warning for
2865 R_SPARC_WDISP30 case.
2866 * kern/sparc64/cache.S: Fix grub_arch_sync_caches implementation.
2867
2868 2009-04-06 Pavel Roskin <proski@gnu.org>
2869
2870 * include/grub/misc.h (ARRAY_SIZE): New macro.
2871 * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START):
2872 New macro.
2873 * loader/i386/linux.c (allocate_pages): Use free_pages().
2874 (grub_linux_unload): Don't use free_pages().
2875 (grub_linux_boot): Prevent accessing linux_vesafb_modes with a
2876 wrong index. Treat all other modes as text modes.
2877 (grub_cmd_linux): Initialize vid_mode unconditionally to
2878 GRUB_LINUX_VID_MODE_NORMAL. Recognize and support "vga=ask".
2879
2880 * commands/help.c (print_command_help): Use cmd->prio, not
2881 cmd->flags to check for GRUB_PRIO_LIST_FLAG_ACTIVE.
2882
2883 2009-04-06 Vladimir Serbinenko <phcoder@gmail.com>
2884
2885 Parttool
2886
2887 * parttool/pcpart.c: new file
2888 * commands/parttool.c: likewise
2889 * conf/common.rmk (pkglib_MODULES): Added parttool.mod and pcpart.mod
2890 (parttool_mod_SOURCES): new variable
2891 (parttool_mod_CFLAGS): likewise
2892 (parttool_mod_LDFLAGS): likewise
2893 (pcpart_mod_SOURCES): likewise
2894 (pcpart_mod_CFLAGS): likewise
2895 (pcpart_mod_LDFLAGS): likewise
2896 * conf/i386-coreboot.rmk (grub_emu_SOURCES): added commands/parttool.c
2897 and parttool/pcpart.c
2898 * conf/i386-efi.rmk: likewise
2899 * conf/i386-ieee1275.rmk: likewise
2900 * conf/i386-pc.rmk: likewise
2901 * conf/powerpc-ieee1275.rmk: likewise
2902 * conf/sparc64-ieee1275.rmk: likewise
2903 * conf/x86_64-ieee1275.rmk: likewise
2904
2905 2009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
2906
2907 Support for mtime and further expandability of dir command
2908
2909 * include/grub/lib/datetime.h: moved to ...
2910 * include/grub/datetime.h: ... moved here and added
2911 declaration of grub_unixtime2datetime. All users updated
2912 * include/grub/fs.h: new syntax for dir and mtime functions in
2913 struct grub_fs
2914 * include/grub/fshelp.h: new declarations of GRUB_FSHELP_TYPE_MASK
2915 and GRUB_FSHELP_FLAGS_MASK
2916 * commands/ls.c (grub_ls_list_files): Write mtime in long format
2917 * fs/ext2.c (grub_ext2_dir): use new dir syntax and supply mtime
2918 (grub_ext2_mtime): new function
2919 * fs/hfsplus.c (grub_hfsplus_dir): use new dir syntax and supply mtime
2920 (grub_hfsplus_mtime): new function
2921 * fs/ufs.c (GRUB_UFS_ATTR_TYPE): new definition
2922 (GRUB_UFS_ATTR_FILE): likewise
2923 (GRUB_UFS_ATTR_LNK): likewise
2924 (struct grub_ufs_sblock): new fields mtime
2925 (grub_ufs_read_inode): new parameter to read inode to a separate buffer
2926 all users updated
2927 (grub_ufs_dir): mtime support
2928 (grub_ufs_mtime): new function
2929 * fs/affs.c (grub_affs_dir): use new dir syntax
2930 * fs/afs.c (grub_afs_dir): likewise
2931 * fs/cpio.c (grub_cpio_dir): likewise
2932 * fs/fat.c (grub_fat_find_dir): likewise
2933 * fs/hfs.c (grub_hfs_dir): likewise
2934 * fs/iso9660.c (grub_iso9660_dir): likewise
2935 * fs/jfs.c (grub_jfs_dir): likewise
2936 * fs/minix.c (grub_minix_dir): likewise
2937 * fs/ntfs.c (grub_ntfs_dir): likewise
2938 * fs/reiserfs.c (grub_reiserfs_dir): likewise
2939 * fs/sfs.c (grub_sfs_dir): likewise
2940 * fs/xfs.c (grub_xfs_dir): likewise
2941 * util/hostfs.c (grub_hostfs_dir): likewise
2942 * lib/datetime.c: moved to ...
2943 * normal/datetime.c: ... moved here
2944 (grub_unixtime2datetime): new function
2945 * kern/rescue.c (grub_rescue_print_files): use new dir syntax
2946 * normal/completion.c (iterate_dir): use new dir syntax
2947 * normal/misc.c (grub_normal_print_device_info): tell the
2948 last modification time of a volume
2949 * kern/fs.c (grub_fs_probe): updated dummy function to use new syntax
2950 * conf/common.rmk: added lib/datetime.c to ls.mod
2951 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add normal/datetime.c
2952 (normal_mod_SOURCES): likewise
2953 (datetime_mod_SOURCES): Removed lib/datetime.c
2954 * conf/i386-efi.rmk: likewise
2955 * conf/i386-ieee1275.rmk: likewise
2956 * conf/i386-pc.rmk: likewise
2957 * conf/powerpc-ieee1275.rmk: likewise
2958 * conf/sparc64-ieee1275.rmk: likewise
2959 * conf/x86_64-efi.rmk: likewise
2960
2961 2009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
2962
2963 Trim trailing spaces in FAT label and support mtools-like labels
2964
2965 * fs/fat.c (grub_fat_iterate_dir): New function based
2966 on grub_fat_find_dir
2967 (grub_fat_find_dir): use grub_fat_iterate_dir
2968 (grub_fat_label): likewise
2969
2970 2009-04-04 Vladimir Serbinenko <phcoder@gmail.com>
2971
2972 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): add list.h
2973 and command.h
2974 remove extraneous kernel_elf_HEADERS
2975
2976 2009-04-04 Bean <bean123ch@gnail.com>
2977
2978 * include/grub/util/misc.h: Add dummy function fsync for mingw.
2979
2980 * util/misc.c: Likewise.
2981
2982 2009-04-04 Yoshinori K. Okuji <okuji@enbug.org>
2983
2984 * loader/i386/efi/linux.c (fake_bios_data): Use grub_dprintf
2985 instead of grub_printf.
2986
2987 2009-04-03 Robert Millan <rmh@aybabtu.com>
2988
2989 * loader/i386/linux.c (grub_linux_setup_video): Fill
2990 `params->{red,green,blue,reserved}_{mask_size,field_pos}' with
2991 values from `mode info' structure instead of hardcoded
2992 values.
2993
2994 2009-04-01 Pavel Roskin <proski@gnu.org>
2995
2996 * Makefile.in: Remove all references to MODULE_LDFLAGS, it's
2997 unused now.
2998 * genmk.rb: Likewise.
2999 * configure.ac: Likewise.
3000
3001 2009-04-01 Manoel Abranches <mrabran@linux.vnet.ibm.com>
3002
3003 * aclocal.m4: Move --build-id=none from MODULE_LDFLAGS to
3004 TARGET_LDFLAGS. This corrects a problem with grub-mkelfimage.
3005
3006 2009-04-01 David S. Miller <davem@davemloft.net>
3007
3008 * normal/sparc64/setjmp.S: Fix setjmp implementation.
3009 * include/grub/sparc64/setjmp.h (grub_jmp_buf): Update.
3010 (grub_setjmp): Mark with 'returns_twice' attribute.
3011 * include/grub/i386/setjmp.h (grub_setjmp): Likewise
3012 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise.
3013 * include/grub/x86_64/setjmp.h (grub_setjmp): Likewise.
3014
3015 2009-04-01 Robert Millan <rmh@aybabtu.com>
3016
3017 Reapply fix from 2008-07-28 which was accidentally reverted; also
3018 perform the same fix to a similar check in same function.
3019
3020 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
3021 with the same number are found, just use issue a warning with
3022 grub_dprintf(), as this error has been reported to be non-fatal.
3023
3024 2009-03-31 Pavel Roskin <proski@gnu.org>
3025
3026 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Provide safe default
3027 for cross-compilation.
3028
3029 2009-03-30 Robert Millan <rmh@aybabtu.com>
3030
3031 Fix i386-ieee1275 build.
3032
3033 * include/grub/i386/ieee1275/loader.h (grub_multiboot2_real_boot):
3034 Remove declaration.
3035
3036 2009-03-30 Pavel Roskin <proski@gnu.org>
3037
3038 * fs/hfs.c (grub_hfs_strncasecmp): Integrate into ...
3039 (grub_hfs_cmp_catkeys): ... this. Don't assume strings to be
3040 zero-terminated, rely only on the strlen value. Fix comparison
3041 of strings differing in length.
3042
3043 2009-03-30 Robert Millan <rmh@aybabtu.com>
3044
3045 * loader/i386/linux.c (grub_cmd_linux): Check for zImage before
3046 checking for abi version. Improve error messages on BIOS to notify
3047 user about `linux16' command.
3048
3049 2009-03-29 Vladimir Serbinenko <phcoder@gmail.com>
3050
3051 Leak fixes
3052
3053 * kern/disk.c (grub_disk_cache_store): Invalidate previous cache
3054 in case of collision
3055 * disk/scsi.c (grub_scsi_open): free scsi in case of error
3056
3057 2009-03-29 Robert Millan <rmh@aybabtu.com>
3058
3059 * loader/i386/linux.c (grub_cmd_linux): Parse "vga=" parameter and
3060 set `vid_mode' accordingly.
3061 (grub_linux_boot): Process `vid_mode' and set video mode.
3062
3063 2009-03-29 Robert Millan <rmh@aybabtu.com>
3064
3065 * util/grub.d/10_linux.in (linux_entry): New function.
3066 Factorize generation of Linux boot entries.
3067
3068 2009-03-29 Yoshinori K. Okuji <okuji@enbug.org>
3069
3070 Make the format of Environment Block plain text. The boot loader
3071 part is not tested well yet.
3072
3073 * util/grub-editenv.c (DEFAULT_ENVBLK_SIZE): New macro.
3074 (buffer): Removed.
3075 (envblk): Likewise.
3076 (usage): Remove "info" and "clear". Add "unset". Update the
3077 description of "set", as this does not delete variables any
3078 longer.
3079 (create_envblk_file): Complete rewrite.
3080 (open_envblk_file): Likewise.
3081 (cmd_info): Removed.
3082 (cmd_list): Likewise.
3083 (cmd_set): Likewise.
3084 (cmd_clear): Likewise.
3085 (list_variables): New function.
3086 (write_envblk): Likewise.
3087 (set_variables): Likewise.
3088 (unset_variables): Likewise.
3089 (main): Complete rewrite.
3090
3091 * commands/loadenv.c (buffer): Removed.
3092 (envblk): Likewise.
3093 (open_envblk_file): New function.
3094 (read_envblk_file): Complete rewrite.
3095 (grub_cmd_load_env): Likewise.
3096 (grub_cmd_list_env): Likewise.
3097 (struct blocklist): New struct.
3098 (free_blocklists): New function.
3099 (check_blocklists): Likewise.
3100 (write_blocklists): Likewise.
3101 (grub_cmd_save_env): Complete rewrite.
3102
3103 * include/grub/lib/envblk.h (GRUB_ENVBLK_SIGNATURE): Replaced with
3104 a plain text signature.
3105 (GRUB_ENVBLK_MAXLEN): Removed.
3106 (struct grub_envblk): Complete rewrite.
3107 (grub_envblk_find): Removed.
3108 (grub_envblk_insert): Likewise.
3109 (grub_envblk_open): New prototype.
3110 (grub_envblk_set): Likewise.
3111 (grub_envblk_delete): Put const to VALUE.
3112 (grub_envblk_iterate): Put const to NAME and VALUE.
3113 (grub_envblk_close): New prototype.
3114 (grub_envblk_buffer): New inline function.
3115 (grub_envblk_size): Likewise.
3116
3117 * lib/envblk.c: Include grub/mm.h.
3118 (grub_env_find): Removed.
3119 (grub_envblk_open): New function.
3120 (grub_envblk_close): Likewise.
3121 (escaped_value_len): Likewise.
3122 (find_next_line): Likewise.
3123 (grub_envblk_insert): Removed.
3124 (grub_envblk_set): New function.
3125 (grub_envblk_delete): Complete rewrite.
3126 (grub_envblk_iterate): Likewise.
3127
3128 2009-03-28 Robert Millan <rmh@aybabtu.com>
3129
3130 * conf/i386-pc.rmk (pkglib_MODULES): Add `linux16.mod'.
3131 (linux16_mod_SOURCES, linux16_mod_CFLAGS, linux16_mod_LDFLAGS): New
3132 variables. Use 16-bit loader.
3133 (linux_mod_SOURCES, linux_mod_CFLAGS, linux_mod_LDFLAGS): Use 32-bit
3134 loader.
3135 * kern/i386/loader.S (grub_linux_boot): Rename to ...
3136 (grub_linux16_boot): ... this. Update all users.
3137 * loader/i386/linux.c (grub_linux32_boot): Rename to ...
3138 (grub_linux_boot): ... this. Update all users.
3139
3140 * loader/i386/pc/linux.c (GRUB_MOD_INIT(linux)): Rename to ...
3141 (GRUB_MOD_INIT(linux16)): ... this. Rename `linux' and `initrd'
3142 commands to `linux16' and `initrd16'.
3143 (GRUB_MOD_FINI(linux)): Rename to ...
3144 (GRUB_MOD_FINI(linux16)): ... this.
3145
3146 2009-03-24 Pavel Roskin <proski@gnu.org>
3147
3148 * genmk.rb: Define ASM_FILE for *.S files for *.lst generation,
3149 not just for compilation.
3150
3151 2009-03-22 Vladimir Serbinenko <phcoder@gmail.com>
3152
3153 Move multiboot helper out of kernel
3154
3155 * conf/i386-pc.rmk (multiboot_mod_SOURCES): Add
3156 `loader/i386/multiboot_helper.S'.
3157 * conf/i386-coreboot.rmk: Likewise
3158 * conf/i386-ieee1275.rmk: Likewise
3159
3160 * kern/i386/loader.S: Move multiboot helpers from here...
3161 * loader/i386/multiboot_helper.S: ...moved here
3162 * include/grub/i386/loader.h: Move declarations of multiboot
3163 helpers from here...
3164 * include/grub/i386/multiboot.h: ...moved here
3165 * loader/i386/multiboot.c: Added include of grub/cpu/multiboot.h
3166
3167 2009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
3168
3169 * kern/env.c (grub_env_context_open): Added an argument to specify
3170 whether a new context inherits exported variables from current
3171 one. This is useful when making a sandbox to interpret a config
3172 file.
3173 All callers updated.
3174
3175 * include/grub/env.h (grub_env_context_open): Updated the prototype.
3176
3177 2009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
3178
3179 * kern/env.c (grub_env_context_close): Fix memory leaks.
3180
3181 2009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
3182
3183 * normal/main.c (grub_normal_execute): Added an argument
3184 BATCH to specify if an interactive interface should be provided
3185 after reading a config file.
3186 All callers updated.
3187 (read_command_list): Prevent being executed twice.
3188 (read_fs_list): Likewise.
3189
3190 * include/grub/normal.h (grub_normal_execute): Updated the
3191 prototype.
3192
3193 2009-03-22 Pavel Roskin <proski@gno.org>
3194
3195 * kern/powerpc/ieee1275/startup.S: Replace EXT_C(start) with
3196 _start.
3197 * kern/i386/pc/startup.S: Likewise.
3198 * kern/i386/efi/startup.S: Likewise.
3199 * kern/i386/ieee1275/startup.S: Likewise.
3200 * kern/i386/coreboot/startup.S: Likewise.
3201 * kern/x86_64/efi/startup.S: Likewise.
3202
3203 * aclocal.m4 (grub_CHECK_START_SYMBOL): Remove.
3204 * configure.ac: Don't call grub_CHECK_START_SYMBOL.
3205 * kern/i386/pc/startup.S: Use _start instead of START_SYMBOL.
3206
3207 2009-03-21 Vladimir Serbinenko <phcoder@gmail.com>
3208
3209 Bugfixes in multiboot for bugs uncovered by solaris kernel.
3210
3211 * loader/i386/multiboot_elfxx.c (grub_multiboot_load_elf): Corrected
3212 limit detection.
3213 Use vaddr of correct segment for entry_point.
3214
3215 2009-03-21 Bean <bean123ch@gmail.com>
3216
3217 * commands/blocklist.c: Add include file <grub/command.h>, remove
3218 <grub/normal.h> and <grub/arg.h>.
3219 (grub_cmd_blocklist): Use the new command interface.
3220 (GRUB_MOD_INIT): Likewise.
3221 (GRUB_MOD_FINI): Likewise.
3222 * commands/boot.c: Likewise.
3223 * commands/cat.c: Likewise.
3224 * commands/cmp.c: Likewise.
3225 * commands/configfile.c: Likewise.
3226 * commands/crc.c: Likewise.
3227 * commands/echo.c: Likewise.
3228 * commands/halt.c: Likewise.
3229 * commands/handler.c: Likewise.
3230 * commands/hdparm.c: Likewise.
3231 * commands/help.c: Likewise.
3232 * commands/hexdump.c: Likewise.
3233 * commands/loadenv.c: Likewise.
3234 * commands/ls.c: Likewise.
3235 * commands/lsmmap.c: Likewise.
3236 * commands/lspci.c: Likewise.
3237 * commands/loadenv.c: Likewise.
3238 * commands/read.c: Likewise.
3239 * commands/reboot.c: Likewise.
3240 * commands/search.c: Likewise.
3241 * commands/sleep.c: Likewise.
3242 * commands/test.c: Likewise.
3243 * commands/usbtest.c: Likewise.
3244 * commands/videotest.c: Likewise.
3245 * commands/i386/cpuid.c: Likewise.
3246 * commands/i386/pc/halt.c: Likewise.
3247 * commands/i386/pc/play.c: Likewise.
3248 * commands/i386/pc/pxecmd.c: Likewise.
3249 * commands/i386/pc/vbeinfo.c: Likewise.
3250 * commands/i386/pc/vbetest.c: Likewise.
3251 * commands/ieee1275/suspend.c: Likewise.
3252 * disk/loopback.c: Likewise.
3253 * font/font_cmd.c: Likewise.
3254 * hello/hello.c: Likewise.
3255 * loader/efi/appleloader.c: Likewise.
3256 * loader/efi/chainloader.c: Likewise.
3257 * loader/i386/bsd.c: Likewise.
3258 * loader/i386/efi/linux.c: Likewise.
3259 * loader/i386/ieee1275/linux.c: Likewise.
3260 * loader/i386/linux.c: Likewise.
3261 * loader/i386/pc/chainloader.c: Likewise.
3262 * loader/i386/pc/linux.c: Likewise.
3263 * loader/powerpc/ieee1275/linux.c: Likewise.
3264 * loader/multiboot_loader.c: Likewise.
3265 * term/gfxterm.c: Likewise.
3266 * term/i386/pc/serial.c: Likewise.
3267 * term/terminfo.c: Likewise.
3268
3269 * term/i386/pc/vesafb.c: Removed <grub/arg.h>.
3270 * term/i386/pc/vga.c: Likewise.
3271 * video/readers/jpeg.c: Likewise.
3272 * video/readers/png.c: Likewise.
3273 * video/readers/tga.c: Likewise.
3274
3275 * util/grub-fstest (cmd_loopback): Removed.
3276 (cmd_blocklist): Likewise.
3277 (cmd_ls): Likewise.
3278 (grub_register_command): Likewise.
3279 (grub_unregister_command): Likewise.
3280 (execute_command): Use grub_command_find to locate command and execute
3281 it.
3282
3283 * include/grub/efi/chainloader.h: Removed.
3284 * loader/efi/chainloader_normal.c: Likewise.
3285 * loader/i386/bsd_normal.c: Likewise.
3286 * loader/i386/pc/chainloader_normal.c: Likewise.
3287 * loader/i386/pc/multiboot_normal.c: Likewise.
3288 * loader/linux_normal.c: Likewise.
3289 * loader/multiboot_loader_normal.c: Likewise.
3290 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
3291
3292 * gencmdlist.sh: Scan new registration command grub_register_extcmd
3293 and grub_register_command_p1.
3294
3295 * conf/common.rmk (grub_fstest_SOURCES): Add kern/list.c,
3296 kern/command.c, lib/arg.c and commands/extcmd.c.
3297 (pkglib_MODULES): Remove boot.mod, and minicmd.mod and extcmd.mod.
3298 (minicmd_mod_SOURCES): New variable.
3299 (minicmd_mod_CFLAGS): Likewise.
3300 (minicmd_mod_LDFLAGS): Likewise.
3301 (extcmd_mod_SOURCES): Likewise.
3302 (extcmd_mod_CFLAGS): Likewise.
3303 (extcmd_mod_LDFLAGS): Likewise.
3304 (boot_mod_SOURCES): Removed.
3305 (boot_mod_CFLAGS): Likewise.
3306 (boot_mod_LDFLAGS): Likewise.
3307
3308 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/command.c and
3309 kern/corecmd.c.
3310 (kernel_img_HEADERS): Add command.h.
3311 (grub_emu_SOURCES): Remove commands/boot.c and normal/arg.c, add
3312 commands/minicmd.c, kern/command.c, kern/corecmd.c, commands/extcmd.c
3313 and lib/arg.c.
3314 (pkglib_MODULES): Change _linux.mod, _chain.mod, _bsd.mod and
3315 _multiboot.mod as linux.mod, chain.mod, bsd.mod and multiboot.mod,
3316 remove the corresponding normal mode command.
3317 (normal_mod_SOURCES): Remove normal/arg.c.
3318 * conf/i386-coreboot.rmk: Likewise.
3319 * conf/i386-efi.rmk: Likewise.
3320 * conf/i386-ieee1275.rmk: Likewise.
3321 * conf/powerpc-ieee1275.rmk: Likewise.
3322 * conf/x86_64-efi.rmk: Likewise.
3323
3324 * include/grub/arg.h: Move from here ...
3325 * include/grub/lib/arg.h: ... to here.
3326
3327 * normal/arg.c: Move from here ...
3328 * lib/arg.c: ... to here.
3329
3330 * commands/extcmd.c: New file.
3331 * commands/minicmd.c: Likewise.
3332 * include/grub/command.h: Likewise.
3333 * include/grub/extcmd.h: Likewise.
3334 * kern/command.c: Likewise.
3335 * kern/corecmd.c: Likewise.
3336
3337 * kern/list.c (grub_list_iterate): Return int instead of void.
3338 (grub_list_insert): New function.
3339 (grub_prio_list_insert): Likewise.
3340
3341 * kern/rescue.c (grub_rescue_command): Removed.
3342 (grub_rescue_command_list): Likewise.
3343 (grub_rescue_register_command): Likewise.
3344 (grub_rescue_unregister_command): Likewise.
3345 (grub_rescue_cmd_boot): Move to minicmd.c
3346 (grub_rescue_cmd_help): Likewise.
3347 (grub_rescue_cmd_info): Likewise.
3348 (grub_rescue_cmd_boot): Likewise.
3349 (grub_rescue_cmd_testload): Likewise.
3350 (grub_rescue_cmd_dump): Likewise.
3351 (grub_rescue_cmd_rmmod): Likewise.
3352 (grub_rescue_cmd_lsmod): Likewise.
3353 (grub_rescue_cmd_exit): Likewise.
3354 (grub_rescue_print_devices): Moved to corecmd.c.
3355 (grub_rescue_print_files): Likewise.
3356 (grub_rescue_cmd_ls): Likewise.
3357 (grub_rescue_cmd_insmod): Likewise.
3358 (grub_rescue_cmd_set): Likewise.
3359 (grub_rescue_cmd_unset): Likewise.
3360 (attempt_normal_mode): Use grub_command_find to get normal module.
3361 (grub_enter_rescue_mode): Use grub_register_core_commands to register
3362 commands, remove grub_rescue_register_command calls.
3363
3364 * normal/command.c (grub_register_command): Removed.
3365 (grub_unregister_command): Likewise.
3366 (grub_command_find): Likewise.
3367 (grub_iterate_commands): Likewise.
3368 (rescue_command): Likewise.
3369 (export_command): Moved to corecmd.c.
3370 (set_command): Removed.
3371 (unset_command): Likewise.
3372 (insmod_command): Likewise.
3373 (rmmod_command): Likewise.
3374 (lsmod_command): Likewise.
3375 (grub_command_init): Likewise.
3376
3377 * normal/completion.c (iterate_command): Use cmd->prio to check for
3378 active command.
3379 (complete_arguments): Use grub_extcmd_t structure to find options.
3380 (grub_normal_do_completion): Change function grub_iterate_commands to
3381 grub_command_iterate.
3382
3383 * normal/execute.c (grub_script_execute_cmd): No need to parse
3384 argument here.
3385
3386 * normal/main.c (grub_dyncmd_dispatcher): New function.
3387 (read_command_list): Register unload commands as dyncmd.
3388 (grub_cmd_normal): Use new command interface, register rescue,
3389 unregister normal at entry, register normal, unregister rescue at exit.
3390
3391 * include/grub/list.h (grub_list_test_t): New type.
3392 (grub_list_iterate): Return int instead of void.
3393 (grub_list_insert): New function.
3394 (GRUB_AS_NAMED_LIST_P): New macro.
3395 (GRUB_AS_PRIO_LIST): Likewise.
3396 (GRUB_AS_PRIO_LIST_P): Likewise.
3397 (GRUB_PRIO_LIST_PRIO_MASK): New constant.
3398 (GRUB_PRIO_LIST_FLAG_ACTIVE): Likewise.
3399 (grub_prio_list): New structure.
3400 (grub_prio_list_insert): New function.
3401 (grub_prio_list_remove): New inline function.
3402
3403 * include/grub/normal.h: Remove <grub/arg.h>, add <grub/command.h>.
3404 (GRUB_COMMAND_FLAG_CMDLINE): Moved to command.h.
3405 (GRUB_COMMAND_FLAG_MENU): Likewise.
3406 (GRUB_COMMAND_FLAG_BOTH): Likewise.
3407 (GRUB_COMMAND_FLAG_TITLE): Likewise.
3408 (GRUB_COMMAND_FLAG_NO_ECHO): Likewise.
3409 (GRUB_COMMAND_FLAG_NO_ARG_PARSE): Removed.
3410 (GRUB_COMMAND_FLAG_NOT_LOADED): Likewise.
3411 (grub_command): Likewise.
3412 (grub_register_command): Likewise.
3413 (grub_command_find): Likewise.
3414 (grub_iterate_commands): Likewise.
3415 (grub_command_init): Likewise.
3416 (grub_arg_parse): Likewise.
3417 (grub_arg_show_help): Likewise.
3418
3419 * include/grub/rescue.h (grub_rescue_register_command): Removed.
3420 (grub_rescue_unregister_command): Likewise.
3421
3422 * include/grub/i386/bsd.h: Remove grub_rescue_cmd_freebsd,
3423 grub_rescue_cmd_openbsd, grub_rescue_cmd_netbsd,
3424 grub_rescue_cmd_freebsd_loadenv and grub_rescue_cmd_freebsd_module.
3425
3426 * include/grub/i386/efi/loader.h: Remove grub_rescue_cmd_linux and
3427 grub_rescue_cmd_initrd.
3428 * include/grub/i386/loader.h: Likewise.
3429 * include/grub/x86_64/loader.h: Likewise.
3430
3431 * include/grub/i386/pc/chainloader.h: Remove grub_chainloader_cmd.
3432
3433 2009-03-21 Bean <bean123ch@gmail.com>
3434
3435 * util/hostdisk.c (read_device_map): Use grub_util_get_disk_size
3436 instead of stat in mingw environment.
3437
3438 * util/misc.c (grub_millisleep): Use Sleep in mingw environment.
3439
3440 * aclocal.m4 (grub_CHECK_LINK_DIR): New function.
3441
3442 * configure.ac: Use grub_CHECK_LINK_DIR to determine whether to use
3443 AC_CONFIG_LINKS.
3444
3445 2009-03-21 Bean <bean123ch@gmail.com>
3446
3447 * fs/ext2.c (grub_ext2_mount): Change errno to GRUB_ERR_BAD_FS for
3448 out of range error.
3449
3450 2009-03-18 Michel Dänzer <michel@daenzer.net>
3451
3452 * fs/ext2.c (grub_ext2_read_block): Take endianness into account when
3453 checking inode flags for EXT4_EXTENTS_FLAG.
3454
3455 2009-03-18 Robert Millan <rmh@aybabtu.com>
3456
3457 * loader/i386/linux.c: Include `<grub/video.h>' and
3458 `<grub/i386/pc/vbe.h>'..
3459 (grub_linux_setup_video): New function. Loosely based on the EFI one.
3460 (grub_linux32_boot): Attempt to configure video settings with
3461 grub_linux_setup_video().
3462 (grub_rescue_cmd_linux): Set noreturn=0 in grub_loader_set, in order
3463 to avoid grub_console_fini() which would step out of graphical mode
3464 unconditionally.
3465
3466 2009-03-14 Robert Millan <rmh@aybabtu.com>
3467
3468 Fix build on powerpc.
3469 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Add `handler.h'.
3470
3471 2009-03-12 Vladimir Serbinenko <phcoder@gmail.com>
3472
3473 * term/gfxterm.c (GRUB_MOD_FINI(term_gfxterm)): Correct name of
3474 background image command.
3475
3476 2009-03-12 Colin D Bennett <colin@gibibit.com>
3477
3478 * term/gfxterm.c (draw_cursor): Ensure character is redrawn.
3479 (grub_gfxterm_putchar): Extract pairs of identical calls to
3480 draw_cursor out of conditional blocks.
3481
3482 2009-03-11 Pavel Roskin <proski@gnu.org>
3483
3484 * fs/hfs.c (grub_hfs_strncasecmp): New function.
3485 (grub_hfs_cmp_catkeys): Use HFS specific string comparison.
3486
3487 2009-03-11 Robert Millan <rmh@aybabtu.com>
3488
3489 * loader/i386/multiboot_elfxx.c
3490 (CONCAT(grub_multiboot_load_elf, XX)): Do not reject ET_DYN files.
3491
3492 2009-03-11 Felix Zielcke <fzielcke@z-51.de>
3493
3494 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add `kern/list.c' and
3495 `kern/handler.c'.
3496
3497 2009-03-11 Robert Millan <rmh@aybabtu.com>
3498
3499 * loader/i386/multiboot.c (code_size): New variable.
3500 (grub_multiboot): Define offsets by adding to `code_size' rather
3501 than subtracting from `grub_multiboot_payload_size'. Provide
3502 4-byte alignment to MBI and others by increasing
3503 `boot_loader_name_length' appropriately.
3504
3505 * loader/i386/multiboot_elfxx.c
3506 (CONCAT(grub_multiboot_load_elf, XX)): Initialize `code_size'.
3507
3508 2009-03-09 Felix Zielcke <fzielcke@z-51.de>
3509
3510 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove duplicated
3511 `fs/ext2.c'.
3512
3513 2009-03-08 Robert Millan <rmh@aybabtu.com>
3514
3515 Make loader/i386/linux.c usable on i386-pc again.
3516
3517 * kern/i386/pc/init.c (grub_machine_init): Disable addition of low
3518 memory to heap.
3519 * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (allocate_pages): Remove
3520 `#error' stanza.
3521
3522 2009-03-07 Bean <bean123ch@gmail.com>
3523
3524 * loader/i386/efi/linux.c (grub_rescue_cmd_initrd): Fix a bug in initrd
3525 allocation.
3526
3527 2009-03-06 Robert Millan <rmh@aybabtu.com>
3528
3529 Fix display issue on terminals with screen size other than 80x25
3530 (e.g. gfxterm with resolution higher than 640x480).
3531
3532 * normal/main.c (grub_normal_init_page): Display title text in a
3533 position relative to the center of the terminal instead of relying
3534 on a hardcoded offset.
3535
3536 2009-03-04 Robert Millan <rmh@aybabtu.com>
3537
3538 Filter /etc/grub.d/10_* so that only add-ons for native kernels are
3539 installed.
3540
3541 * Makefile.in (host_kernel): New variable.
3542 * conf/common.rmk (grub-mkconfig_SCRIPTS): Conditionalize all 10_*.in
3543 scripts instead of just the windows one.
3544 * configure.ac: Initialize and AC_SUBST `host_kernel'.
3545
3546 2009-03-04 Felix Zielcke <fzielcke@z-51.de>
3547
3548 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `kern/list.c' and
3549 `kern/handler.c'.
3550 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
3551 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
3552 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
3553 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3554 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3555 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3556
3557 2009-03-04 Felix Zielcke <fzielcke@z-51.de>
3558
3559 * partmap/pc.c (pc_partition_map_iterate): Skip over invalid BSD partitions
3560 or if there's no space for the disk label and print the partition number on a
3561 invalid magic.
3562
3563 2009-03-04 Felix Zielcke <fzielcke@z-51.de>
3564
3565 * util/misc.c: Include <time.h>.
3566 (grub_millisleep): New function.
3567
3568 2009-03-04 Bean <bean123ch@gmail.com>
3569
3570 * configure.ac: Only test -mcmodel=large option in x86_64-efi, also add
3571 another option -mno-red-zone.
3572
3573 * commands/handler.c: Change module description.
3574
3575 * kern/handler.c: Add missing space at the end of description line.
3576
3577 * kern/list.c: Likewise.
3578
3579 2009-03-03 Robert Millan <rmh@aybabtu.com>
3580
3581 Move more components to the relocation area, and fix mbi pointer
3582 handling to use the destination rather than the origin (thanks to
3583 Vladimir Serbinenko for spotting).
3584
3585 * loader/i386/multiboot.c (mbi_dest): New variable.
3586 (grub_multiboot_boot): Use `mbi_dest' instead of `mbi'.
3587 (grub_multiboot): Put cmdline, boot_loader_name and mbi in the
3588 relocation area.
3589
3590 2009-03-01 Bean <bean123ch@gmail.com>
3591
3592 * include/grub/efi/api.h (GRUB_EFI_MPS_TABLE_GUID): New constant.
3593 (GRUB_EFI_ACPI_TABLE_GUID): Likewise.
3594 (GRUB_EFI_ACPI_20_TABLE_GUID): Likewise.
3595 (GRUB_EFI_SMBIOS_TABLE_GUID): Likewise.
3596
3597 * loader/i386/efi/linux.c (acpi_guid): New variable.
3598 (acpi_guid): Likewise.
3599 (EBDA_SEG_ADDR): New constant.
3600 (LOW_MEM_ADDR): Likewise.
3601 (FAKE_EBDA_SEG): Likewise.
3602 (fake_bios_data): New function.
3603 (grub_linux_boot): Call fake_bios_data.
3604
3605 2009-03-01 Bean <bean123ch@gmail.com>
3606
3607 * commands/terminal.c: Removed.
3608
3609 * commands/handler.c: New file.
3610
3611 * include/grub/list.h: Likewise.
3612
3613 * include/grub/handler.h: Likewise.
3614
3615 * kern/list.c: Likewise.
3616
3617 * kern/handler.c: Likewise.
3618
3619 * kern/term.h: Include header file <grub/handler.h>.
3620 (grub_term_input): Move next field to the beginning.
3621 (grub_term_output): Likewise.
3622 (grub_term_input_class): New variable.
3623 (grub_term_output_class): Likewise.
3624 (grub_term_register_input): Changed to inline function.
3625 (grub_term_register_output): Likewise.
3626 (grub_term_unregister_input): Likewise.
3627 (grub_term_unregister_output): Likewise.
3628 (grub_term_set_current_input): Likewise.
3629 (grub_term_set_current_output): Likewise.
3630 (grub_term_get_current_input): Likewise.
3631 (grub_term_get_current_output): Likewise.
3632 (grub_term_iterate_input): Removed.
3633 (grub_term_iterate_output): Likewise.
3634
3635 * kern/term.c (grub_term_list_input): Removed.
3636 (grub_term_list_output): Likewise.
3637 (grub_term_input_class): New variable.
3638 (grub_term_output_class): Likewise.
3639 (grub_cur_term_input): Change variable as macro.
3640 (grub_cur_term_output): Likewise.
3641 (grub_term_register_input): Removed.
3642 (grub_term_register_output): Likewise.
3643 (grub_term_unregister_input): Likewise.
3644 (grub_term_unregister_output): Likewise.
3645 (grub_term_set_current_input): Likewise.
3646 (grub_term_set_current_output): Likewise.
3647 (grub_term_iterate_input): Likewise.
3648 (grub_term_iterate_output): Likewise.
3649 (grub_term_get_current_input): Likewise.
3650 (grub_term_get_current_output): Likewise.
3651
3652 * util/grub-editenv.c: Include header file <grub/handler.h>.
3653 (grub_term_get_current_input): Removed.
3654 (grub_term_get_current_output): Likewise.
3655 (grub_term_input_class): New variable.
3656 (grub_term_output_class): Likewise.
3657
3658 * util/grub-fstest.c (grub_term_get_current_input): Removed.
3659 (grub_term_get_current_output): Likewise.
3660 (grub_term_input_class): New variable.
3661 (grub_term_output_class): Likewise.
3662
3663 * util/grub-probe.c (grub_term_get_current_input): Removed.
3664 (grub_term_get_current_output): Likewise.
3665 (grub_term_input_class): New variable.
3666 (grub_term_output_class): Likewise.
3667
3668 * util/i386/pc/grub-setup.c (grub_term_get_current_input): Removed.
3669 (grub_term_get_current_output): Likewise.
3670 (grub_term_input_class): New variable.
3671 (grub_term_output_class): Likewise.
3672
3673 * conf/common.rmk (pkglib_MODULES): Replace terminal with handler.
3674 (terminal_mod_SOURCES): Likewise.
3675 (terminal_mod_CFLAGS): Likewise.
3676 (terminal_mod_LDFLAGS): Likewise.
3677
3678 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace terminal.c with
3679 handler.c.
3680 (kernel_img_SOURCES): Add list.c and handler.c.
3681 (kernel_img_HEADERS): Add list.h and handler.h.
3682
3683 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
3684 handler.c.
3685 (kernel_mod_SOURCES): Add list.c and handler.c.
3686 (kernel_mod_HEADERS): Add list.h and handler.h.
3687
3688 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Replace terminal.c with
3689 handler.c.
3690 (kernel_elf_SOURCES): Add list.c and handler.c.
3691 (kernel_elf_HEADERS): Add list.h and handler.h.
3692
3693 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
3694 handler.c.
3695 (kernel_elf_SOURCES): Add list.c and handler.c.
3696 (kernel_elf_HEADERS): Add list.h and handler.h.
3697
3698 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
3699 handler.c.
3700 (kernel_mod_SOURCES): Add list.c and handler.c.
3701 (kernel_mod_HEADERS): Add list.h and handler.h.
3702
3703 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
3704 handler.c.
3705 (kernel_elf_SOURCES): Add list.c and handler.c.
3706 (kernel_elf_HEADERS): Add list.h and handler.h.
3707
3708 2009-02-27 Robert Millan <rmh@aybabtu.com>
3709
3710 Factorize elf32 / elf64 code in Multiboot loader. This will
3711 prevent it from getting out of sync again.
3712
3713 * loader/i386/multiboot.c (grub_multiboot_is_elf32,
3714 grub_multiboot_load_elf32, grub_multiboot_is_elf64,
3715 grub_multiboot_load_elf64): Move from here ...
3716 * loader/i386/multiboot_elfxx.c (grub_multiboot_is_elf,
3717 grub_multiboot_load_elf): ... to here (new file).
3718
3719 2009-02-27 Robert Millan <rmh@aybabtu.com>
3720
3721 * util/grub.d/10_linux.in: Rename "single-user mode" to
3722 "recovery mode".
3723
3724 2009-02-27 Vladimir Serbinenko <phcoder@gmail.com>
3725
3726 Don't leak in SCSI code.
3727 * disk/scsi.c (grub_scsi_close): free `scsi'.
3728
3729 2009-02-27 Robert Millan <rmh@aybabtu.com>
3730
3731 * loader/i386/pc/multiboot.c: Move from here ...
3732 * loader/i386/multiboot.c: ... to here. Update all users.
3733
3734 2009-02-27 Robert Millan <rmh@aybabtu.com>
3735
3736 Patch from Alexandre Bique <bique.alexandre@gmail.com>
3737 * util/i386/pc/grub-setup.c (setup): Fix directory path.
3738
3739 2009-02-27 Krzysztof Smiechowicz <deadwood@wp.pl>
3740
3741 * fs/sfs.c (grub_sfs_read_extent): Correction to traversing extent
3742 b-tree.
3743
3744 2009-02-27 Robert Millan <rmh@aybabtu.com>
3745
3746 * kern/misc.c (grub_strtoull): Fix bug (it mistakenly parsed the
3747 `0x' qualifier as 0 when base is specified as parameter).
3748
3749 2009-02-24 Bean <bean123ch@gmail.com>
3750
3751 * configure.ac: Check for -mcmodel=large in x86_64 target.
3752
3753 * include/grub/efi/api.h (efi_call_10): New macro.
3754 (efi_wrap_10): New function.
3755
3756 * include/grub/efi/pe32.h (GRUB_PE32_REL_BASE_HIGH): New macro.
3757 (GRUB_PE32_REL_BASED_HIGH): Likewise.
3758 (GRUB_PE32_REL_BASED_LOW): Likewise.
3759 (GRUB_PE32_REL_BASED_HIGHLOW): Likewise.
3760 (GRUB_PE32_REL_BASED_HIGHADJ): Likewise.
3761 (GRUB_PE32_REL_BASED_MIPS_JMPADDR): Likewise.
3762 (GRUB_PE32_REL_BASED_SECTION): Likewise.
3763 (GRUB_PE32_REL_BASED_REL): Likewise.
3764 (GRUB_PE32_REL_BASED_IA64_IMM64): Likewise.
3765 (GRUB_PE32_REL_BASED_DIR64): Likewise.
3766 (GRUB_PE32_REL_BASED_HIGH3ADJ): Likewise.
3767
3768 * kern/x86_64/dl.c (grub_arch_dl_relocate_symbols): Fixed relocation
3769 issue.
3770
3771 * kern/x86_64/efi/callwrap.S (efi_wrap_6): Bug fix.
3772 (efi_wrap_10): New function.
3773
3774 * kern/x86_64/efi/startup.S (codestart): Use relative addressing.
3775
3776 * loader/efi/appleloader.c (devpath_5): Add support for late 2008
3777 MB/MBP model (NV chipset).
3778 (devdata_devs): Add devpath_5 to the list.
3779
3780 * load/i386/efi/linux.c (video_base): Remove variable.
3781 (RGB_MASK): New macro.
3782 (RGB_MAGIC): Likewise.
3783 (LINE_MIN): Likewise.
3784 (LINE_MAX): Likewise.
3785 (FBTEST_STEP): Likewise.
3786 (FBTEST_COUNT): Likewise.
3787 (fb_list): New variable.
3788 (grub_find_video_card): Remove function.
3789 (find_framebuf): New function.
3790 (grub_linux_setup_video): Use find_framebuf to get frame buffer and
3791 line length.
3792
3793 * util/i386/efi/grub-mkimage.c (grub_reloc_section): Fix relocation
3794 problem for x86_64.
3795
3796 2009-02-22 Vesa Jääskeläinen <chaac@nic.fi>
3797
3798 Patch #25624 by Kevin Lacquement <kevin@lacqui>.
3799
3800 * util/grub-mkconfig.in: Use ${grub_mkdevicemap} instead of hard
3801 coding tool name.
3802
3803 2009-02-22 Robert Millan <rmh@aybabtu.com>
3804
3805 * include/multiboot.h (MULTIBOOT_INFO_ALIGN): New macro.
3806 * loader/i386/pc/multiboot.c (grub_multiboot): Include the MBI
3807 in our relocation, instead of using it directly from heap. Also
3808 use `MULTIBOOT_INFO_ALIGN' to ensure it is aligned.
3809
3810 2009-02-21 Robert Millan <rmh@aybabtu.com>
3811
3812 Implement USB keyboard support (based on patch by Marco Gerards)
3813
3814 * conf/i386-pc.rmk (pkglib_MODULES): Add `usb_keyboard.mod'.
3815 (usb_keyboard_mod_SOURCES, usb_keyboard_mod_CFLAGS)
3816 (usb_keyboard_mod_LDFLAGS): New variables.
3817
3818 * term/usb_keyboard.c: New file.
3819
3820 2009-02-14 Vladimir Serbinenko <phcoder@gmail.com>
3821
3822 Corrected wrong declaration
3823
3824 * kern/disk.c: corrected declaration of grub_disk_ata_pass_through.
3825
3826 2009-02-14 Christian Franke <franke@computer.org>
3827
3828 * commands/lspci.c (grub_pci_classes): Add `SATA Controller'.
3829 (grub_lspci_iter): Print class code and programming interface byte.
3830
3831 2009-02-14 Christian Franke <franke@computer.org>
3832
3833 * gendistlist.sh: Ignore `.svn' directories.
3834
3835 2009-02-14 Felix Zielcke <fzielcke@z-51.de>
3836
3837 * fs/fat.c: Add 2009 to Copyright line.
3838
3839 2009-02-14 Christian Franke <franke@computer.org>
3840
3841 * commands/hdparm.c: New file. Provides `hdparm' command
3842 which sends ATA commands via grub_disk_ata_pass_through ().
3843
3844 * conf/i386-pc.rmk: Add ata_pthru.mod and hdparm.mod.
3845
3846 * disk/ata.c: Include <grub/ata.h>. Move <grub/misc.h>
3847 and <grub/cpu/io.h> to include/grub/ata.h.
3848 (enum grub_ata_addressing_t): Move to include/grub/ata.h.
3849 (GRUB_CDROM_SECTOR_SIZE): Remove.
3850 (GRUB_ATA_*): Move to include/grub/ata.h.
3851 (GRUB_ATAPI_*): Likewise.
3852 (enum grub_ata_commands): Likewise.
3853 (enum grub_ata_timeout_milliseconds): Likewise.
3854 (struct grub_ata_device): Likewise.
3855 (grub_ata_regset): Likewise.
3856 (grub_ata_regget): Likewise.
3857 (grub_ata_regset2): Likewise.
3858 (grub_ata_regget2): Likewise.
3859 (grub_ata_check_ready): Likewise.
3860 (grub_ata_wait_not_busy): Remove static, exported in
3861 include/grub/ata.h.
3862 (grub_ata_wait_drq): Likewise.
3863 (grub_ata_pio_read): Likewise.
3864
3865 * disk/ata_pthru.c: New file. Provides grub_ata_pass_through ()
3866 function for hdparm.mod.
3867
3868 * include/grub/ata.h: New file, contains declarations from
3869 disk/ata.c.
3870 (enum grub_ata_commands): Add new commands for commands/hdparm.c.
3871
3872 * include/grub/disk.h (grub_disk_ata_pass_through_parms): New struct.
3873 (grub_disk_ata_pass_through): New exported variable.
3874
3875 * kern/disk.c (grub_disk_ata_pass_through): New variable.
3876
3877 2009-02-13 Colin D Bennett <colin@gibibit.com>
3878
3879 Support multiple fallback entries, and provide an API to support
3880 executing default+fallback menu entries. Renamed the `terminal' menu
3881 viewer to `text'.
3882
3883 * include/grub/normal.h (grub_normal_text_menu_viewer): New global
3884 variable declaration.
3885 (grub_menu_execute_callback): New structure declaration.
3886 (grub_menu_execute_callback_t): New typedef.
3887 (grub_menu_execute_with_fallback): New function declaration.
3888 (grub_menu_get_entry): Likewise.
3889 (grub_menu_get_timeout): Likewise.
3890 (grub_menu_set_timeout): Likewise.
3891
3892 * normal/main.c (GRUB_MOD_INIT(normal)): Refer to new variable name.
3893
3894 * normal/menu.c (grub_wait_after_message): Moved to
3895 `normal/menu_text.c'.
3896 (draw_border): Likewise.
3897 (print_message): Likewise.
3898 (print_entry): Likewise.
3899 (print_entries): Likewise.
3900 (grub_menu_init_page): Likewise.
3901 (get_entry_number): Likewise.
3902 (print_timeout): Likewise.
3903 (run_menu): Likewise.
3904 (grub_menu_execute_entry): Likewise.
3905 (show_text_menu): Likewise.
3906 (get_and_remove_first_entry_number): New function.
3907 (grub_menu_execute_with_fallback): Likewise.
3908 (get_entry): Renamed to ...
3909 (grub_menu_get_entry): .. this and made it global.
3910 (get_timeout): Renamed to ...
3911 (grub_menu_get_timeout): ... this and made it global.
3912 (set_timeout): Renamed to ...
3913 (grub_menu_set_timeout): ... this and made it global.
3914 (grub_normal_terminal_menu_viewer): Renamed to ...
3915 (grub_normal_text_menu_viewer): ... this.
3916
3917 * normal/menu_text.c: New file. Extracted text-menu-specific code
3918 from normal/menu.c.
3919
3920 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add `normal/menu_text.c'.
3921 (normal_mod_SOURCES): Likewise.
3922
3923 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
3924 (normal_mod_SOURCES): Likewise.
3925
3926 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3927 (normal_mod_SOURCES): Likewise.
3928
3929 * conf/i386-pc.rmk, (grub_emu_SOURCES): Likewise.
3930 (normal_mod_SOURCES): Likewise.
3931
3932 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3933 (normal_mod_SOURCES): Likewise.
3934
3935 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3936 (normal_mod_SOURCES): Likewise.
3937
3938 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
3939 (normal_mod_SOURCES): Likewise.
3940
3941 2009-02-11 Robert Millan <rmh@aybabtu.com>
3942
3943 * util/grub.d/00_header.in: Update old reference to `font' command.
3944
3945 2009-02-10 Felix Zielcke <fzielcke@z-51.de>
3946
3947 * fs/fat.c (grub_fat_mount): Fix wrong comparison.
3948
3949 Based on patch from Javier Martín.
3950
3951 2009-02-09 Felix Zielcke <fzielcke@z-51.de>
3952
3953 * conf/common.rmk (grub_probe_SOURCES): Move fs/ext2.c before fs/fat.c
3954 to avoid false positives with FAT.
3955 (grub_fstest_SOURCES): Likewise.
3956 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
3957 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
3958 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3959 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
3960 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3961 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3962
3963 2009-02-09 Felix Zielcke <fzielcke@z-51.de>
3964
3965 * fs/fat.c (grub_fat_mount): Try to avoid false positives by checking
3966 bpb.version_specific.fat12_or_fat16.fstype and
3967 bpb.version_specific.fat32.fstype.
3968
3969 2009-02-08 Robert Millan <rmh@aybabtu.com>
3970
3971 * fs/tar.c: Replace "fs/cpio.c" with "cpio.c".
3972
3973 2009-02-08 Robert Millan <rmh@aybabtu.com>
3974
3975 * Makefile.in (host_os, host_cpu): New variables.
3976 (target_os): Remove. Update all users.
3977
3978 2009-02-08 Marco Gerards <marco@gnu.org>
3979
3980 * Makefile.in (enable_grub_emu_usb): New variable.
3981 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/scsi.c'.
3982 (grub_emu_SOURCES) [grub_emu_SOURCES]: Add `disk/usbms.c',
3983 `util/usb.c', `bus/usb/usb.c' and `commands/usbtest.c'.
3984 (grub_emu_LDFLAGS): Add `$(LIBUSB)'.
3985 (pkglib_MODULES): Add `usb.mod', `uhci.mod', `ohci.mod',
3986 `usbtest.mod' and `usbms.mod'.
3987 (usb_mod_SOURCES, usb_mod_CFLAGS, usb_mod_LDFLAGS)
3988 (usbtest_mod_SOURCES, usbtest_mod_CFLAGS, usbtest_mod_LDFLAGS)
3989 (uhci_mod_SOURCES, uhci_mod_CFLAGS, uhci_mod_LDFLAGS,
3990 (ohci_mod_SOURCES, ohci_mod_CFLAGS, ohci_mod_LDFLAGS)
3991 (usbms_mod_SOURCES, usbms_mod_CFLAGS, usbms_mod_LDFLAGS): New
3992 variables.
3993
3994 * disk/usbms.c: New file.
3995
3996 * include/grub/usb.h: Likewise.
3997
3998 * include/grub/usbtrans.h: Likewise.
3999
4000 * include/grub/usbdesc.h: Likewise.
4001
4002 * bus/usb/usbtrans.c: Likewise.
4003
4004 * bus/usb/ohci.c: Likewise.
4005
4006 * bus/usb/uhci.c: Likewise.
4007
4008 * bus/usb/usbhub.c: Likewise.
4009
4010 * bus/usb/usb.c: Likewise.
4011
4012 * commands/usbtest.c: Likewise.
4013
4014 * util/usb.c: Likewise.
4015
4016 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_IO'.
4017
4018 * configure.ac: Test for libusb presence.
4019
4020 * util/grub-emu.c (main) [HAVE_LIBUSB_H]: Call `grub_libusb_init'.
4021
4022 2009-02-08 Vesa Jääskeläinen <chaac@nic.fi>
4023
4024 * kern/mm.c: Add more comments.
4025
4026 2009-02-08 Robert Millan <rmh@aybabtu.com>
4027
4028 Patch from Javier Martín.
4029 * fs/ext2.c (EXT2_DRIVER_SUPPORTED_INCOMPAT): Add
4030 `EXT4_FEATURE_INCOMPAT_FLEX_BG'.
4031
4032 2009-02-08 Robert Millan <rmh@aybabtu.com>
4033
4034 * fs/cpio.c: Split tar functionality to ...
4035 * fs/tar.c: ... here (new file). Update all users.
4036
4037 2009-02-07 Robert Millan <rmh@aybabtu.com>
4038
4039 * fs/ext2.c (grub_ext2_mount): Avoid mounting filesystems with
4040 backward-incompatible features.
4041
4042 Based on patch from Javier Martín, with some adjustments.
4043
4044 2009-02-07 Michael Scherer <misc@mandriva.org>
4045
4046 * fs/hfs.c (grub_hfsplus_iterate_dir): Treat hfs+ as case insensitive.
4047
4048 2009-02-07 Robert Millan <rmh@aybabtu.com>
4049
4050 * conf/common.rmk (grub_probe_SOURCES, grub_fstest_SOURCES): Move
4051 position of `disk/lvm.c' to ensure grub_init_all() always picks it
4052 after the RAID stuff.
4053
4054 2009-02-05 Vesa Jääskeläinen <chaac@nic.fi>
4055
4056 Fixes problem when running vbetest command as reported by
4057 Vladimir Serbinenko <phcoder@gmail.com>.
4058
4059 * (grub_vbe_set_video_mode): Fixed problem with text modes.
4060
4061 2009-02-04 Felix Zielcke <fzielcke@z-51.de>
4062
4063 util/getroot.c (grub_util_get_grub_dev): Add support for /dev/mdNpN and
4064 /dev/md/NpN style mdraid devices.
4065
4066 2009-02-03 Felix Zielcke <fzielcke@z-51.de>
4067
4068 * util/unifont2pff.rb: Remove.
4069
4070 2009-02-03 Felix Zielcke <fzielcke@z-51.de>
4071
4072 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add a missing trailing
4073 `#'.
4074
4075 2009-02-03 Felix Zielcke <fzielcke@z-51.de>
4076
4077 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/menu_viewer.c'.
4078 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
4079 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
4080 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
4081 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4082 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4083 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4084
4085 2009-02-02 Christian Franke <franke@computer.org>
4086
4087 * lib/hexdump.c (hexdump): Print at most 3 lines if data is identical.
4088
4089 2009-02-01 Felix Zielcke <fzielcke@z-51.de>
4090
4091 * INSTALL: Note that we now require at least autoconf 2.59 and
4092 that LZO is optional.
4093
4094 2009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
4095
4096 Base on patch on bug #24154 created by Tomas Tintera
4097 <trosos@seznam.cz>.
4098
4099 * video/i386/pc/vbe.c (grub_video_vbe_scroll): Fix downward scrolling.
4100
4101 2009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
4102
4103 Based on patch on bug #25318 created by Bernhard Rosenkraenzer
4104 <bero@arklinux.org>.
4105
4106 * normal/parser.y (script_init): Add missing semicolon.
4107
4108 2009-01-31 Colin D Bennett <colin@gibibit.com>
4109
4110 * normal/main.c: Add include to grub/menu_viewer.h.
4111 (free_menu_entry_classes): Added.
4112 (grub_normal_menu_addentry): Added class property handling.
4113 (grub_normal_execute): Changed to use new menu viewer for menu viewing.
4114 (GRUB_MOD_INIT(normal)): Added register for text based menu viewer.
4115
4116 * normal/menu_viewer.c: New file.
4117
4118 * normal/menu.c (run_menu_entry): Renamed to ...
4119 (grub_menu_execute_entry): ... this and made it as global.
4120 (grub_menu_run): Renamed to ...
4121 (show_text_menu): ... this and made it local.
4122 (show_text_menu): Adapt to new function names.
4123 (grub_normal_terminal_menu_viewer): New global variable.
4124
4125 * include/grub/menu.h: New file.
4126
4127 * include/grub/menu_viewer.h: New file.
4128
4129 * include/grub/normal.h: Added include to grub/menu.h.
4130 (grub_menu_entry): Moved to include/grub/menu.h.
4131 (grub_menu_entry_t): Likewise.
4132 (grub_menu): Likewise.
4133 (grub_menu_t): Likewise.
4134 (grub_normal_terminal_menu_viewer): Added.
4135 (grub_menu_execute_entry): Likewise.
4136 (grub_menu_run): Removed.
4137
4138 * DISTLIST: Added include/grub/menu.h.
4139 Added include/grub/menu_viewer.h.
4140 Added normal/menu_viewer.c.
4141
4142 2009-01-31 Vesa Jääskeläinen <chaac@nic.fi>
4143
4144 * normal/execute.c (grub_script_execute_menuentry): Changed to use
4145 arglist for menutitle arguments.
4146
4147 * normal/main.c (grub_normal_menu_addentry): Likewise.
4148
4149 * normal/parser.y (menuentry): Likewise.
4150
4151 * normal/script.c (grub_script_create_cmdmenu): Likewise.
4152
4153 * include/grub/script.h (grub_script_cmd_menuentry): Likewise.
4154 (grub_script_create_cmdmenu): Likewise.
4155
4156 * include/grub/normal.h (grub_normal_menu_addentry): Likewise.
4157
4158 * conf/i386-pc.rmk (normal_mod_SOURCES): Adapt Colin D Bennett's
4159 changes.
4160
4161 * conf/x86_64-efi.rmk (normal_mod_SOURCES): Likewise.
4162
4163 * conf/i386-coreboot.rmk (normal_mod_SOURCES): Likewise.
4164
4165 * conf/i386-efi.rmk (normal_mod_SOURCES): Likewise.
4166
4167 * conf/i386-ieee1275.rmk (normal_mod_SOURCES): Likewise.
4168
4169 * conf/powerpc-ieee1275.rmk (normal_mod_SOURCES): Likewise.
4170
4171 * conf/sparc64-ieee1275.rmk (normal_mod_SOURCES): Likewise.
4172
4173 2009-01-30 Christian Franke <franke@computer.org>
4174
4175 * normal/arg.c (grub_arg_show_help): Add indentation if '\n' appears
4176 in option help text.
4177
4178 2009-01-27 Pavel Roskin <proski@gnu.org>
4179
4180 * disk/fs_uuid.c (search_fs_uuid): Ignore case of the UUID.
4181
4182 2009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
4183
4184 * commands/lsmmap.c: Add include to grub/machine/memory.h.
4185
4186 * fs/i386/pc/pxe.c (grub_pxefs_open): Fix sign problem.
4187
4188 * term/i386/pc/at_keyboard.c (GRUB_MOD_FINI(at_keyboard)): Use proper
4189 unregister function.
4190
4191 2009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
4192
4193 * disk/scsi.c (grub_scsi_read): Fix sign problem.
4194
4195 * term/i386/pc/vga_text.c (grub_vga_text_init_fini). Fix declaration.
4196
4197 * util/grub-mkfont.c (usage): Fix typo.
4198
4199 * util/elf/grub-mkimage.c (load_modules): Fix warning.
4200
4201 2009-01-26 Daniel Mierswa <impulze@impulze.org>
4202
4203 * fs/fat.c (grub_fat_uuid): Fix shift of the first two bytes.
4204
4205 * commands/search.c (search_fs_uuid): Ignore case of the UUID.
4206
4207 * kern/misc.c (grub_strcasecmp): New function.
4208 (grub_strcasecmp): Use grub_size_t instead of int for length.
4209 Fix return value.
4210 * include/grub/misc.h: Update function prototypes.
4211
4212 2009-01-26 Robert Millan <rmh@aybabtu.com>
4213
4214 * configure.ac: Fix cross-compilation check.
4215
4216 2009-01-22 Christian Franke <franke@computer.org>
4217
4218 * kern/misc.c (grub_vsprintf): Fix size and termination of `format2'
4219 (precision) digit string. Allow `.format2' without `format1' (width).
4220 Limit input chars for `%s' output to `format2' if specified. This is
4221 compatible with standard printf ().
4222
4223 2009-01-22 Christian Franke <franke@computer.org>
4224
4225 * disk/ata.c (grub_ata_wait_status): Replace by ...
4226 (grub_ata_wait_not_busy): ... this function. Checks only BSY bit,
4227 other status bits may be invalid while BSY is asserted.
4228 (grub_ata_check_ready): New function.
4229 (grub_ata_cmd): Removed.
4230 (grub_ata_wait_drq): New function.
4231 (grub_ata_strncpy): Remove inline.
4232 (grub_ata_pio_read): Reduce to actual block transfer. BSY wait
4233 and error check now done by grub_ata_wait_drq ().
4234 (grub_ata_pio_write): Likewise.
4235 (grub_atapi_identify): Set DEV before check for !BSY. Use
4236 grub_ata_wait_drq () to wait for data.
4237 (grub_ata_device_initialize): Add status register check to
4238 detect missing SATA slave devices. Add debug messages.
4239 (grub_atapi_wait_drq): Use grub_ata_wait_not_busy ().
4240 (grub_atapi_packet): Set DEV before check for !BSY. Replace
4241 transfer loop by grub_ata_pio_write ().
4242 (grub_ata_identify): Set DEV before check for !BSY. Use
4243 grub_ata_wait_drq () to wait for data.
4244 (grub_ata_setaddress): Set DEV before check for !BSY.
4245 (grub_ata_readwrite): Remove duplicate code, handle batch/rest and
4246 read/write in one loop. Fix invalid command on write. Fix incomplete
4247 command on (size % batch) == 0. Add missing error check after write of
4248 last block. Add debug messages.
4249 (grub_atapi_read): Replace transfer loop by grub_ata_pio_read ().
4250
4251 2009-01-19 Christian Franke <franke@computer.org>
4252
4253 * disk/ata.c (GRUB_ATAPI_REG_*): New defines.
4254 (GRUB_ATAPI_IREASON_*): Likewise.
4255 (grub_ata_pio_write): Fix timeout error return.
4256 (grub_atapi_identify): Add grub_ata_wait () after cmd.
4257 (grub_atapi_wait_drq): New function.
4258 (grub_atapi_packet): New parameter `size'.
4259 Use grub_atapi_wait_drq () and direct write instead of
4260 grub_ata_pio_write ().
4261 (grub_atapi_read): Replace grub_ata_pio_read () by a loop which
4262 reads the number of bytes requested by the device for each DRQ
4263 assertion.
4264 (grub_atapi_write): Remove old implementation, return not
4265 implemented instead.
4266
4267 2009-01-19 Christian Franke <franke@computer.org>
4268
4269 * disk/scsi.c (grub_scsi_read10): Use scsi->blocksize instead
4270 of 512 to calculate data size.
4271 (grub_scsi_read12): Likewise.
4272 (grub_scsi_write10): Likewise.
4273 (grub_scsi_write12): Likewise.
4274 (grub_scsi_read): Adjust size according to blocksize.
4275 Add checks for invalid blocksize and unaligned transfer.
4276
4277 2009-01-19 Vesa Jääskeläinen <chaac@nic.fi>
4278
4279 * font/font.c (grub_font_loader_init): Re-position unknown glyph.
4280
4281 * term/gfxterm.c (write_char): Fix background rendering for wide
4282 width glyphs.
4283
4284 2009-01-19 Robert Millan <rmh@aybabtu.com>
4285
4286 * config.guess: Update to latest version from config git.
4287 * config.sub: Likewise.
4288
4289 2009-01-17 Felix Zielcke <fzielcke@z-51.de>
4290
4291 * Makefile.in: Change font compilation to use new grub-mkfont instead
4292 of java version.
4293
4294 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: Remove.
4295 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
4296 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
4297 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
4298 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
4299 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
4300 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
4301 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
4302 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
4303
4304 2009-01-16 Christian Franke <franke@computer.org>
4305
4306 * disk/ata.c (enum grub_ata_commands): Remove EXEC_DEV_DIAGNOSTICS.
4307 (enum grub_ata_timeout_milliseconds): New enum.
4308 (grub_ata_wait_status): Add parameter milliseconds.
4309 (grub_ata_cmd): Remove variable `err'. Remove wait for !DRQ to allow
4310 recovery from timed-out commands.
4311 (grub_ata_pio_read): Add parameter milliseconds. Fix error return,
4312 return grub_errno instead of REG_ERROR.
4313 (grub_ata_pio_write): Add parameter milliseconds.
4314 (grub_atapi_identify): Fix size of ATAPI IDENTIFY sector.
4315 Pass milliseconds to grub_ata_wait_status () and
4316 grub_ata_pio_read ().
4317 (grub_atapi_packet): Pass milliseconds to grub_ata_pio_write ().
4318 (grub_ata_identify): Remove variable `ataerr'. Pass milliseconds to
4319 grub_ata_wait_status (). Fix IDENTIFY timeout check.
4320 (grub_ata_device_initialize): Remove EXECUTE DEVICE DIAGNOSTICS.
4321 It is not suitable for device detection, because DEV bit is ignored,
4322 the command may run too long, and not all devices set the signature
4323 properly.
4324 (grub_ata_pciinit): Clear grub_errno before grub_ata_device_initialize ().
4325 (grub_ata_setaddress): Pass milliseconds to grub_ata_wait_status ().
4326 Fix device selection, DEV bit must be set first to address the registers
4327 of the correct device.
4328 (grub_ata_readwrite): Pass milliseconds to grub_ata_wait_status () and
4329 grub_ata_pio_read/write ().
4330 (grub_atapi_read): Pass milliseconds to grub_ata_pio_read ().
4331 (grub_atapi_write): Pass milliseconds to grub_ata_pio_write ().
4332
4333 2009-01-13 Carles Pina i Estany <carles@pina.cat>
4334
4335 * util/grub-editenv.c (main): Use fseeko(), not fseek().
4336
4337 2009-01-13 Bean <bean123ch@gmail.com>
4338
4339 * util/grub-mkfont.c (write_font): forget to remove some debug code.
4340
4341 2009-01-13 Bean <bean123ch@gmail.com>
4342
4343 * Makefile.in: (enable_grub_mkfont): New variable.
4344 (freetype_cflags): Likewise.
4345 (freetype_libs): Likewise.
4346
4347 * common.rmk (bin_UTILITIES): Add `grub-mkfont' if requested.
4348 (grub_mkfont_SOURCES): New variable.
4349 (grub_mkfont_CFLAGS): Likewise.
4350 (grub_mkfont_LDFLAGS): Likewise.
4351
4352 * configure.ac (--enable-grub-mkfont): New option. Check for freetype2
4353 library if `--enable-grub-mkfont' is requested.
4354 (enable_grub_mkfont): New variable.
4355 (freetype_cflags): Likewise.
4356 (freetype_libs): Likewise.
4357
4358 * util/grub-mkfont.c: New file.
4359
4360 2009-01-12 Christian Franke <franke@computer.org>
4361
4362 * disk/ata.c (grub_ata_pciinit): Fix bit numbers of compatibility
4363 mode check. Fix setting of compat_use[].
4364
4365 2009-01-10 Robert Millan <rmh@aybabtu.com>
4366
4367 Update a few copyright years which we forgot to do in 2008 (only for
4368 files whose changes made in 2008 were copyright-significant)
4369
4370 * Makefile.in: Add 2008 to Copyright line.
4371 * disk/ieee1275/ofdisk.c: Likewise.
4372 * disk/efi/efidisk.c: Likewise.
4373 * kern/dl.c: Likewise.
4374 * kern/sparc64/ieee1275/init.c: Likewise.
4375 * kern/mm.c: Likewise.
4376 * kern/efi/mm.c: Likewise.
4377 * boot/i386/pc/boot.S: Likewise.
4378 * genfslist.sh: Likewise.
4379 * fs/iso9660.c: Likewise.
4380 * fs/hfs.c: Likewise.
4381 * fs/jfs.c: Likewise.
4382 * fs/minix.c: Likewise.
4383 * fs/ufs.c: Likewise.
4384 * gensymlist.sh.in: Likewise.
4385 * genkernsyms.sh.in: Likewise.
4386 * include/grub/misc.h: Likewise.
4387 * include/grub/types.h: Likewise.
4388 * include/grub/symbol.h: Likewise.
4389 * include/grub/elf.h: Likewise.
4390 * include/grub/kernel.h: Likewise.
4391 * include/grub/disk.h: Likewise.
4392 * include/grub/dl.h: Likewise.
4393 * include/grub/i386/linux.h: Likewise.
4394 * include/grub/i386/pc/biosdisk.h: Likewise.
4395 * include/grub/efi/api.h: Likewise.
4396 * include/grub/efi/pe32.h: Likewise.
4397 * include/grub/util/misc.h: Likewise.
4398 * normal/execute.c: Likewise.
4399 * normal/arg.c: Likewise.
4400 * normal/completion.c: Likewise.
4401 * normal/lexer.c: Likewise.
4402 * normal/parser.y: Likewise.
4403 * normal/misc.c: Likewise.
4404 * commands/i386/pc/vbeinfo.c: Likewise.
4405 * commands/hexdump.c: Likewise.
4406 * commands/terminal.c: Likewise.
4407 * commands/ls.c: Likewise.
4408 * commands/help.c: Likewise.
4409 * partmap/pc.c: Likewise.
4410 * loader/efi/chainloader.c: Likewise.
4411 * loader/multiboot_loader.c: Likewise.
4412 * loader/i386/pc/multiboot2.c: Likewise.
4413 * term/efi/console.c: Likewise.
4414 * term/i386/pc/serial.c: Likewise.
4415 * util/lvm.c: Likewise.
4416 * util/console.c: Likewise.
4417 * util/i386/efi/grub-mkimage.c: Likewise.
4418 * util/raid.c: Likewise.
4419
4420 2009-01-06 Vesa Jääskeläinen <chaac@nic.fi>
4421
4422 * commands/videotest.c: Removed include to grub/machine/memory.h.
4423
4424 * conf/i386-pc.rmk (pkglib_MODULES): Removed video.mod, gfxterm.mod,
4425 videotest.mod, bitmap.mod, tga.mod, jpeg.mod, png.mod.
4426 (video_mod_SOURCES): Removed.
4427 (video_mod_CFLAGS): Likewise.
4428 (video_mod_LDFLAGS): Likewise.
4429 (gfxterm_mod_SOURCES): Likewise.
4430 (gfxterm_mod_CFLAGS): Likewise.
4431 (gfxterm_mod_LDFLAGS): Likewise.
4432 (videotest_mod_SOURCES): Likewise.
4433 (videotest_mod_CFLAGS): Likewise.
4434 (videotest_mod_LDFLAGS): Likewise.
4435 (bitmap_mod_SOURCES): Likewise.
4436 (bitmap_mod_CFLAGS): Likewise.
4437 (bitmap_mod_LDFLAGS): Likewise.
4438 (tga_mod_SOURCES): Likewise.
4439 (tga_mod_CFLAGS): Likewise.
4440 (tga_mod_LDFLAGS): Likewise.
4441 (jpeg_mod_SOURCES): Likewise.
4442 (jpeg_mod_CFLAGS): Likewise.
4443 (jpeg_mod_LDFLAGS): Likewise.
4444 (png_mod_SOURCES): Likewise.
4445 (png_mod_CFLAGS): Likewise.
4446 (png_mod_LDFLAGS): Likewise.
4447
4448 * conf/common.rmk (pkglib_MODULES): Added video.mod, videotest.mod,
4449 bitmap.mod, tga.mod, jpeg.mod, png.mod, font.mod, gfxterm.mod
4450 (video_mod_SOURCES): Added.
4451 (video_mod_CFLAGS): Likewise.
4452 (video_mod_LDFLAGS): Likewise.
4453 (videotest_mod_SOURCES): Likewise.
4454 (videotest_mod_CFLAGS): Likewise.
4455 (videotest_mod_LDFLAGS): Likewise.
4456 (bitmap_mod_SOURCES): Likewise.
4457 (bitmap_mod_CFLAGS): Likewise.
4458 (bitmap_mod_LDFLAGS): Likewise.
4459 (tga_mod_SOURCES): Likewise.
4460 (tga_mod_CFLAGS): Likewise.
4461 (tga_mod_LDFLAGS): Likewise.
4462 (jpeg_mod_SOURCES): Likewise.
4463 (jpeg_mod_CFLAGS): Likewise.
4464 (jpeg_mod_LDFLAGS): Likewise.
4465 (png_mod_SOURCES): Likewise.
4466 (png_mod_CFLAGS): Likewise.
4467 (png_mod_LDFLAGS): Likewise.
4468 (gfxterm_mod_SOURCES): Likewise.
4469 (gfxterm_mod_CFLAGS): Likewise.
4470 (gfxterm_mod_LDFLAGS): Likewise.
4471
4472 * term/gfxterm.c: Removed include to grub/machine/memory.h,
4473 grub/machine/console.h.
4474
4475 2009-01-04 Jerone Young <jerone@gmail.com>
4476
4477 Make on screen instructions clearer
4478
4479 Based on patch created by Jidanni <jidanni@jidanni.org>
4480
4481 * normal/menu.c: print clearer instructions on the screen
4482
4483 2009-01-02 Colin D Bennett <colin@gibibit.com>
4484
4485 New font engine.
4486
4487 Additional changes by Vesa Jääskeläinen <chaac@nic.fi> to adapt to
4488 build system and fixed gfxterm.c to work with different sized fonts.
4489
4490 * configure.ac: Changed UNIFONT_HEX to UNIFONT_BDF.
4491
4492 * configure: Re-generated.
4493
4494 * DISTLIST: Removed font/manager.c.
4495 Added font/font.c.
4496 Added font/font_cmd.c.
4497
4498 * Makefile.in: Changed UNIFONT_HEX to UNIFONT_BDF. Added Font tool
4499 compilation.
4500
4501 * include/grub/misc.h (grub_utf8_to_ucs4): Changed prototype. Changed users.
4502
4503 * kern/misc.c (grub_utf8_to_ucs4): Changed prototype.
4504
4505 * kern/term.c: Changed users of grub_utf8_to_ucs4.
4506
4507 * normal/menu.c: Likewise.
4508
4509 * conf/common.rmk (font_mod_SOURCES): Removed font/manager.c.
4510 (font_mod_SOURCES): Added font/font_cmd.c, font/font.c.
4511
4512 * include/grub/font.h: Replaced with new file.
4513
4514 * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_ALPHA): Changed value.
4515 (GRUB_VIDEO_MODE_TYPE_DOUBLE_BUFFERED): Likewise.
4516 (GRUB_VIDEO_MODE_TYPE_COLOR_MASK): Likewise.
4517 (GRUB_VIDEO_MODE_TYPE_1BIT_BITMAP): Added.
4518 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED.
4519 (grub_video_mode_info): Added bg_red, bg_green, bg_blue, bg_alpha,
4520 fg_red, fg_green, fg_blue, fg_alpha.
4521 (grub_video_adapter): Removed blit_glyph.
4522 (grub_video_blit_glyph): Removed.
4523
4524 * font/manager.c: Removed file.
4525
4526 * font/font.c: New file.
4527
4528 * font/font_cmd.c: Likewise.
4529
4530 * video/video.c (grub_video_blit_glyph): Removed.
4531
4532 * video/i386/pc/vbe.c (grub_video_vbe_map_rgb): Added 1-bit support.
4533 (grub_video_vbe_map_rgba): Likewise.
4534 (grub_video_vbe_unmap_color_int): Likewise.
4535 (grub_video_vbe_blit_glyph): Removed.
4536 (grub_video_vbe_adapter): Removed blit_glyph.
4537
4538 * video/i386/pc/vbeutil.c (get_data_ptr): Added 1-bit support.
4539 (get_pixel): Likewise.
4540 (set_pixel): Likewise.
4541
4542 * commands/videotest.c (grub_cmd_videotest): Added more tests for fonts.
4543
4544 * term/gfxterm.c: Adapted to new font engine.
4545
4546 * term/i386/pc/vesafb.c: Marked as deprecated. Made it compile.
4547
4548 * term/i386/pc/vga.c: Likewise.
4549
4550 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: New file.
4551
4552 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
4553
4554 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
4555
4556 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
4557
4558 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
4559
4560 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
4561
4562 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
4563
4564 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
4565
4566 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
4567
4568 * util/grub.d/00_header.in: Changed to use new loadfont command.
4569
4570 * util/grub-mkconfig_lib.in: Changed font extension.
4571
4572 2008-12-28 Felix Zielcke <fzielcke@z-51.de>
4573
4574 * util/getroot.c (grub_util_get_grub_dev): Add support for
4575 /dev/md/dNNpNN style partitionable mdraid devices.
4576
4577 2008-12-12 Alex Smith <alex@alex-smith.me.uk>
4578
4579 * fs/i386/pc/pxe.c (grub_pxefs_open): Handle the one open connection
4580 at a time limit of the PXE TFTP API correctly.
4581 (grub_pxefs_close): Likewise.
4582
4583 2008-11-29 Robert Millan <rmh@aybabtu.com>
4584
4585 * disk/ata.c (grub_ata_pciinit): Handle errors raised by
4586 grub_ata_device_initialize() calls.
4587
4588 2008-11-28 Krzysztof Smiechowicz <deadwood@wp.pl>
4589
4590 * fs/affs.c (grub_affs_iterate_dir): Return failure when directory
4591 iteration failed.
4592 * fs/sfs.c (grub_sfs_iterate_dir): Likewise.
4593
4594 2008-11-28 Robert Millan <rmh@aybabtu.com>
4595
4596 Fix build on powerpc-ieee1275. Based on patch created by
4597 Manoel Abranches <mrabran@linux.vnet.ibm.com>.
4598 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
4599 `kern/ieee1275/mmap.c'.
4600 * include/grub/powerpc/ieee1275/memory.h: New file.
4601
4602 Provide grub-install on coreboot.
4603 * conf/i386-coreboot.rmk (sbin_SCRIPTS): Add `grub-install'.
4604 (grub_install_SOURCES): New variable.
4605 * util/i386/pc/grub-install.in: Add a few condition checks to make it
4606 usable on coreboot.
4607
4608 2008-11-25 Felix Zielcke <fzielcke@z-51.de>
4609
4610 * util/grub-fstest.c (grub_term_get_current_input): Change return type
4611 to `grub_term_input_t'.
4612 (grub_term_get_current_output): Change return type to
4613 `grub_term_output_t'.
4614
4615 2008-11-22 Robert Millan <rmh@aybabtu.com>
4616
4617 Fix breakage on coreboot due to declaration mismatch.
4618 * term/i386/pc/vga_text.c (grub_vga_text_init_fini): New function.
4619 (grub_vga_text_term): Use grub_vga_text_init_fini() instead of
4620 grub_vga_text_cls().
4621
4622 * kern/i386/loader.S (grub_multiboot_backward_relocator): Improve
4623 comments. Avoid copying one more byte than necessary (just in case).
4624
4625 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Change link address
4626 to 0x200000 (avoids trouble with some OFW implementations, and matches
4627 with the one in Yaboot).
4628 Reported by Manoel Abranches
4629
4630 2008-11-20 Robert Millan <rmh@aybabtu.com>
4631
4632 * kern/i386/coreboot/init.c (grub_time_tics): Remove variable.
4633 (grub_get_rtc, grub_exit): Abort with grub_fatal() if called.
4634
4635 * util/grub-mkconfig_lib.in (grub_warn): New function.
4636 (convert_system_path_to_grub_path): Use grub_warn() when issuing
4637 warnings, to obtain consistent formatting.
4638 * util/grub.d/00_header.in: Likewise.
4639 * util/update-grub_lib.in: Likewise.
4640
4641 * loader/i386/linux.c (allocate_pages): Fix a warning.
4642 Move comment text to `#error' stanza.
4643
4644 Harmonize ieee1275's grub_available_iterate() with the generic
4645 grub_machine_mmap_iterate() interface (fixes a recently-introduced
4646 build problem on i386-ieee1275):
4647 * kern/ieee1275/openfw.c (grub_available_iterate): Moved from here ...
4648 * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): ... here. Add third
4649 parameter `type'. Update all users of this function.
4650 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
4651 `kern/ieee1275/mmap.c'.
4652 * kern/ieee1275/init.c
4653 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): Replace
4654 with ...
4655 (grub_machine_mmap_iterate): ... this.
4656 * include/grub/i386/pc/memory.h (grub_machine_mmap_iterate): Change
4657 return type to `grub_err_t'. Update all implementations of this
4658 function prototype.
4659 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_iterate):
4660 Likewise.
4661
4662 Add `lsmmap' command (lists firmware-provided memory map):
4663 * commands/lsmmap.c: New file.
4664 * conf/i386-pc.rmk (pkglib_MODULES): Add `lsmmap.mod'.
4665 (lsmmap_mod_SOURCES, lsmmap_mod_CFLAGS, lsmmap_mod_LDFLAGS): New
4666 variables.
4667 * conf/powerpc-ieee1275.rmk: Likewise.
4668 * conf/i386-coreboot.rmk: Likewise.
4669 * conf/i386-ieee1275.rmk: Likewise.
4670
4671 2008-11-19 Robert Millan <rmh@aybabtu.com>
4672
4673 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Fix a typo.
4674 * loader/i386/linux.c (grub_rescue_cmd_initrd): Implement a few needed
4675 constraints to initrd allocation (based on code from
4676 loader/i386/pc/linux.c). Without them, initrd was allocated too high
4677 for Linux to find it.
4678
4679 2008-11-14 Robert Millan <rmh@aybabtu.com>
4680
4681 * fs/cpio.c (grub_cpio_open): Compare `name' and `fn' by hand in
4682 order to cope with duplicate slashes.
4683
4684 2008-11-14 Robert Millan <rmh@aybabtu.com>
4685
4686 * include/grub/i386/coreboot/memory.h (GRUB_MEMORY_MACHINE_LOWER_SIZE):
4687 Redefine to match with GRUB_MEMORY_MACHINE_UPPER_START (0x100000). We
4688 don't want to mess with lower memory, because it is used in the Linux
4689 loader.
4690
4691 * loader/i386/linux.c (allocate_pages): Allocate `real_mode_mem' in
4692 an appropriate place in lower memory, between 0x10000 and 0x90000,
4693 like loader/i386/efi/linux.c does. Linux often panics if real_mode_mem
4694 is in our heap (probably as a result of it being corrupted during
4695 decompression). Add #error instance with comment to explain why this
4696 loader isn't currently usable on PC/BIOS.
4697
4698 2008-11-14 Robert Millan <rmh@aybabtu.com>
4699
4700 * term/i386/pc/serial.c [! GRUB_MACHINE_PCBIOS]
4701 (GRUB_SERIAL_PORT_NUM): Fix miscalculation.
4702
4703 2008-11-12 Robert Millan <rmh@aybabtu.com>
4704
4705 Make loader/i386/linux.c buildable on i386-pc (although disabled).
4706
4707 * include/grub/i386/pc/init.h: Include `<grub/machine/memory.h>'.
4708 (struct grub_machine_mmap_entry, grub_machine_mmap_iterate): Move
4709 from here ...
4710 * include/grub/i386/pc/memory.h: ... to here.
4711
4712 2008-11-12 Robert Millan <rmh@aybabtu.com>
4713
4714 Fix build problems on i386-ieee1275 and *-efi (introduced by vga_text
4715 split).
4716
4717 * include/grub/i386/pc/console.h: Include `<grub/i386/vga_common.h>'.
4718 (grub_console_cur_color, grub_console_real_putchar)
4719 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
4720 (grub_console_setcolorstate, grub_console_setcolor)
4721 (grub_console_getcolor): Move from here ...
4722 * include/grub/i386/vga_common.h: ... to here (new file).
4723
4724 * term/i386/pc/vga_text.c: Replace `<grub/machine/console.h>' with
4725 `<grub/i386/vga_common.h>' and `<grub/cpu/io.h>' with
4726 `<grub/i386/io.h>'.
4727 * term/i386/vga_common.c: Replace `<grub/machine/console.h>' with
4728 `<grub/i386/vga_common.h>'.
4729
4730 2008-11-12 Robert Millan <rmh@aybabtu.com>
4731
4732 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `term/i386/vga_common.c'.
4733 * conf/i386.rmk (pkglib_MODULES): Add `vga_text.mod'.
4734 (vga_text_mod_SOURCES, vga_text_mod_CFLAGS, vga_text_mod_LDFLAGS): New
4735 variables.
4736 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
4737 `term/i386/pc/console.c' with `term/i386/vga_common.c'.
4738
4739 * kern/i386/coreboot/init.c (grub_machine_init): Replace call to
4740 grub_console_init() with call to grub_vga_text_init().
4741 (grub_machine_fini): Replace call to
4742 grub_console_fini() with call to grub_vga_text_fini() and
4743 grub_at_keyboard_fini().
4744
4745 * include/grub/i386/pc/console.h: Include `<grub/term.h>'.
4746 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
4747 (grub_console_setcolorstate, grub_console_setcolor)
4748 (grub_console_getcolor): New function prototypes.
4749
4750 * term/i386/pc/vga_text.c: Include `<grub/dl.h>'.
4751 (grub_vga_text_getxy, grub_vga_text_gotoxy, grub_vga_text_cls)
4752 (grub_vga_text_setcursor): Static-ize.
4753 (grub_vga_text_term): New structure.
4754 (GRUB_MOD_INIT(vga_text), GRUB_MOD_FINI(vga_text)): New functions.
4755
4756 * term/i386/pc/console.c: Remove `<grub/machine/machine.h>'.
4757 (grub_console_cur_color, grub_console_standard_color)
4758 (grub_console_normal_color, grub_console_highlight_color)
4759 (map_char, grub_console_putchar, grub_console_getcharwidth)
4760 (grub_console_getwh, grub_console_setcolorstate, grub_console_setcolor)
4761 (grub_console_getcolor): Move from here ...
4762 * term/i386/vga_common.c: ... to here (same function names).
4763
4764 2008-11-12 Robert Millan <rmh@aybabtu.com>
4765
4766 Use newly-added Multiboot support in coreboot.
4767
4768 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
4769 `kern/i386/coreboot/mmap.c' with `kern/i386/multiboot_mmap.c'.
4770
4771 * kern/i386/coreboot/startup.S: Enable Multiboot header, fix its
4772 alignment, set `MULTIBOOT_MEMORY_INFO' flag.
4773 (codestart): Store the MBI in `startup_multiboot_info' when we're
4774 being loaded using Multiboot.
4775
4776 * kern/i386/coreboot/init.c (grub_machine_init): Move
4777 grub_at_keyboard_init() call to beginning of function (useful for
4778 debugging). Call grub_machine_mmap_init() before attempting to use
4779 grub_machine_mmap_iterate().
4780 (grub_lower_mem, grub_upper_mem): Move from here ...
4781 * kern/i386/multiboot_mmap.c (grub_lower_mem, grub_upper_mem): ... to
4782 here (new file).
4783
4784 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_init): New
4785 function prototype.
4786
4787 2008-11-12 Robert Millan <rmh@aybabtu.com>
4788
4789 Fix a regression introduced by the at_keyboard.mod split. Because
4790 some terminals are default on some platforms and non-default on
4791 others, the first terminal being registered determines which is
4792 going to be default.
4793
4794 * kern/term.c (grub_term_register_input): If this is the first
4795 terminal being registered, set it as the current one.
4796 (grub_term_register_output): Likewise.
4797
4798 * term/efi/console.c (grub_console_init): Do not call
4799 grub_term_set_current_output() or grub_term_set_current_input().
4800 * term/ieee1275/ofconsole.c (grub_console_init): Likewise.
4801 * term/i386/pc/console.c (grub_console_init): Likewise.
4802 (grub_console_fini): Do not call grub_term_set_current_input()
4803 (but leave grub_term_set_current_output() to restore text mode).
4804
4805 2008-11-10 Robert Millan <rmh@aybabtu.com>
4806
4807 * util/grub.d/00_header.in: Add backward compatibility check for
4808 versions of terminal.mod that don't understand `terminal_input' or
4809 `terminal_output'.
4810
4811 2008-11-09 Robert Millan <rmh@aybabtu.com>
4812
4813 * commands/terminal.c (GRUB_MOD_FINI(terminal)): Unregister
4814 `terminal_input' / `terminal_output', not `terminal'.
4815
4816 2008-11-08 Robert Millan <rmh@aybabtu.com>
4817
4818 * Makefile.in (include_DATA): Fix srcdir=. assumption.
4819 (DISTCLEANFILES): Add `build_env.mk'.
4820
4821 2008-11-08 Robert Millan <rmh@aybabtu.com>
4822
4823 * term/i386/pc/vesafb.c (grub_vesafb_term): Change type to
4824 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
4825 members. Update all users.
4826 * util/console.c (grub_ncurses_term): Split in ...
4827 (grub_ncurses_term_input): ... this, and ...
4828 (grub_ncurses_term_output): ... this. Update all users.
4829 * term/ieee1275/ofconsole.c: Remove stale `#endif'.
4830
4831 2008-11-08 Robert Millan <rmh@aybabtu.com>
4832
4833 * Makefile.in (PKGLIB): Add $(pkglib_BUILDDIR).
4834 (PKGDATA): Add $(pkgdata_SRCDIR).
4835 (pkglib_BUILDDIR): New variable.
4836 (pkgdata_SRCDIR): New variable.
4837 (build_env.mk): New target.
4838 (include_DATA): New variable.
4839 (install-local): Install $(include_DATA) files in $(includedir).
4840
4841 2008-11-07 Pavel Roskin <proski@gnu.org>
4842
4843 * gendistlist.sh: Use C locale for sorting to ensure consistent
4844 output on all systems.
4845
4846 * util/grub.d/00_header.in: Remove incorrect space before
4847 "serial".
4848
4849 2008-11-07 Robert Millan <rmh@aybabtu.com>
4850
4851 * include/multiboot2.h (struct multiboot_header): Add `flags' member as
4852 per specification.
4853 * loader/multiboot2.c (grub_multiboot2): Fix Multiboot2 header check.
4854 * loader/multiboot_loader.c (find_multi_boot2_header): New function
4855 (based on find_multi_boot1_header).
4856 (grub_rescue_cmd_multiboot_loader): Check for Multiboot2 header,
4857 using find_multi_boot2_header(), and abort if neither Multiboot or
4858 Multiboot headers were found.
4859
4860 2008-11-07 Robert Millan <rmh@aybabtu.com>
4861
4862 Modularize at_keyboard.mod:
4863
4864 * conf/i386.rmk (pkglib_MODULES): Add `at_keyboard.mod'.
4865 (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS)
4866 (at_keyboard_mod_LDFLAGS): New variables.
4867
4868 Actual terminal split:
4869
4870 * include/grub/term.h (struct grub_term): Split in ...
4871 (struct grub_term_input): ... this, and ...
4872 (struct grub_term_output): ... this. Update all users.
4873 (grub_term_set_current): Split in ...
4874 (grub_term_set_current_input): ... this, and ...
4875 (grub_term_set_current_output): ... this.
4876 (grub_term_get_current): Split in ...
4877 (grub_term_get_current_input): ... this, and ...
4878 (grub_term_get_current_output): ... this.
4879 (grub_term_register): Split in ...
4880 (grub_term_register_input): ... this, and ...
4881 (grub_term_register_output): ... this.
4882 (grub_term_unregister): Split in ...
4883 (grub_term_unregister_input): ... this, and ...
4884 (grub_term_unregister_output): ... this.
4885 (grub_term_iterate): Split in ...
4886 (grub_term_iterate_input): ... this, and ...
4887 (grub_term_iterate_output): ... this.
4888
4889 * kern/term.c (grub_term_list): Split in ...
4890 (grub_term_list_input): ... this, and ...
4891 (grub_term_list_output): ... this. Update all users.
4892 (grub_cur_term): Split in ...
4893 (grub_cur_term_input): ... this, and ...
4894 (grub_cur_term_output): ... this. Update all users.
4895 (grub_term_set_current): Split in ...
4896 (grub_term_set_current_input): ... this, and ...
4897 (grub_term_set_current_output): ... this.
4898 (grub_term_get_current): Split in ...
4899 (grub_term_get_current_input): ... this, and ...
4900 (grub_term_get_current_output): ... this.
4901 (grub_term_register): Split in ...
4902 (grub_term_register_input): ... this, and ...
4903 (grub_term_register_output): ... this.
4904 (grub_term_unregister): Split in ...
4905 (grub_term_unregister_input): ... this, and ...
4906 (grub_term_unregister_output): ... this.
4907 (grub_term_iterate): Split in ...
4908 (grub_term_iterate_input): ... this, and ...
4909 (grub_term_iterate_output): ... this.
4910
4911 * kern/misc.c (grub_abort): Split use of grub_term_get_current() into
4912 a check for input and one for output (and only attempt to get keys
4913 from user when input works).
4914
4915 * util/grub-probe.c (grub_term_get_current): Split in ...
4916 (grub_term_get_current_input): ... this, and ...
4917 (grub_term_get_current_output): ... this.
4918 * util/grub-fstest.c: Likewise.
4919 * util/i386/pc/grub-setup.c: Likewise.
4920 * util/grub-editenv.c: Likewise.
4921
4922 Portability adjustments:
4923
4924 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Remove
4925 `term/i386/pc/at_keyboard.c'.
4926 * kern/ieee1275/init.c [__i386__] (grub_machine_init): Remove call to
4927 grub_keyboard_controller_init() (now handled by terminal .init).
4928 * kern/i386/coreboot/init.c (grub_machine_init): Add call to
4929 grub_at_keyboard_init().
4930 * include/grub/i386/ieee1275/console.h (grub_keyboard_controller_init)
4931 (grub_console_checkkey, grub_console_getkey): Remove (now provided by
4932 at_keyboard.mod via input terminal interface).
4933 * include/grub/i386/coreboot/console.h: Convert into a stub for
4934 `<grub/i386/pc/console.h>'.
4935
4936 Migrate full terminals to new API:
4937
4938 * term/efi/console.c (grub_console_term): Split into ...
4939 (grub_console_term_input): ... this, and ...
4940 (grub_console_term_output): ... this. Update all users.
4941 * term/ieee1275/ofconsole.c: Remove __i386__ hack.
4942 (grub_ofconsole_init): Split into ...
4943 (grub_ofconsole_init_input): ... this, and ...
4944 (grub_ofconsole_init_output): ... this.
4945 (grub_ofconsole_term): Split into ...
4946 (grub_ofconsole_term_input): ... this, and ...
4947 (grub_ofconsole_term_output): ... this. Update all users.
4948 * term/i386/pc/serial.c (grub_serial_term): Split into ...
4949 (grub_serial_term_input): ... this, and ...
4950 (grub_serial_term_output): ... this. Update all users.
4951 * term/i386/pc/console.c (grub_console_term): Split into ...
4952 (grub_console_term_input): ... this, and ...
4953 (grub_console_term_output): ... this. Update all users.
4954 (grub_console_term_input): Only enable it on PC/BIOS platform.
4955 (grub_console_init): Remove grub_keyboard_controller_init() call.
4956
4957 Migrate input terminals to new API:
4958
4959 * term/i386/pc/at_keyboard.c: Replace `cpu' and `machine' with
4960 `i386' and `i386/pc' to enable build on x86_64 (this driver is
4961 i386-specific anyway).
4962 (grub_console_checkkey): Rename to ...
4963 (grub_at_keyboard_checkkey): ... this. Static-ize. Update all
4964 users.
4965 (grub_keyboard_controller_orig): New variable.
4966 (grub_console_getkey): Rename to ...
4967 (grub_at_keyboard_getkey): ... this. Static-ize. Update all
4968 users.
4969 (grub_keyboard_controller_init): Static-ize. Save original
4970 controller value so that it can be restored ...
4971 (grub_keyboard_controller_fini): ... here (new function).
4972 (grub_at_keyboard_term): New structure.
4973 (GRUB_MOD_INIT(at_keyboard), GRUB_MOD_FINI(at_keyboard)): New
4974 functions.
4975
4976 Migrate output terminals to new API:
4977
4978 * term/i386/pc/vga.c (grub_vga_term): Change type to
4979 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
4980 members. Update all users.
4981 * term/gfxterm.c (grub_video_term): Change type to
4982 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
4983 members. Update all users.
4984 * include/grub/i386/pc/console.h (grub_console_checkkey)
4985 (grub_console_getkey): Do not export (no longer needed by gfxterm,
4986 etc).
4987
4988 Migrate `terminal' command and userland tools to new API:
4989
4990 * commands/terminal.c (grub_cmd_terminal): Split into ...
4991 (grub_cmd_terminal_input): ... this, and ...
4992 (grub_cmd_terminal_output): ... this.
4993 (GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands:
4994 `terminal_input' and `terminal_output'.
4995 * util/grub.d/00_header.in: Adjust `terminal' calls to new
4996 `terminal_input' / `terminal_output' API.
4997 * util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and
4998 ${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user
4999 provided ${GRUB_TERMINAL}, convert it).
5000
5001 2008-11-04 Robert Millan <rmh@aybabtu.com>
5002
5003 * util/grub.d/10_freebsd.in: New file. Generate grub configuration
5004 for FreeBSD.
5005 * conf/common.rmk (grub-mkconfig_SCRIPTS): Add 10_freebsd.
5006
5007 2008-11-03 Bean <bean123ch@gmail.com>
5008
5009 * kern/elf.c (grub_elf32_load): Revert to previous code.
5010 (grub_elf64_load): Likewise.
5011
5012 * loader/i386/bsd.c (grub_bsd_elf32_hook): Change return address.
5013
5014 2008-11-01 Robert Millan <rmh@aybabtu.com>
5015
5016 * Makefile.in (CPPFLAGS): Fix builddir=. assumption.
5017 (TARGET_CPPFLAGS): Likewise.
5018 * genmk.rb (mod_src): Fix builddir=. and srcdir=. assumptions.
5019
5020 2008-11-01 Carles Pina i Estany <carles@pina.cat>
5021
5022 * normal/menu.c (run_menu): Add Previous and Next Page keys in menu.
5023
5024 2008-10-29 Guillem Jover <guillem.jover@nokia.com>
5025
5026 * disk/lvm.c (grub_lvm_scan_device): Fix error recovery by delaying the
5027 addition of objects until the code is not going to be able to fail.
5028
5029 2008-10-29 Guillem Jover <guillem.jover@nokia.com>
5030
5031 * disk/lvm.c (grub_lvm_scan_device): Fix possible NULL value handling
5032 (add a missing NULL check, and correct them by moving the pointer
5033 operations after the actual check).
5034
5035 2008-10-29 Robert Millan <rmh@aybabtu.com>
5036
5037 * util/i386/pc/grub-install.in: Handle empty string as output from
5038 make_system_path_relative_to_its_root().
5039
5040 2008-10-05 Hans Lambermont <hans@lambermont.dyndns.org>
5041
5042 * disk/lvm.c (grub_lvm_scan_device): Allocate buffer space for the
5043 circular metadata worst case scenario. If the metadata is circular
5044 then copy the wrap in place.
5045 * include/grub/lvm.h: Add GRUB_LVM_MDA_HEADER_SIZE, from the LVM2
5046 project lib/format_text/layout.h
5047 Circular metadata bug found and patch debugged by Jan Derk Gerlings.
5048
5049 2008-10-03 Felix Zielcke <fzielcke@z-51.de>
5050
5051 * util/i386/pc/grub-install.in: Source grub-mkconfig_lib instead of update-grub_lib.
5052
5053 2008-10-03 Felix Zielcke <fzielcke@z-51.de>
5054
5055 * util/update-grub_lib.in: Mention filename in warning message.
5056
5057 2008-09-29 Felix Zielcke <fzielcke@z-51.de>
5058
5059 * NEWS: Update for rename of update-grub to grub-mkconfig.
5060
5061 2008-09-29 Felix Zielcke <fzielcke@z-51.de>
5062
5063 * util/update-grub_lib.in: Copy to ...
5064 * util/grub-mkconfig_lib.in: ... this. Update all users.
5065 * util/update-grub_lib.in: Make it a stub to `grub-mkconfig_lib.in'.
5066 * util/update-grub.in: Rename to ...
5067 * util/grub-mkconfig.in: ... this. Update all users. Remove `-y'
5068 option. Add `--output' option to allow users to specify the generated
5069 configuration file. Default to stdout.
5070 (update_grub_dir): Rename to ...
5071 (grub_mkconfig_dir): ... this.
5072 (grub_cfg): Default to an empty string.
5073 * conf/common.rmk (update-grub): Rename to ...
5074 (grub-mkconfig): ... this.
5075 (update-grub_lib): Copy to ...
5076 (grub-mkconfig_lib): ... this.
5077 (update-grub_SCRIPTS): Copy to ...
5078 (grub-mkconfig_SCRIPTS): ... this. Update all users.
5079 (update-grub_DATA): Rename to ...
5080 (grub-mkconfig_DATA): ... this.
5081
5082 2008-09-28 Robert Millan <rmh@aybabtu.com>
5083
5084 * fs/iso9660.c (struct grub_iso9660_primary_voldesc): Rename `created'
5085 to `modified'. Add the real `created' field.
5086 (grub_iso9660_uuid): Use `modified' rather than `created' for
5087 constructing the UUID.
5088
5089 2008-09-28 Felix Zielcke <fzielcke@z-51.de>
5090
5091 fs/jfs.c (grub_jfs_find_file): Treat multiple slashes like one.
5092 Based on code from Tomas Ebenlendr <ebik@ucw.cz>.
5093
5094 2008-09-28 Bean <bean123ch@gmail.com>
5095
5096 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a bug in the previous patch.
5097 Thanks to Christian Franke for finding this bug.
5098
5099 2008-09-25 Robert Millan <rmh@aybabtu.com>
5100
5101 * util/grub-mkdevicemap.c (make_device_map): Actually replace all
5102 instances of grub_util_get_disk_name() (see previous commit).
5103
5104 2008-09-25 Robert Millan <rmh@aybabtu.com>
5105
5106 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Remove
5107 `util/i386/get_disk_name.c'.
5108 * conf/i386-efi.rmk: Likewise.
5109 * conf/x86_64-efi.rmk: Likewise.
5110 * conf/i386-coreboot.rmk: Likewise.
5111 * conf/i386-ieee1275.rmk: Likewise.
5112 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Remove
5113 `util/ieee1275/get_disk_name.c'.
5114 * include/grub/util/misc.h (grub_util_get_disk_name): Remove.
5115 * util/ieee1275/get_disk_name.c: Remove file.
5116 * util/i386/get_disk_name.c: Remove file.
5117 * util/grub-mkdevicemap.c (make_device_map): Back to hardcoding
5118 "hd%d" for device.map entries, rather than using
5119 grub_util_get_disk_name().
5120
5121 2008-09-24 Carles Pina i Estany <carles@pina.cat>
5122
5123 * disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Fix `unused parameter'
5124 warning.
5125 * commands/i386/pc/pxecmd.c (dmraid_nvidia): Likewise.
5126
5127 2008-09-24 Carles Pina i Estany <carles@pina.cat>
5128
5129 * include/grub/i386/pc/console.h (GRUB_TERM_NPAGE):
5130 Changed to 0x5100.
5131 (GRUB_TERM_PPAGE): Changed to 0x4900.
5132
5133 2008-09-24 Robert Millan <rmh@aybabtu.com>
5134
5135 * include/grub/powerpc/ieee1275/console.h (GRUB_CONSOLE_KEY_*): Remove
5136 macros (they were i386-pc specific).
5137 * include/grub/sparc64/ieee1275/console.h: Likewise.
5138 * include/grub/efi/console.h: Likewise.
5139
5140 2008-09-22 Bean <bean123ch@gmail.com>
5141
5142 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a rare case where $BITMAP is
5143 resident and in attribute list.
5144
5145 * include/grub/ntfs.h (BMP_LEN): Removed.
5146
5147 2008-09-22 Bean <bean123ch@gmail.com>
5148
5149 * disk/ata.c (grub_atapi_open): Initialize devfnd, no need to set
5150 scsi->name and scsi->luns, as they will be set in grub_scsi_open.
5151
5152 * disk/scsi.c (grub_scsi_open): Don't call p->close (scsi) here when
5153 error occurs, as grub_disk_open will call grub_disk_close, which will
5154 call p->close (scsi).
5155
5156 2008-09-21 Felix Zielcke <fzielcke@z-51.de>
5157
5158 * configure.ac (AC_INIT): Quote `GRUB' string and version number.
5159 (AC_PREREQ): Bumped to 2.59.
5160 (AC_TRY_COMPILE): Replace obsolete macro with ...
5161 (AC_COMPILE_IFELSE): ... this.
5162 * aclocal.m4 (AC_TRY_LINK): Replace obsolete macro with ...
5163 (AC_LINK_IFELSE): ... this.
5164
5165 2008-09-21 Felix Zielcke <fzielcke@z-51.de>
5166
5167 * autogen.sh: Add a call to `gendistlist.sh'.
5168
5169 2008-09-19 Christian Franke <franke@computer.org>
5170
5171 * aclocal.m4 (grub_CHECK_ENABLE_EXECUTE_STACK): New function.
5172 * configure.ac: Call grub_CHECK_ENABLE_EXECUTE_STACK.
5173 * include/grub/misc.h [NEED_ENABLE_EXECUTE_STACK]:
5174 Export __enable_execute_stack() to modules.
5175 * kern/misc.c [NEED_ENABLE_EXECUTE_STACK] (__enable_execute_stack):
5176 New function.
5177
5178 2008-09-09 Felix Zielcke <fzielcke@z-51.de>
5179
5180 * Makefile.in (RMKFILES): Add `i386.rmk' and `x86_64-efi.rmk'.
5181 Sort the list.
5182
5183 2008-09-09 Felix Zielcke <fzielcke@z-51.de>
5184
5185 * util/hostdisk.c: Replace #include <grub/util/biosdisk.h> with
5186 #include <grub/util/hostdisk.h>.
5187
5188 2008-09-08 Robert Millan <rmh@aybabtu.com>
5189
5190 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Skip
5191 segments when their filesz is zero (grub_file_read() interprets
5192 zero-size as "read until EOF", which results in memory corruption).
5193 Use `lowest_segment' rather than 0 for calculating the current
5194 segment load address.
5195
5196 2008-09-08 Robert Millan <rmh@aybabtu.com>
5197
5198 * util/hostdisk.c (open_device): Replace a grub_util_info() call
5199 with grub_dprintf("hostdisk", ...), as it was so verbose that it
5200 clobbered useful information.
5201
5202 2008-09-08 Robert Millan <rmh@aybabtu.com>
5203
5204 * include/grub/util/biosdisk.h: Move to ...
5205 * include/grub/util/hostdisk.h: ... here. Update all users.
5206 * util/biosdisk.c: Move to ...
5207 * util/hostdisk.c: ... here. Update all users.
5208
5209 2008-09-07 Robert Millan <rmh@aybabtu.com>
5210
5211 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): Remove
5212 variables.
5213 (grub_multiboot): Move `mbi' allocation upwards, so that mmap address
5214 and length can be stored directly in the `mbi->mmap_addr' and
5215 `mbi->mmap_length' struct fields.
5216
5217 2008-09-07 Robert Millan <rmh@aybabtu.com>
5218
5219 * conf/i386.rmk: New file. Provides declaration for building
5220 `cpuid.mod'.
5221 * conf/i386-pc.rmk (pkglib_MODULES): Remove `cpuid.mod'.
5222 (cpuid_mod_SOURCES, cpuid_mod_CFLAGS, cpuid_mod_LDFLAGS): Remove
5223 variables.
5224 Include `conf/i386.mk'.
5225 * conf/i386-efi.rmk: Likewise.
5226 * conf/x86_64-efi.rmk: Likewise.
5227 * conf/i386-coreboot.rmk: Likewise.
5228 * conf/i386-ieee1275.rmk: Likewise.
5229
5230 2008-09-07 Vesa Jääskeläinen <chaac@nic.fi>
5231
5232 Based on patch created by Colin D Bennett <colin@gibibit.com>.
5233 Adds optimization support for BGR based modes.
5234
5235 * include/grub/i386/pc/vbeblit.h (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8) Removed.
5236 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
5237 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
5238 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
5239 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
5240 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
5241 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
5242 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
5243 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
5244 (grub_video_i386_vbeblit_index_index): Likewise.
5245 (grub_video_i386_vbeblit_replace_directN): Added.
5246 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
5247 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
5248 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
5249 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
5250 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
5251 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
5252 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
5253 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
5254 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
5255 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
5256 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
5257 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
5258 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
5259
5260 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8) Removed.
5261 (grub_video_i386_vbefill_R8G8B8): Likewise.
5262 (grub_video_i386_vbefill_index): Likewise.
5263 (grub_video_i386_vbefill_direct32): Added.
5264 (grub_video_i386_vbefill_direct24): Likewise.
5265 (grub_video_i386_vbefill_direct16): Likewise.
5266 (grub_video_i386_vbefill_direct8): Likewise.
5267
5268 * include/grub/video.h (grub_video_blit_format): Removed
5269 GRUB_VIDEO_BLIT_FORMAT_R8G8B8A8, GRUB_VIDEO_BLIT_FORMAT_R8G8B8.
5270 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_RGBA_8888,
5271 GRUB_VIDEO_BLIT_FORMAT_BGRA_8888, GRUB_VIDEO_BLIT_FORMAT_RGB_888,
5272 GRUB_VIDEO_BLIT_FORMAT_BGR_888, GRUB_VIDEO_BLIT_FORMAT_RGB_565,
5273 GRUB_VIDEO_BLIT_FORMAT_BGR_565.
5274
5275 * video/video.c (grub_video_get_blit_format): Updated to use new
5276 blit formats. Added handling for 16 bit color modes.
5277
5278 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Updated to use new
5279 fillers.
5280 (common_blitter): Updated to use new blitters.
5281
5282 * video/i386/pc/vbeblit.c (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8):
5283 Removed.
5284 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
5285 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
5286 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
5287 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
5288 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
5289 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
5290 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
5291 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
5292 (grub_video_i386_vbeblit_index_index): Likewise.
5293 (grub_video_i386_vbeblit_replace_directN): Added.
5294 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
5295 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
5296 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
5297 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
5298 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
5299 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
5300 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
5301 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
5302 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
5303 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
5304 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
5305 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
5306 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
5307
5308 * video/i386/pc/vbefill.c (grub_video_i386_vbefill_R8G8B8A8): Removed.
5309 (grub_video_i386_vbefill_R8G8B8): Likewise.
5310 (grub_video_i386_vbefill_index): Likewise.
5311 (grub_video_i386_vbefill_direct32): Added.
5312 (grub_video_i386_vbefill_direct24): Likewise.
5313 (grub_video_i386_vbefill_direct16): Likewise.
5314 (grub_video_i386_vbefill_direct8): Likewise.
5315
5316 * video/readers/jpeg.c (grub_jpeg_decode_sos): Adapt to new blitter
5317 types.
5318
5319 * video/readers/tga.c (grub_video_reader_tga): Adapt to new blitter
5320 types.
5321
5322 * video/readers/png.c (grub_png_decode_image_header): Adapt to new
5323 blitter types.
5324
5325 * video/bitmap.c (grub_video_bitmap_create): Adapt to new blitter
5326 types.
5327
5328 2008-09-06 Felix Zielcke <fzielcke@z-51.de>
5329
5330 * disk/raid.c (insert_array): Set `array->chunk_size' to 64 for
5331 RAID level 1.
5332
5333 2008-09-06 Felix Zielcke <fzielcke@z-51.de>
5334
5335 * fs/iso9660.c (grub_iso9660_date): New structure.
5336 (grub_iso9660_primary_voldesc): Add `grub_iso9660_date' member.
5337 (grub_iso9660_uuid): New function.
5338
5339 2008-09-05 Bean <bean123ch@gmail.com>
5340
5341 * fs/fshelp.c (grub_fshelp_find_file): Handle case insensitive names.
5342
5343 * fs/ntfs.c (list_file): Ignore names in DOS namespace, set the case
5344 insensitive bit for names in Win32 and Win32 & DOS namespace.
5345
5346 * include/grub/fshelp.h (GRUB_FSHELP_CASE_INSENSITIVE): New macro.
5347
5348 * include/grub/types.h (LONG_MAX): Likewise.
5349
5350 2008-09-04 Felix Zielcke <fzielcke@z-51.de>
5351
5352 * util/getroot.c: Include <config.h>.
5353 (grub_util_get_grub_dev): Rewrite to use asprintf for mdraid devices,
5354 add support for /dev/md/N devices and handle LVM double dash escaping.
5355
5356 2008-09-04 Felix Zielcke <fzielcke@z-51.de>
5357
5358 * config.guess: Update to latest version from config git.
5359 * config.sub: Likewise.
5360
5361 2008-09-03 Robert Millan <rmh@aybabtu.com>
5362
5363 * disk/scsi.c (grub_scsi_open): Remove size limit when printing
5364 `disk->total_sectors'.
5365
5366 2008-09-01 Colin D Bennett <colin@gibibit.com>
5367
5368 * include/grub/normal.h: Fixed incorrect comment for
5369 GRUB_COMMAND_FLAG_NO_ARG_PARSE.
5370
5371 2008-09-01 Colin D Bennett <colin@gibibit.com>
5372
5373 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Replaced constant
5374 values with defines.
5375
5376 * include/grub/i386/pc/vbe.h (GRUB_VBE_MODEATTR_SUPPORTED): Added.
5377 (GRUB_VBE_MODEATTR_RESERVED_1): Likewise.
5378 (GRUB_VBE_MODEATTR_BIOS_TTY_OUTPUT_SUPPORT): Likewise.
5379 (GRUB_VBE_MODEATTR_COLOR): Likewise.
5380 (GRUB_VBE_MODEATTR_GRAPHICS): Likewise.
5381 (GRUB_VBE_MODEATTR_VGA_COMPATIBLE): Likewise.
5382 (GRUB_VBE_MODEATTR_VGA_WINDOWED_AVAIL): Likewise.
5383 (GRUB_VBE_MODEATTR_LFB_AVAIL): Likewise.
5384 (GRUB_VBE_MODEATTR_DOUBLE_SCAN_AVAIL): Likewise.
5385 (GRUB_VBE_MODEATTR_INTERLACED_AVAIL): Likewise.
5386 (GRUB_VBE_MODEATTR_TRIPLE_BUF_AVAIL): Likewise.
5387 (GRUB_VBE_MODEATTR_STEREO_AVAIL): Likewise.
5388 (GRUB_VBE_MODEATTR_DUAL_DISPLAY_START): Likewise.
5389 (GRUB_VBE_MEMORY_MODEL_TEXT): Likewise.
5390 (GRUB_VBE_MEMORY_MODEL_CGA): Likewise.
5391 (GRUB_VBE_MEMORY_MODEL_HERCULES): Likewise.
5392 (GRUB_VBE_MEMORY_MODEL_PLANAR): Likewise.
5393 (GRUB_VBE_MEMORY_MODEL_NONCHAIN4_256): Likewise.
5394 (GRUB_VBE_MEMORY_MODEL_YUV): Likewise.
5395
5396 2008-08-31 Robert Millan <rmh@aybabtu.com>
5397
5398 * loader/i386/pc/multiboot.c (grub_get_multiboot_mmap_len): Fix
5399 declaration.
5400 (grub_multiboot): Fix a few warnings.
5401
5402 2008-08-31 Robert Millan <rmh@aybabtu.com>
5403
5404 * loader/i386/pc/multiboot.c: Update comment not to say that
5405 boot_device support is unimplemented.
5406
5407 2008-08-31 Robert Millan <rmh@aybabtu.com>
5408
5409 * loader/i386/pc/multiboot.c: Update comment not to say that a.out
5410 or memory map support are unimplemented.
5411
5412 2008-08-31 Colin D Bennett <colin@gibibit.com>
5413
5414 * util/i386/pc/grub-mkrescue.in: Support multiple overlay directories.
5415
5416 2008-08-31 Colin D Bennett <colin@gibibit.com>
5417
5418 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Show VBE version and
5419 total video memory in 'vbeinfo' output; show color format details for
5420 each video mode.
5421
5422 2008-08-30 Pavel Roskin <proski@gnu.org>
5423
5424 * util/genmoddep.c: Remove for real this time.
5425 * DISTLIST: Remove util/genmoddep.c.
5426
5427 2008-08-30 Robert Millan <rmh@aybabtu.com>
5428
5429 * kern/i386/pc/startup.S (multiboot_header): Force 4-byte alignment
5430 as required by Multiboot spec (it was already 4-byte aligned, but
5431 only by chance).
5432
5433 2008-08-29 Pavel Roskin <proski@gnu.org>
5434
5435 * kern/powerpc/ieee1275/crt0.S: Rename to ...
5436 * kern/powerpc/ieee1275/startup.S: ... this.
5437 * conf/powerpc-ieee1275.rmk: Adjust for the above.
5438 * DISTLIST: Likewise.
5439
5440 * kern/powerpc/ieee1275/crt0.S: Include grub/symbol.h and
5441 grub/cpu/kernel.h. Add start label for consistency with other
5442 platforms. Add grub_prefix immediately after start. Add jump
5443 to the code after grub_prefix.
5444 * include/grub/powerpc/kernel.h: Provide valid values for
5445 GRUB_KERNEL_CPU_PREFIX and GRUB_KERNEL_CPU_DATA_END.
5446
5447 2008-08-29 Bean <bean123ch@gmail.com>
5448
5449 * configure.ac: Change host_os to cygwin for mingw.
5450 (asprintf): New check for function.
5451
5452 * include/grub/symbol.h: Replace #ifndef __CYGWIN__ with
5453 #if ! defined (__CYGWIN__) && ! defined (__MINGW32__).
5454
5455 * include/grub/util/misc.h: #include <config.h> and <grub/types.h>,
5456 declare asprintf if HAVE_ASPRINTF is not set, declare fseeko, ftello,
5457 sync, sleep and grub_util_get_disk_size for mingw.
5458
5459 * util/biosdisk.c (grub_util_biosdisk_open): Use grub_util_get_disk_size
5460 to get size in mingw.
5461 (open_device): Use flag O_BINARY if it's defined.
5462 (find_root_device): Add dummy code for mingw.
5463
5464 * util/grub-mkdevicemap.c (get_floppy_disk_name): Return 0 for mingw.
5465 (get_ide_disk_name): Return //./PHYSICALDRIVE%d for mingw.
5466 (get_scsi_disk_name): Return 0 for mingw.
5467
5468 * util/hostfs.c: #include <grub/util/misc.h>.
5469 (grub_hostfs_open): Use "rb" flag to open file, use
5470 grub_util_get_disk_size to get disk size for mingw.
5471
5472 * util/misc.c: #include <windows.h> and <winioctl.h> in mingw.
5473 (asprintf): New function if HAVE_ASPRINTF is not set.
5474 (sync): New function for mingw.
5475 (sleep): Likewise.
5476 (grub_util_get_disk_size): Likewise.
5477
5478 2008-08-28 Pavel Roskin <proski@gnu.org>
5479
5480 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
5481 kern/time.c.
5482
5483 2008-08-28 Robert Millan <rmh@aybabtu.com>
5484
5485 * util/biosdisk.c (find_grub_drive): Declare missing `i' variable.
5486
5487 2008-08-28 Robert Millan <rmh@aybabtu.com>
5488
5489 Change find_grub_drive() syntax so it doesn't prevent it from
5490 detecting NULL names as errors.
5491
5492 * util/biosdisk.c (find_grub_drive): Move free slot search code
5493 from here ...
5494 (find_free_slot): ... to here.
5495 (read_device_map): Use find_free_slot() to search for free slots.
5496
5497 2008-08-27 Marco Gerards <marco@gnu.org>
5498
5499 * conf/common.rmk (pkglib_MODULES): Add scsi.mod.
5500 (scsi_mod_SOURCES): New variable.
5501 (scsi_mod_CFLAGS): Likewise
5502 (scsi_mod_LDFLAGS): Likewise.
5503
5504 * disk/scsi.c: New file.
5505
5506 * include/grub/scsi.h: Likewise.
5507
5508 * include/grub/scsicmd.h: Likewise.
5509
5510 * disk/ata.c: Include <grub/scsi.h>.
5511 (grub_atapi_packet): Do not use grub_ata_cmd, use registers
5512 instead.
5513 (grub_ata_iterate): Skip ATAPI devices.
5514 (grub_ata_open): Only handle ATAPI devices.
5515 (struct grub_atapi_read): Removed.
5516 (grub_atapi_readsector): Likewise.
5517 (grub_ata_read): No longer handle ATAPI devices.
5518 (grub_ata_write): Likewise.
5519 (grub_atapi_iterate): New function.
5520 (grub_atapi_read): Likewise.
5521 (grub_atapi_write): Likewise.
5522 (grub_atapi_open): Likewise.
5523 (grub_atapi_close): Likewise.
5524 (grub_atapi_dev): New variable.
5525 (GRUB_MOD_INIT(ata)): Register ATAPI as SCSI device.
5526 (GRUB_MOD_FINI(ata)): Unregister ATAPI.
5527
5528 * include/grub/disk.h (enum grub_disk_dev_id): Add
5529 `GRUB_DISK_DEVICE_SCSI_ID'.
5530
5531 2008-08-26 Robert Millan <rmh@aybabtu.com>
5532
5533 * util/biosdisk.c (grub_util_biosdisk_open, open_device)
5534 (grub_util_biosdisk_get_grub_dev): Make error messages a bit more
5535 descriptive.
5536
5537 2008-08-23 Bean <bean123ch@gmail.com>
5538
5539 * conf/common.rmk (grub_probe_SOURCES): Add disk/mdraid_linux.c.
5540 (grub_fstest_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
5541 disk/mdraid_linux.c and disk/dmraid_nvidia.c and lib/crc.c.
5542 (pkglib_MODULES): Add raid5rec.mod, raid6rec.mod, mdraid.mod and
5543 dm_nv.mod.
5544 (raid5rec_mod_SOURCES): New macro.
5545 (raid5rec_mod_CFLAGS): Likewise.
5546 (raid5rec_mod_LDFLAGS): Likewise.
5547 (raid6rec_mod_SOURCES): Likewise.
5548 (raid6rec_mod_CFLAGS): Likewise.
5549 (raid6rec_mod_LDFLAGS): Likewise.
5550 (mdraid_mod_SOURCES): Likewise.
5551 (mdraid_mod_CFLAGS): Likewise.
5552 (mdraid_mod_LDFLAGS): Likewise.
5553 (dm_nv_mod_SOURCES): Likewise.
5554 (dm_nv_mod_CFLAGS): Likewise.
5555 (dm_nv_mod_LDFLAGS): Likewise.
5556
5557 * conf/i386-pc.rmk (grub_setup_SOURCES): Add disk/mdraid_linux.c.
5558 (grub_emu_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
5559 disk/mdraid_linux.c and disk/dmraid_nvidia.c.
5560
5561 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add disk/raid5_recover.c,
5562 disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c.
5563
5564 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
5565
5566 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
5567
5568 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5569
5570 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5571
5572 * disk/raid5_recover.c: New file.
5573
5574 * disk/raid6_recover.c: Likewise.
5575
5576 * disk/mdraid_linux.c: Likewise.
5577
5578 * disk/dmraid_nvidia.c: Likewise.
5579
5580 * disk/i386/pc/biosdisk.c: Set total_sectors of cdrom device to
5581 ULONG_MAX.
5582
5583 * disk/raid.c (grub_raid_open): Use the size of the smallest disk to
5584 calculate the size of raid device.
5585 (grub_raid_read): Simplify raid0 code. Support raid4, raid6 and four
5586 different layout of raid5.
5587 (grub_raid_scan_device): Remove code specific to mdraid.
5588 (grub_raid_list): New variable.
5589 (free_array): New function.
5590 (grub_raid_register): Likewise.
5591 (grub_raid_unregister): Likewise.
5592 (grub_raid_rescan): Likewise.
5593 (GRUB_MOD_INIT): Don't iterate device here.
5594 (GRUB_MOD_FINI): Use free_array to release resource.
5595
5596 * include/grub/raid.h: Remove macro and structure specific to mdraid.
5597 (grub_raid5_recover_func_t): New function variable type.
5598 (grub_raid6_recover_func_t): Likewise.
5599 (grub_raid5_recover_func): New variable.
5600 (grub_raid6_recover_func): Likewise.
5601 (grub_raid_register): New function.
5602 (grub_raid_unregister): Likewise.
5603 (grub_raid_rescan): Likewise.
5604 (grub_raid_block_xor): Likewise.
5605
5606 * util/grub-fstest.c: Add #include <grub/raid.h> and <grub/lib/crc.h>.
5607 (CMD_CRC): New macro.
5608 (part): Removed.
5609 (read_file): Handle device as well as file.
5610 (cmd_crc): New function.
5611 (fstest): Handle multiple disks.
5612 (options): Remove part, raw and long, add root and diskcount.
5613 (usage): Add crc, remove -p, -r, -l, add -r and -c.
5614 (main): Find the first non option entry and ignore subsequent options,
5615 add handling for the new options, support multiple disks.
5616
5617 * util/grub-probe.c (probe): Add mdraid to abstraction_name.
5618
5619 2008-08-23 Bean <bean123ch@gmail.com>
5620
5621 * normal/x86_64/setjmp.S (grub_longjmp): Return 1 when val = 0.
5622
5623 * genfslist.sh: Ignore kernel.mod.
5624
5625 * genpartmaplist.sh: Likewise.
5626
5627 2008-08-23 Robert Millan <rmh@aybabtu.com>
5628
5629 * util/getroot.c (find_root_device): Skip anything that starts with
5630 a dot, not just directories. This avoids things like /dev/.tmp.md0.
5631
5632 2008-08-22 Felix Zielcke <fzielcke@z-51.de>
5633
5634 * util/update-grub.in (GRUB_GFXMODE): Export variable.
5635 * util/grub.d/00_header.in: Allow the administrator to change default
5636 gfxmode via ${GRUB_GFXMODE}.
5637
5638 2008-08-21 Felix Zielcke <fzielcke@z-51.de>
5639
5640 * fs/ntfs.c (grub_ntfs_mount): Fix a memory leak.
5641
5642 2008-08-21 Robert Millan <rmh@aybabtu.com>
5643
5644 * loader/i386/linux.c: New file. Implements generic 32-bit Linux
5645 loader.
5646 * conf/i386-coreboot.rmk (_linux_mod_SOURCES): Replace
5647 `loader/i386/pc/linux.c' with `loader/i386/linux.c'.
5648
5649 2008-08-20 Carles Pina i Estany <carles@pina.cat>
5650
5651 * menu/normal.c (run_menu): Replace hardcoded numbers with macros
5652 (16 for GRUB_TERM_UP and 14 for GRUB_TERM_DOWN)
5653
5654 2008-08-19 Robert Millan <rmh@aybabtu.com>
5655
5656 * term/gfxterm.c (DEFAULT_CURSOR_COLOR): Remove.
5657 (struct grub_virtual_screen): Remove `cursor_color'.
5658 (grub_virtual_screen_setup): Remove `virtual_screen.cursor_color'
5659 initialization.
5660 (write_cursor): Use `virtual_screen.fg_color' to draw cursor.
5661
5662 2008-08-18 Robert Millan <rmh@aybabtu.com>
5663
5664 Unify (identical) linux_normal.c files.
5665 * loader/i386/efi/linux_normal.c: Move from here ...
5666 * loader/linux_normal.c: ... to here. Update all users.
5667 * loader/i386/pc/linux_normal.c: Delete. Update all users.
5668 * loader/i386/ieee1275/linux_normal.c: Likewise.
5669
5670 2008-08-18 Robert Millan <rmh@aybabtu.com>
5671
5672 * include/grub/i386/linux.h (LINUX_LOADER_ID_LILO)
5673 (LINUX_LOADER_ID_LOADLIN, LINUX_LOADER_ID_BOOTSECT)
5674 (LINUX_LOADER_ID_SYSLINUX, LINUX_LOADER_ID_ETHERBOOT)
5675 (LINUX_LOADER_ID_ELILO, LINUX_LOADER_ID_GRUB, LINUX_LOADER_ID_UBOOT)
5676 (LINUX_LOADER_ID_XEN, LINUX_LOADER_ID_GUJIN, LINUX_LOADER_ID_QEMU):
5677 New macros.
5678 (GRUB_LINUX_CL_OFFSET, GRUB_LINUX_CL_END_OFFSET): Move from here ...
5679 * loader/i386/pc/linux.c (GRUB_LINUX_CL_OFFSET)
5680 (GRUB_LINUX_CL_END_OFFSET): ... to here.
5681 * loader/i386/efi/linux.c (GRUB_EFI_CL_OFFSET): Rename to ...
5682 (GRUB_LINUX_CL_OFFSET): ... this. Update all users.
5683 (GRUB_EFI_CL_END_OFFSET): Rename to ...
5684 (GRUB_LINUX_CL_END_OFFSET): ... this. Update all users.
5685 (grub_rescue_cmd_linux): Macroify `type_of_loader' initialization.
5686 Initialize `params->video_cursor_x' and `params->video_cursor_y'
5687 portably using grub_getxy().
5688 Replace `-EFI' with `-bzImage' in boot message.
5689
5690 2008-08-17 Robert Millan <rmh@aybabtu.com>
5691
5692 * include/grub/x86_64/kernel.h: New file (<grub/i386/kernel.h> stub).
5693
5694 2008-08-17 Robert Millan <rmh@aybabtu.com>
5695
5696 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pc/mmap.c'.
5697
5698 * include/grub/i386/pc/init.h (GRUB_MACHINE_MEMORY_AVAILABLE)
5699 (GRUB_MACHINE_MEMORY_RESERVED): New macros.
5700 (grub_machine_mmap_iterate): New function declaration.
5701 * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): New
5702 structure.
5703 (GRUB_MMAP_MEMORY_AVAILABLE, GRUB_MMAP_MEMORY_RESERVED): New
5704 macros.
5705
5706 * kern/i386/pc/init.c (grub_machine_init): Replace hardcoded region
5707 type check value with `GRUB_MACHINE_MEMORY_AVAILABLE'.
5708 Move e820 parsing from here ...
5709 * kern/i386/pc/mmap.c: New file.
5710 (grub_machine_mmap_iterate): ... to here.
5711
5712 * include/grub/i386/coreboot/memory.h: Remove `<grub/err.h>'.
5713 (GRUB_LINUXBIOS_MEMORY_AVAILABLE): Rename (for consistency) to ...
5714 (GRUB_MACHINE_MEMORY_AVAILABLE): ... this. Update all users.
5715 (grub_available_iterate): Redeclare to return `void', and redeclare
5716 its hook to use grub_uint64_t as addr and size parameters, and rename
5717 to ...
5718 (grub_machine_mmap_iterate): ... this. Update all users.
5719
5720 * kern/i386/coreboot/mmap.c (grub_mmap_iterate): Simplify parser loop
5721 to make it more readable. Rename to ...
5722 (grub_machine_mmap_iterate): ... this.
5723
5724 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): New variables.
5725 (grub_get_multiboot_mmap_len, grub_fill_multiboot_mmap): New functions.
5726 (grub_multiboot): Allocate an extra region after the payload, and fill
5727 it with a Multiboot memory map. Adjust a.out loader to calculate size
5728 with the extra space.
5729 (grub_multiboot_load_elf32): Adjust elf32 loader to calculate size
5730 with the extra space.
5731
5732 2008-08-17 Carles Pina i Estany <carles@pina.cat>
5733
5734 * menu/normal.c (run_menu): Add Home and End keys in grub-menu.
5735
5736 2008-08-17 Felix Zielcke <fzielcke@z-51.de>
5737
5738 * gendistlist.sh: Add *.y, *.tex, *.texi, grub.cfg, README, *.sc,
5739 mdate-sh to the list `find' searches for.
5740 * DISTLIST: Regenerated.
5741
5742 2008-08-16 Felix Zielcke <fzielcke@z-51.de>
5743
5744 * gendistlist.sh (EXTRA_DISTFILES): Remove gensymlist.sh,
5745 genkernsyms.sh. Add geninit.sh, geninitheader.sh, genkernsyms.sh.in,
5746 genmoddep.awk, gensymlist.sh.in.
5747 (DISTDIRS): Add bus, docs, hook, lib.
5748 * DISTLIST: Regenerated.
5749 * NEWS: Add cygwin support and change the `os-prober' entry a bit.
5750
5751 2008-08-16 Robert Millan <rmh@aybabtu.com>
5752
5753 * disk/raid.c (grub_raid_init): Handle/report errors set by
5754 grub_device_iterate().
5755 * disk/lvm.c (grub_lvm_init): Likewise.
5756
5757 2008-08-15 Bean <bean123ch@gmail.com>
5758
5759 * conf/i386-pc.rmk (pkglib_MODULES): Add datetime.mod, date.mod
5760 and datehook.mod.
5761 (datetime_mod_SOURCES): New macro.
5762 (datetime_mod_CFLAGS): Likewise.
5763 (datetime_mod_LDFLAGS): Likewise.
5764 (date_mod_SOURCES): Likewise.
5765 (date_mod_CFLAGS): Likewise.
5766 (date_mod_LDFLAGS): Likewise.
5767 (datehook_mod_SOURCES): Likewise.
5768 (datehook_mod_CFLAGS): Likewise.
5769 (datehook_mod_LDFLAGS): Likewise.
5770
5771 * conf/i386-coreboot.rmk (pkglib_MODULES): Add datetime.mod, date.mod
5772 and datehook.mod.
5773 (datetime_mod_SOURCES): New macro.
5774 (datetime_mod_CFLAGS): Likewise.
5775 (datetime_mod_LDFLAGS): Likewise.
5776 (date_mod_SOURCES): Likewise.
5777 (date_mod_CFLAGS): Likewise.
5778 (date_mod_LDFLAGS): Likewise.
5779 (datehook_mod_SOURCES): Likewise.
5780 (datehook_mod_CFLAGS): Likewise.
5781 (datehook_mod_LDFLAGS): Likewise.
5782
5783 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add datetime.mod, date.mod
5784 and datehook.mod.
5785 (datetime_mod_SOURCES): New macro.
5786 (datetime_mod_CFLAGS): Likewise.
5787 (datetime_mod_LDFLAGS): Likewise.
5788 (date_mod_SOURCES): Likewise.
5789 (date_mod_CFLAGS): Likewise.
5790 (date_mod_LDFLAGS): Likewise.
5791 (datehook_mod_SOURCES): Likewise.
5792 (datehook_mod_CFLAGS): Likewise.
5793 (datehook_mod_LDFLAGS): Likewise.
5794
5795 * conf/i386-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
5796 and datehook.mod.
5797 (datetime_mod_SOURCES): New macro.
5798 (datetime_mod_CFLAGS): Likewise.
5799 (datetime_mod_LDFLAGS): Likewise.
5800 (date_mod_SOURCES): Likewise.
5801 (date_mod_CFLAGS): Likewise.
5802 (date_mod_LDFLAGS): Likewise.
5803 (datehook_mod_SOURCES): Likewise.
5804 (datehook_mod_CFLAGS): Likewise.
5805 (datehook_mod_LDFLAGS): Likewise.
5806
5807 * conf/x86_64-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
5808 and datehook.mod.
5809 (datetime_mod_SOURCES): New macro.
5810 (datetime_mod_CFLAGS): Likewise.
5811 (datetime_mod_LDFLAGS): Likewise.
5812 (date_mod_SOURCES): Likewise.
5813 (date_mod_CFLAGS): Likewise.
5814 (date_mod_LDFLAGS): Likewise.
5815 (datehook_mod_SOURCES): Likewise.
5816 (datehook_mod_CFLAGS): Likewise.
5817 (datehook_mod_LDFLAGS): Likewise.
5818
5819 * kern/env.c (grub_env_insert): Fix a bug in prevp pointer.
5820
5821 * commands/date.c: New file.
5822
5823 * hook/datehook.c: Likewise.
5824
5825 * include/grub/lib/datetime.h: Likewise.
5826
5827 * include/grub/i386/cmos.h: Likewise.
5828
5829 * lib/datetime.c: Likewise.
5830
5831 * lib/i386/datetime.c: Likewise.
5832
5833 * lib/efi/datetime.c: Likewise.
5834
5835 2008-08-14 Robert Millan <rmh@aybabtu.com>
5836
5837 * conf/common.rmk (bin_UTILITIES): Add `grub-mkelfimage'.
5838 (grub_mkelfimage_SOURCES): New variable.
5839 (util/elf/grub-mkimage.c_DEPENDENCIES): Likewise.
5840
5841 * conf/i386-coreboot.rmk (bin_UTILITIES, grub_mkimage_SOURCES)
5842 (grub_mkimage_LDFLAGS, util/elf/grub-mkimage.c_DEPENDENCIES): Remove.
5843 * conf/powerpc-ieee1275.rmk: Likewise.
5844 * conf/i386-ieee1275.rmk: Likewise.
5845
5846 * kern/ieee1275/init.c: Include `<grub/cpu/kernel.h>'.
5847 * kern/i386/coreboot/init.c: Likewise.
5848
5849 * kern/i386/ieee1275/startup.S: Replace `<grub/machine/kernel.h>'
5850 with `<grub/cpu/kernel.h>'.
5851 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Renamed
5852 to ...
5853 (GRUB_KERNEL_CPU_PREFIX, GRUB_KERNEL_CPU_DATA_END): ... this.
5854 * kern/i386/coreboot/startup.S: Likewise.
5855
5856 * include/grub/powerpc/ieee1275/kernel.h (GRUB_MOD_ALIGN)
5857 (GRUB_MOD_GAP): Remove.
5858 * include/grub/powerpc/kernel.h: New file.
5859 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX)
5860 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
5861 * include/grub/i386/kernel.h: New file.
5862 * include/grub/i386/coreboot/kernel.h (GRUB_MOD_ALIGN)
5863 (GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_PREFIX)
5864 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
5865
5866 * util/ieee1275/grub-install.in (grub_mkimage): Initialize to use
5867 `grub-mkelfimage'.
5868 Use --directory when invoking grub_mkimage.
5869
5870 * util/elf/grub-mkimage.c: Include `<grub/cpu/kernel.h>'.
5871 (add_segments): Replace GRUB_KERNEL_MACHINE_DATA_END and
5872 GRUB_KERNEL_MACHINE_PREFIX with GRUB_KERNEL_CPU_DATA_END
5873 and GRUB_KERNEL_CPU_PREFIX.
5874
5875 2008-08-14 Felix Zielcke <fzielcke@z-51.de>
5876
5877 * include/grub/err.h (grub_err_printf): New function prototype.
5878 * util/misc.c (grub_err_printf): New function.
5879 * kern/misc.c [! GRUB_UTIL] (grub_err_printf): New alias for
5880 grub_printf.
5881 * kern/err.c (grub_print_error): Use grub_err_printf.
5882
5883 2008-08-13 Robert Millan <rmh@aybabtu.com>
5884
5885 * docs/grub.cfg: Remove `/dev/' prefix in GNU/Hurd boot entry.
5886
5887 2008-08-13 Robert Millan <rmh@aybabtu.com>
5888
5889 * docs/grub.cfg: Use the native device name for the example GNU/Hurd
5890 boot entry.
5891
5892 2008-08-12 Robert Millan <rmh@aybabtu.com>
5893
5894 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Move part
5895 of the relocation code from here ...
5896 (grub_multiboot): ... to here.
5897 (forward_relocator, backward_relocator): Move from here ...
5898 * kern/i386/loader.S (grub_multiboot_forward_relocator)
5899 (grub_multiboot_backward_relocator): ... to here.
5900 (grub_multiboot_real_boot): Use %edx for entry offset. Put Multiboot
5901 magic in %eax. Use %ebp for jumping (so %edx is not trashed).
5902 * include/grub/i386/loader.h (grub_multiboot_forward_relocator)
5903 (grub_multiboot_forward_relocator_end)
5904 (grub_multiboot_backward_relocator)
5905 (grub_multiboot_backward_relocator_end): New variables.
5906
5907 2008-08-12 Bean <bean123ch@gmail.com>
5908
5909 * disk/raid.c (grub_raid_read): Fix a bug in raid0 code.
5910
5911 2008-08-11 Robert Millan <rmh@aybabtu.com>
5912
5913 * kern/i386/linuxbios/startup.S: Move from here ...
5914 * kern/i386/coreboot/startup.S: ... to here.
5915
5916 * kern/i386/linuxbios/init.c: Move from here ...
5917 * kern/i386/coreboot/init.c: ... to here.
5918
5919 * kern/i386/linuxbios/table.c: Move from here ...
5920 * kern/i386/coreboot/mmap.c: ... to here.
5921
5922 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Update moved files.
5923
5924 2008-08-11 Robert Millan <rmh@aybabtu.com>
5925
5926 * kern/device.c (grub_device_open): Do not handle grub_disk_open()
5927 errors. Leave it to the upper layer to handle them.
5928
5929 2008-08-09 Christian Franke <franke@computer.org>
5930
5931 * Makefile.in: Add `target_os' and `enable_grub_pe2elf'.
5932 * conf/common.rmk: Install `grub-pe2elf' only if requested.
5933 Install `grub.d/10_windows' only on Cygwin.
5934 * configure.ac: Add subst of `target_os'.
5935 Check `target_os' also before setting TARGET_OBJ2ELF.
5936 Add `--enable-grub-pe2elf'.
5937
5938 2008-08-08 Robert Millan <rmh@aybabtu.com>
5939
5940 * kern/disk.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
5941 (grub_last_time): Change type to grub_uint64_t.
5942 (grub_disk_open): Migrate code from to using grub_get_time_ms().
5943 (grub_disk_close): Likewise.
5944
5945 * normal/menu.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
5946 (run_menu): Migrate code from to using grub_get_time_ms().
5947
5948 * util/misc.c (grub_get_time_ms): New function.
5949
5950 2008-08-08 Marco Gerards <marco@gnu.org>
5951
5952 * disk/ata.c (grub_ata_regget): Change return type to
5953 `grub_uint8_t'.
5954 (grub_ata_regget2): Likewise.
5955 (grub_ata_wait_status): New function.
5956 (grub_ata_wait_busy): Removed function, updated all users to use
5957 `grub_ata_wait_status'.
5958 (grub_ata_wait_drq): Likewise.
5959 (grub_ata_cmd): New function.
5960 (grub_ata_pio_read): Change return type to `grub_uint8_t'. Add
5961 error handling.
5962 (grub_ata_pio_write): Add error handling.
5963 (grub_atapi_identify): Likewise.
5964 (grub_atapi_packet): Use `grub_ata_cmd' and improve error
5965 handling.
5966 (grub_ata_identify): Use `grub_ata_cmd' and improve error
5967 handling. Actually use the detected registers. Reorder the
5968 detection logic such that it is easier to read.
5969 (grub_ata_pciinit): Do not assign the same ID to each controller.
5970 (grub_ata_setaddress): Use `grub_ata_cmd' and improve error
5971 handling.
5972 (grub_atapi_readsector): Check the result of `grub_ata_pio_read'.
5973
5974 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TIMEOUT'.
5975
5976 2008-08-08 Marco Gerards <marco@gnu.org>
5977
5978 * NEWS: Update.
5979
5980 2008-08-07 Bean <bean123ch@gmail.com>
5981
5982 * include/grub/x86_64/pci.h: New file.
5983
5984 2008-08-07 Christian Franke <franke@computer.org>
5985
5986 * kern/i386/pit.c (TIMER2_SPEAKER): New define.
5987 (TIMER2_GATE): Likewise.
5988 (grub_pit_wait): Add enable/disable of the timer2 gate
5989 bit of port 0x61. This fixes a possible infinite loop.
5990
5991 2008-08-07 Bean <bean123ch@gmail.com>
5992
5993 * conf/x86_64-efi.rmk (kernel_mod_SOURCES): Add kern/time.c,
5994 kern/i386/tsc.c and kern/i386/pit.c.
5995
5996 * include/grub/i386/tsc.h (grub_cpu_is_cpuid_supported): Handle
5997 x86_64 platform.
5998
5999 * kern/i386/efi/init.c: Replace <grub/cpu/tsc.h> with
6000 <grub/i386/tsc.h>.
6001
6002 * kern/i386/pit.c: Replace <grub/cpu/io.h> with <grub/i386/io.h>.
6003
6004 2008-08-07 Bean <bean123ch@gmail.com>
6005
6006 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add kern/time.c.
6007
6008 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add kern/time.c,
6009
6010 * include/grub/i386/pit.h: Use macro KERNEL_CPU_PIT_HEADER to avoid
6011 multiple inclusion. Add #include <grub/types.h>.
6012
6013 2008-08-06 Christian Franke <franke@computer.org>
6014
6015 * conf/common.rmk: Build and install `10_windows'.
6016 * util/grub.d/10_windows.in: New script.
6017
6018 2008-08-06 Pavel Roskin <proski@gnu.org>
6019
6020 * kern/i386/pit.c: Include `<grub/i386/pit.h>'.
6021
6022 2008-08-06 Robert Millan <rmh@aybabtu.com>
6023
6024 * conf/i386-coreboot.rmk (kernel_elf_ASFLAGS): New variable.
6025 * kern/i386/tsc.c: Include `<grub/i386/pit.h>'.
6026
6027 2008-08-06 Bean <bean123ch@gmail.com>
6028
6029 * fs/i386/pc/pxe.c (grub_pxe_data): New member block_size.
6030 (grub_pxefs_fs_int): Remove dummy definition.
6031 (grub_pxefs_open): Use data->block_size to store the current block
6032 size setting.
6033 (grub_pxefs_read): Use block size stored in data->block_size. As the
6034 value of grub_pxe_blksize can be changed after the file is opened.
6035
6036 2008-08-06 Bean <bean123ch@gmail.com>
6037
6038 * fs/i386/pc/pxe.c (curr_file): new variable.
6039 (grub_pxefs_open): Simply the handling of pxe file system. Don't
6040 require the dummy internal file system anymore.
6041 (grub_pxefs_read): Removed.
6042 (grub_pxefs_close): Likewise.
6043 (grub_pxefs_fs_int): Likewise.
6044 (grub_pxefs_read_int): Renamed to grub_pxefs_read. Reinitialize tftp
6045 connection when we switch file.
6046 (grub_pxefs_close_int): Renamed to grub_pxefs_close.
6047
6048 2008-08-06 Robert Millan <rmh@aybabtu.com>
6049
6050 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and
6051 `halt.mod'.
6052 (reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS)
6053 (halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables.
6054
6055 * kern/i386/halt.c: New file.
6056 * kern/i386/reboot.c: Likewise.
6057 * include/grub/i386/reboot.h: Likewise.
6058 * include/grub/i386/halt.h: Likewise.
6059
6060 * commands/halt.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]:
6061 Include `<grub/cpu/halt.h>'.
6062 * commands/reboot.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]
6063 [! GRUB_MACHINE_PCBIOS]: Include `<grub/cpu/reboot.h>'.
6064
6065 * term/i386/pc/at_keyboard.c: Include `<grub/cpu/at_keyboard.h>'.
6066 (SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA)
6067 (KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ)
6068 (KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT)
6069 (KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY)
6070 (KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move
6071 from here ...
6072 * include/grub/i386/at_keyboard.h: ... to here.
6073
6074 2008-08-05 Robert Millan <rmh@aybabtu.com>
6075
6076 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pit.c'.
6077 * conf/i386-efi.rmk (kernel_mod_SOURCES): Likewise.
6078 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Likewise. Also add
6079 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
6080 `kern/generic/millisleep.c'.
6081
6082 * kern/i386/tsc.c (calibrate_tsc): Rewrite using grub_pit_wait()
6083 instead of grub_get_rtc().
6084 (grub_tsc_init): Initialize `tsc_boot_time'.
6085
6086 * kern/i386/linuxbios/init.c (grub_millisleep): Remove stub.
6087 (grub_machine_init): Use grub_tsc_init() rather than
6088 installing an RTC-based handler via grub_install_get_time_ms().
6089
6090 * kern/i386/pit.c: New file.
6091 * include/grub/i386/pit.h: Likewise.
6092
6093 2008-08-05 Bean <bean123ch@gmail.com>
6094
6095 * boot/i386/pc/pxeboot.S (_start): Use drive number 0x7F for pxe.
6096
6097 * conf/i386-pc.rmk (kernel_img_HEADERS): Add machine/pxe.h.
6098 (pkglib_MODULES): Add pxe.mod and pxecmd.mod.
6099 (pxe_mod_SOURCES): New macro.
6100 (pxe_mod_CFLAGS): Likewise.
6101 (pxe_mod_LDFLAGS): Likewise.
6102 (pxecmd_mod_SOURCES): Likewise.
6103 (pxecmd_mod_CFLAGS): Likewise.
6104 (pxecmd_mod_LDFLAGS): Likewise.
6105
6106 * kern/i386/pc/startup.S (grub_pxe_scan): New function.
6107 (grub_pxe_call): Likewise.
6108
6109 * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_PXE_ID.
6110
6111 * commands/i386/pc/pxecmd.c: New file.
6112
6113 * fs/i386/pc/pxe.c: Likewise.
6114
6115 * include/grub/i386/pc/pxe.h: Likewise.
6116
6117 2008-08-05 Bean <bean123ch@gmail.com>
6118
6119 * util/console.c (grub_console_cur_color): New variable.
6120 (grub_console_standard_color): Likewise.
6121 (grub_console_normal_color): Likewise.
6122 (grub_console_highlight_color): Likewise.
6123 (color_map): Likewise.
6124 (use_color): Likewise.
6125 (NUM_COLORS): New macro.
6126 (grub_ncurses_setcolorstate): Handle color properly.
6127 (grub_ncurses_setcolor): Don't change color here, just remember the
6128 settings, color will be set in grub_ncurses_setcolorstate.
6129 (grub_ncurses_getcolor): New function.
6130 (grub_ncurses_init): Initialize color pairs.
6131 (grub_ncurses_term): New member grub_ncurses_getcolor.
6132
6133 2008-08-05 Colin D Bennett <colin@gibibit.com>
6134
6135 High resolution timer support. Implemented for x86 CPUs using TSC.
6136 Extracted generic grub_millisleep() so it's linked in only as needed.
6137 This requires a Pentium compatible CPU; if the RDTSC instruction is
6138 not supported, then it falls back on the generic grub_get_time_ms()
6139 implementation that uses the machine's RTC.
6140
6141 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/time.c',
6142 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
6143 `kern/generic/millisleep.c'.
6144
6145 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add `kern/i386/tsc.c',
6146 `kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'.
6147
6148 * conf/x86_64-efi.rml (kernel_mod_SOURCES): Add
6149 `kern/generic/millisleep.c' and `kern/generic/rtc_get_time_ms.c'.
6150
6151 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
6152
6153 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
6154 `kern/generic/millisleep.c'.
6155
6156 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
6157
6158 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Add `kern/time.c'.
6159
6160 * kern/generic/rtc_get_time_ms.c: New file.
6161
6162 * kern/generic/millisleep.c: New file.
6163
6164 * kern/misc.c: Don't include
6165 <kern/time.h> anymore.
6166 (grub_millisleep_generic): Removed.
6167
6168 * commands/sleep.c (grub_interruptible_millisleep): Uses
6169 grub_get_time_ms() instead of grub_get_rtc().
6170
6171 * include/grub/i386/tsc.h (grub_get_tsc): New file. New inline
6172 function.
6173 (grub_cpu_is_cpuid_supported): New inline function.
6174 (grub_cpu_is_tsc_supported): New inline function.
6175 (grub_tsc_init): New function prototype.
6176 (grub_tsc_get_time_ms): New function prototype.
6177
6178 * kern/i386/tsc.c (grub_get_time_ms): New file.
6179
6180 * include/grub/time.h: Include <grub/types.h.
6181 (grub_millisleep_generic): Removed.
6182 (grub_get_time_ms): New prototype.
6183 (grub_install_get_time_ms): New prototype.
6184 (grub_rtc_get_time_ms): New prototype.
6185
6186 * kern/time.c (grub_get_time_ms): New function.
6187 (grub_install_get_time_ms): New function.
6188
6189 * kern/i386/efi/init.c: Include <grub/cpu/tsc.h>. Don't include
6190 <grub/time.h> anymore.
6191 (grub_millisleep): Removed.
6192 (grub_machine_init): Call grub_tsc_init.
6193
6194 * kern/i386/linuxbios/init.c (grub_machine_init): Install the RTC
6195 get_time_ms() implementation.
6196
6197 * kern/sparc64/ieee1275/init.c (grub_millisleep): Removed.
6198 (ieee1275_get_time_ms): New function.
6199 (grub_machine_init): Install get_time_ms() implementation.
6200
6201 * kern/i386/pc/init.c: Include <grub/cpu/tsc.h>.
6202 (grub_machine_init): Call grub_tsc_init().
6203 (grub_millisleep): Removed.
6204
6205 * kern/ieee1275/init.c (grub_millisleep): Removed.
6206 (grub_machine_init): Install ieee1275_get_time_ms()
6207 implementation.
6208 (ieee1275_get_time_ms): New function.
6209 (grub_get_rtc): Now calls ieee1275_get_time_ms(), which does the
6210 real work.
6211
6212 2008-08-05 Marco Gerards <marco@gnu.org>
6213
6214 * disk/ata.c: Include <grub/pci.h>.
6215 (enum grub_ata_commands): Add `GRUB_ATA_CMD_EXEC_DEV_DIAGNOSTICS'.
6216 (grub_ata_initialize): Rewritten.
6217 (grub_ata_device_initialize): New function.
6218
6219 2008-08-04 Pavel Roskin <proski@gnu.org>
6220
6221 * kern/main.c: Include grub/mm.h.
6222
6223 2008-08-04 Robert Millan <rmh@aybabtu.com>
6224
6225 * conf/i386-coreboot.rmk (COMMON_ASFLAGS, COMMON_CFLAGS)
6226 (COMMON_LDFLAGS): Harmonize with i386-pc version (fixes a code
6227 corruption problem).
6228
6229 2008-08-04 Robert Millan <rmh@aybabtu.com>
6230
6231 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Fix misc
6232 warnings introduced in my last commit.
6233
6234 2008-08-03 Robert Millan <rmh@aybabtu.com>
6235
6236 Make PCI available on all i386 architectures.
6237
6238 * include/grub/i386/pc/pci.h: Move from here ...
6239 * include/grub/i386/pci.h: ... to here.
6240
6241 * include/grub/i386/pc/pci.h: Remove.
6242 * include/grub/i386/efi/pci.h: Remove.
6243 * include/grub/x86_64/efi/pci.h: Remove.
6244
6245 * include/grub/pci.h: Replace `<grub/machine/pci.h>' with
6246 `<grub/cpu/pci.h>'.
6247
6248 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `pci' and `lspci'.
6249 (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS, lspci_mod_SOURCES)
6250 (lspci_mod_CFLAGS, lspci_mod_LDFLAGS): New variables.
6251
6252 * conf/i386-ieee1275.rmk: Likewise.
6253
6254 2008-08-03 Robert Millan <rmh@aybabtu.com>
6255
6256 * term/i386/pc/vga_text.c (CRTC_CURSOR_DISABLE): New macro.
6257 (grub_console_setcursor): Make it possible to set cursor off.
6258
6259 2008-08-03 Robert Millan <rmh@aybabtu.com>
6260
6261 * util/grub.d/00_header.in: Be platform-agnostic. Probe for existence
6262 of modules instead of assuming which platform provides what.
6263 * util/update-grub.in: Likewise.
6264
6265 2008-08-03 Robert Millan <rmh@aybabtu.com>
6266
6267 * kern/i386/pc/init.c (make_install_device): Check for `grub_prefix'
6268 instead of `grub_install_dos_part' to determine whether a drive needs
6269 to be prepended to prefix (`grub_install_dos_part' is not reliable,
6270 because it can be overridden when loading GRUB via Multiboot).
6271
6272 2008-08-02 Robert Millan <rmh@aybabtu.com>
6273
6274 * util/i386/pc/grub-install.in: Remove trailing slash from prefix.
6275
6276 2008-08-02 Robert Millan <rmh@aybabtu.com>
6277
6278 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Add a pair
6279 of informational grub_dprintf() calls.
6280
6281 2008-08-02 Robert Millan <rmh@aybabtu.com>
6282
6283 * disk/memdisk.c (memdisk_size): Don't initialize.
6284 (GRUB_MOD_INIT(memdisk)): Find memdisk using grub_module_iterate().
6285
6286 * include/grub/i386/pc/kernel.h
6287 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): Remove macro.
6288 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Shift.
6289 (grub_memdisk_image_size, grub_arch_memdisk_addr)
6290 (grub_arch_memdisk_size): Remove.
6291
6292 * include/grub/kernel.h (struct grub_module_header): Remove `offset'
6293 field (was only used to transfer a constant). Add `type' field to
6294 support multiple module types.
6295 (grub_module_iterate): New function.
6296
6297 * kern/device.c (grub_device_open): Do not hide error messages
6298 when grub_disk_open() fails. Use grub_print_error() instead.
6299
6300 * kern/i386/pc/init.c (grub_arch_modules_addr)
6301 (grub_arch_memdisk_size): Remove functions.
6302 (grub_arch_modules_addr): Return the module address in high memory
6303 (now that it isn't copied anymore).
6304
6305 * kern/i386/pc/startup.S (grub_memdisk_image_size): Remove variable.
6306 (codestart): Don't add grub_memdisk_image_size to %ecx in LZMA
6307 decompression routine (grub_total_module_size already includes that
6308 now). Don't copy modules back to low memory.
6309
6310 * kern/main.c: Include `<grub/mm.h>'.
6311 (grub_load_modules): Split out (and use) ...
6312 (grub_module_iterate): ... this function, which iterates through
6313 module objects and runs a hook.
6314 Comment out grub_mm_init_region() call, as it would cause non-ELF
6315 modules to be overwritten.
6316
6317 * util/i386/pc/grub-mkimage.c (generate_image): Instead of appending
6318 the memdisk image in its own region, make it part of the module list.
6319 * util/elf/grub-mkimage.c (options): Add "memdisk"|'m' option.
6320 (main): Parse --memdisk|-m option, and pass user-provided path as
6321 parameter to generate_image().
6322 (add_segments): Pass `memdisk_path' down to load_modules().
6323 (load_modules): Embed memdisk image in module section when requested.
6324 * util/i386/efi/grub-mkimage.c (make_mods_section): Initialize
6325 `header.type' instead of `header.offset'.
6326
6327 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add `memdisk.mod'.
6328 (memdisk_mod_SOURCES, memdisk_mod_CFLAGS)
6329 (memdisk_mod_LDFLAGS): New variables.
6330 * conf/i386-coreboot.rmk: Likewise.
6331 * conf/i386-ieee1275.rmk: Likewise.
6332
6333 2008-08-02 Robert Millan <rmh@aybabtu.com>
6334
6335 * loader/i386/pc/multiboot.c (playground, forward_relocator)
6336 (backward_relocator): New variables. Used to allocate and relocate
6337 the payload, respectively.
6338 (grub_multiboot_load_elf32): Load into heap instead of requested
6339 address, install the appropriate relocator code in each bound of
6340 the payload, and set the entry point such that
6341 grub_multiboot_real_boot() will jump to one of them.
6342
6343 * kern/i386/loader.S (grub_multiboot_payload_size)
6344 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
6345 (grub_multiboot_payload_entry_offset): New variables.
6346 (grub_multiboot_real_boot): Set cpu context to what the relocator
6347 expects, and jump to the relocator instead of the payload.
6348
6349 * include/grub/i386/loader.h (grub_multiboot_payload_size)
6350 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
6351 (grub_multiboot_payload_entry_offset): Export.
6352
6353 2008-08-01 Bean <bean123ch@gmail.com>
6354
6355 * normal/menu_entry.c (editor_getline): Don't return the original
6356 string as result, as it will be released by lexer once it has done
6357 using it.
6358
6359 2008-08-01 Robert Millan <rmh@aybabtu.com>
6360
6361 * util/grub.d/10_linux.in: Use prepare_grub_to_access_device() from
6362 within menuentries, not before them.
6363 util/grub.d/10_hurd.in: Likewise.
6364
6365 2008-08-01 Bean <bean123ch@gmail.com>
6366
6367 * conf/common.rmk (pkglib_MODULES): Add bufio.mod.
6368 (bufio_mod_SOURCES): New macro.
6369 (bufio_mod_CFLAGS): Likewise.
6370 (bufio_mod_LDFLAGS): Likewise.
6371
6372 * include/grub/bufio.h: New file.
6373
6374 * io/bufio.c: Likewise.
6375
6376 * video/png.c: Replace <grub/file.h> with <grub/bufio.h>.
6377 (grub_video_reader_png): Use grub_buffile_open to open file.
6378
6379 * video/jpeg.c: Replace <grub/file.h> with <grub/bufio.h>.
6380 (grub_video_reader_jpeg): Use grub_buffile_open to open file.
6381
6382 * video/tga.c: Replace <grub/file.h> with <grub/bufio.h>.
6383 (grub_video_reader_tga): Use grub_buffile_open to open file.
6384
6385 * font/manager.c: Include <grub/bufio.h>.
6386 (add_font): Use grub_buffile_open to open file.
6387
6388 2008-07-31 Robert Millan <rmh@aybabtu.com>
6389
6390 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): When loading
6391 ELF segments, use a macro for arbitrarily accessing any of them instead
6392 of preparing a pointer that allows access to one at a time.
6393 (grub_multiboot_load_elf64): Likewise.
6394
6395 2008-07-31 Bean <bean123ch@gmail.com>
6396
6397 * boot/i386/pc/lnxboot.S (real_code_2): Replace 0x50 with
6398 GRUB_KERNEL_MACHINE_DATA_END.
6399
6400 2008-07-30 Robert Millan <rmh@aybabtu.com>
6401
6402 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_DATA_END):
6403 Increase from 0x50 to 0x60.
6404 * util/i386/pc/grub-install.in: Detect cross-disk installs, and
6405 use UUIDs to identify the root drive for them. If that's not
6406 possible, abort.
6407 * util/i386/pc/grub-setup.c (setup): Do not special-case, or even
6408 check, for cross-disk installs.
6409
6410 2008-07-30 Robert Millan <rmh@aybabtu.com>
6411
6412 * kern/ieee1275/init.c (grub_machine_set_prefix): If `grub_prefix'
6413 is non-empty, use it to set the `prefix' environment variable instead
6414 of the usual approach.
6415 * kern/i386/linuxbios/init.c (make_install_device): Remove function.
6416 (grub_machine_set_prefix): Use `grub_prefix' to set the `prefix'
6417 environment variable instead of dummy make_install_device().
6418
6419 * kern/i386/ieee1275/startup.S: Include `<grub/machine/kernel.h>'.
6420 (start): Insert a data section, with `grub_prefix' variable.
6421 * kern/i386/linuxbios/startup.S: Likewise.
6422
6423 * include/grub/powerpc/ieee1275/kernel.h [!ASM_FILE] (grub_prefix):
6424 New variable reference.
6425 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX):
6426 New macro. Defines offset of `grub_prefix' within startup.S (relative
6427 to `start').
6428 (GRUB_KERNEL_MACHINE_DATA_END): New macro. Defines the end of data
6429 section within startup.S (relative to `start').
6430 * include/grub/i386/coreboot/kernel.h: Likewise.
6431
6432 * util/elf/grub-mkimage.c (add_segments): Receive `prefix' parameter.
6433 Overwrite grub_prefix with its contents, at the beginning of the
6434 first segment.
6435 (main): Understand -p|--prefix.
6436
6437 2008-07-30 Robert Millan <rmh@aybabtu.com>
6438
6439 * util/grub.d/10_hurd.in: Source ${libdir}/grub/update-grub_lib.
6440
6441 2008-07-30 Robert Millan <rmh@aybabtu.com>
6442
6443 * term/i386/pc/vga_text.c (grub_console_cls): Use
6444 grub_console_gotoxy() to go back to beginning of the screen.
6445 Found by Patrick Georgi <patrick.georgi@coresystems.de>
6446
6447 2008-07-29 Christian Franke <franke@computer.org>
6448
6449 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
6450 Add conversion of emulated mount points on Cygwin.
6451
6452 2008-07-29 Christian Franke <franke@computer.org>
6453
6454 * util/update-grub.in: Add a check for admin
6455 group on Cygwin.
6456 Remove old `grub.cfg.new' before creation.
6457 Add `-f' to `mv' to handle the different filesystem
6458 semantics of Windows.
6459
6460 2008-07-29 Bean <bean123ch@gmail.com>
6461
6462 * normal/main.c (get_line): Fix buffer overflow bug.
6463
6464 2008-07-28 Robert Millan <rmh@aybabtu.com>
6465
6466 * partmap/apple.c (GRUB_APPLE_HEADER_MAGIC): New macro.
6467 (struct grub_apple_header): New struct. Describes the layout of
6468 the partmap header.
6469 (apple_partition_map_iterate): Check the header magic as well as the
6470 partition magic (which was already being checked).
6471
6472 2008-07-28 Pavel Roskin <proski@gnu.org>
6473
6474 * genmk.rb: Add a warning to the beginning of the output that
6475 it's a generated file and should not be edited.
6476
6477 2008-07-28 Robert Millan <rmh@aybabtu.com>
6478
6479 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
6480 with the same number are found, just use issue a warning with
6481 grub_dprintf(), as this error has been reported to be non-fatal.
6482
6483 2008-07-27 Robert Millan <rmh@aybabtu.com>
6484
6485 * disk/ata.c (grub_ata_dumpinfo): Use grub_dprintf() for debugging
6486 information.
6487
6488 2008-07-27 Bean <bean123ch@gmail.com>
6489
6490 * fs/fat.c (GRUB_FAT_MAXFILE): New constant.
6491 (grub_fat_find_dir): Ignore case when comparing filename.
6492
6493 2008-07-27 Bean <bean123ch@gmail.com>
6494
6495 * fs/xfs.c (grub_xfs_dir_header): Change field i8count back to
6496 smallino, as it's more descriptive, and i8count can be confused with
6497 the other field count.
6498 (grub_xfs_iterate_dir): Adjust grub_xfs_dir_entry pointer for small
6499 inode type.
6500
6501 2008-07-27 Bean <bean123ch@gmail.com>
6502
6503 * commands/crc.c: New file.
6504
6505 * lib/crc.c: Likewise.
6506
6507 * include/grub/lib/crc.h: Likewise.
6508
6509 * util/grub-fstest.c: grub/hexdump.h => grub/lib/hexdump.h.
6510
6511 * commands/hexdump.c: grub/hexdump.h => grub/lib/hexdump.h.
6512 (hexdump): Move this function to ...
6513
6514 * lib/hexdump.c: ... here.
6515
6516 * include/grub/hexdump.h: Renamed to ...
6517
6518 * include/grub/lib/hexdump.h: ... this.
6519
6520 * commands/loadenv.c: grub/envblk.h => grub/lib/envblk.h
6521
6522 * util/grub-editenv.c: Likewise.
6523
6524 * include/envblk.h: Renamed to ...
6525
6526 * include/lib/envblk.h: ... this.
6527
6528 * util/envblk.c: Renamed to ...
6529
6530 * lib/envblk.c: ... this.
6531
6532 * conf/common.rmk (grub_fstest_SOURCES): commands/hexdump.c =>
6533 lib/hexdump.c.
6534 (grub_editenv_SOURCES): util/envblk.c => lib/envblk.c
6535 (pkglib_MODULES): Add crc.mod.
6536 (hexdump_mod_SOURCES): Add lib/hexdump.c.
6537 (loadenv_mod_SOURCES): util/envblk.c => lib/envblk.c.
6538 (crc_mod_SOURCES): New macro.
6539 (crc_mod_CFLAGS): Likewise.
6540 (crc_mod_LDFLAGS): Likewise.
6541
6542 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add lib/hexdump.c.
6543
6544 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
6545
6546 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
6547
6548 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6549
6550 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
6551
6552 2008-07-27 Felix Zielcke <fzielcke@z-51.de>
6553
6554 * commands/help.c: Include <grub/term.h>.
6555 (TERM_WIDTH): Removed. Updated all users.
6556
6557 2008-07-27 Pavel Roskin <proski@gnu.org>
6558
6559 * util/getroot.c (find_root_device): Rephrase a comment to avoid
6560 spurious warnings about a comment within a comment.
6561
6562 2008-07-25 Robert Millan <rmh@aybabtu.com>
6563
6564 * util/getroot.c (find_root_device): Skip devices that match
6565 /dev/dm-[0-9]. This lets the real device be found for any type of
6566 abstraction (LVM, EVMS, RAID..).
6567 (grub_guess_root_device): Do not traverse /dev/mapper (for LVM)
6568 and /dev/evms (for EVMS) before traversing /dev. If a /dev/dm-[0-9]
6569 device is found first, find_root_device() will now skip it.
6570
6571 2008-07-24 Pavel Roskin <proski@gnu.org>
6572
6573 * include/grub/types.h: Use __builtin_bswap32() and
6574 __builtin_bswap64() with gcc 4.3 and newer.
6575
6576 2008-07-24 Christian Franke <franke@computer.org>
6577
6578 * util/i386/pc/grub-install.in: If `--debug' is specified,
6579 pass `--verbose' to grub-setup.
6580 Abort script if make_system_path_relative_to_its_root() fails.
6581
6582 2008-07-24 Bean <bean123ch@gmail.com>
6583
6584 * configure.ac: Fixed a bug caused by the previous cygwin patch,
6585 variable `target_platform' should be `platform'.
6586
6587 2008-07-24 Bean <bean123ch@gmail.com>
6588
6589 * video/reader/png.c (DEFLATE_HLIT_MAX): Change value.
6590 (grub_png_init_fixed_block): New function.
6591 (grub_png_decode_image_data): Handle fixed huffman code compression.
6592
6593 2008-07-24 Bean <bean123ch@gmail.com>
6594
6595 * common.rmk (bin_UTILITIES): Add grub-pe2elf.
6596 (grub_pe2elf_SOURCES): New macro.
6597 (CLEANFILES): Add grub-pe2elf.
6598
6599 * include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant.
6600 (GRUB_PE32_SCN_ALIGN_2BYTES): Likewise.
6601 (GRUB_PE32_SCN_ALIGN_4BYTES): Likewise.
6602 (GRUB_PE32_SCN_ALIGN_8BYTES): Likewise.
6603 (GRUB_PE32_SCN_ALIGN_16BYTES): Likewise.
6604 (GRUB_PE32_SCN_ALIGN_32BYTES): Likewise.
6605 (GRUB_PE32_SCN_ALIGN_64BYTES): Likewise.
6606 (GRUB_PE32_SCN_ALIGN_SHIFT): Likewise.
6607 (GRUB_PE32_SCN_ALIGN_MASK): Likewise.
6608 (GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise.
6609 (GRUB_PE32_SYM_CLASS_STATIC): Likewise.
6610 (GRUB_PE32_SYM_CLASS_FILE): Likewise.
6611 (GRUB_PE32_DT_FUNCTION): Likewise.
6612 (GRUB_PE32_REL_I386_DIR32): Likewise.
6613 (GRUB_PE32_REL_I386_REL32): Likewise.
6614 (grub_pe32_symbol): New structure.
6615 (grub_pe32_reloc): Likewise.
6616
6617 * util/grub-pe2elf.c: New file.
6618
6619 * configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for
6620 start symbol in non pc platform.
6621
6622 * genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf.
6623
6624 The following patches are from Christian Franke.
6625
6626 * include/grub/dl.h: Remove .previous, gas supports this only
6627 for ELF format.
6628
6629 * include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE):
6630 Remove .type, gas supports this only for ELF format.
6631
6632 * kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing
6633 nullbytes in symbol table. This fixes an infinite loop if table is
6634 zero filled.
6635
6636 * Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT,
6637 TARGET_IMG_LDFLAGS and EXEEXT.
6638
6639 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by
6640 TARGET_IMG_LDFLAGS_AC.
6641 (grub_CHECK_STACK_ARG_PROBE): New function.
6642
6643 * conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS.
6644
6645 * conf/i386-pc-cygwin-ld-img.sc: New linker script.
6646
6647 * configure.ac: Add check for linker script "conf/${target}-img-ld.c"
6648 to set TARGET_IMG_LD* accordingly.
6649 Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly.
6650 Add call to grub_CHECK_STACK_ARG_PROBE.
6651 Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols.
6652
6653 * genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.
6654
6655 * genmk.rb: Add EXEEXT to CLEANFILES.
6656
6657 2008-07-23 Robert Millan <rmh@aybabtu.com>
6658
6659 * Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they
6660 define the codes for arrows and lines used for the menu).
6661 (ascii.pff): Generate fonts for $(UNICODE_ARROWS) and $(UNICODE_LINES)
6662 as well.
6663
6664 * util/update-grub_lib.in (font_path): Prefer ascii.pff over complete
6665 fonts, because the latter are too slow.
6666
6667 2008-07-21 Bean <bean123ch@gmail.com>
6668
6669 * kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
6670 a20. Run keyboard test last, as it will cause macbook to halt.
6671
6672 2008-07-18 Pavel Roskin <proski@gnu.org>
6673
6674 * kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P. We cannot
6675 load foreign architecture modules correctly anyway. Keep
6676 support for loading host architecture modules, whether we
6677 compile them or not.
6678
6679 2008-07-17 Pavel Roskin <proski@gnu.org>
6680
6681 * configure.ac: Use -m32 or -m64 regardless of whether we had to
6682 change target_cpu. The compiler default can mismatch target_cpu
6683 in any case.
6684
6685 * disk/efi/efidisk.c: Fix format warnings on x86_64.
6686 * kern/efi/efi.c: Likewise.
6687
6688 * aclocal.m4 (grub_PROG_TARGET_CC): New macro. Check if the
6689 target compiler is functional.
6690 * configure.ac: Call grub_PROG_TARGET_CC once all target flags
6691 are set up.
6692
6693 * configure.ac: Default to efi platform for x86_64-apple. Allow
6694 powerpc64 CPU, default to ieee1275 platform for it. Split CPU
6695 adjustments from the rest, only do them if target is not
6696 explicitly given. Merge other adjustments with the final sanity
6697 check. Remove an extraneous check for supported CPU. Be
6698 specific which CPU and which platform is not supported.
6699
6700 * configure.ac: Default to pc platform for x86_64.
6701
6702 2008-07-17 Robert Millan <rmh@aybabtu.com>
6703
6704 Partial LinuxBIOS -> Coreboot rename.
6705
6706 * conf/i386-linuxbios.rmk: Renamed to ...
6707 * conf/i386-coreboot.rmk: ... this.
6708 * Makefile.in (RMKFILES): s/i386-linuxbios.rmk/i386-coreboot.rmk/g.
6709 * configure.ac: Accept "coreboot" as input platform (but maintain
6710 compatibility with "linuxbios").
6711 * include/grub/i386/linuxbios: Renamed to ...
6712 * include/grub/i386/coreboot: ... this.
6713
6714 2008-07-17 Bean <bean123ch@gmail.com>
6715
6716 * conf/i386/efi.rmk (pkglib_MODULES): add pci.mod and lspci.mod.
6717 (appleldr_mod_SOURCE): New variable.
6718 (appleldr_mod_CFLAGS): Likewise.
6719 (appleldr_mod_LDFLAGS): Likewise.
6720 (pci_mod_SOURCES): Likewise.
6721 (pci_mod_CFLAGS): Likewise.
6722 (pci_mod_LDFLAGS): Likewise.
6723 (lspci_mod_SOURCES): Likewise.
6724 (lspci_mod_CFLAGS): Likewise.
6725 (lspci_mod_LDFLAGS): Likewise.
6726
6727 * conf/x86_64-efi.rmk: New file.
6728
6729 * disk/efi/efidisk.c (grub_efidisk_read): Wrap efi calls with efi_call_N
6730 macro.
6731 (grub_efidisk_write): Likewise.
6732
6733 * include/efi/api.h (efi_call_0): New macro.
6734 (efi_call_1): Likewise.
6735 (efi_call_2): Likewise.
6736 (efi_call_3): Likewise.
6737 (efi_call_4): Likewise.
6738 (efi_call_5): Likewise.
6739 (efi_call_6): Likewise.
6740
6741 * include/grub/efi/chainloader.h (grub_chainloader_cmd): Rename to
6742 grub_rescue_cmd_chainloader.
6743
6744 * include/grub/efi/pe32.h (GRUB_PE32_MACHINE_X86_64): New macro.
6745 (grub_pe32_optional_header): Change some fields based on i386 or
6746 x86_64 platform.
6747 (GRUB_PE32_PE32_MAGIC): Likewise.
6748
6749 * include/grub/efi/uga_draw.h: New file.
6750
6751 * include/grub/elf.h (STN_ABS): New constant.
6752 (R_X86_64_NONE): Relocation constant for x86_64.
6753 (R_X86_64_64): Likewise.
6754 (R_X86_64_PC32): Likewise.
6755 (R_X86_64_GOT32): Likewise.
6756 (R_X86_64_PLT32): Likewise.
6757 (R_X86_64_COPY): Likewise.
6758 (R_X86_64_GLOB_DAT): Likewise.
6759 (R_X86_64_JUMP_SLOT): Likewise.
6760 (R_X86_64_RELATIVE): Likewise.
6761 (R_X86_64_GOTPCREL): Likewise.
6762 (R_X86_64_32): Likewise.
6763 (R_X86_64_32S): Likewise.
6764 (R_X86_64_16): Likewise.
6765 (R_X86_64_PC16): Likewise.
6766 (R_X86_64_8): Likewise.
6767 (R_X86_64_PC8): Likewise.
6768
6769 * include/grub/i386/efi/pci.h: New file.
6770
6771 * include/grub/i386/linux.h (GRUB_LINUX_EFI_SIGNATURE):
6772 Change it value based on platform.
6773 (GRUB_LINUX_EFI_SIGNATURE_0204): New constant.
6774 (GRUB_E820_RAM): Likewise.
6775 (GRUB_E820_RESERVED): Likewise.
6776 (GRUB_E820_ACPI): Likewise.
6777 (GRUB_E820_NVS): Likewise.
6778 (GRUB_E820_EXEC_CODE): Likewise.
6779 (GRUB_E820_MAX_ENTRY): Likewise.
6780 (grub_e820_mmap): New structure.
6781 (linux_kernel_header): Change the efi field according to different
6782 kernel version, also field from linux_kernel_header.
6783
6784 * include/grub/kernel.h (grub_module_info): Add padding for x86_64.
6785
6786 * include/grub/pci.h (GRUB_PCI_ADDR_SPACE_MASK): New constant.
6787 (GRUB_PCI_ADDR_SPACE_MEMORY): Likewise.
6788 (GRUB_PCI_ADDR_SPACE_IO): Likewise.
6789 (GRUB_PCI_ADDR_MEM_TYPE_MASK): Likewise.
6790 (GRUB_PCI_ADDR_MEM_TYPE_32): Likewise.
6791 (GRUB_PCI_ADDR_MEM_TYPE_1M): Likewise.
6792 (GRUB_PCI_ADDR_MEM_TYPE_64): Likewise.
6793 (GRUB_PCI_ADDR_MEM_PREFETCH): Likewise.
6794 (GRUB_PCI_ADDR_MEM_MASK): Likewise.
6795 (GRUB_PCI_ADDR_IO_MASK): Likewise.
6796
6797 * include/grub/x86_64/efi/kernel.h: New file.
6798
6799 * include/grub/x86_64/efi/loader.h: Likewise.
6800
6801 * include/grub/x86_64/efi/machine.h: Likewise.
6802
6803 * include/grub/x86_64/efi/pci.h: Likewise.
6804
6805 * include/grub/x86_64/efi/time.h: Likewise.
6806
6807 * include/grub/x86_64/linux.h: Likewise.
6808
6809 * include/grub/x86_64/setjmp.h: Likewise.
6810
6811 * include/grub/x86_64/time.h: Likewise.
6812
6813 * include/grub/x86_64/types.h: Likewise.
6814
6815 * kern/dl.c (GRUB_CPU_SIZEOF_VOID_P): Changed to
6816 GRUB_TARGET_SIZEOF_VOID_P.
6817
6818 * kern/efi/efi.c (grub_efi_locate_protocol): Wrap efi calls.
6819 (grub_efi_locate_handle): Likewise.
6820 (grub_efi_open_protocol): Likewise.
6821 (grub_efi_set_text_mode): Likewise.
6822 (grub_efi_stall): Likewise.
6823 (grub_exit): Likewise.
6824 (grub_reboot): Likewise.
6825 (grub_halt): Likewise.
6826 (grub_efi_exit_boot_services): Likewise.
6827 (grub_get_rtc): Likewise.
6828
6829 * kern/efi/mm.c (MEMORY_MAP_SIZE): Change to 0x3000 for new models.
6830 (GRUB_CPU_SIZEOF_VOID_P): Changed to GRUB_TARGET_SIZEOF_VOID_P.
6831 (grub_efi_allocate_pages): Wrap efi calls.
6832 (grub_efi_free_pages): Wrap efi calls.
6833 (grub_efi_get_memory_map): Wrap efi calls.
6834
6835 * kern/x86_64/dl.c: New file.
6836
6837 * kern/x86_64/efi/callwrap.S: Likewise.
6838
6839 * kern/x86_64/efi/startup.S: Likewise.
6840
6841 * loader/efi/appleloader.c: Likewise.
6842
6843 * loader/efi/chainloader.c (cmdline): New variable.
6844 (grub_chainloader_unload): Wrap efi calls.
6845 (grub_chainloader_boot): Likewise.
6846 (grub_rescue_cmd_chainloader): Wrap efi calls, handle
6847 command line.
6848
6849 * loader/efi/chainloader_normal.c (chainloader_command):
6850 Change grub_chainloader_cmd to grub_rescue_cmd_chainloader, pass
6851 command line.
6852
6853 * loader/i386/efi/linux.c (allocate_pages): Change allocation
6854 method.
6855 (grub_e820_add_region): New function.
6856 (grub_linux_boot): Construct e820 map from efi map, handle x86_64
6857 booting.
6858 (grub_find_video_card): New function.
6859 (grub_linux_setup_video): New function.
6860 (grub_rescue_cmd_linux): Probe for video information.
6861
6862 * normal/x86_64/setjmp.S: New file.
6863
6864 * term/efi/console.c (map_char): New function.
6865 (grub_console_putchar): Map unicode char.
6866 (grub_console_checkkey): Wrap efi calls.
6867 (grub_console_getkey): Likewise.
6868 (grub_console_getwh): Likewise.
6869 (grub_console_gotoxy): Likewise.
6870 (grub_console_cls): Likewise.
6871 (grub_console_setcolorstate): Likewise.
6872 (grub_console_setcursor): Likewise.
6873
6874 * util/i386/efi/grub-mkimage.c: Add support for x86_64.
6875
6876 2008-07-16 Pavel Roskin <proski@gnu.org>
6877
6878 * loader/i386/efi/linux.c (allocate_pages): Fix warnings in
6879 format strings.
6880
6881 * util/i386/efi/grub-mkimage.c (get_target_address): Return a
6882 pointer, not an integer. This fixes a warning and prevents
6883 precision loss on 64-bit systems.
6884 (relocate_addresses): Remove unneeded cast.
6885
6886 2008-07-15 Pavel Roskin <proski@gnu.org>
6887
6888 * kern/i386/ieee1275/init.c: Include grub/cache.h.
6889
6890 * term/ieee1275/ofconsole.c: Disable code unused on i386.
6891
6892 * kern/ieee1275/ieee1275.c (grub_ieee1275_get_integer_property):
6893 Fix comparison between signed and unsigned.
6894
6895 * include/grub/i386/ieee1275/console.h: Declare
6896 grub_console_init() and grub_console_fini().
6897
6898 * loader/i386/ieee1275/linux.c (grub_set_bootpath): Remove.
6899 It's empty and unused.
6900
6901 * fs/ext2.c (grub_ext2_read_block): Initialize blknr in the
6902 beginning to avoid warnings with some compilers.
6903
6904 * loader/ieee1275/multiboot2.c: Include grub/machine/loader.h.
6905 [__i386__] (grub_mb2_arch_boot): Avoid unnecessary cast.
6906
6907 2008-07-14 Pavel Roskin <proski@gnu.org>
6908
6909 * kern/env.c (grub_register_variable_hook): Don't copy empty
6910 string, it leaks memory. Pass "" to grub_env_set(), it should
6911 handle constant strings.
6912
6913 * commands/blocklist.c (grub_cmd_blocklist): Fix format warning.
6914 * commands/cmp.c (grub_cmd_cmp): Likewise.
6915 * kern/dl.c (grub_dl_flush_cache): Likewise.
6916 (grub_dl_load_core): Likewise.
6917 * kern/elf.c (grub_elf32_load_phdrs): Likewise.
6918 (grub_elf64_load_phdrs): Likewise.
6919
6920 2008-07-13 Pavel Roskin <proski@gnu.org>
6921
6922 * lib/LzmaEnc.c (LzmaEnc_SetProps): Fix warning about comparison
6923 between signed and unsigned.
6924 (LzmaEnc_Finish): Fix warning about an unused parameter.
6925
6926 2008-07-13 Bean <bean123ch@gmail.com>
6927
6928 * Makefile.in (enable_lzo): New rule.
6929
6930 * conf/i386-pc.rmk (grub_mkimage_SOURCES): New test with enable_lzo.
6931
6932 * configure.ac (ENABLE_LZO): New option --enable-lzo.
6933
6934 * boot/i386/pc/lnxboot.S: #include <config.h>.
6935
6936 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Change
6937 its value according to the compression algorithm used, lzo or lzma.
6938
6939 * util/i386/pc/grub-mkimage.c (compress_kernel): Use different
6940 compression algorithm according to configure macro.
6941
6942 * kern/i386/pc/startup.S (codestart): Likewise.
6943
6944 * kern/i386/pc/lzma_decode.S: New file.
6945
6946 * include/grub/lib/LzFind.h: Likewise.
6947
6948 * include/grub/lib/LzHash.h: Likewise.
6949
6950 * include/grub/lib/LzmaDec.h: Likewise.
6951
6952 * include/grub/lib/LzmaEnc.h: Likewise.
6953
6954 * include/grub/lib/LzmaTypes.h: Likewise.
6955
6956 * lib/LzFind.c: Likewise.
6957
6958 * lib/LzmaDec.c: Likewise.
6959
6960 * lib/LzmaEnc.c: Likewise.
6961
6962 2008-07-13 Bean <bean123ch@gmail.com>
6963
6964 * fs/ext2.c (EXT4_EXTENTS_FLAG): New macro.
6965 (grub_ext4_extent_header): New structure.
6966 (grub_ext4_extent): Likewise.
6967 (grub_ext4_extent_idx): Likewise.
6968 (grub_ext4_find_leaf): New function.
6969 (grub_ext2_read_block): Handle extents.
6970
6971 2008-07-12 Robert Millan <rmh@aybabtu.com>
6972
6973 * util/i386/pc/grub-mkrescue.in: s/grub-install/grub-mkrescue/g.
6974
6975 2008-07-11 Robert Millan <rmh@aybabtu.com>
6976
6977 * util/grub.d/40_custom.in: New file. Example on how to add custom
6978 entries to /etc/grub.d.
6979 * conf/common.rmk (%, update-grub_SCRIPTS, CLEANFILES): Install
6980 40_custom (implicitly, by merging all the grub.d rules).
6981
6982 2008-07-11 Pavel Roskin <proski@gnu.org>
6983
6984 * commands/read.c (grub_getline): Fix invalid memory access.
6985 Don't add newline to the variable value.
6986
6987 * term/i386/pc/serial.c (GRUB_SERIAL_PORT_NUM): New constant.
6988 [!GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Add COM2 and COM3.
6989 (serial_hw_get_port): Check validity of the port number.
6990 (grub_cmd_serial): Check return value of serial_hw_get_port().
6991
6992 2008-07-07 Pavel Roskin <proski@gnu.org>
6993
6994 * boot/i386/pc/diskboot.S (notification_string): Replace
6995 "Loading kernel" with just "loading". This is shorter, less
6996 confusing and saves a few bytes for possible future changes.
6997
6998 2008-07-05 Pavel Roskin <proski@gnu.org>
6999
7000 * disk/ata.c (grub_ata_dumpinfo): Don't output addressing and
7001 size for ATAPI devices, they are undefined. Output sector
7002 number in decimal form.
7003
7004 * disk/ata.c: Use named constants for status bits.
7005
7006 2008-07-04 Pavel Roskin <proski@gnu.org>
7007
7008 * kern/i386/linuxbios/init.c (grub_machine_init): Cast addr to
7009 grub_addr_t before casting it to the void pointer to fix a
7010 warning. Non-addressable regions are discarded earlier.
7011 (grub_arch_modules_addr): Cast _end to grub_addr_t.
7012 * kern/i386/linuxbios/table.c: Include grub/misc.h.
7013 (check_signature): Don't shadow table_header.
7014 (grub_linuxbios_table_iterate): Cast numeric constants to
7015 grub_linuxbios_table_header_t.
7016 * include/grub/i386/linuxbios/init.h: Add noreturn attribute to
7017 grub_stop().
7018
7019 * kern/ieee1275/init.c: Cast _start and _end to grub_addr_t to
7020 prevent warnings.
7021
7022 * include/grub/misc.h (ALIGN_UP): Avoid unnecessary cast to a
7023 pointer, which can cause warnings. Support 64-bit addresses.
7024
7025 * util/elf/grub-mkimage.c: Use GRUB_TARGET_SIZEOF_LONG instead
7026 of sizeof(long). This fixes PowerPC image generation on x86_64.
7027
7028 2008-07-04 Robert Millan <rmh@aybabtu.com>
7029
7030 This fixes a performance issue when pc & gpt partmap iterators
7031 didn't abort iteration even after our hook found what it was
7032 looking for (often causing expensive probes of non-existent drives).
7033
7034 Some callers relied on previous buggy behaviour, since they would
7035 raise an error when their own hooks caused early abortion of its
7036 iteration.
7037
7038 * kern/device.c (grub_device_open): Improve error message.
7039 * disk/lvm.c (grub_lvm_open): Likewise.
7040 * disk/raid.c (grub_raid_open): Likewise.
7041
7042 * partmap/pc.c (pc_partition_map_iterate): Abort parent iteration
7043 when hook requests it, independently of grub_errno.
7044 (pc_partition_map_probe): Do not fail when find_func() caused
7045 early abortion of pc_partition_map_iterate().
7046
7047 * partmap/gpt.c (gpt_partition_map_iterate): Abort parent iteration
7048 when hook requests it, independently of grub_errno.
7049 (gpt_partition_map_probe): Do not fail when find_func() caused
7050 early abortion of gpt_partition_map_iterate().
7051
7052 * kern/partition.c (grub_partition_iterate): Abort parent iteration
7053 when hook requests it, independently of grub_errno. Do not fail when
7054 part_map_iterate_hook() caused early abortion of p->iterate().
7055
7056 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail
7057 when grub_partition_iterate() returned with non-zero.
7058
7059 2008-07-03 Pavel Roskin <proski@gnu.org>
7060
7061 * disk/ata.c (grub_ata_pio_write): Check status before writing,
7062 like we do in grub_ata_pio_read().
7063 (grub_ata_readwrite): Always write individual sectors. Fix the
7064 sector count for the remainder.
7065 (grub_ata_write): Enable writing to ATA devices. Correctly
7066 report error for ATAPI devices.
7067
7068 2008-07-02 Pavel Roskin <proski@gnu.org>
7069
7070 * boot/i386/pc/cdboot.S: Add _start entry to fix a linker
7071 warning.
7072
7073 * disk/ata.c (grub_ata_readwrite): Don't increment sector number
7074 for every read sector, we already increment it for the whole
7075 batch. This fixes reading more than 256 sectors at once.
7076
7077 * util/grub-editenv.c (cmd_info): Cast argument to long
7078 explicitly. ptrdiff_t reduces to int on i386.
7079
7080 * util/grub-editenv.c (main): Be specific which parameter is
7081 missing.
7082
7083 * disk/memdisk.c (memdisk_addr): Make a pointer to fix warnings.
7084 (memdisk): Make memdisk_orig_addr a pointer.
7085
7086 * fs/reiserfs.c (grub_reiserfs_read): Fix misuse of grub_size_t
7087 for file offsets, use grub_off_t instead. Fix printf format
7088 warnings.
7089
7090 * fs/reiserfs.c: Remove #warning, TODO list items don't belong
7091 there. Real unexpected warnings should not drown in the noise
7092 about known problems.
7093
7094 * commands/hexdump.c (grub_cmd_hexdump): Fix misuse of
7095 grub_disk_addr_t for memory addresses.
7096
7097 * loader/aout.c (grub_aout_load): Cast load_addr to pointer
7098 explicitly to fix a warning.
7099
7100 * util/grub-editenv.c (cmd_info): Fix warning in printf format.
7101
7102 * Makefile.in (MODULE_LDFLAGS): New variable.
7103 * aclocal.m4 (grub_PROG_LD_BUILD_ID_NONE): New macro. Check if
7104 the linker accepts --build-id=none.
7105 * configure.ac: Call grub_PROG_LD_BUILD_ID_NONE. Substitute
7106 MODULE_LDFLAGS.
7107 * genmk.rb: Use MODULE_LDFLAGS when linking modules.
7108
7109 * fs/xfs.c (struct grub_xfs_dir_header): Use names similar to
7110 those in Linux XFS code. Provide a way to access 64-bit parent
7111 inode.
7112 (grub_xfs_iterate_dir): Use the new names. Avoid reading past
7113 the end of struct grub_xfs_dir_header.
7114
7115 2008-07-02 Bean <bean123ch@gmail.com>
7116
7117 * include/grub/ieee1275.h (grub_ieee1275_flag): New constant
7118 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
7119 and GRUB_IEEE1275_FLAG_NO_ANSI.
7120
7121 * kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set flag
7122 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
7123 and GRUB_IEEE1275_FLAG_NO_ANSI for Open Hackware.
7124
7125 * kern/ieee1275/ieee1275.c (grub_ieee1275_interpret): Return
7126 immediately if GRUB_IEEE1275_FLAG_CANNOT_INTERPRET is set.
7127
7128 * kern/ieee1275/init.c (grub_claim_heap): Claim memory directly if
7129 GRUB_IEEE1275_FLAG_FORCE_CLAIM is set.
7130
7131 * term/ieee1275/ofconsole.c (grub_ofconsole_writeesc): Don't output
7132 esc sequence on non ANSI terminal.
7133 (grub_ofconsole_gotoxy): Emulate backspace key on non ANSI terminal.
7134
7135 * util/elf/grub-mkimage.c (add_segments): Move ELF header to the
7136 beginning of file.
7137
7138 2008-07-02 Bean <bean123ch@gmail.com>
7139
7140 * conf/common.rmk (bin_UTILITIES): Add grub-editenv.
7141 (grub_editenv_SOURCES): New variable.
7142 (pkglib_MODULES): Add loadenv.mod.
7143 (loadenv_mod_SOURCES): New variable.
7144 (loadenv_mod_CFLAGS): Likewise.
7145 (loadenv_mod_LDFLAGS): Likewise.
7146
7147 * include/grub/envblk.h: New file.
7148
7149 * util/envblk.c: New file.
7150
7151 * util/grub-editenv.c: New file.
7152
7153 * commands/loadenv.c: New file.
7154
7155 2008-07-01 Pavel Roskin <proski@gnu.org>
7156
7157 * include/multiboot2.h (struct multiboot_tag_module): Use char,
7158 not unsigned char. This fixes warnings and is consistent with
7159 other tags.
7160
7161 * disk/fs_uuid.c (search_fs_uuid): Correctly increment count.
7162
7163 * normal/parser.y: Define YYENABLE_NLS as 0 to fix warnings.
7164
7165 * term/tparm.c (analyze): Always set *popcount.
7166
7167 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Remove useless
7168 cast to fix a warning.
7169
7170 * loader/i386/pc/multiboot2.c (grub_mb2_arch_module_alloc): Use
7171 cast to suppress a warning.
7172
7173 * fs/afs.c (grub_afs_read_block): Return grub_disk_addr_t, as
7174 grub_fshelp_read_file() expects.
7175
7176 * fs/fat.c: Fix UUID calculation on big-endian systems. We
7177 write uuid as a 32-bit value in CPU byte order, so declare and
7178 use it as such.
7179
7180 * disk/raid.c: Cast grub_dprintf() arguments to unsigned long
7181 long if the format specifier expects it.
7182 * partmap/gpt.c (gpt_partition_map_iterate): Likewise.
7183 * partmap/pc.c (pc_partition_map_iterate): Likewise.
7184 * fs/ntfs.c (grub_ntfs_uuid): Cast data->uuid to unsigned long
7185 long to fix a warning.
7186 * fs/reiserfs.c (grub_reiserfs_read): Change casts in
7187 grub_dprintf() arguments to fix warnings.
7188
7189 2008-06-30 Pavel Roskin <proski@gnu.org>
7190
7191 * util/i386/pc/grub-setup.c (setup): Write install_dos_part and
7192 install_bsd_part immediately before core.img is embedded or
7193 modified on disk. This fixes core.img verification if core.img
7194 cannot be embedded.
7195
7196 * util/i386/pc/grub-setup.c (setup): Use core_path_dev, not
7197 core_path to calculate the blocklist.
7198 Patch from Javier Martín <lordhabbit@gmail.com>
7199
7200 2008-06-29 Robert Millan <rmh@aybabtu.com>
7201
7202 * fs/xfs.c (GRUB_XFS_FSB_TO_BLOCK): New macro. Maps filesystem
7203 block to disk block.
7204 (grub_xfs_read_block): Use GRUB_XFS_FSB_TO_BLOCK() on result.
7205 Patch from Niels Böhm <bitbucket@arcor.de>
7206
7207 2008-06-29 Robert Millan <rmh@aybabtu.com>
7208
7209 * util/update-grub_lib.in (font_path): Search for fonts in
7210 /boot/grub first, which is more likely to be readable (we aren't
7211 deciding where fonts live, just looking for them).
7212
7213 2008-06-26 Pavel Roskin <proski@gnu.org>
7214
7215 * util/biosdisk.c (read_device_map): Don't leave dead map
7216 entries for devices failing stat() check.
7217
7218 * util/i386/pc/grub-setup.c (setup): Don't reuse core_path, use
7219 core_path_dev for the core.img path on the target device.
7220
7221 2008-06-26 Robert Millan <rmh@aybabtu.com>
7222
7223 * disk/fs_uuid.c: New file.
7224 * conf/common.rmk (pkglib_MODULES): Add `fs_uuid.mod'.
7225 (fs_uuid_mod_SOURCES, fs_uuid_mod_CFLAGS)
7226 (fs_uuid_mod_LDFLAGS): New variables.
7227 * include/grub/disk.h (grub_disk_dev_id): Add
7228 `GRUB_DISK_DEVICE_UUID_ID'.
7229 * kern/disk.c (grub_disk_dev_iterate): Allow disk devices not to
7230 implement iterate().
7231
7232 2008-06-26 Robert Millan <rmh@aybabtu.com>
7233
7234 * util/grub.d/10_linux.in: Avoid passing UUIDs to Linux when either
7235 "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" does not exist, or when a
7236 Linux image includes no initrd.
7237
7238 2008-06-21 Javier Martín <lordhabbit@gmail.com>
7239
7240 * util/i386/pc/grub-setup.c (setup): Remove literal "core.img" in a
7241 call to resolve the core image location that effectively appended the
7242 name twice.
7243
7244 2008-06-21 Robert Millan <rmh@aybabtu.com>
7245
7246 * util/grub.d/00_header.in: Move last prepare_grub_to_access_device()
7247 call from here ...
7248
7249 * util/grub.d/10_hurd.in: ... to here ...
7250 * util/grub.d/10_linux.in: ... and here.
7251
7252 2008-06-19 Robert Millan <rmh@aybabtu.com>
7253
7254 * kern/main.c (grub_main): Export `prefix' variable immediately
7255 after it has been set by grub_machine_set_prefix().
7256
7257 2008-06-19 Robert Millan <rmh@aybabtu.com>
7258
7259 * commands/search.c (search_label, search_fs_uuid, search_file): Print
7260 search result when not saving to variable, not the other way around.
7261 When saving to variable, abort iteration as soon as a match is found.
7262
7263 2008-06-19 Robert Millan <rmh@aybabtu.com>
7264
7265 * util/update-grub_lib.in (prepare_grub_to_access_device): Remove
7266 check for partition that provides /boot/grub. Its logic is flawed,
7267 as it prevents prepare_grub_to_access_device() from being called
7268 multiple times.
7269
7270 2008-06-19 Robert Millan <rmh@aybabtu.com>
7271
7272 * util/update-grub_lib.in (prepare_grub_to_access_device): Issue
7273 "insmod" command directly when abstraction modules are needed,
7274 instead of relying on GRUB_PRELOAD_MODULES (which had no effect
7275 since it had already been processed).
7276
7277 2008-06-19 Pavel Roskin <proski@gnu.org>
7278
7279 * conf/i386-efi.rmk: Recompile grub-mkimage.c if Makefile has
7280 changed. This is needed in case GRUB_LIBDIR changes.
7281 * conf/i386-ieee1275.rmk: Likewise.
7282 * conf/i386-linuxbios.rmk: Likewise.
7283 * conf/i386-pc.rmk: Likewise.
7284 * conf/powerpc-ieee1275.rmk: Likewise.
7285
7286 2008-06-18 Pavel Roskin <proski@gnu.org>
7287
7288 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Rename
7289 kernel_elf_symlist.c to symlist.c for consistency with other
7290 architectures. Update all users.
7291 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
7292
7293 2008-06-18 Robert Millan <rmh@aybabtu.com>
7294
7295 * util/i386/pc/grub-install.in: If the drive is LVM or RAID, prepend
7296 it in prefix.
7297
7298 * util/i386/pc/grub-setup.c (main): Don't handle prefix at all. Set
7299 `must_embed' to 1 when root_dev is a RAID device. When dest_dev is
7300 a RAID device, run setup() for all members independently on whether
7301 LVM abstraction is being used.
7302 (setup): Don't handle prefix at all; let grub-mkimage take care of it.
7303 If grub-mkimage has set `*install_dos_part == -2', don't override this
7304 value.
7305 Perform *install_dos_part adjustments independently on whether
7306 we're embedding or not.
7307 Clarify error message when image is too big for embedding.
7308 Remove duplicate *install_dos_part stanza.
7309
7310 2008-06-17 Robert Millan <rmh@aybabtu.com>
7311
7312 * term/ieee1275/ofconsole.c (fgcolor, bgcolor): Remove variables.
7313 (grub_ofconsole_normal_color, grub_ofconsole_highlight_color): New
7314 variables.
7315 (grub_ofconsole_setcolor, grub_ofconsole_getcolor): Load/store
7316 values in grub_ofconsole_normal_color and
7317 grub_ofconsole_highlight_color (they're not directly related to
7318 background and foreground).
7319 (grub_ofconsole_setcolorstate): Extract background and foreground
7320 from grub_ofconsole_normal_color and grub_ofconsole_highlight_color.
7321
7322 2008-06-17 Robert Millan <rmh@aybabtu.com>
7323
7324 * util/update-grub_lib.in (prepare_grub_to_access_device): Use
7325 /boot/grub for the check in last commit, not /boot (they could be
7326 different partitions).
7327
7328 2008-06-16 Robert Millan <rmh@aybabtu.com>
7329
7330 * util/update-grub_lib.in (prepare_grub_to_access_device): If we were
7331 asked to setup access for the same partition that provides /boot,
7332 don't bother using UUIDs since our root already has the value we
7333 want.
7334
7335 2008-06-16 Robert Millan <rmh@aybabtu.com>
7336
7337 * util/biosdisk.c (convert_system_partition_to_system_disk): Detect
7338 I2O devices.
7339 Patch from Sven Mueller <sven@debian.org>.
7340
7341 2008-06-16 Robert Millan <rmh@aybabtu.com>
7342
7343 * util/update-grub.in: Check for $EUID instead of $UID.
7344 Reported by Vincent Zweije.
7345
7346 2008-06-16 Bean <bean123ch@gmail.com>
7347
7348 * fs/ext2.c (grub_ext2_blockgroup): Revert to pre-journal state.
7349 (grub_ext2_read_block): Likewise.
7350 (grub_ext2_read_inode): Likewise.
7351 (grub_ext2_mount): Likewise.
7352 (grub_ext2_close): Likewise.
7353 (grub_ext3_get_journal): Removed.
7354
7355 * fs/reiserfs.c (grub_reiserfs_get_item): Revert to pre-journal state.
7356 (grub_reiserfs_read_symlink): Likewise.
7357 (grub_reiserfs_mount): Likewise.
7358 (grub_reiserfs_open): Likewise.
7359 (grub_reiserfs_read): Likewise.
7360 (grub_reiserfs_close): Likewise.
7361 (grub_reiserfs_get_journal): Removed.
7362
7363 * fs/fshelp.c (grub_fshelp_read): Removed.
7364 (grub_fshelp_map_block): Likewise.
7365
7366 * include/grub/fshelp.h (grub_fshelp_journal_type): Removed.
7367 (grub_fshelp_journal): Likewise.
7368 (grub_fshelp_read): Likewise.
7369 (grub_fshelp_map_block): Likewise.
7370
7371 2008-06-16 Pavel Roskin <proski@gnu.org>
7372
7373 * conf/powerpc-ieee1275.rmk: Remove -msoft-float, we don't use
7374 floating point anymore.
7375 * include/grub/powerpc/libgcc.h: Leave only necessary exports.
7376
7377 2008-06-15 Pavel Roskin <proski@gnu.org>
7378
7379 * commands/ls.c (grub_ls_list_files): Use integer calculations
7380 for human readable format, avoid floating point use.
7381 * kern/misc.c (grub_ftoa): Remove.
7382 (grub_vsprintf): Remove floating point support.
7383
7384 2008-06-15 Robert Millan <rmh@aybabtu.com>
7385
7386 * util/grub.d/10_linux.in: Use the underlying device for loop-AES
7387 devices.
7388 Reported by Max Vozeler.
7389
7390 2008-06-15 Robert Millan <rmh@aybabtu.com>
7391
7392 * util/i386/pc/grub-mkimage.c (generate_image): If we included a drive
7393 in our prefix, set install_{dos,bsd}_part = -2 to indicate this can be
7394 skipped later.
7395 (main): If a memdisk was requested, add "(memdisk)" drive explicitly to
7396 the beginning of the prefix.
7397
7398 * kern/i386/pc/init.c (make_install_device): Remove memdisk check.
7399 It is assumed that if we have a memdisk, grub-mkimage has set
7400 grub_prefix to include the "(memdisk)" drive in it.
7401
7402 2008-06-15 Robert Millan <rmh@aybabtu.com>
7403
7404 * term/i386/pc/console.c [GRUB_MACHINE_LINUXBIOS] (grub_console_init):
7405 Initialize keyboard controller after registering the terminal, so that
7406 grub_printf() can be called from grub_keyboard_controller_init().
7407
7408 2008-06-15 Robert Millan <rmh@aybabtu.com>
7409
7410 * fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in
7411 extent-btree which is written as big endian on disk.
7412 Reported by Alain Greppin <al@chilibi.org>.
7413
7414 2008-06-14 Robert Millan <rmh@aybabtu.com>
7415
7416 * util/i386/efi/grub-install.in (modules): Remove `_chain'.
7417 * util/i386/pc/grub-install.in (modules): Likewise.
7418
7419 2008-06-13 Pavel Roskin <proski@gnu.org>
7420
7421 * commands/ls.c (grub_ls_list_files): Fix format warnings.
7422
7423 2008-06-13 Bean <bean123ch@gmail.com>
7424
7425 * commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.
7426
7427 * fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling.
7428
7429 * fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
7430 to indicate sparse block.
7431
7432 2008-06-12 Pavel Roskin <proski@gnu.org>
7433
7434 * fs/ext2.c (grub_ext2_read_inode): Don't normalize block
7435 number, grub_fshelp_read() does it for us.
7436
7437 * fs/fshelp.c (grub_fshelp_read): New function. Implement
7438 linear disk read with journal translation.
7439 * fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
7440 * include/grub/fshelp.h: Declare grub_fshelp_read().
7441
7442 2008-06-09 Pavel Roskin <proski@gnu.org>
7443
7444 * fs/minix.c (grub_minix_mount): Handle error reading
7445 superblock.
7446
7447 2008-06-08 Robert Millan <rmh@aybabtu.com>
7448
7449 * util/i386/pc/grub-setup.c (main): If install drive is an LVM,
7450 don't append the RAID prefix afterwards.
7451 Reported by Clint Adams.
7452
7453 2008-06-08 Robert Millan <rmh@aybabtu.com>
7454
7455 Based on description from Pavel:
7456 * kern/disk.c (grub_disk_check_range): Rename to ...
7457 (grub_disk_adjust_range): ... this. Add a comment explaining the
7458 tasks performed by this function.
7459
7460 2008-06-08 Robert Millan <rmh@aybabtu.com>
7461
7462 * include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to
7463 `num_serial' (for consistency with other variables).
7464 (struct grub_ntfs_data): Add `uuid' member.
7465 * fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'.
7466 (grub_ntfs_uuid): New function.
7467 (grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member.
7468
7469 2008-06-07 Pavel Roskin <proski@gnu.org>
7470
7471 * util/biosdisk.c (open_device): Revert last change to the
7472 function, it broke installation. The sector needs to be
7473 different dependent on which device is opened.
7474
7475 2008-06-06 Robert Millan <rmh@aybabtu.com>
7476
7477 Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the
7478 rest of GRUB, and breakage doesn't happen if its value were modified.
7479
7480 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
7481 Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of
7482 a constant (same value).
7483 * kern/i386/pc/startup.S: Replace hardcoded `0x50' with
7484 `GRUB_KERNEL_MACHINE_DATA_END' (same value).
7485
7486 2008-06-06 Robert Millan <rmh@aybabtu.com>
7487
7488 * util/biosdisk.c (open_device): Do not modify sector offset when
7489 accessing a partition. kern/disk.c already handles this for us.
7490
7491 2008-06-06 Robert Millan <rmh@aybabtu.com>
7492
7493 * util/grub-emu.c (grub_machine_init): Move code in this function from
7494 here ...
7495 (main): ... to here (before grub_util_biosdisk_init() call, to prevent
7496 segfault in case grub_printf() is called).
7497
7498 * util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to
7499 grub_probe. Update all users not to explicitly add it again.
7500 (grub_device): New variable; contains corresponding device for grubdir.
7501 (fs_module, partmap_module, devabstraction_module): Pass
7502 `--device ${grub_device}' to grub_probe to avoid traversing /dev
7503 every time.
7504
7505 2008-06-05 Robert Millan <rmh@aybabtu.com>
7506
7507 * normal/misc.c (grub_normal_print_device_info): When a filesystem UUID
7508 is found, print it (same layout as with labels).
7509
7510 2008-06-04 Robert Millan <rmh@aybabtu.com>
7511
7512 * util/biosdisk.c (get_drive): Rename to ...
7513 (find_grub_drive): ... this. Update all users.
7514
7515 (get_os_disk): Rename to ...
7516 (convert_system_partition_to_system_disk): ... this. Update all users.
7517
7518 (find_drive): Rename to ...
7519 (find_system_device): ... this. Update all users.
7520
7521 2008-06-04 Robert Millan <rmh@aybabtu.com>
7522
7523 * util/biosdisk.c (get_os_disk): Handle IDA devices.
7524 * util/grub-mkdevicemap.c (get_mmc_disk_name)
7525 (make_device_map): Likewise.
7526
7527 2008-06-01 Robert Millan <rmh@aybabtu.com>
7528
7529 * util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL
7530 before dereferencing it.
7531
7532 * fs/fat.c (struct grub_fat_bpb): Move fat32-specific fields into a
7533 union with fat12/fat16-specific ones. Add some new fields, including
7534 `num_serial' for both versions.
7535 (struct grub_fat_data): Add `uuid' member.
7536 (grub_fat_mount): Refer to fat32-specific fields in `bpb' by their new
7537 names. Initialize `data->uuid' using `num_serial'.
7538 (grub_fat_uuid): New function.
7539 (grub_fat_fs): Reference grub_fat_uuid() in `uuid' struct member.
7540
7541 * fs/reiserfs.c (grub_reiserfs_superblock): Add `uuid' field.
7542 (grub_reiserfs_uuid): New function.
7543 (grub_reiserfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct
7544 member.
7545
7546 * fs/xfs.c (grub_xfs_sblock): Add `uuid' field.
7547 (grub_xfs_uuid): New function.
7548 (grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member.
7549
7550 2008-06-01 Robert Millan <rmh@aybabtu.com>
7551
7552 * util/update-grub_lib.in (prepare_grub_to_access_device): Generate
7553 code that is backward compatible with pre-uuid search command.
7554
7555 2008-05-31 Robert Millan <rmh@aybabtu.com>
7556
7557 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through
7558 floppies after everything else, to ensure floppy drive isn't accessed
7559 unnecessarily (patch from Bean).
7560
7561 2008-05-31 Robert Millan <rmh@aybabtu.com>
7562
7563 * commands/search.c (search_label, search_fs_uuid, search_file): Do
7564 not print device names when we were asked to set a variable.
7565
7566 2008-05-31 Robert Millan <rmh@aybabtu.com>
7567
7568 * term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement
7569 using "cursor-on" and "cursor-off" commands (understood at least by
7570 the Open Firmware flavour on OLPC).
7571
7572 2008-05-31 Michael Gorven <michael@gorven.za.net>
7573
7574 * term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor
7575 on and off sequences.
7576
7577 2008-05-31 Robert Millan <rmh@aybabtu.com>
7578
7579 * util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'.
7580 * util/update-grub.in: Likewise.
7581
7582 2008-05-30 Pavel Roskin <proski@gnu.org>
7583
7584 * util/biosdisk.c (linux_find_partition): Simplify logic and
7585 make the code more universal. Keep special processing for
7586 devfs, but use a simple rule for all other devices. If the
7587 device ends with a number, append 'p' and the partition number.
7588 Otherwise, append only the partition number.
7589
7590 2008-05-30 Robert Millan <rmh@aybabtu.com>
7591
7592 * util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable.
7593 * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and
7594 GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as
7595 the `root' parameter to Linux.
7596
7597 2008-05-30 Robert Millan <rmh@aybabtu.com>
7598
7599 * commands/search.c (options): Rename --fs_uuid to --fs-uuid.
7600 * util/update-grub_lib.in (prepare_grub_to_access_device): Replace
7601 --fs_uuid with --fs-uuid.
7602 * util/update-grub.in: Allow filesystem UUID probes to fail (since not
7603 all filesystems support them).
7604
7605 2008-05-30 Robert Millan <rmh@aybabtu.com>
7606
7607 * fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as
7608 grub_printf() flags, since we're printing in units of 2 bytes.
7609
7610 2008-05-30 Robert Millan <rmh@aybabtu.com>
7611
7612 * util/grub.d/00_header.in: Remove obsolete comment referencing
7613 convert_system_path_to_grub_path().
7614 * util/update-grub.in: Likewise.
7615 * util/update-grub_lib.in (is_path_readable_by_grub): New function.
7616 (convert_system_path_to_grub_path): Add a warning message explaining
7617 that this function is deprecated. Rely on is_path_readable_by_grub()
7618 for the readability checks.
7619 (font_path): Use is_path_readable_by_grub() for the readability
7620 check rather than convert_system_path_to_grub_path().
7621
7622 2008-05-30 Robert Millan <rmh@aybabtu.com>
7623
7624 * util/update-grub_lib.in (prepare_grub_to_access_device): New function.
7625 * util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without
7626 converting it first.
7627 * util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup
7628 grub.cfg for access to font file, and afterwards call it again to set
7629 the root device.
7630
7631 2008-05-30 Robert Millan <rmh@aybabtu.com>
7632
7633 * commands/search.c (options): Add --fs_uuid option.
7634 (search_fs_uuid): New function.
7635 (grub_cmd_search): Fix --set argument passing.
7636 Use search_fs_uuid() when requested via --fs_uuid.
7637 (grub_search_init): Update help message.
7638 * fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid'
7639 and redeclare it as an array of 16-bit words.
7640 (grub_ext2_uuid): New function.
7641 (grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member.
7642 * include/grub/fs.h (struct grub_fs): Add `uuid' struct member.
7643 * util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT)
7644 (GRUB_DEVICE_BOOT_UUID): New variables.
7645 (GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove.
7646 * util/grub.d/00_header.in: Set root using `search --fs_uuid' command
7647 whenever possible.
7648 * util/grub.d/10_hurd.in: Avoid explicit use of root drive. Instead,
7649 just assume `root' variable has the right value.
7650 * util/grub.d/10_linux.in: Likewise.
7651 * util/grub-probe.c (probe): Probe for filesystem UUID when requested
7652 via PRINT_FS_UUID.
7653 (main): Recognise `-t fs_uuid' argument.
7654
7655 2008-05-30 Robert Millan <rmh@aybabtu.com>
7656
7657 * util/biosdisk.c (map): Redefine structure to hold information
7658 about GRUB drive name.
7659 (get_drive): Reimplement without assuming (and verifying) BIOS-like
7660 drive names.
7661 (call_hook): Remove.
7662 (grub_util_biosdisk_iterate): Access drive names via `.drive' struct
7663 member. Assume drive has partitions.
7664 (grub_util_biosdisk_open): Access device names via `.device' struct
7665 member.
7666 (open_device): Likewise.
7667 (find_drive): Likewise.
7668 (read_device_map): Adjust map[] usage to match the new struct
7669 definition. Don't check for duplicates (still possible, but not cheap
7670 anymore).
7671 (grub_util_biosdisk_fini): Free malloced buffers referenced by map[].
7672 (make_device_name): Remove assumption of BIOS-like drive names.
7673
7674 2008-05-30 Pavel Roskin <proski@gnu.org>
7675
7676 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as
7677 compiling execute.c doesn't need grub_script.tab.h anymore.
7678 (normal/command.c_DEPENDENCIES): Likewise.
7679 (normal/function.c_DEPENDENCIES): Likewise.
7680 * conf/i386-ieee1275.rmk: Likewise.
7681 * conf/i386-linuxbios.rmk: Likewise.
7682 * conf/i386-pc.rmk: Likewise.
7683 * conf/powerpc-ieee1275.rmk: Likewise.
7684 * conf/sparc64-ieee1275.rmk: Likewise.
7685
7686 2008-05-29 Pavel Roskin <proski@gnu.org>
7687
7688 * disk/lvm.c (grub_lvm_scan_device): Check for the buffer end
7689 when scanning metadata for volume group name.
7690
7691 * include/grub/script.h: Don't include grub_script.tab.h. It's
7692 a generated file, which may only be included from the files with
7693 DEPENDENCIES rules in the makefile. Don't use typedef YYSTYPE,
7694 use union YYSTYPE, as the later allows forward declaration.
7695 * normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.
7696
7697 2008-05-29 Robert Millan <rmh@aybabtu.com>
7698
7699 * term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'.
7700 (OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros.
7701 [GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes
7702 (grub_console_checkkey): Add grub_dprintf() call to report unknown
7703 scan codes.
7704
7705 2008-05-29 Robert Millan <rmh@aybabtu.com>
7706
7707 * term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for
7708 control key combinations.
7709
7710 2008-05-29 Robert Millan <rmh@aybabtu.com>
7711
7712 * util/powerpc/ieee1275/grub-install.in: Move from here ...
7713 * util/ieee1275/grub-install.in: ... to here.
7714 * powerpc-ieee1275.rmk (grub_install_SOURCES): Update location.
7715 * i386-ieee1275.rmk (sbin_SCRIPTS): New variable.
7716 (grub_install_SOURCES): Likewise.
7717
7718 2008-05-29 Robert Millan <rmh@aybabtu.com>
7719
7720 * fs/affs.c: Update copyright year.
7721 * fs/ext2.c: Likewise.
7722 * fs/fshelp.c: Likewise.
7723 * fs/hfsplus.c: Likewise.
7724 * fs/ntfs.c: Likewise.
7725 * fs/xfs.c: Likewise.
7726 * include/grub/fshelp.h: Likewise.
7727 * util/grub-mkdevicemap.c: Likewise.
7728
7729 2008-05-28 Robert Millan <rmh@aybabtu.com>
7730
7731 * util/update-grub.in: Allow chmod call to fail, since /boot/grub/
7732 might need to be fatfs to support some firmware implementations
7733 (e.g. OFW or EFI).
7734
7735 2008-05-28 Robert Millan <rmh@aybabtu.com>
7736
7737 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC
7738 devices.
7739 * util/grub-mkdevicemap.c (get_mmc_disk_name)
7740 (make_device_map): Likewise.
7741
7742 2008-05-20 Bean <bean123ch@gmail.com>
7743
7744 * fs/fshelp.c (grub_fshelp_map_block): New function.
7745 (grub_fshelp_find_file): Use 64-bit type for pos and block address.
7746 Use `>>' and `&' operator to avoid 64-bit divide and modulo.
7747
7748 * include/grub/fshelp.h (grub_fshelp_journal_type): New enum.
7749 (GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro.
7750 (grub_fshelp_journal): New structure.
7751 (grub_fshelp_map_block): New function prototype.
7752 (grub_fshelp_read_file): Use grub_disk_addr_t as block type.
7753 (grub_fshelp_map_block): Likewise.
7754
7755 * fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro.
7756 (EXT3_JOURNAL_MAGIC_NUMBER): Likewise.
7757 (EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise.
7758 (EXT3_JOURNAL_COMMIT_BLOCK): Likewise.
7759 (EXT3_JOURNAL_SUPERBLOCK_V1): Likewise.
7760 (EXT3_JOURNAL_SUPERBLOCK_V2): Likewise.
7761 (EXT3_JOURNAL_REVOKE_BLOCK): Likewise.
7762 (EXT3_JOURNAL_FLAG_ESCAPE): Likewise.
7763 (EXT3_JOURNAL_FLAG_SAME_UUID): Likewise.
7764 (EXT3_JOURNAL_FLAG_DELETED): Likewise.
7765 (EXT3_JOURNAL_FLAG_LAST_TAG): Likewise.
7766 (grub_ext2_sblock): New members for journal support.
7767 (grub_ext3_journal_header): New structure.
7768 (grub_ext3_journal_revoke_header): Likewise.
7769 (grub_ext3_journal_block_tag): Likewise.
7770 (grub_ext3_journal_sblock): Likewise.
7771 (grub_fshelp_node): New members logfile and journal.
7772 (grub_ext2_read_block): Change block type to grub_disk_addr_t. Use
7773 grub_fshelp_map_block to get real block number.
7774 (grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block
7775 number.
7776 (grub_ext2_read_inode): Likewise.
7777 (grub_ext3_get_journal): New function.
7778 (grub_read_inode): Initialize journal using grub_ext3_get_journal.
7779 (grub_ext2_close): Release memory used by journal.
7780
7781 * fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr".
7782 (REISERFS_MAGIC_DESC_BLOCK): New macro.
7783 (grub_reiserfs_transaction_header): Renamed to
7784 grub_reiserfs_description_block, replace field data with real_blocks.
7785 (grub_reiserfs_commit_block): New structure.
7786 (grub_reiserfs_data): New member journal.
7787 (grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block
7788 number.
7789 (grub_reiserfs_read_symlink): Likewise.
7790 (grub_reiserfs_iterate_dir): Likewise.
7791 (grub_reiserfs_open): Likewise.
7792 (grub_reiserfs_read): Likewise.
7793 (grub_reiserfs_get_journal): New function.
7794 (grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are
7795 three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal
7796 using grub_reiserfs_get_journal.
7797 (grub_reiserfs_close): Release memory used by journal.
7798
7799 * fs/affs.c (grub_affs_read_block): Change block type to
7800 grub_disk_addr_t. Use grub_divmod64 to do 64-bit division.
7801
7802 * fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t.
7803
7804 * fs/hfsplus.c (grub_hfsplus_read_block): Likewise.
7805
7806 * fs/ntfs.c (grub_ntfs_read_block): Likewise.
7807
7808 * fs/udf.c (grub_udf_read_block): Change block type to
7809 grub_disk_addr_t. Use type cast to avoid warning.
7810
7811 * fs/xfs.c (grub_xfs_read_block): Likewise.
7812
7813 2008-05-16 Christian Franke <franke@computer.org>
7814
7815 * commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue
7816 to ensure that break with ESC will always work.
7817 * commands/sleep.c (grub_interruptible_millisleep): Likewise.
7818 Remove ESC from keyboard queue.
7819
7820 2008-05-16 Christian Franke <franke@computer.org>
7821
7822 * util/biosdisk.c: [__CYGWIN__] Add includes.
7823 (grub_util_biosdisk_open): Use Linux code also for Cygwin.
7824 (get_os_disk): Move variable declarations to OS specific
7825 parts to avoid warning.
7826 [__GNU__] (get_os_disk): Fix /dev/sdXsN case.
7827 [__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names.
7828 (grub_util_biosdisk_get_grub_dev): Use Linux code also for
7829 Cygwin.
7830 * util/getroot.c: [__CYGWIN__] Add includes.
7831 (strip_extra_slashes): Fix "/" case.
7832 [__CYGWIN__] (get_win32_path): New function.
7833 [__CYGWIN__] (grub_get_prefix): Add conversion to win32 path.
7834 [__CYGWIN__] (find_root_device): Disable.
7835 [__CYGWIN__] (get_bootsec_serial): New function.
7836 [__CYGWIN__] (find_cygwin_root_device): Likewise.
7837 [__linux__] (grub_guess_root_device): Add early returns to simplify
7838 structure.
7839 [__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device.
7840 [__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID
7841 check for Linux only.
7842
7843 2008-05-15 Bean <bean123ch@gmail.com>
7844
7845 * kern/i386/pc/startup.S (grub_console_getkey): Workaround for the
7846 keyboard hang problem in apple's intel mac.
7847
7848 2008-05-09 Robert Millan <rmh@aybabtu.com>
7849
7850 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio
7851 devices.
7852 * util/grub-mkdevicemap.c (get_virtio_disk_name)
7853 (make_device_map): Likewise.
7854 Reported by Aurelien Jarno <aurel32@debian.org>
7855
7856 2008-05-07 Ian Campbell <ijc@hellion.org.uk>
7857
7858 * util/biosdisk.c (get_os_disk): Recognise xvd type disks.
7859 * util/grub-mkdevicemap.c (get_xvd_disk_name): New function.
7860 (make_device_map): Output entries for xvd type disks.
7861
7862 2008-05-07 Robert Millan <rmh@aybabtu.com>
7863
7864 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS
7865 devices.
7866 * util/grub-mkdevicemap.c (get_cciss_disk_name)
7867 (make_device_map): Likewise.
7868 Reported by Roland Dreier <rdreier@cisco.com>
7869
7870 2008-05-07 Robert Millan <rmh@aybabtu.com>
7871
7872 * disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional
7873 grub_strstr() call. Correct a few mistakes in failure path handling.
7874
7875 2008-05-06 Robert Millan <rmh@aybabtu.com>
7876
7877 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
7878 Do not print a trailing slash (therefore, the root directory is an
7879 empty string).
7880 (convert_system_path_to_grub_path): Do not remove trailing slash
7881 from make_system_path_relative_to_its_root() output.
7882
7883 * util/i386/pc/grub-install.in: Add trailing slash to output from
7884 make_system_path_relative_to_its_root().
7885
7886 2008-05-06 Robert Millan <rmh@aybabtu.com>
7887
7888 * util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'. This
7889 ensures that output lines aren't intermangled with those sent to
7890 stderr (via grub_util_info()).
7891 * util/grub-probe.c (grub_refresh): Likewise.
7892 * util/i386/pc/grub-setup.c (grub_refresh): Likewise.
7893
7894 2008-05-05 Christian Franke <franke@computer.org>
7895
7896 * util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]:
7897 Add Cygwin device names.
7898 (get_ide_disk_name) [__CYGWIN__]: Likewise.
7899 (get_scsi_disk_name) [__CYGWIN__]: Likewise.
7900 (check_device): Return error instead of success on empty name.
7901 (make_device_map): Move label inside linux specific code to
7902 prevent compiler warning.
7903
7904 2008-04-30 Robert Millan <rmh@aybabtu.com>
7905
7906 Based on patch from Fabian Greffrath <greffrath@leat.rub.de>
7907 * util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the
7908 first boot option.
7909 * util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT.
7910
7911 2008-04-29 Robert Millan <rmh@aybabtu.com>
7912
7913 * docs/grub.cfg: New file (example GRUB configuration).
7914
7915 2008-04-26 Robert Millan <rmh@aybabtu.com>
7916
7917 * DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST). Add
7918 `loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c'
7919 and `disk/ieee1275/nand.c'.
7920
7921 2008-04-25 Bean <bean123ch@gmail.com>
7922
7923 * Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and
7924 i386-linuxbios.
7925
7926 * commands/hexdump.c (grub_cmd_hexdump): Support dumping of device,
7927 change the buffer size to 4096 for cdrom device.
7928
7929 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add _linux.mod, linux.mod
7930 and nand.mod.
7931 (_linux_mod_SOURCES): New variable.
7932 (_linux_mod_CFLAGS): Likewise.
7933 (_linux_mod_LDFLAGS): Likewise.
7934 (linux_mod_SOURCES): Likewise.
7935 (linux_mod_CFLAGS): Likewise.
7936 (linux_mod_LDFLAGS): Likewise.
7937 (nand_mod_SOURCES): Likewise.
7938 (nand_mod_CFLAGS): Likewise.
7939 (nand_mod_LDFLAGS): Likewise.
7940
7941 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Return
7942 GRUB_ERR_UNKNOWN_DEVICE instead of GRUB_ERR_BAD_DEVICE if no device
7943 type property. (nand device in olpc don't have this property)
7944
7945 * include/grub/disk.h (grub_disk_dev_id): New macro
7946 GRUB_DISK_DEVICE_NAND_ID.
7947
7948 * include/grub/i386/ieee1275/loader.h (grub_rescue_cmd_linux): New
7949 function prototype.
7950 (grub_rescue_cmd_initrd): Likewise.
7951
7952 * include/grub/i386/linux.h (GRUB_LINUX_OFW_SIGNATURE): New macro.
7953 (linux_kernel_params): Add new member ofw_signature, ofw_num_items,
7954 ofw_cif_handler and ofw_idt, adjust padding number.
7955
7956 * include/grub/i386/pc/memory.h (grub_upper_mem): Export it if
7957 GRUB_MACHINE_IEEE1275 is defined.
7958
7959 * include/grub/ieee1275/ieee1275.h (grub_available_iterate):
7960 Use NESTED_FUNC_ATTR attribute on the hook parameter.
7961
7962 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Use NESTED_FUNC_ATTR
7963 on nested function heap_init.
7964 (grub_upper_mem): New variable for i386-ieee1275.
7965 (grub_get_extended_memory): New function for i386-ieee1275.
7966 (grub_machine_init): Call grub_get_extended_memory for i386-ieee1275.
7967
7968 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Use
7969 NESTED_FUNC_ATTR on the hook parameter. Don't quit if no device type
7970 property.
7971
7972 * loader/i386/ieee1275/linux.c: New file.
7973
7974 * loader/i386/ieee1275/linux_normal.c: New file.
7975
7976 * disk/ieee1275/nand.c: New file.
7977
7978 2008-04-18 Thomas Schwinge <tschwinge@gnu.org>
7979
7980 * util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct
7981 value.
7982 * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise.
7983
7984 2008-04-18 Robert Millan <rmh@aybabtu.com>
7985
7986 Restructures early code path on ieee1275 to unify grub_main() as
7987 the first C function that is executed in every platform.
7988
7989 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype.
7990 * kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of
7991 cmain().
7992 * kern/powerpc/ieee1275/crt0.S (_start): Likewise.
7993 * kern/ieee1275/cmain.c (cmain): Rename to ...
7994 * kern/ieee1275/cmain.c (grub_ieee1275_init): ... this.
7995 * kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init()
7996 at the beginning.
7997
7998 2008-04-18 Robert Millan <rmh@aybabtu.com>
7999
8000 * util/update-grub.in: Fix syntax error when setting
8001 `GRUB_PRELOAD_MODULES'.
8002 Reported by Stephane Chazelas <stephane@artesyncp.com>
8003
8004 2008-04-17 Lubomir Kundrak <lkundrak@redhat.com>
8005
8006 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text
8007 section into account, newer toolchains generate unique build ids
8008 * configure.ac: remove the test for --build-id=none acceptance,
8009 we want build ids to be preserved
8010 * genmk.rb: add -R .note.gnu.build-id to objcopy, so build id
8011 far from other sections don't cause the raw binary images grow
8012 size
8013
8014 2008-04-15 Robert Millan <rmh@aybabtu.com>
8015
8016 * disk/lvm.c: Update copyright year.
8017 * kern/misc.c: Likewise.
8018
8019 2008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
8020
8021 * disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when
8022 there is no memory left for physical volume name.
8023
8024 2008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
8025
8026 * disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical
8027 volume name mapping to support bigger than 9 character names properly.
8028
8029 2008-04-13 Robert Millan <rmh@aybabtu.com>
8030
8031 * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
8032 as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm
8033
8034 2008-04-13 Christian Franke <franke@computer.org>
8035
8036 * util/i386/pc/grub-mkrescue.in: Add --emulation=floppy
8037 to create a floppy emulation boot CD when non emulation mode
8038 does not work.
8039 Enable Joliet CD filesystem extension.
8040
8041 2008-04-13 Robert Millan <rmh@aybabtu.com>
8042
8043 * kern/misc.c (grub_strncat): Fix off-by-one error.
8044 Reported by Zhang Huan <zhanghuan@nrchpc.ac.cn>
8045
8046 * kern/env.c (grub_env_context_close): Clear current context, not
8047 previous one.
8048 Patch from Zhang Huan <zhanghuan@nrchpc.ac.cn>
8049
8050 * kern/misc.c (grub_strcat): Minor speed optimization (same code size).
8051
8052 2008-04-13 Robert Millan <rmh@aybabtu.com>
8053
8054 Improve robustness when handling LVM.
8055
8056 * disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL
8057 (and leave `*p' unmodified).
8058 (grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating
8059 through it.
8060 (grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when
8061 iterating through it.
8062 (grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating
8063 through it.
8064 (grub_lvm_scan_device): Check the return value (and fail gracefully
8065 when due) on each grub_lvm_getvalue() or grub_strstr() call.
8066 Don't assume `vg->pvs != NULL' when iterating through it.
8067
8068 2008-04-13 Robert Millan <rmh@aybabtu.com>
8069
8070 * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
8071 * genmk.rb (partmap): New variable.
8072 (CLEANFILES, PARTMAPFILES): Add #{partmap}.
8073 (#{partmap}): New target rule.
8074 * genpartmaplist.sh: New file.
8075 * Makefile.in (pkglib_DATA): Add partmap.lst.
8076 (partmap.lst): New target rule.
8077 * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
8078 modules (including all partition maps), instead of preloading them.
8079
8080 2007-04-13 Fabian Greffrath <fabian.greffrath@web.de>
8081
8082 * util/grub.d/30_os-prober.in: New script. Use `os-prober' and
8083 `linux-boot-prober' (if installed) to detect other operating
8084 systems which are installed on the computer and add them to
8085 the boot menu.
8086 * conf/common.rmk: Build and install 30_os-prober.
8087
8088 2008-04-12 Robert Millan <rmh@aybabtu.com>
8089
8090 * kern/powerpc/ieee1275/init.c: Move from here ...
8091 * kern/ieee1275/init.c: ... to here. Update all users.
8092
8093 * kern/powerpc/ieee1275/cmain.c: Move from here ...
8094 * kern/ieee1275/cmain.c: ... to here. Update all users.
8095
8096 * kern/powerpc/ieee1275/openfw.c: Move from here ...
8097 * kern/ieee1275/openfw.c: ... to here. Update all users.
8098
8099 * loader/powerpc/ieee1275/multiboot2.c: Move from here ...
8100 * loader/ieee1275/multiboot2.c: ... to here. Update all users.
8101
8102 2008-04-10 Pavel Roskin <proski@gnu.org>
8103
8104 * configure.ac: Always use "_cv_" in cache variables for
8105 compatibility with Autoconf 2.62.
8106
8107 2008-04-07 Robert Millan <rmh@aybabtu.com>
8108
8109 Revert grub/machine/init.h addition by Pavel (since it breaks on
8110 i386-ieee1275 and others):
8111 * util/i386/pc/misc.c: Remove grub/machine/init.h.
8112 * util/powerpc/ieee1275/misc.c: Likewise.
8113
8114 2008-04-07 Robert Millan <rmh@aybabtu.com>
8115
8116 * util/grub-probe.c (probe): Improve error message.
8117
8118 2008-04-07 Robert Millan <rmh@aybabtu.com>
8119
8120 * util/biosdisk.c (read_device_map): Skip devices that don't exist
8121 (this prevents the presence of a bogus entry from ruining the whole
8122 thing).
8123
8124 2008-04-06 Pavel Roskin <proski@gnu.org>
8125
8126 * util/biosdisk.c: Include grub/util/biosdisk.h.
8127 * util/grub-fstest.c (execute_command): Make static.
8128 * util/grub-mkdevicemap.c (check_device): Likewise.
8129 * util/i386/pc/misc.c: Include grub/machine/init.h.
8130 * util/powerpc/ieee1275/misc.c: Likewise.
8131 * util/lvm.c: Include grub/util/lvm.h.
8132 * util/misc.c: Include grub/kernel.h, grub/misc.h and
8133 grub/cache.h.
8134 * util/raid.c: Include grub/util/raid.h.
8135 (grub_util_getdiskname): Make static.
8136
8137 * util/grub-emu.c (main): Remove calls to grub_hostfs_init() and
8138 grub_hostfs_fini(), as they are called from grub_init_all() and
8139 grub_fini_all() respectively. This fixes an infinite loop in
8140 grub-fstest due to double registration of hostfs.
8141 Reported by Christian Franke <Christian.Franke@t-online.de>
8142
8143 2008-04-05 Pavel Roskin <proski@gnu.org>
8144
8145 * bus/pci.c (grub_pci_iterate): For multifunction devices, probe
8146 all 8 functions. Otherwise, probe function 0 only.
8147
8148 2008-04-04 Pavel Roskin <proski@gnu.org>
8149
8150 * commands/lspci.c (grub_lspci_iter): Print the bus number
8151 correctly.
8152
8153 * commands/lspci.c (grub_pci_classes): Fix typos.
8154 (grub_lspci_iter): Don't print func twice. Print vendor ID
8155 before device ID, as it's normally done.
8156
8157 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
8158 Fix signedness warnings.
8159 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate):
8160 Likewise.
8161 * util/ieee1275/get_disk_name.c: Include config.h so that
8162 _GNU_SOURCE is defined and getline() is declared. Mark an
8163 unused argument as such. Fix a signedness warning.
8164
8165 2008-04-02 Pavel Roskin <proski@gnu.org>
8166
8167 * genkernsyms.sh.in: Use more robust assignments for CC and
8168 srcdir. Quote srcdir.
8169 * gensymlist.sh.in: Likewise. Assert at the compile time that
8170 the symbol table is not empty.
8171
8172 * disk/raid.c (grub_raid_memberlist): Fix a signedness warning.
8173 * fs/cpio.c (grub_cpio_read): Likewise.
8174
8175 2008-04-01 Pavel Roskin <proski@gnu.org>
8176
8177 * disk/ata.c (grub_ata_open): Don't lose precision in disk->id.
8178 * disk/host.c (grub_host_open): Likewise.
8179 * disk/loopback.c (grub_loopback_open): Likewise.
8180 * disk/memdisk.c (grub_memdisk_open): Use a string pointer for
8181 disk->id as in disk/host.c, not a multi-character constant.
8182
8183 * util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek(). The
8184 later is obsolete, potentially dangerous and sets a bad example.
8185 * util/i386/efi/grub-mkimage.c (make_header): Likewise.
8186 * util/misc.c (grub_util_get_image_size): Likewise.
8187
8188 * disk/loopback.c (options): Improve help for "--partitions".
8189
8190 * normal/arg.c (grub_arg_show_help): Fix spacing of the long
8191 options to align them with the short options, e.g. "echo -e".
8192
8193 2008-03-31 Bean <bean123ch@gmail.com>
8194
8195 * video/reader/png.c (grub_png_data): New member is_16bit and
8196 image_data.
8197 (grub_png_decode_image_header): Detect 16 bit png image.
8198 (grub_png_convert_image): New function to convert 16 bit image to 8 bit.
8199 (grub_png_decode_png): Call grub_png_convert_image for 16 bit image.
8200 (grub_video_reader_png): Release memory occupied by image_data.
8201
8202 * fs/ntfs.c (find_attr): Handle non-resident attribute list larger than
8203 4096 bytes.
8204 (grub_nfs_mount): Skip the test for sector per cluster.
8205
8206 * include/grub/ntfs.h (MAX_SPC): Removed.
8207
8208 2008-03-31 Bean <bean123ch@gmail.com>
8209
8210 * conf/common.rmk (pkgdata_MODULES): Add afs.mod.
8211 (grub_probe_SOURCES): Add fs/afs.c.
8212 (grub_fstest_SOURCES): Likewise.
8213 (afs_mod_SOURCES): New variable.
8214 (afs_mod_CFLAGS): Likewise.
8215 (afs_mod_LDFLAGS): Likewise.
8216
8217 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/afs.c.
8218 (grub_emu_SOURCES): Likewise.
8219
8220 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
8221
8222 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8223
8224 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
8225
8226 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8227
8228 * fs/afs.c: New file.
8229
8230 2008-03-30 Pavel Roskin <proski@gnu.org>
8231
8232 * disk/host.c: Include grub/misc.h to fix a warning.
8233 * util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix
8234 warnings about implicit declarations.
8235
8236 * fs/udf.c (grub_udf_mount): Fix warning about a shadowing a
8237 variable.
8238 * include/grub/i386/loader.h: Change declaration of
8239 grub_linux_boot() to match what grub_loader_set() expects.
8240 * util/getroot.c (grub_guess_root_device): Return const char* to
8241 fix a warning.
8242 * util/grub-probe.c (probe): Fix a warning about uninitialized
8243 abstraction_name variable.
8244 * util/i386/get_disk_name.c (grub_util_get_disk_name): Mark
8245 second argument as unused to fix a warning.
8246
8247 * loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add
8248 missing grub_error() call.
8249
8250 * util/update-grub_lib.in: Define datarootdir, since Autoconf
8251 2.60 and newer uses it to define datadir.
8252
8253 * commands/sleep.c: Fix warning about implicit declaration.
8254 * disk/memdisk.c: Likewise.
8255 * loader/aout.c: Likewise.
8256 * loader/i386/bsd_normal.c: Likewise.
8257 * util/grub-probe.c: Likewise.
8258
8259 * commands/i386/cpuid.c (has_longmode): Make static.
8260 * disk/i386/pc/biosdisk.c (cd_drive): Likewise.
8261 * include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused.
8262
8263 * kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
8264 GDT. This is more robust, as %ds can change.
8265 (grub_biosdisk_rw_int13_extensions): Don't clear %ds before
8266 calling real_to_prot().
8267 (grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
8268
8269 2008-03-28 Pavel Roskin <proski@gnu.org>
8270
8271 * kern/i386/pc/startup.S: Assert that uncompressed functions
8272 don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
8273 * kern/i386/pc/lzo1x.S: Remove all .align directives in the
8274 code, as they push parts of the code (error handlers) beyond
8275 GRUB_KERNEL_MACHINE_RAW_SIZE. Speed is not as important in this
8276 code as correctness and size.
8277
8278 2008-03-28 Pavel Roskin <proski@gnu.org>
8279
8280 * kern/i386/pc/startup.S
8281 (grub_biosdisk_get_diskinfo_int13_extensions): When converting
8282 data block address to the real mode, keep offset minimal. This
8283 works around a bug in AWARD BIOS on old Athlon systems, which
8284 makes CD detection hang.
8285
8286 2008-03-26 Pavel Roskin <proski@gnu.org>
8287
8288 * normal/color.c (grub_parse_color_name_pair): Make `name' a
8289 const.
8290 * include/grub/normal.h: Add grub_parse_color_name_pair()
8291 declaration.
8292
8293 2008-03-24 Bean <bean123ch@gmail.com>
8294
8295 * disk/i386/pc/biosdisk.c (cd_start): Removed.
8296 (cd_count): Removed.
8297 (cd_drive): New variable.
8298 (grub_biosdisk_get_drive): Don't check for (cdN) device.
8299 (grub_biosdisk_call_hook): Likewise.
8300 (grub_biosdisk_iterate): Change cdrom detection method.
8301 (grub_biosdisk_open): Replace cd_start with cd_drive.
8302 (GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to
8303 detect cdrom device.
8304
8305 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_MACHINE_CDROM_START):
8306 Removed.
8307 (GRUB_BIOSDISK_MACHINE_CDROM_END): Removed.
8308 (GRUB_BIOSDISK_CDTYPE_NO_EMUL): New macro.
8309 (GRUB_BIOSDISK_CDTYPE_1_2_M): Likewise.
8310 (GRUB_BIOSDISK_CDTYPE_1_44_M): Likewise.
8311 (GRUB_BIOSDISK_CDTYPE_2_88_M): Likewise.
8312 (GRUB_BIOSDISK_CDTYPE_HARDDISK): Likewise.
8313 (GRUB_BIOSDISK_CDTYPE_MASK): Likewise.
8314 (grub_biosdisk_cdrp): New structure.
8315 (grub_biosdisk_get_cdinfo_int13_extensions): New function.
8316
8317 * include/grub/i386/pc/kernel.h (grub_boot_drive): Export this variable.
8318
8319 * kern/i386/pc/init.c (make_install_device): Don't use (cdN) as root
8320 device.
8321
8322 * kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions):
8323 New function.
8324
8325 2008-03-20 Robert Millan <rmh@aybabtu.com>
8326
8327 Remove 2 TiB limit in ata.mod.
8328 * disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t.
8329 (grub_ata_dumpinfo): Print sector count with 0x%llx.
8330 (grub_ata_identify): Interpret `&info16[100]' as a pointer to
8331 grub_uint64_t instead of grub_uint32_t.
8332
8333 2008-03-05 Bean <bean123ch@gmail.com>
8334
8335 * loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function.
8336 (grub_multiboot): Set boot device.
8337
8338 * boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF.
8339
8340 2008-03-02 Bean <bean123ch@gmail.com>
8341
8342 * fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of
8343 symlink_buffer.
8344
8345 2008-03-01 Yoshinori K. Okuji <okuji@enbug.org>
8346
8347 * DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and
8348 texinfo.tex.
8349
8350 * docs/grub.texi: New file. Copied from GRUB Legacy, and slightly
8351 modified.
8352
8353 * docs/fdl.texi: New file.
8354
8355 * docs/mdate-sh: New file. Copied from gnulib.
8356 * docs/texinfo.tex: Likewise.
8357
8358 * config.guess: Updated from gnulib.
8359 * install-sh: Likewise.
8360
8361 2008-02-28 Robert Millan <rmh@aybabtu.com>
8362
8363 * conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod.
8364 (aout_mod_SOURCES): New variable.
8365 (aout_mod_CFLAGS): Likewise.
8366 (aout_mod_LDFLAGS): Likewise.
8367
8368 * conf/i386-ieee1275.rmk: Likewise.
8369
8370 2008-02-28 Robert Millan <rmh@aybabtu.com>
8371
8372 * util/update-grub.in: Reorganise terminal validity check. Accept
8373 `ieee1275:console' (OLPC) and `*:gfxterm' as valid too.
8374 Based on suggestion by Franklin PIAT.
8375
8376 2008-02-28 Fabian Greffrath <greffrath@leat.rub.de>
8377
8378 * include/grub/util/getroot.h (grub_util_check_block_device): Export new
8379 function.
8380 * util/getroot.c (grub_util_check_block_device): New function that
8381 returns the given argument if it is a block device and returns NULL else.
8382 * util/grub-probe.c (argument_is_device): New variable.
8383 (probe): Promote device_name from a variable to an argument. Receive
8384 device_name from grub_util_check_block_device() if path is NULL and from
8385 grub_guess_root_device() else. Do not free() device_name anymore.
8386 (options): Introduce new parameter '-d, --device'.
8387 (main): Add description of the new parameter to the help screen.
8388 Rename path variable to argument. Set argument_is_device if the '-d'
8389 option is given. Pass argument to probe() depending on
8390 argument_is_device.
8391
8392 2008-02-24 Bean <bean123ch@gmail.com>
8393
8394 * fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro.
8395 (GRUB_ISO9660_VOLDESC_PRIMARY): Likewise.
8396 (GRUB_ISO9660_VOLDESC_SUPP): Likewise.
8397 (GRUB_ISO9660_VOLDESC_PART): Likewise.
8398 (GRUB_ISO9660_VOLDESC_END): Likewise.
8399 (grub_iso9660_primary_voldesc): New member escape.
8400 (grub_iso9660_data): New member joliet.
8401 (grub_iso9660_convert_string): New function.
8402 (grub_iso9660_mount): Detect joliet extension.
8403 (grub_iso9660_iterate_dir): Convert filename when joliet is detected.
8404 (grub_iso9660_iso9660_label): Likewise.
8405
8406 * conf/common.rmk (pkgdata_MODULES): Add udf.mod.
8407 (grub_setup_SOURCES): Add fs/udf.c.
8408 (grub_fstest_SOURCES): Likewise.
8409 (udf_mod_SOURCES): New variable.
8410 (udf_mod_CFLAGS): Likewise.
8411 (udf_mod_LDFLAGS): Likewise.
8412
8413 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/udf.c.
8414 (grub_emu_SOURCES): Likewise.
8415
8416 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
8417
8418 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8419
8420 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
8421
8422 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8423
8424 * fs/udf.c: New file.
8425
8426 2008-02-24 Robert Millan <rmh@aybabtu.com>
8427
8428 * conf/i386-efi.rmk (normal/function.c_DEPENDENCIES)
8429 (normal/lexer.c_DEPENDENCIES): New variables.
8430 * conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES)
8431 (normal/lexer.c_DEPENDENCIES): Likewise.
8432 * conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES)
8433 (normal/lexer.c_DEPENDENCIES): Likewise.
8434 * conf/i386-pc.rmk (normal/function.c_DEPENDENCIES)
8435 (normal/lexer.c_DEPENDENCIES): Likewise.
8436 * conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES)
8437 (normal/lexer.c_DEPENDENCIES): Likewise.
8438 * conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES)
8439 (normal/lexer.c_DEPENDENCIES): Likewise.
8440
8441 2008-02-23 Robert Millan <rmh@aybabtu.com>
8442
8443 * partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member,
8444 since they were intended to be in hex. This didn't break previously
8445 because of a bug in gpt_partition_map_iterate() (see below).
8446
8447 (gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp'
8448 when checking the validity of GPT header.
8449 Remove `partno', since it always provides the same information as `i'.
8450
8451 2008-02-21 Yoshinori K. Okuji <okuji@enbug.org>
8452
8453 * include/grub/efi/time.h: Fix a wrong comment.
8454
8455 2008-02-19 Pavel Roskin <proski@gnu.org>
8456
8457 * kern/rescue.c (grub_enter_rescue_mode): Improve initial
8458 message.
8459
8460 2008-02-19 Bean <bean123ch@gmail.com>
8461
8462 * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
8463 (aout_mod_SOURCES): New variable.
8464 (aout_mod_CFLAGS): Likewise.
8465 (aout_mod_LDFLAGS): Likewise.
8466 (_bsd_mod_SOURCES): New variable.
8467 (_bsd_mod_CFLAGS): Likewise.
8468 (_bsd_mod_LDFLAGS): Likewise.
8469 (bsd_mod_SOURCES): New variable.
8470 (bsd_mod_CFLAGS): Likewise.
8471 (bsd_mod_LDFLAGS): Likewise.
8472
8473 * include/grub/aout.h: New file.
8474
8475 * include/grub/i386/loader.h (grub_unix_real_boot): New function.
8476
8477 * include/grub/i386/bsd.h: New file.
8478
8479 * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
8480 to make it public.
8481
8482 * kern/elf.c (grub_elf32_load): Get the physical address after the hook
8483 function is called, so that it's possible to change it inside the hook.
8484 (grub_elf64_load): Likewise.
8485 (grub_elf_file): Don't close the file if elf header is not found.
8486 (grub_elf_close): Close the file if grub_elf_file fails (The new
8487 grub_elf_file won't close it).
8488 (grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize.
8489 (grub_elf64_size): Likewise.
8490
8491 * kern/i386/loader.S (grub_unix_real_boot): New function.
8492
8493 * loader/aout.c: New file.
8494
8495 * loader/i386/bsd.c: New file.
8496
8497 * loader/i386/bsd_normal.c: New file.
8498
8499 * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.
8500
8501 * loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
8502 can test other formats.
8503
8504 2008-02-19 Robert Millan <rmh@aybabtu.com>
8505
8506 * partmap/gpt.c: Include `<grub/gpt_partition.h>'.
8507 (grub_gpt_partition_type_empty): Redefine with macro from
8508 `<grub/gpt_partition.h>'.
8509 (gpt_partition_map_iterate): Adjust partition type comparison.
8510
8511 Export `entry' as partmap-specific `part.data' struct.
8512 (grub_gpt_header, grub_gpt_partentry): Move from here ...
8513
8514 * include/grub/gpt_partition.h (grub_gpt_header)
8515 (grub_gpt_partentry): ... to here (new file).
8516
8517 * util/i386/pc/grub-setup.c: Include `<grub/gpt_partition.h>'.
8518
8519 (grub_gpt_partition_type_bios_boot): New const variable, defined
8520 with macro from `<grub/gpt_partition.h>'.
8521
8522 (setup): Replace `first_start' with `embed_region', which keeps
8523 track of the embed region (and is partmap-agnostic).
8524
8525 Replace find_first_partition_start() with find_usable_region(),
8526 which finds a usable region for embedding using partmap-specific
8527 knowledge (supports PC/MSDOS and GPT).
8528
8529 Fix all assumptions that the embed region start at sector 1, using
8530 `embed_region.start' from now on. Similarly, use `embed_region.end'
8531 rather than `first_start' to calculate available size.
8532
8533 In grub_util_info() message, replace "into after the MBR" with an
8534 indication of the specific sector our embed region starts at.
8535
8536 2008-02-19 Robert Millan <rmh@aybabtu.com>
8537
8538 * DISTLIST: Replace `commands/ieee1275/halt.c' and
8539 `commands/ieee1275/reboot.c' with `commands/halt.c' and
8540 `commands/reboot.c'.
8541 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
8542 (halt_mod_SOURCES): Likewise.
8543 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
8544 (halt_mod_SOURCES): Likewise.
8545
8546 2008-02-17 Christian Franke <franke@computer.org>
8547
8548 * commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key.
8549
8550 2008-02-17 Robert Millan <rmh@aybabtu.com>
8551
8552 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
8553 set `first_start' to 0 for non-PC/MSDOS partition maps.
8554
8555 2008-02-16 Robert Millan <rmh@aybabtu.com>
8556
8557 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
8558 do not assume partition map is PC/MSDOS before performing checks that
8559 are specific to that layout.
8560
8561 2008-02-13 Robert Millan <rmh@aybabtu.com>
8562
8563 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove
8564 `commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'.
8565 * kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs.
8566
8567 2008-02-13 Yoshinori K. Okuji <okuji@enbug.org>
8568
8569 * configure.ac: Only a cosmetic change on the handling of
8570 -fno-stack-protector.
8571
8572 2008-02-12 Alexandre Boeglin <alex@boeglin.org>
8573
8574 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace
8575 commands/i386/pc/halt.c and reboot.c by commands/halt.c and
8576 reboot.c.
8577 (grub_install_SOURCES): Add halt.mod and reboot.mod.
8578 (halt_mod_SOURCES): New variable.
8579 (halt_mod_CFLAGS): Likewise.
8580 (halt_mod_LDFLAGS): Likewise.
8581 (reboot_mod_SOURCES): Likewise.
8582 (reboot_mod_CFLAGS): Likewise.
8583 (reboot_mod_LDFLAGS): Likewise.
8584
8585 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace
8586 commands/ieee1275/halt.c and reboot.c by commands/halt.c and
8587 reboot.c.
8588 (halt_mod_SOURCES): Likewise.
8589 (reboot_mod_SOURCES): Likewise.
8590
8591 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace
8592 commands/i386/pc/reboot.c by commands/reboot.c.
8593 (reboot_mod_SOURCES): Likewise.
8594
8595 * commands/i386/pc/reboot.c: merge this file ...
8596
8597 * commands/ieee1275/reboot.c: ... and this file ...
8598
8599 * commands/reboot.c: ... to this file.
8600 Add some precompiler directive to include the correct header for
8601 each machine.
8602
8603 * commands/ieee1275/halt.c: move this file ...
8604
8605 * commands/halt.c: ... to here.
8606 Add some precompiler directive to include the correct header for
8607 each machine.
8608
8609 * include/grub/efi/efi.h (grub_reboot): New function declaration.
8610 (grub_halt): Likewise.
8611
8612 * kern/efi/efi.c (grub_reboot): New function.
8613 (grub_halt): Likewise.
8614
8615 2008-02-12 Robert Millan <rmh@aybabtu.com>
8616
8617 * util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
8618 /dev (like it is done for /dev/mapper). This doesn't provide support
8619 for EVMS, but at least it is now easy to identify the problem when it
8620 arises.
8621
8622 2008-02-11 Robert Millan <rmh@aybabtu.com>
8623
8624 * util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition)
8625 (grub_util_biosdisk_get_grub_dev): Check open() exit status by
8626 comparing it with -1, not 0.
8627
8628 2008-02-10 Robert Millan <rmh@aybabtu.com>
8629
8630 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and
8631 `disk/lvm.c'.
8632 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8633 * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
8634
8635 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and
8636 `disk/lvm.c' to the end of the list.
8637 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
8638 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
8639
8640 2008-02-10 Robert Millan <rmh@aybabtu.com>
8641
8642 * kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'. Call
8643 grub_print_error() instead. This will let user know why we're entering
8644 rescue mode.
8645 Based on suggestions from Sam Morris.
8646
8647 2008-02-10 Alexandre Boeglin <alex@boeglin.org>
8648
8649 * normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg()
8650 on remaining N args, instead of "--" arg N times.
8651
8652 2008-02-09 Vesa Jaaskelainen <chaac@nic.fi>
8653
8654 * font/manager.c (unknown_glyph): Added variable for unknown glyph.
8655 (fill_with_default_glyph): Changed to use unknown_glyph for fill
8656 pattern for unknown glyphs.
8657
8658 2008-02-09 Robert Millan <rmh@aybabtu.com>
8659
8660 * configure.ac: Probe for `help2man'.
8661 * Makefile.in (builddir): New variable.
8662 (HELP2MAN): Likewise. Set to `true' when @HELP2MAN@ doesn't provide it,
8663 or otherwise add a few flags/options to it.
8664 (install-local): For every executable utility or script that is
8665 installed, invoke $(HELP2MAN) to install a manpage based on --help
8666 output.
8667
8668 * util/i386/pc/grub-install.in: Move down `update-grub_lib' sourcing, so
8669 that it doesn't prevent --help from working in build tree.
8670
8671 * util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org'
8672 with `bug-grub@gnu.org'.
8673 * util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise.
8674 * util/update-grub.in (usage): New function.
8675 Implement proper argument check, with support for --help and --version
8676 (as well as existing -y).
8677
8678 2008-02-09 Christian Franke <franke@computer.org>
8679
8680 * commands/cat.c (grub_cmd_cat): Print '\r' as hex to
8681 avoid overwriting previous output.
8682 * kern/rescue.c (grub_rescue_cmd_cat): Likewise.
8683
8684 2008-02-09 Robert Millan <rmh@aybabtu.com>
8685
8686 * normal/menu.c (run_menu): If timeout is set to zero, don't bother
8687 drawing the menu.
8688
8689 2008-02-09 Robert Millan <rmh@aybabtu.com>
8690
8691 * commands/sleep.c: New file.
8692 * conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'.
8693 (sleep_mod_SOURCES): New variable.
8694 (sleep_mod_CFLAGS): Likewise.
8695 (sleep_mod_LDFLAGS): Likewise.
8696
8697 2008-02-09 Robert Millan <rmh@aybabtu.com>
8698
8699 * disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for
8700 situations in which we can deduce the RAID size and the superblock
8701 doesn't match it.
8702
8703 2008-02-09 Robert Millan <rmh@aybabtu.com>
8704
8705 * disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function. Construct
8706 and return a grub_diskmemberlist_t composed of LVM physical volumes.
8707 [GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member.
8708
8709 * disk/raid.c [GRUB_UTIL] (grub_raid_memberlist): New function. Construct
8710 and return a grub_diskmemberlist_t composed of physical array members.
8711 [GRUB_UTIL] (grub_raid_dev): Add `memberlist' member.
8712
8713 * include/grub/disk.h [GRUB_UTIL] (grub_disk_memberlist): New struct
8714 prototype.
8715 [GRUB_UTIL] (struct grub_disk_dev): Add `memberlist' function pointer.
8716 [GRUB_UTIL] (struct grub_disk_memberlist): New struct declaration.
8717 [GRUB_UTIL] (grub_disk_memberlist_t): New typedef.
8718
8719 * util/grub-probe.c (probe): Move partmap probing code from here ...
8720 (probe_partmap): ... to here.
8721 (probe): Use probe_partmap() once for the disk we're probing, and
8722 additionally, when such disk contains a memberlist() struct member,
8723 once for each disk that is contained in the structure returned by
8724 memberlist().
8725
8726 2008-02-09 Robert Millan <rmh@aybabtu.com>
8727
8728 * util/grub-probe.c (main): When `verbosity > 1', set `debug'
8729 environment variable to 'all' in order to obtain debug output from
8730 non-util/ code.
8731 * util/i386/pc/grub-setup.c (main): Likewise.
8732
8733 2008-02-08 Robert Millan <rmh@aybabtu.com>
8734
8735 * disk/raid.c (grub_raid_scan_device): Check for
8736 `array->device[sb.this_disk.number]' rather than for
8737 `array->device[sb.this_disk.number]->name', since the latter is not
8738 guaranteed to be accessible.
8739
8740 2008-02-08 Robert Millan <rmh@aybabtu.com>
8741
8742 * disk/raid.c: Update copyright.
8743 * fs/cpio.c: Likewise.
8744 * include/grub/raid.h: Likewise.
8745 * loader/i386/pc/multiboot.c: Likewise.
8746 * util/hostfs.c: Likewise.
8747
8748 2008-02-08 Robert Millan <rmh@aybabtu.com>
8749
8750 * include/grub/raid.h (struct grub_raid_array): Change type of `device'
8751 to a grub_disk_t array.
8752 * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
8753 `device[x]'.
8754 (grub_raid_scan_device): Replace `device[x].name' accesses with
8755 `device[x]->name'. Simplify initialization of `array->device[x]'.
8756
8757 2008-02-08 Robert Millan <rmh@aybabtu.com>
8758
8759 * disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
8760 grub_dprintf() calls.
8761 * kern/disk.c (grub_disk_read): Include grub_errmsg in out of range
8762 error message.
8763
8764 2008-02-07 Christian Franke <franke@computer.org>
8765
8766 * util/hostfs.c (grub_hostfs_open): Use fseeko and ftello
8767 instead of fseek and ftell to support large files.
8768 (grub_hostfs_read): Likewise.
8769
8770 2008-02-07 Robert Millan <rmh@aybabtu.com>
8771
8772 Patch from Jeroen Dekkers.
8773 * disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk
8774 failure, since successfully reading all array members might not be
8775 required.
8776
8777 2008-02-06 Robert Millan <rmh@aybabtu.com>
8778
8779 * util/grub-probe.c (probe): Simplify partmap probing (with the
8780 assumption that the first word up to the underscore equals to
8781 the module name).
8782
8783 2008-02-06 Christian Franke <franke@computer.org>
8784
8785 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE
8786 (and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on
8787 last block of a cpio or tar stream.
8788 Check for "TRAILER!!!" instead of any empty data
8789 block to detect last block of a cpio stream.
8790 (grub_cpio_dir): Fix constness of variable np.
8791 (grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if
8792 cpio or tar trailer is detected. This fixes a crash
8793 on open of a non existing file.
8794
8795 2008-02-05 Bean <bean123ch@gmail.com>
8796
8797 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical
8798 address of entry.
8799 (grub_multiboot_load_elf64): Likewise.
8800 (grub_multiboot): Initialize mbi structure.
8801
8802 * util/grub-fstest.c: Don't include unused header file script.h.
8803
8804 * conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the beginning
8805 of file.
8806 (grub_fstest_SOURCES): Likewise.
8807
8808 2008-02-05 Robert Millan <rmh@aybabtu.com>
8809
8810 * include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT)
8811 (GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END)
8812 (GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC)
8813 (GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros.
8814
8815 * kern/i386/pc/startup.S: Include `<grub/term.h>'.
8816 (translation_table): Replace hardcoded values with macros
8817 provided by `<grub/term.h>'.
8818
8819 * term/i386/pc/at_keyboard.c: Include `<grub/term.h>'.
8820 (keyboard_map): Correct/add a few values, with macros provided
8821 by `<grub/term.h>'.
8822 (keyboard_map_shift): Zero values that don't differ from their
8823 `keyboard_map' equivalents.
8824 (grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling.
8825 Discard the second scan code that is always sent by Caps lock.
8826 Only use `keyboard_map_shift' when it provides a non-zero value,
8827 otherwise fallback to `keyboard_map'.
8828
8829 2008-02-04 Bean <bean123ch@gmail.com>
8830
8831 * Makefile.in (enable_grub_fstest): New variable.
8832
8833 * conf/common.rmk (grub_fstest_init.lst): New rule.
8834 (grub_fstest_init.h): Likewise.
8835 (grub_fstest_init.c): Likewise.
8836 (util/grub-fstest.c_DEPENDENCIES): New variable.
8837 (grub_fstest_SOURCES): Likewise.
8838
8839 * configure.ac (enable_grub_fstest): Check for --enable-grub-fstest.
8840
8841 * util/grub-fstest.c: New file.
8842
8843 2008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
8844
8845 Make grub-setup handle a separate root device.
8846
8847 * util/i386/pc/grub-setup.c (setup): Always open the root device,
8848 so that the root device can be compared with the destination
8849 device.
8850 When embedding the core image, if the root and destination devices
8851 are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to
8852 0xFF.
8853 When not embedding, set ROOT_DRIVE to 0xFF.
8854
8855 2008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
8856
8857 Add support for having a grub directory in a different drive. This
8858 is still only the data handling part.
8859
8860 * kern/i386/pc/startup.S (multiboot_trampoline): Set %dh to 0xFF.
8861 (codestart): Save %dh in GRUB_ROOT_DRIVE.
8862 (grub_root_drive): New variable.
8863
8864 * kern/i386/pc/init.c (make_install_device): Use GRUB_ROOT_DRIVE
8865 instead of GRUB_BOOT_DRIVE to construct a device name. Set
8866 GRUB_ROOT_DRIVE to GRUB_BOOT_DRIVE if it is 0xFF, otherwise use it
8867 as it was.
8868
8869 * include/grub/i386/pc/kernel.h (grub_root_drive): New prototype.
8870
8871 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_ROOT_DRIVE): New
8872 macro.
8873 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Set to 0x4f.
8874
8875 * boot/i386/pc/pxeboot.S (_start): Set %dh to 0xFF. For now, this
8876 is bogus, because PXE booting does not specify any drive
8877 correctly.
8878
8879 * boot/i386/pc/lnxboot.S (reg_edx): Set the second byte to 0xFF. I
8880 am not sure if this is really correct.
8881
8882 * boot/i386/pc/cdboot.S: Set %dh to 0xFF, because the root drive
8883 is always identical to the boot drive when booting from a CD.
8884
8885 * boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any
8886 longer.
8887 (root_drive): New variable.
8888 (real_start): Unconditionally set %dh to ROOT_DRIVE.
8889 (setup_sectors): Push %dx right after popping it, because %dh will
8890 be modified later.
8891 (copy_buffer): Restore %dx.
8892
8893 2008-02-03 Robert Millan <rmh@aybabtu.com>
8894
8895 * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
8896 use `cdboot.img' for cdrom images.
8897
8898 2008-02-03 Robert Millan <rmh@aybabtu.com>
8899
8900 * util/grub.d/00_header.in: Issue scripting commands for GRUB to
8901 only setup gfxterm when `font' command has succeeded.
8902
8903 2008-02-03 Robert Millan <rmh@aybabtu.com>
8904
8905 * loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS]
8906 (grub_rescue_cmd_multiboot_loader)
8907 (grub_rescue_cmd_module_loader): Enable multiboot1 calls.
8908
8909 2008-02-03 Pavel Roskin <proski@gnu.org>
8910
8911 * kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop
8912 %edx and %esi from stack only after grub_gate_a20() is called.
8913 grub_gate_a20() clobbers %edx.
8914
8915 2008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
8916
8917 * configure.ac (AC_INIT): Bumped to 1.96.
8918
8919 * DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c,
8920 commands/lspci.c,disk/memdisk.c, include/grub/pci.h,
8921 include/grub/i386/pc/pci.h, video/readers/jpeg.c, and
8922 video/readers/png.c.
8923
8924 2008-02-03 Bean <bean123ch@gmail.com>
8925
8926 * conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img.
8927 (cdboot_img_SOURCES): New variable.
8928 (cdboot_img_ASFLAGS): New variable.
8929 (cdboot_img_LDFLAGS): New variable.
8930
8931 * boot/i386/pc/cdboot.S: New file.
8932
8933 * disk/i386/pc/biosdisk.c (cd_start): New variable.
8934 (cd_count): Likewise.
8935 (grub_biosdisk_get_drive): Add support for cd device.
8936 (grub_biosdisk_call_hook): Likewise.
8937 (grub_biosdisk_iterate): Likewise.
8938 (grub_biosdisk_open): Likewise.
8939 (GRUB_BIOSDISK_CDROM_RETRY_COUNT): New macro.
8940 (grub_biosdisk_rw): Support reading from cd device.
8941 (GRUB_MOD_INIT): Iterate cd devices.
8942
8943 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_FLAG_CDROM): New macro.
8944 (GRUB_BIOSDISK_MACHINE_CDROM_START): Likewise.
8945 (GRUB_BIOSDISK_MACHINE_CDROM_END): Likewise.
8946
8947 * kern/i386/pc/init.c (make_install_device): Check for cd device.
8948
8949 2008-02-02 Robert Millan <rmh@aybabtu.com>
8950
8951 * commands/read.c: New file.
8952 * conf/common.rmk (pkglib_MODULES): Add `commands/read.c'.
8953 (read_mod_SOURCES): New variable.
8954 (read_mod_CFLAGS): Likewise.
8955 (read_mod_LDFLAGS): Likewise.
8956
8957 2008-02-02 Robert Millan <rmh@aybabtu.com>
8958
8959 * normal/main.c (grub_normal_execute): Check for `menu->size' when
8960 determining whether menu has to be displayed.
8961
8962 2008-02-02 Marco Gerards <marco@gnu.org>
8963
8964 * bus/pci.c: New file.
8965
8966 * include/grub/pci.h: Likewise.
8967
8968 * include/grub/i386/pc/pci.h: Likewise.
8969
8970 * commands/lspci.c: Likewise.
8971
8972 * conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and
8973 `lspci.mod'.
8974 (pci_mod_SOURCES): New variable.
8975 (pci_mod_CFLAGS): Likewise.
8976 (pci_mod_LDFLAGS): Likewise.
8977 (lspci_mod_SOURCES): Likewise.
8978 (lspci_mod_CFLAGS): Likewise.
8979 (lspci_mod_LDFLAGS): Likewise.
8980
8981 2008-02-02 Bean <bean123ch@gmail.com>
8982
8983 * fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
8984 (grub_ufs_get_file_block): Fix indirect block calculation problem.
8985
8986 * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk.
8987 (grub_xfs_btree_node): New structure.
8988 (grub_xfs_btree_root): New structure.
8989 (grub_xfs_inode): New members nblocks, extsize, nextents and btree.
8990 (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents.
8991 (GRUB_XFS_EXTENT_BLOCK): Likewise.
8992 (GRUB_XFS_EXTENT_SIZE): Likewise.
8993 (grub_xfs_read_block): Support btree format type.
8994 (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook.
8995 Use directory block as basic unit.
8996
8997 * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block.
8998
8999 * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
9000 __attribute__ ((__regparm__ (1))).
9001
9002 2008-02-01 Robert Millan <rmh@aybabtu.com>
9003
9004 Correct a mistake in previous commit.
9005
9006 * conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the
9007 top.
9008 (normal/command.c_DEPENDENCIES): New variable.
9009
9010 2008-02-01 Robert Millan <rmh@aybabtu.com>
9011
9012 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the
9013 top.
9014 (normal/command.c_DEPENDENCIES): New variable.
9015 (grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables.
9016 * conf/i386-ieee1275.rmk: Likewise.
9017 * conf/i386-linuxbios.rmk: Likewise.
9018 * conf/i386-pc.rmk: Likewise.
9019 * conf/sparc64-ieee1275.rmk: Likewise.
9020 * conf/powerpc-ieee1275.rmk: Likewise.
9021 (grub_emu_SOURCES): Add `fs/fshelp.c'.
9022
9023 * genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it.
9024
9025 2008-02-01 Robert Millan <rmh@aybabtu.com>
9026
9027 * kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf()
9028 call at beginning of function.
9029
9030 2008-01-31 Pavel Roskin <proski@gnu.org>
9031
9032 * util/powerpc/ieee1275/grub-mkrescue.in: New file.
9033 * conf/powerpc-ieee1275.rmk (bin_SCRIPTS): New variable.
9034 (grub_mkrescue_SOURCES): Likewise.
9035 * DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in.
9036
9037 2008-01-30 Robert Millan <rmh@aybabtu.com>
9038
9039 * conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'.
9040 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ...
9041 * conf/common.rmk (util/grub-probe.c_DEPENDENCIES)
9042 (grub_probe_SOURCES): ... to here.
9043
9044 * conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'.
9045 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove.
9046 * conf/i386-ieee1275.rmk: Likewise.
9047 * conf/i386-linuxbios.rmk: Likewise.
9048 * conf/powerpc-ieee1275.rmk: Likewise.
9049
9050 2008-01-30 Tristan Gingold <gingold@free.fr>
9051
9052 * kern/rescue.c: Silently accept empty lines.
9053
9054 2008-01-29 Bean <bean123ch@gmail.com>
9055
9056 * boot/i386/pc/lnxboot.S (data_start): Code cleanup.
9057 (real_code_2): Code cleanup and change comment style.
9058 (move_memory): Avoid using 32-bit address mode.
9059
9060 2008-01-29 Bean <bean123ch@gmail.com>
9061
9062 * conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'.
9063 (png_mod_SOURCES): New variable.
9064 (png_mod_CFLAGS): Likewise.
9065 (png_mod_LDFLAGS): Likewise.
9066
9067 * video/readers/png.c: New file.
9068
9069 2008-01-28 Robert Millan <rmh@aybabtu.com>
9070
9071 * include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro.
9072 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove
9073 `ifndef GRUB_MOD_GAP' hack.
9074 * util/elf/grub-mkimage.c (add_segments): Likewise.
9075
9076 2008-01-27 Robert Millan <rmh@aybabtu.com>
9077
9078 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip
9079 `GRUB_MOD_GAP' for platforms in which it's not defined.
9080 * util/elf/grub-mkimage.c (add_segments): Likewise.
9081
9082 2008-01-27 Robert Millan <rmh@aybabtu.com>
9083
9084 Get grub-emu to build again (including parallel builds).
9085
9086 * conf/i386-pc.rmk (util/grub-emu.c_DEPENDENCIES): Remove variable.
9087 Split into ...
9088 (util/grub-emu.c_DEPENDENCIES): ... this, ...
9089 (normal/execute.c_DEPENDENCIES): ... this, ...
9090 (grub-emu_DEPENDENCIES): ... and this.
9091
9092 * conf/i386-efi.rmk: Likewise.
9093 * conf/i386-linuxbios.rmk: Likewise.
9094 * conf/i386-ieee1275.rmk: Likewise.
9095 * conf/powerpc-ieee1275.rmk: Likewise.
9096 (grub_emu_SOURCES): Remove duplicated `kern/file.c'.
9097
9098 2008-01-27 Robert Millan <rmh@aybabtu.com>
9099
9100 * NEWS: Add a few items.
9101
9102 2008-01-27 Robert Millan <rmh@aybabtu.com>
9103
9104 Fix parallel builds with grub-emu. Based on earlier commit for
9105 grub-probe and grub-setup.
9106
9107 * conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ...
9108 (util/grub-emu.c_DEPENDENCIES): ... this.
9109 * conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ...
9110 (util/grub-emu.c_DEPENDENCIES): ... this.
9111 * conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ...
9112 (util/grub-emu.c_DEPENDENCIES): ... this.
9113 * conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
9114 (util/grub-emu.c_DEPENDENCIES): ... this.
9115 * conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
9116 (util/grub-emu.c_DEPENDENCIES): ... this.
9117
9118 2008-01-27 Pavel Roskin <proski@gnu.org>
9119
9120 * include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
9121 to create a gap between _end and the modules added to the image
9122 with grub-mkrescue. That fixes "CLAIM failed" on PowerMAC.
9123 * kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
9124 * util/elf/grub-mkimage.c (add_segments): Likewise.
9125
9126 2008-01-26 Pavel Roskin <proski@gnu.org>
9127
9128 * kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
9129 just return an error.
9130
9131 2008-01-26 Bean <bean123ch@gmail.com>
9132
9133 * fs/reiserfs.c (grub_fshelp_node): New member next_offset.
9134 (grub_reiserfs_get_item): Save offset of the next item.
9135 (grub_reiserfs_iterate_dir): Use next_offset to find next item.
9136
9137 2008-01-25 Robert Millan <rmh@aybabtu.com>
9138
9139 * conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to
9140 make all filesystem sources appear together (possibly fixing omissions
9141 while at it).
9142 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
9143 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
9144 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
9145 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
9146
9147 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise. Additionally,
9148 add `kern/file.c'.
9149 * conf/i386-efi.rmk (grub_probe_SOURCES): Likewise.
9150 * conf/i386-ieee1275.rmk (grub_probe_SOURCES): Likewise.
9151 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Likewise.
9152 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Likewise.
9153
9154 * util/grub-probe.c: Include `<grub/file.h>' and `<sys/stat.h>'.
9155 (probe): Add a sanity check to make sure of our ability to read
9156 requested files when probing for filesystem type.
9157
9158 * genmk.rb: Update copyright year (2007).
9159
9160 * include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init)
9161 (grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init)
9162 (grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init)
9163 (grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init)
9164 (grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init)
9165 : Remove function prototypes.
9166
9167 2008-01-25 Robert Millan <rmh@aybabtu.com>
9168
9169 Revert my previous commits (based on wrong assumption of how grub_errno
9170 works).
9171
9172 * kern/disk.c (grub_disk_open): Stop resetting grub_errno.
9173 * kern/file.c (grub_file_open): Likewise.
9174
9175 2008-01-24 Pavel Roskin <proski@gnu.org>
9176
9177 * include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares
9178 that hang if GRUB tries to setup colors.
9179 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set
9180 colors for firmwares that don't support it.
9181 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag):
9182 Recognize Open Hack'Ware, set flags to work around its
9183 limitations.
9184
9185 2008-01-24 Robert Millan <rmh@aybabtu.com>
9186
9187 * kern/file.c (grub_file_open): Do not account previous failures of
9188 unrelated functions when grub_errno is checked for.
9189 Reported by Oleg Strikov.
9190
9191 2008-01-24 Bean <bean123ch@gmail.com>
9192
9193 * fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro.
9194 (grub_ufs_sblock): New member volume name.
9195 (grub_ufs_find_file): Fix string copy bug.
9196 (grub_ufs_label): Implement this function properly.
9197
9198 * fs/hfs.c (grub_hfs_cnid_type): New enum.
9199 (grub_hfs_iterate_records): Use the correct file number for extents
9200 and catalog file. Fix problem in next index calculation.
9201 (grub_hfs_find_node): Replace recursive function call with loop.
9202 (grub_hfs_iterate_dir): Replace recursive function call with loop.
9203
9204 2008-01-23 Robert Millan <rmh@aybabtu.com>
9205
9206 * include/grub/i386/ieee1275/loader.h: Include `<grub/types.h>',
9207 `<grub/symbol.h>' and `<grub/multiboot.h>'.
9208 (grub_multiboot2_real_boot): New function prototype.
9209
9210 * include/grub/i386/pc/memory.h: Include `<grub/machine/machine.h>'.
9211 [!GRUB_MACHINE_IEEE1275] (grub_lower_mem, grub_upper_mem): Disable.
9212
9213 * kern/i386/ieee1275/init.c (grub_os_area_addr)
9214 (grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables.
9215
9216 2008-01-23 Robert Millan <rmh@aybabtu.com>
9217
9218 * kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with
9219 #ifdef'ed out grub_printf().
9220
9221 2008-01-23 Robert Millan <rmh@aybabtu.com>
9222
9223 * term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out
9224 grub_dprintf calls, since they make "debug=all" mode unusable.
9225 (grub_console_checkkey): Likewise.
9226
9227 2008-01-23 Robert Millan <rmh@aybabtu.com>
9228
9229 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
9230 `term/i386/pc/at_keyboard.c'.
9231 (pkglib_MODULES): Add `serial.mod'.
9232 (serial_mod_SOURCES): New variable.
9233 (serial_mod_CFLAGS): Likewise.
9234 (serial_mod_LDFLAGS): Likewise.
9235
9236 * include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'. Remove
9237 `<grub/powerpc/ieee1275/console.h>'.
9238 (grub_keyboard_controller_init): New function prototype.
9239 (grub_console_checkkey): Likewise.
9240 (grub_console_getkey): Likewise.
9241
9242 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT
9243 keyboard on i386.
9244
9245 * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
9246 grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
9247
9248 2008-01-23 Robert Millan <rmh@aybabtu.com>
9249
9250 * kern/i386/pc/init.c (make_install_device): When memdisk image is
9251 present, "(memdisk)/boot/grub" becomes the default prefix.
9252
9253 * util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus
9254 a memdisk tarball with all the modules. Add --overlay=DIR option that
9255 allows users to overlay additional files into the image.
9256
9257 2008-01-23 Robert Millan <rmh@aybabtu.com>
9258
9259 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h'
9260 and `machine/memory.h'.
9261 (pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'.
9262 (_multiboot_mod_SOURCES): New variable.
9263 (_multiboot_mod_CFLAGS): Likewise.
9264 (_multiboot_mod_LDFLAGS): Likewise.
9265 (multiboot_mod_SOURCES): Likewise.
9266 (multiboot_mod_CFLAGS): Likewise.
9267 (multiboot_mod_LDFLAGS): Likewise.
9268
9269 * include/grub/i386/ieee1275/loader.h: New file.
9270
9271 * include/grub/i386/ieee1275/machine.h: Likewise.
9272
9273 * include/grub/i386/ieee1275/memory.h: Likewise.
9274
9275 * include/grub/i386/pc/init.h (grub_os_area_addr): Remove (redundant)
9276 variable declaration.
9277 (grub_os_area_size): Likewise.
9278
9279 * kern/i386/ieee1275/init.c (grub_os_area_addr, grub_os_area_size)
9280 (grub_lower_mem, grub_upper_mem): New variables.
9281 (grub_stop_floppy): New function (just to make
9282 grub_multiboot2_real_boot() happy).
9283
9284 * kern/i386/ieee1275/startup.S: Include `<grub/machine/memory.h>',
9285 `<grub/cpu/linux.h>', `<multiboot.h>' and `<multiboot2.h>'.
9286 (grub_stop): New function.
9287 Include `"../realmode.S"' and `"../loader.S"'.
9288
9289 * loader/multiboot_loader.c: Include `<grub/machine/machine.h>'.
9290 Replace `__i386__' #ifdefs with `GRUB_MACHINE_PCBIOS'.
9291
9292 * loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386,
9293 rely on grub_multiboot2_real_boot() for final boot.
9294
9295 2008-01-22 Robert Millan <rmh@aybabtu.com>
9296
9297 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When
9298 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any
9299 device that doesn't look like an SD card.
9300 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
9301 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag.
9302 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect
9303 OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when
9304 found.
9305
9306 2008-01-22 Robert Millan <rmh@aybabtu.com>
9307
9308 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
9309 avoid claiming over our own code.
9310
9311 2008-01-22 Bean <bean123ch@gmail.com>
9312
9313 * conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
9314 (jpeg_mod_SOURCES): New variable.
9315 (jpeg_mod_CFLAGS): Likewise.
9316 (jpeg_mod_LDFLAGS): Likewise.
9317
9318 * video/readers/jpeg.c : New file.
9319
9320 2008-01-22 Bean <bean123ch@gmail.com>
9321
9322 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
9323 there are no more items.
9324
9325 2008-01-21 Robert Millan <rmh@aybabtu.com>
9326
9327 * kern/mm.c (grub_mm_init_region): Improve debug message.
9328
9329 2008-01-21 Robert Millan <rmh@aybabtu.com>
9330
9331 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
9332 (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
9333 address.
9334 (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
9335 a C macro.
9336 * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
9337 Indicates start of upper memory.
9338 * util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
9339 (generate_image): Abort when image size is big enough to corrupt
9340 upper memory.
9341
9342 * include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
9343 (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
9344 * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
9345 instead of hardcoding 0xA0000.
9346 * video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
9347 (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
9348 instead of hardcoding 0xA0000.
9349
9350 2008-01-21 Robert Millan <rmh@aybabtu.com>
9351
9352 * disk/memdisk.c (memdisk_size): New variable.
9353 (grub_memdisk_open): Replace grub_arch_memdisk_size() call with
9354 `memdisk_size'.
9355 (grub_memdisk_init): Initialize `memdisk_size'. Reallocate memdisk
9356 image to dynamic memory.
9357 (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
9358 `memdisk_size'. Free memdisk block.
9359
9360 2008-01-21 Robert Millan <rmh@aybabtu.com>
9361
9362 Fix detection of very small filesystems (like tar).
9363
9364 * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
9365 contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
9366 GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
9367 a problem with this disk).
9368
9369 2008-01-21 Robert Millan <rmh@aybabtu.com>
9370
9371 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
9372 on grub_biosdisk_rw_standard() error.
9373
9374 2008-01-21 Robert Millan <rmh@aybabtu.com>
9375
9376 * include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
9377 recent changes.
9378 * kern/elf.c: Likewise.
9379 * kern/ieee1275/ieee1275.c: Likewise.
9380 * kern/powerpc/ieee1275/openfw.c: Likewise.
9381 * term/ieee1275/ofconsole.c: Likewise.
9382
9383 2008-01-21 Robert Millan <rmh@aybabtu.com>
9384
9385 * include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.
9386
9387 * include/grub/kernel.h (grub_arch_memdisk_addr)
9388 (grub_arch_memdisk_size): Moved from here ...
9389
9390 * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr)
9391 (grub_arch_memdisk_size): ... to here.
9392
9393 2008-01-21 Robert Millan <rmh@aybabtu.com>
9394
9395 Mostly based on bugfix from Bean.
9396
9397 * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
9398 attribute with hook() parameter.
9399 (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
9400 declaration.
9401 (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
9402 attribute with hook() parameter.
9403 (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
9404 declaration.
9405
9406 2008-01-21 Robert Millan <rmh@aybabtu.com>
9407
9408 * conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
9409 (pkglib_MODULES): Add `memdisk.mod'.
9410 (memdisk_mod_SOURCES): New variable.
9411 (memdisk_mod_CFLAGS): Likewise.
9412 (memdisk_mod_LDFLAGS): Likewise.
9413
9414 * disk/memdisk.c: New file.
9415
9416 * include/grub/disk.h (grub_disk_dev_id): Add
9417 `GRUB_DISK_DEVICE_MEMDISK_ID'.
9418
9419 * include/grub/i386/pc/kernel.h
9420 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro.
9421 (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4.
9422 (grub_kernel_image_size): New variable declaration.
9423 (grub_total_module_size): Likewise.
9424 (grub_memdisk_image_size): Likewise.
9425
9426 * include/grub/i386/pc/memory.h
9427 (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro.
9428
9429 * include/grub/kernel.h: Include `<grub/symbol.h>'.
9430 (grub_arch_memdisk_addr): New variable declaration.
9431 (grub_arch_memdisk_size): Likewise.
9432
9433 * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function.
9434 (grub_arch_memdisk_size): Likewise.
9435
9436 * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable.
9437 (codestart): Replace hardcoded `0x100000' with
9438 `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro.
9439
9440 * util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
9441 (generate_image): Add `memdisk_path' parameter. When `memdisk_path' is
9442 not NULL, append the contents of the file it refers to, at the end of
9443 the compressed kernel image. Initialize `grub_memdisk_image_size'
9444 variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
9445 (options): Add "memdisk"|'m' option.
9446 (main): Parse --memdisk|-m option, and pass user-provided path as
9447 parameter to generate_image().
9448
9449 2008-01-20 Robert Millan <rmh@aybabtu.com>
9450
9451 * kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
9452 grub_dprintf() calls from here ...
9453 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.
9454
9455 2008-01-20 Robert Millan <rmh@aybabtu.com>
9456
9457 Fix detection of "real mode" when /options/real-mode? doesn't exist.
9458
9459 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
9460 declaration.
9461 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
9462 (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
9463 `GRUB_IEEE1275_FLAG_REAL_MODE'.
9464 (cmain): Initialize `grub_ieee1275_mmu' (using /chosen/mmu integer
9465 property).
9466 * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
9467 `grub_ieee1275_mmu' rather than obtaining a handler on every call.
9468
9469 2008-01-19 Robert Millan <rmh@aybabtu.com>
9470
9471 Get rid of confusing function (superseded by
9472 `grub_ieee1275_get_integer_property')
9473 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
9474 prototype.
9475 * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
9476 function.
9477 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
9478 grub_ieee1275_decode_int_4(), by obtaining integer properties directly
9479 in native endianness from grub_ieee1275_get_integer_property().
9480
9481 2008-01-19 Robert Millan <rmh@aybabtu.com>
9482
9483 * kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
9484 command after "shut-down", since implementations differ on which
9485 the command for halt is.
9486
9487 2008-01-19 Robert Millan <rmh@aybabtu.com>
9488
9489 * include/grub/i386/linuxbios/console.h: Add header protection.
9490 (grub_keyboard_controller_init): New function prototype.
9491 * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
9492 (KEYBOARD_COMMAND_READ): Likewise.
9493 (KEYBOARD_COMMAND_WRITE): Likewise.
9494 (KEYBOARD_SCANCODE_SET1): Likewise.
9495 (grub_keyboard_controller_write): New function.
9496 (grub_keyboard_controller_read): Likewise.
9497 (grub_keyboard_controller_init): Likewise.
9498
9499 * term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
9500 (grub_console_init): On coreboot/LinuxBIOS, call
9501 grub_keyboard_controller_init().
9502
9503 2008-01-19 Robert Millan <rmh@aybabtu.com>
9504
9505 PowerPC changes provided by Pavel Roskin.
9506
9507 * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
9508 * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
9509 don't rely on cmain() doing it.
9510 * kern/i386/ieee1275/startup.S (_start): Store %eax in
9511 grub_ieee1275_entry_fn, don't rely on cmain() doing it.
9512
9513 2008-01-16 Robert Millan <rmh@aybabtu.com>
9514
9515 * include/grub/i386/linuxbios/memory.h
9516 (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
9517 * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
9518 receive `table_header' as argument. Instead, probe for it in the
9519 known memory ranges where it can be present.
9520 (grub_available_iterate): Do not pass a fixed `table_header' address
9521 to grub_linuxbios_table_iterate().
9522
9523 2008-01-15 Robert Millan <rmh@aybabtu.com>
9524
9525 * configure.ac: Add `i386-ieee1275' to the list of supported targets.
9526 * conf/i386-ieee1275.rmk: New file.
9527 * include/grub/i386/ieee1275/console.h: Likewise.
9528 * include/grub/i386/ieee1275/ieee1275.h: Likewise.
9529 * include/grub/i386/ieee1275/kernel.h: Likewise.
9530 * include/grub/i386/ieee1275/time.h: Likewise.
9531 * kern/i386/ieee1275/init.c: Likewise.
9532 * kern/i386/ieee1275/startup.S: Likewise.
9533
9534 2008-01-15 Robert Millan <rmh@aybabtu.com>
9535
9536 * kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
9537 when pointers are 32-bit (but still do set it to one when they are
9538 64-bit).
9539
9540 2008-01-15 Robert Millan <rmh@aybabtu.com>
9541
9542 * include/grub/ieee1275/ieee1275.h
9543 (grub_ieee1275_get_integer_property): New function prototype.
9544
9545 * kern/ieee1275/ieee1275.c: Include `<grub/types.h>'.
9546 (grub_ieee1275_get_integer_property): New function. Wraps around
9547 grub_ieee1275_get_property() to handle endianness.
9548
9549 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
9550 grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
9551 where appropriate.
9552 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
9553 (grub_map): Likewise.
9554 * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.
9555
9556 2008-01-15 Bean <bean123ch@gmail.com>
9557
9558 * normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
9559 (grub_script_execute_cmdline): Reset grub_errno.
9560
9561 * normal/main.c (read_config_file): Reset grub_errno.
9562
9563 * normal/parse.y (script_init): New.
9564 (script): Move function and menuentry here.
9565 (delimiter): New.
9566 (command): Add delimiter at the end of command.
9567 (commands): Adjust to match the new command.
9568 (commandblock): Remove grub_script_lexer_record_start.
9569 (menuentry): Add grub_script_lexer_record_start, use the new commands.
9570 (if): Use the new commands.
9571
9572 * conf/common.rmk (pkgdata_MODULES): Add echo.mod.
9573
9574 2008-01-15 Robert Millan <rmh@aybabtu.com>
9575
9576 * normal/menu.c (run_menu): Move timeout message from here ...
9577 (print_timeout): ... to here.
9578 (run_menu): Use print_timeout() once during initial draw to print
9579 the whole message, and again in every clock tick to update only
9580 the number of seconds.
9581
9582 2008-01-15 Robert Millan <rmh@aybabtu.com>
9583
9584 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
9585 actual size of `available' from grub_ieee1275_get_property(), and
9586 restrict parsing to that bound.
9587
9588 2008-01-15 Christian Franke <franke@computer.org>
9589
9590 * util/grub-emu.c: Replace <argp.h> by <getopt.h>.
9591 (argp_program_version): Remove variable.
9592 (argp_program_bug_address): Likewise.
9593 (options): Convert from struct argp_option to struct option.
9594 (struct arguments): Remove.
9595 (parse_opt): Remove.
9596 (usage): New function.
9597 (main): Replace struct args members by simple variables.
9598 Replace argp_parse() by getopt_long().
9599 Add switch to evaluate options.
9600 Add missing "(...)" around root_dev in prefix string.
9601
9602 2008-01-14 Robert Millan <rmh@aybabtu.com>
9603
9604 * kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
9605 for grub_ieee1275_exit(), in order to improve portability.
9606
9607 2008-01-14 Robert Millan <rmh@aybabtu.com>
9608
9609 * util/grub.d/10_linux.in (prefix): Define.
9610 (exec_prefix): Likewise. Both definitions are later used by `libdir'.
9611
9612 2008-01-13 Pavel Roskin <proski@gnu.org>
9613
9614 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
9615 grub_errno if no errors have been detected.
9616
9617 2008-01-12 Robert Millan <rmh@aybabtu.com>
9618
9619 * include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
9620 (grub_util_get_dev_abstraction): New function prototype.
9621
9622 * util/getroot.c: Include `<grub/util/getroot.h>'
9623 (grub_util_get_grub_dev): Move detection of abstraction type to ...
9624 (grub_util_get_dev_abstraction): ... here (new function).
9625
9626 * util/grub-probe.c: Convert PRINT_* to an enum. Add
9627 `PRINT_ABSTRACTION'.
9628 (probe): Probe for abstraction type when requested.
9629 (main): Understand `--target=abstraction'.
9630
9631 * util/i386/efi/grub-install.in: Add abstraction module to core
9632 image when it is found to be necessary.
9633 * util/i386/pc/grub-install.in: Likewise.
9634 * util/powerpc/ieee1275/grub-install.in: Likewise.
9635
9636 * util/update-grub_lib.in (font_path): Return system path without
9637 converting to GRUB path.
9638 * util/update-grub.in: Convert system path returned by font_path()
9639 to a GRUB path. Use `grub-probe -t abstraction' to determine what
9640 abstraction module is needed for loading fonts (if any). Export
9641 that as `GRUB_PRELOAD_MODULES'.
9642 * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
9643 insmod commands).
9644
9645 2008-01-12 Yoshinori K. Okuji <okuji@enbug.org>
9646
9647 Remove some unused code from reiserfs.
9648
9649 * fs/reiserfs.c (struct grub_reiserfs_key)
9650 [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
9651 (struct grub_reiserfs_node_body): Removed.
9652 (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
9653 Likewise.
9654 (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
9655 Likewise.
9656 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
9657 Likewise.
9658 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
9659 Likewise.
9660 (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
9661 Likewise.
9662 (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
9663 Likewise.
9664 (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
9665 (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
9666 (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
9667
9668 2008-01-10 Robert Millan <rmh@aybabtu.com>
9669
9670 * util/update-grub_lib.in (grub_file_is_not_garbage): New function.
9671 Determines if a file is garbage left by packaging systems, etc.
9672 * util/update-grub.in: Use grub_file_is_not_garbage() as a condition
9673 for processing /etc/grub.d scripts.
9674 * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
9675 * util/grub.d/10_linux.in: Likewise. Use grub_file_is_not_garbage()
9676 as a condition for processing Linux images.
9677
9678 2008-01-10 Pavel Roskin <proski@gnu.org>
9679
9680 * include/grub/powerpc/libgcc.h (__ucmpdi2): New export. Needed
9681 to compile reiserfs.c on PowerPC.
9682
9683 2008-01-10 Robert Millan <rmh@aybabtu.com>
9684
9685 * kern/device.c (grub_device_iterate): Do not abort device iteration
9686 when one of the devices cannot be opened.
9687 * kern/disk.c (grub_disk_open): Do not account previous failures of
9688 unrelated functions when grub_errno is checked for.
9689
9690 2008-01-08 Robert Millan <rmh@aybabtu.com>
9691
9692 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
9693 `! grub_linux_is_bzimage', change order of address comparison to make
9694 it more intuitive, and improve "too big zImage" error message.
9695
9696 2008-01-08 Robert Millan <rmh@aybabtu.com>
9697
9698 * Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
9699 `$(update-grub_DATA)'.
9700 (distcheck): Fix race condition when invoking `$(MAKE)' on multiple
9701 targets.
9702
9703 2008-01-07 Robert Millan <rmh@aybabtu.com>
9704
9705 * boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
9706 which instruction is modified by grub-setup during installation
9707 (since it wasn't obvious by only looking at this file).
9708
9709 2008-01-07 Robert Millan <rmh@aybabtu.com>
9710
9711 * TODO: Rewrite. Just refer to the wiki and the BTS instead of
9712 listing actual TODO items.
9713
9714 2008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
9715
9716 * fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
9717 correctly.
9718 (grub_reiserfs_get_key_offset): Likewise.
9719 (grub_reiserfs_set_key_offset): Likewise.
9720 (grub_reiserfs_set_key_type): Likewise.
9721 (grub_reiserfs_iterate_dir): Return 1 if found, otherwise 0.
9722
9723 (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
9724 better to remove the bitfield version completely.
9725
9726 2008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
9727
9728 * fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
9729 allocated from the heap, due to the fshelp implementation.
9730 (grub_reiserfs_dir): Free NODE, due to the same reason.
9731
9732 2008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
9733
9734 Mostly from Vincent Pelletier:
9735
9736 * fs/reiserfs.c: New file.
9737
9738 * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod.
9739 (reiserfs_mod_SOURCES): New variable.
9740 (reiserfs_mod_CFLAGS): Likewise.
9741 (reiserfs_mod_LDFLAGS): Likewise.
9742
9743 * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
9744 disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
9745 include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
9746 normal/color.c.
9747
9748 2008-01-06 Robert Millan <rmh@aybabtu.com>
9749
9750 * normal/color.c: Remove `<grub/env.h>'.
9751
9752 2008-01-05 Jeroen Dekkers <jeroen@dekkers.cx>
9753
9754 * include/grub/normal.h: Include <grub/env.h>.
9755
9756 2008-01-05 Robert Millan <rmh@aybabtu.com>
9757
9758 * util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
9759 usage example with `(hd0,1)'.
9760 Reported by Samuel Thibault.
9761
9762 2008-01-05 Robert Millan <rmh@aybabtu.com>
9763
9764 * kern/i386/loader.S (grub_linux_is_bzimage): New variable.
9765 (grub_linux_boot_zimage): Rename to ...
9766 (grub_linux_boot): ... this.
9767 (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
9768 (grub_linux_boot_zimage): Conditionalize zImage copy.
9769
9770 * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype.
9771 (grub_linux_boot_bzimage): Remove prototype.
9772 (grub_linux_boot_zimage): Rename to ...
9773 (grub_linux_boot): ... this.
9774
9775 * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
9776 (grub_linux_boot): Remove function.
9777
9778 2008-01-05 Robert Millan <rmh@aybabtu.com>
9779
9780 * include/grub/normal.h (grub_env_write_color_normal): New prototype.
9781 (grub_env_write_color_highlight): Likewise.
9782 (grub_wait_after_message): Likewise.
9783
9784 * normal/color.c: New file.
9785
9786 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'.
9787 (normal_mod_DEPENDENCIES): Likewise.
9788
9789 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'.
9790 (normal_mod_DEPENDENCIES): Likewise.
9791
9792 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'.
9793 (normal_mod_DEPENDENCIES): Likewise.
9794
9795 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'.
9796 (normal_mod_DEPENDENCIES): Likewise.
9797
9798 * normal/menu_entry.c (run): Rely on grub_wait_after_message()
9799 for waiting after a message is printed.
9800 * normal/main.c (read_config_file): Likewise.
9801 (grub_normal_init): Register grub_env_write_color_normal() and
9802 grub_env_write_color_highlight() hooks. Mark `color_normal' and
9803 `color_highlight' variables as global.
9804
9805 * normal/menu.c (grub_wait_after_message): New function.
9806 (grub_color_menu_normal): New variable. Replaces ...
9807 (GRUB_COLOR_MENU_NORMAL): ... this macro.
9808 (grub_color_menu_highlight): New variable. Replaces ...
9809 (GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
9810 (draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
9811 `GRUB_TERM_COLOR_STANDARD'.
9812 (print_message): Use `grub_setcolorstate' to reload colors. Rename
9813 `normal_code' and `highlight_code' to `old_color_normal' and
9814 `old_color_highlight', respectively.
9815 (grub_menu_init_page): Update colors when drawing the menu, based on
9816 `menu_color_normal' and `menu_color_highlight' variables.
9817 (grub_menu_run): Rely on grub_wait_after_message() for waiting after
9818 a message is printed.
9819
9820 2008-01-05 Robert Millan <rmh@aybabtu.com>
9821
9822 * kern/env.c (grub_env_context_open): Propagate hooks for global
9823 variables to new context.
9824
9825 * kern/main.c (grub_set_root_dev): Export `root' variable.
9826
9827 2008-01-05 Robert Millan <rmh@aybabtu.com>
9828
9829 * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
9830 discs unconditionally, since udev and others have options to provide
9831 them.
9832
9833 2008-01-05 Robert Millan <rmh@aybabtu.com>
9834
9835 * normal/completion.c (iterate_dir): Skip `.' and `..' directories.
9836
9837 2008-01-04 Christian Franke <franke@computer.org>
9838
9839 * kern/i386/pc/init.c (grub_machine_init): Fix evaluation
9840 of eisa_mmap.
9841
9842 2008-01-03 Pavel Roskin <proski@gnu.org>
9843
9844 * kern/i386/linuxbios/init.c: Put "void" to all function
9845 declarations with no arguments.
9846 * kern/powerpc/ieee1275/init.c: Likewise.
9847 * term/i386/pc/at_keyboard.c: Likewise.
9848 * term/i386/pc/vga_text.c: Likewise.
9849 * util/grub-mkdevicemap.c: Likewise.
9850
9851 2008-01-02 Robert Millan <rmh@aybabtu.com>
9852
9853 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
9854 message when loaded image is out of bounds.
9855 (grub_multiboot_load_elf64): Likewise.
9856
9857 2008-01-02 Pavel Roskin <proski@gnu.org>
9858
9859 * util/grub.d/10_linux.in: Try version without ".old" when
9860 looking for initrd. It's better to use initrd from the newer
9861 kernel of the same version than no initrd at all.
9862
9863 2008-01-01 Robert Millan <rmh@aybabtu.com>
9864
9865 * util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.
9866
9867 2008-01-01 Vesa Jaaskelainen <chaac@nic.fi>
9868
9869 * include/grub/video.h: Added grub_video_unmap_color and
9870 grub_video_get_active_render_target.
9871 (grub_video_adapter): Added unmap_color and get_active_render_target.
9872
9873 * video/video.c: Added grub_video_unmap_color and
9874 grub_video_get_active_render_target.
9875 (grub_video_get_info): Changed method to accept NULL pointer as an
9876 argument to allow detection of active video adapter.
9877
9878 * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as
9879 grub_video_vbe_unmap_color_int.
9880 Added grub_video_vbe_unmap_color and
9881 grub_video_vbe_get_active_render_target.
9882 (grub_video_vbe_adapter): Added unmap_color and
9883 get_active_render_target.
9884
9885 * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage
9886 with grub_video_vbe_unmap_color_int.
9887
9888 * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
9889 (DEFAULT_NORMAL_COLOR): Likewise.
9890 (DEFAULT_HIGHLIGHT_COLOR) Likewise.
9891 (DEFAULT_FG_COLOR): Removed.
9892 (DEFAULT_BG_COLOR): Likewise.
9893 (DEFAULT_CURSOR_COLOR): Changed value.
9894 (grub_virtual_screen): Added standard_color_setting,
9895 normal_color_setting, highlight_color_setting and term_color.
9896 (grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
9897 (bitmap_width): Added.
9898 (bitmap_height): Likewise.
9899 (bitmap): Likewise.
9900 (set_term_color): Likewise.
9901 (grub_virtual_screen_setup): Changed to use new terminal coloring
9902 settings.
9903 (grub_gfxterm_init): Added init for bitmap.
9904 (grub_gfxterm_fini): Added destroy for bitmap.
9905 (redraw_screen_rect): Updated to use background bitmap and new
9906 terminal coloring.
9907 (scroll_up): Added optimization for case when there is no bitmap.
9908 (grub_gfxterm_cls): Fixed to use correct background color.
9909 (grub_virtual_screen_setcolorstate): Changed to use new terminal
9910 coloring.
9911 (grub_virtual_screen_setcolor): Likewise.
9912 (grub_virtual_screen_getcolor): Added.
9913 (grub_gfxterm_background_image_cmd): Likewise.
9914 (grub_video_term): Added setcolor and getcolor.
9915 (MOD_INIT): Added registration of background_image command.
9916 (MOD_TERM): Added unregistration for background_image command.
9917
9918 2007-12-30 Pavel Roskin <proski@gnu.org>
9919
9920 * loader/multiboot_loader.c: Fix multiboot command
9921 unregistration. Fix all typos in the word "multiboot".
9922
9923 2007-12-29 Pavel Roskin <proski@gnu.org>
9924
9925 * util/grub.d/10_linux.in: Refactor search for initrd. Add
9926 support for initrd names used in Fedora.
9927
9928 2007-12-26 Bean <bean123ch@gmail.com>
9929
9930 * conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
9931 (cpio_mod_SOURCES): New variable.
9932 (cpio_mod_CFLAGS): Likewise.
9933 (cpio_mod_LDFLAGS): Likewise.
9934
9935 * fs/cpio.c: New file.
9936
9937 * conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c.
9938
9939 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
9940
9941 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
9942
9943 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
9944
9945 2007-12-25 Robert Millan <rmh@aybabtu.com>
9946
9947 * include/grub/term.h (struct grub_term): Add `getcolor' function.
9948 (grub_getcolor): New function.
9949
9950 * kern/term.c (grub_getcolor): New function.
9951 * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
9952 (GRUB_COLOR_MENU_HIGHLIGHT): New macro.
9953 (print_entry): Set normal and highlight colors to
9954 `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
9955 respectively, before printing and restore them to old
9956 values afterwards.
9957 (grub_menu_init_page): Likewise. Fill an additional colored space
9958 that would otherwise be left blank.
9959
9960 * term/efi/console.c (grub_console_getcolor): New function.
9961 (struct grub_console_term.getcolor): New variable.
9962 * term/i386/pc/console.c (grub_console_getcolor): New function.
9963 (struct grub_console_term.getcolor): New variable.
9964 * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
9965 (struct grub_console_term.getcolor): New variable.
9966
9967 * term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
9968 (struct grub_console_term.setcolor): Remove variable.
9969 * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
9970 (struct grub_console_term.setcolor): Remove variable.
9971 * term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
9972 (struct grub_console_term.setcolor): Remove variable.
9973 * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
9974 (struct grub_console_term.setcolor): Remove variable.
9975
9976 2007-12-25 Robert Millan <rmh@aybabtu.com>
9977
9978 * configure.ac: Search for possible unifont.hex locations, and
9979 define UNIFONT_HEX if found.
9980
9981 * Makefile.in (UNIFONT_HEX): Define variable.
9982 (DATA): Rename to ...
9983 (PKGLIB): ... this. Update all users.
9984 (PKGDATA): New variable.
9985 (pkgdata_IMAGES): Rename to ...
9986 (pkglib_IMAGES): ... this. Update all users.
9987 (pkgdata_MODULES): Rename to ...
9988 (pkglib_MODULES): ... this. Update all users.
9989 (pkgdata_PROGRAMS): Rename to ...
9990 (pkglib_PROGRAMS): ... this. Update all users.
9991 (pkgdata_DATA): Rename to ...
9992 (pkglib_DATA): ... this. Update all users.
9993 (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
9994 (unicode.pff, ascii.pff): New rules.
9995 (all-local): Add `$(PKGDATA)' dependency.
9996 (install-local): Process `$(PKGDATA)'.
9997
9998 * util/update-grub_lib.in (font_path): Search for *.pff files in
9999 a few more locations, including `${pkgdata}'.
10000
10001 2007-12-23 Robert Millan <rmh@aybabtu.com>
10002
10003 Patch from Bean <bean123ch@gmail.com>:
10004 * disk/loopback.c (grub_loopback_read): Add missing bit shift to
10005 `size'.
10006
10007 2007-12-21 Bean <bean123ch@gmail.com>
10008
10009 * conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
10010 (ntfscomp_mod_SOURCES): New variable.
10011 (ntfscomp_mod_CFLAGS): Likewise.
10012 (ntfscomp_mod_LDFLAGS): Likewise.
10013
10014 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c.
10015 (grub_probe_SOURCES): Likewise.
10016 (grub_emu_SOURCES): Likewise.
10017
10018 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
10019 (grub_emu_SOURCES): Likewise.
10020
10021 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
10022 (grub_emu_SOURCES): Likewise.
10023
10024 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
10025 (grub_emu_SOURCES): Likewise.
10026
10027 * fs/ntfs.c (grub_ntfscomp_func): New variable.
10028 (read_run_list): Renamed to grub_ntfs_read_run_list.
10029 (decomp_nextvcn): Moved to ntfscomp.c.
10030 (decomp_getch): Likewise.
10031 (decomp_get16): Likewise.
10032 (decomp_block): Likewise.
10033 (read_block): Likewise.
10034 (read_data): Partially moved to ntfscomp.c.
10035 (fixup): Change unsigned to grub_uint16_t.
10036 (read_mft): Change unsigned long to grub_uint32_t.
10037 (read_attr): Likewise.
10038 (read_data): Likewise.
10039 (read_run_data): Likewise.
10040 (read_run_list): Likewise.
10041 (read_mft): Likewise.
10042
10043 * fs/ntfscomp.c: New file.
10044
10045 * include/grub/ntfs.h: New file.
10046
10047 2007-12-16 Robert Millan <rmh@aybabtu.com>
10048
10049 * util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
10050 IDE disk check, since Linux is known to support 20 IDE disks.
10051 Reported by Colin Watson.
10052
10053 2007-12-15 Bean <bean123ch@gmail.com>
10054
10055 * conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
10056 (lnxboot_img_SOURCES): New variable.
10057 (lnxboot_img_ASFLAGS): Likewise.
10058 (lnxboot_img_LDFLAGS): Likewise.
10059
10060 * boot/i386/pc/lnxboot.S: New file.
10061
10062 2007-11-24 Pavel Roskin <proski@gnu.org>
10063
10064 * configure.ac: Test if '--build-id=none' is supported by the
10065 linker. If yes, add it to TARGET_LDFLAGS. Build ID causes
10066 objcopy to generate incorrect binary files (binutils
10067 2.17.50.0.18-1 as shipped by Fedora 8).
10068 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
10069 linking, so that build ID doesn't break the test.
10070
10071 2007-11-24 Pavel Roskin <proski@gnu.org>
10072
10073 * include/grub/i386/time.h: use "void" in the argument list
10074 of grub_cpu_idle().
10075 * include/grub/powerpc/time.h: Likewise.
10076 * include/grub/sparc64/time.h: Likewise.
10077
10078 2007-11-18 Christian Franke <franke@computer.org>
10079
10080 * util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
10081 now return control chars instead of GRUB_CONSOLE_KEY_* constants.
10082 This fixes the problem that function keys did not work in grub-emu.
10083
10084 2007-11-18 Christian Franke <franke@computer.org>
10085
10086 * disk/host.c (grub_host_open): Remove attribute unused from
10087 name parameter. Add check for "host". This fixes the problem
10088 that grub-emu does not find partitions.
10089
10090 2007-11-18 Christian Franke <franke@computer.org>
10091
10092 * util/hostfs.c (is_dir): New function.
10093 (grub_hostfs_dir): Handle missing dirent.d_type case.
10094 (grub_hostfs_read): Add missing fseek().
10095 (grub_hostfs_label): Clear label pointer. This fixes a crash
10096 of grub-emu on "ls (host)".
10097
10098 2007-11-18 Christian Franke <franke@computer.org>
10099
10100 * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
10101 Add attribute packed, gcc 3.4.4 on Cygwin aligns this
10102 to 64 bit boundary by default.
10103
10104 2007-11-18 Bean <bean123ch@gmail.com>
10105
10106 * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
10107 (hexdump_mod_SOURCES): New variable.
10108 (hexdump_mod_CFLAGS): Likewise.
10109 (hexdump_mod_LDFLAGS): Likewise.
10110
10111 * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.
10112
10113 * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.
10114
10115 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.
10116
10117 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.
10118
10119 * include/grub/hexdump.h: New file.
10120
10121 * commands/hexdump.c: New file.
10122
10123 2007-11-10 Robert Millan <rmh@aybabtu.com>
10124
10125 * commands/i386/pc/play.c (beep_off): Switch order of arguments
10126 in grub_outb() calls.
10127 (beep_on): Likewise.
10128
10129 2007-11-10 Christian Franke <franke@computer.org>
10130
10131 * normal/menu.c (run_menu): Check for empty menu to avoid crash.
10132 (grub_menu_run): Likewise.
10133
10134 2007-11-10 Robert Millan <rmh@aybabtu.com>
10135
10136 * include/grub/i386/efi/machine.h: New file.
10137 * include/grub/i386/linuxbios/machine.h: Likewise.
10138 * include/grub/i386/pc/machine.h: Likewise.
10139 * include/grub/powerpc/ieee1275/machine.h: Likewise.
10140 * include/grub/sparc64/ieee1275/machine.h: Likewise.
10141
10142 * term/i386/pc/serial.c: Include <grub/machine/machine.h>.
10143 (serial_hw_io_addr): New variable.
10144 (serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
10145 instead of `(unsigned short *) 0x400'.
10146
10147 2007-11-10 Bean <bean123ch@gmail.com>
10148
10149 * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
10150
10151 2007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
10152
10153 * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
10154 (vga_mod_SOURCES): Added.
10155 (vga_mod_CFLAGS): Likewise.
10156 (vga_mod_LDFLAGS): Likewise.
10157
10158 * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
10159 grub_outb() calls.
10160 (set_map_mask): Likewise.
10161 (set_read_map): Likewise.
10162 (set_read_address): Likewise.
10163 (vga_font): Removed variable.
10164 (get_vga_glyph): Removed function.
10165 (invalidate_char): Likewise.
10166 (write_char): Changed to use grub_font_get_glyph() for font
10167 information.
10168 (grub_vga_putchar): Likewise.
10169 (grub_vga_getcharwidth): Likewise.
10170
10171 2007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
10172
10173 * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
10174 flags.
10175 (pxeboot_img_LDFLAGS): Likewise.
10176 (diskboot_img_LDFLAGS): Likewise.
10177 (kernel_img_LDFLAGS): Likewise.
10178
10179 2007-11-06 Robert Millan <rmh@aybabtu.com>
10180
10181 * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
10182 in grub_outb() calls.
10183 (serial_hw_init): Likewise.
10184
10185 2007-11-05 Robert Millan <rmh@aybabtu.com>
10186
10187 * util/update-grub.in: Allow files in ${update_grub_dir} to contain
10188 spaces. Skip non-regular files.
10189
10190 2007-11-05 Robert Millan <rmh@aybabtu.com>
10191
10192 * kern/disk.c (grub_disk_firmware_fini)
10193 (grub_disk_firmware_is_tainted): New variables.
10194
10195 * include/grub/disk.h (grub_disk_firmware_fini)
10196 (grub_disk_firmware_is_tainted): Likewise.
10197
10198 * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
10199 (grub_disk_biosdisk_fini): ... to here.
10200 (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
10201 (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
10202 is set. Register grub_disk_biosdisk_fini() in
10203 `grub_disk_firmware_fini'.
10204
10205 * disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
10206 (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
10207 Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
10208 to finish existing firmware disk interface.
10209
10210 * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
10211 (ata_mod_SOURCES): New variable.
10212 (ata_mod_CFLAGS): Likewise.
10213 (ata_mod_LDFLAGS): Likewise.
10214
10215 2007-11-05 Robert Millan <rmh@aybabtu.com>
10216
10217 * disk/ata.c: Remove `<grub/machine/time.h>'. Include `<grub/time.h>'.
10218 (grub_ata_wait): Reimplement using grub_millisleep().
10219
10220 * include/grub/misc.h (grub_div_roundup): Fix parenthesization.
10221 * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
10222
10223 2007-11-03 Marco Gerards <marco@gnu.org>
10224
10225 * term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
10226 (CRTC_ADDR_PORT): New macro.
10227 (CRTC_DATA_PORT): Likewise.
10228 (CRTC_CURSOR): Likewise.
10229 (CRTC_CURSOR_ADDR_HIGH): Likewise.
10230 (CRTC_CURSOR_ADDR_LOW): Likewise.
10231 (update_cursor): New function.
10232 (grub_console_real_putchar): Call `update_cursor'.
10233 (grub_console_gotoxy): Likewise.
10234 (grub_console_cls): Set the default color when clearing the
10235 screen.
10236 (grub_console_setcursor): Implemented.
10237
10238 2007-11-03 Marco Gerards <marco@gnu.org>
10239
10240 * disk/ata.c (grub_ata_pio_read): Don't wait for the command to
10241 become activate.
10242 (grub_ata_pio_write): Likewise.
10243
10244 (grub_atapi_identify): Wait after issuing an ATA command.
10245 (grub_atapi_packet): Likewise.
10246 (grub_ata_identify): Likewise.
10247 (grub_ata_readwrite): Likewise.
10248
10249 2007-11-03 Marco Gerards <marco@gnu.org>
10250
10251 * disk/ata.c (grub_ata_pio_read): Detect and return the error code.
10252 (grub_ata_pio_write): Likewise.
10253 (grub_ata_readwrite): Use `grub_error', instead of
10254 returning `grub_errno'.
10255
10256 2007-11-03 Marco Gerards <marco@gnu.org>
10257
10258 * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
10259 grub_ata_pio_write once for every single sector, instead of for
10260 multiple sectors.
10261
10262 2007-10-31 Robert Millan <rmh@aybabtu.com>
10263
10264 * configure.ac: Add `i386-linuxbios' to the list of supported targets.
10265
10266 * conf/i386-linuxbios.rmk: New file.
10267
10268 * kern/i386/pc/hardware.c: Likewise.
10269 * term/i386/pc/at_keyboard.c: Likewise.
10270 * term/i386/pc/vga_text.c: Likewise.
10271
10272 * include/grub/i386/linuxbios/boot.h: Likewise.
10273 * include/grub/i386/linuxbios/console.h: Likewise.
10274 * include/grub/i386/linuxbios/init.h: Likewise.
10275 * include/grub/i386/linuxbios/kernel.h: Likewise.
10276 * include/grub/i386/linuxbios/loader.h: Likewise.
10277 * include/grub/i386/linuxbios/memory.h: Likewise.
10278 * include/grub/i386/linuxbios/serial.h: Likewise.
10279 * include/grub/i386/linuxbios/time.h: Likewise.
10280
10281 * kern/i386/linuxbios/init.c: Likewise.
10282 * kern/i386/linuxbios/startup.S: Likewise.
10283 * kern/i386/linuxbios/table.c: Likewise.
10284
10285 2007-10-31 Marco Gerards <marco@gnu.org>
10286
10287 * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
10288 (ata_mod_SOURCES): New variable.
10289 (ata_mod_CFLAGS): Likewise.
10290 (ata_mod_LDFLAGS): Likewise.
10291
10292 * disk/ata.c: New file.
10293
10294 * include/grub/disk.h (grub_disk_dev_id): Add
10295 `GRUB_DISK_DEV_ATA_ID'.
10296
10297 2007-10-31 Robert Millan <rmh@aybabtu.com>
10298
10299 * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
10300 * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.
10301
10302 * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
10303 * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.
10304
10305 * include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
10306 `<grub/types.h>'.
10307
10308 * loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
10309
10310 2007-10-27 Robert Millan <rmh@aybabtu.com>
10311
10312 * include/grub/types.h (ULONG_MAX): Define macro.
10313
10314 2007-10-22 Robert Millan <rmh@aybabtu.com>
10315
10316 * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'. Include
10317 `"../realmode.S"'.
10318 Remove `"kern/i386/loader.S"'. Include `"../loader.S"'.
10319
10320 2007-10-22 Robert Millan <rmh@aybabtu.com>
10321
10322 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
10323 (pkgdata_MODULES): Add `biosdisk.mod'.
10324 (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
10325 variables.
10326
10327 * disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
10328 (grub_biosdisk_init): Replace with ...
10329 (GRUB_MOD_INIT(biosdisk)): ... this.
10330 (grub_biosdisk_fini): Replace with ...
10331 (GRUB_MOD_FINI(biosdisk)): ... this.
10332
10333 * kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
10334 (grub_machine_init): Remove call to grub_biosdisk_init().
10335 (grub_machine_fini): Remove call to grub_machine_fini().
10336
10337 * util/i386/pc/grub-install.in (modules): Add `biosdisk'.
10338
10339 2007-10-22 Robert Millan <rmh@aybabtu.com>
10340
10341 * include/grub/time.h: New file.
10342 * include/grub/i386/time.h: Likewise.
10343 * include/grub/powerpc/time.h: Likewise.
10344 * include/grub/sparc64/time.h: Likewise.
10345
10346 * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
10347 instances to ...
10348 (KERNEL_MACHINE_TIME_HEADER): ... this.
10349 * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
10350 instances to ...
10351 (KERNEL_MACHINE_TIME_HEADER): ... this.
10352 * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
10353 instances to ...
10354 (KERNEL_MACHINE_TIME_HEADER): ... this.
10355
10356 * kern/i386/efi/init.c: Include `<grub/time.h>'.
10357 (grub_millisleep): New function.
10358 * kern/i386/pc/init.c: Include `<grub/time.h>'.
10359 (grub_millisleep): New function.
10360 * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
10361 Remove `grub/machine/time.h' include.
10362 (grub_millisleep): New function.
10363 * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
10364 Remove `grub/machine/time.h' include.
10365 (grub_millisleep): New function.
10366
10367 * include/grub/misc.h (grub_div_roundup): New function.
10368
10369 * kern/misc.c: Include `<grub/time.h>'.
10370 (grub_millisleep_generic): New function.
10371
10372 * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
10373 Add `time.h'.
10374 * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
10375 Add `time.h'.
10376 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
10377 `machine/time.h'. Add `time.h'.
10378 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
10379
10380 2007-10-21 Robert Millan <rmh@aybabtu.com>
10381
10382 * include/grub/misc.h (grub_max): New function.
10383
10384 2007-10-21 Robert Millan <rmh@aybabtu.com>
10385
10386 * util/misc.c (grub_util_info): Call fflush() before returning.
10387
10388 2007-10-20 Robert Millan <rmh@aybabtu.com>
10389
10390 * genmk.rb (Image): Copy `extra_flags' from here ...
10391 (PModule): ... to here. Use it in `#{obj}: #{src}' rule.
10392
10393 * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
10394 to `argc' and `args' arguments.
10395
10396 2007-10-17 Robert Millan <rmh@aybabtu.com>
10397
10398 * kern/i386/loader.S: New file.
10399
10400 * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
10401 * kern/i386/loader.S (grub_linux_prot_size)... to here.
10402 * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
10403 * kern/i386/loader.S (grub_linux_tmp_addr)... to here.
10404 * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
10405 * kern/i386/loader.S (grub_linux_real_addr)... to here.
10406 * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
10407 * kern/i386/loader.S (grub_linux_boot_zimage)... to here.
10408 * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
10409 * kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
10410 * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
10411 * kern/i386/loader.S (grub_multiboot_real_boot)... to here.
10412 * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
10413 * kern/i386/loader.S (grub_multiboot2_real_boot)... to here.
10414
10415 * kern/i386/realmode.S: New file.
10416
10417 * kern/i386/pc/startup.S (protstack): Moved from here ...
10418 * kern/i386/realmode.S (protstack)... to here.
10419 * kern/i386/pc/startup.S (gdt): Moved from here ...
10420 * kern/i386/realmode.S (gdt)... to here.
10421 * kern/i386/pc/startup.S (prot_to_real): Moved from here ...
10422 * kern/i386/realmode.S (prot_to_real)... to here.
10423
10424 * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
10425 `kern/i386/realmode.S'.
10426
10427 2007-10-17 Robert Millan <rmh@aybabtu.com>
10428
10429 * include/grub/i386/loader.h: New file.
10430
10431 * include/grub/i386/pc/loader.h (grub_linux_prot_size)
10432 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
10433 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
10434 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
10435 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
10436 * include/grub/i386/loader.h (grub_linux_prot_size)
10437 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
10438 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
10439 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
10440 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.
10441
10442 * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
10443
10444 2007-10-15 Robert Millan <rmh@aybabtu.com>
10445
10446 * normal/misc.c (grub_normal_print_device_info): Do not probe for
10447 filesystem when dev->disk is unset.
10448 Do probe for filesystem even when dev->disk->has_partitions is set.
10449 In case a filesystem is found, always report it.
10450 In case it isn't, if dev->disk->has_partitions is set, report that
10451 a partition table was found instead of reporting that no filesystem
10452 could be identified.
10453
10454 2007-10-12 Robert Millan <rmh@aybabtu.com>
10455
10456 * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
10457 to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.
10458
10459 * include/grub/types.h (grub_host_to_target16): New macro.
10460 (grub_host_to_target32): Likewise.
10461 (grub_host_to_target64): Likewise.
10462 (grub_target_to_host16): Likewise.
10463 (grub_target_to_host32): Likewise.
10464 (grub_target_to_host64): Likewise.
10465
10466 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
10467 Renamed from to ...
10468 (GRUB_MOD_ALIGN): ...this. Update all users.
10469
10470 * util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with
10471 grub_host_to_target32.
10472 Replace grub_be_to_cpu32 with grub_target_to_host32.
10473 (load_modules): Likewise.
10474 (add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16.
10475 Replace grub_be_to_cpu32 with grub_target_to_host32.
10476 Replace grub_cpu_to_be16 with grub_host_to_target16.
10477 Replace grub_cpu_to_be32 grub_host_to_target32.
10478
10479 2007-10-12 Robert Millan <rmh@aybabtu.com>
10480
10481 * util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
10482 * util/elf/grub-mkimage.c: ... here.
10483
10484 * DISTLIST: Add `util/elf/grub-mkimage.c'. Remove
10485 `util/powerpc/ieee1275/grub-mkimage.c'.
10486
10487 2007-10-07 Robert Millan <rmh@aybabtu.com>
10488
10489 * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
10490 and make it easier to figure out.
10491 Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
10492 (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
10493 Do not avoid claiming a region above HEAP_MAX_ADDR if that would
10494 leave us with less than HEAP_MIN_SIZE total heap.
10495 Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
10496
10497 2007-10-03 Robert Millan <rmh@aybabtu.com>
10498
10499 * include/grub/i386/io.h: New file.
10500 * commands/i386/pc/play.c (inb): Removed.
10501 (outb): Removed.
10502 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
10503 with grub_outb().
10504 * term/i386/pc/serial.c (inb): Removed.
10505 (outb): Removed.
10506 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
10507 with grub_outb().
10508 * term/i386/pc/vga.c (inb): Removed.
10509 (outb): Removed.
10510 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
10511 with grub_outb().
10512
10513 2007-10-02 Robert Millan <rmh@aybabtu.com>
10514
10515 * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
10516 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
10517 Reported by Marcin Kurek.
10518
10519 2007-09-07 Robert Millan <rmh@aybabtu.com>
10520
10521 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
10522 SmartFirmware version updates (as released by Sven Luther), and avoid
10523 setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
10524 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
10525 known broken.
10526
10527 2007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
10528
10529 From Hitoshi Ozeki:
10530 * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
10531 when merging two regions.
10532
10533 2007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
10534
10535 * kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
10536 * normal/completion.c (grub_normal_do_completion): Likewise.
10537 Reported by Hitoshi Ozeki.
10538
10539 2007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
10540
10541 Do not use devices at boot in chainloading.
10542
10543 * loader/i386/pc/chainloader.c (boot_drive): New variable.
10544 (boot_part_addr): Likewise.
10545 (grub_chainloader_boot): Simply call grub_chainloader_real_boot
10546 with BOOT_DRIVE and BOOT_PART_ADDR.
10547 (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
10548 Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
10549
10550 2007-08-29 Robert Millan <rmh@aybabtu.com>
10551
10552 Patch from Simon Peter <dn.tlp@gmx.net>:
10553 * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
10554 * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
10555 util/grub-probe.c_DEPENDENCIES. Replace grub-setup_DEPENDENCIES with
10556 util/i386/pc/grub-setup.c_DEPENDENCIES.
10557 * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
10558 util/grub-probe.c_DEPENDENCIES.
10559 * conf/powerpc-ieee1275.rmk: Likewise.
10560
10561 2007-08-28 Robert Millan <rmh@aybabtu.com>
10562
10563 * util/i386/get_disk_name.c: New. Implement grub_util_get_disk_name()
10564 to tell grub-mkdevicemap how to name devices.
10565 * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
10566 feature).
10567
10568 * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
10569 util/i386/get_disk_name.c.
10570 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
10571 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
10572 util/ieee1275/get_disk_name.c.
10573
10574 * include/grub/util/misc.h: grub_util_get_disk_name() declaration.
10575
10576 * DISTLIST: Add util/i386/get_disk_name.c and
10577 util/ieee1275/get_disk_name.c.
10578
10579 * util/grub-mkdevicemap.c: Replace device naming logic with
10580 grub_util_get_disk_name() calls.
10581
10582 2007-08-20 Robert Millan <rmh@aybabtu.com>
10583
10584 * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
10585 (so that it works for both plural and singular quantities).
10586
10587 2007-08-05 Robert Millan <rmh@aybabtu.com>
10588
10589 * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
10590 so that [xz] isn't taken into account when determining order.
10591
10592 2007-08-02 Marco Gerards <marco@gnu.org>
10593
10594 * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
10595 `include/multiboot2.h', `include/grub/elfload.h',
10596 `include/multiboot.h', `include/grub/multiboot.h',
10597 `include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
10598 `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
10599 `kern/elf.c', `loader/multiboot_loader.c',
10600 `loader/multiboot_loader_normal.c', `loader/multiboot2.c',
10601 `loader/i386/pc/multiboot2.c',
10602 `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
10603 `util/i386/pc/grub-mkrescue.in'. Remove
10604 `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
10605 `include/grub/i386/pc/util/biosdisk.h' and
10606 `include/grub/powerpc/ieee1275/multiboot.h'.
10607
10608 2007-08-02 Bean <bean123ch@gmail.com>
10609
10610 * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
10611 (ntfs_mod_SOURCES): New variable.
10612 (ntfs_mod_CFLAGS): Likewise.
10613 (ntfs_mod_LDFLAGS): Likewise.
10614
10615 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c.
10616 (grub_probe_SOURCES): Likewise.
10617 (grub_emu_SOURCES): Likewise.
10618
10619 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
10620 (grub_emu_SOURCES): Likewise.
10621
10622 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
10623 (grub_emu_SOURCES): Likewise.
10624
10625 * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.
10626
10627 * fs/ntfs.c: New file.
10628
10629 2007-08-02 Bean <bean123ch@gmail.com>
10630
10631 * disk.h (grub_disk): Use NESTED_FUNC_ATTR.
10632
10633 * file.h (grub_file): Likewise.
10634
10635 * fshelp.h (grub_fshelp_read_file): Likewise.
10636
10637 * util/i386/pc/grub-setup.c (setup): Likewise.
10638 (save_first_sector): Likewise.
10639 (save_blocklists): Likewise.
10640
10641 * fs/affs.c (grub_affs_read_file): Likewise.
10642
10643 * fs/ext2.c (grub_ext2_read_file): Likewise.
10644
10645 * fs/fat.c (grub_fat_read_data): Likewise.
10646
10647 * fs/fshelp.c (grub_fshelp_read_file): Likewise.
10648
10649 * fs/hfs.c (grub_hfs_read_file): Likewise.
10650
10651 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
10652
10653 * fs/jfs.c (grub_jfs_read_file): Likewise.
10654
10655 * fs/minix.c (grub_minix_read_file): Likewise.
10656
10657 * fs/sfs.c (grub_sfs_read_file): Likewise.
10658
10659 * fs/ufs.c (grub_ufs_read_file): Likewise.
10660
10661 * fs/xfs.c (grub_xfs_read_file): Likewise.
10662
10663 * command/blocklist.c (read_blocklist): Likewise.
10664 (print_blocklist): Likewise.
10665
10666 2007-08-02 Marco Gerards <marco@gnu.org>
10667
10668 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
10669 `util/hostfs.c'.
10670
10671 * disk/host.c: New file.
10672
10673 * util/hostfs.c: Likewise.
10674
10675 * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
10676 return `GRUB_ERR_BAD_FS'.
10677 * fs/sfs.c (grub_sfs_mount): Likewise.
10678 * fs/xfs.c (grub_xfs_mount): Likewise.
10679
10680 * include/grub/disk.h (enum grub_disk_dev_id): Add
10681 `GRUB_DISK_DEVICE_HOST_ID'.
10682
10683 * util/grub-emu.c (main): Initialize and de-initialize hostfs.
10684
10685 2007-07-24 Jerone Young <jerone@gmail.com>
10686
10687 * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
10688 modules for compilation.
10689 * conf/powerpc-ieee1275.rmk: Likewise.
10690
10691 * include/multiboot.h: Move multiboot definitions to one file. Rename
10692 many definitions to not get grub specific.
10693 * include/multiboot2.h: Create header with multiboot 2 definitions.
10694 * include/grub/multiboot.h: Header for grub specific function
10695 prototypes and definitions.
10696 * include/grub/multiboot2.h: Likewise.
10697 * include/grub/multiboot_loader.h: Likewise.
10698 * include/grub/i386/pc/multiboot.h: Removed.
10699 * include/grub/powerpc/ieee1275/multiboot.h: Removed.
10700
10701 * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
10702 and 2 to allow for one multiboot and module commands.
10703 * loader/multiboot2.c: Add multiboot2 functionality.
10704 * loader/i386/pc/multiboot.c: Modify for new multiboot header location
10705 and definition names.
10706 * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
10707 2 functions.
10708 * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
10709 ieee1275 specific multiboot2 code.
10710
10711 * kern/i386/pc/startup.S: Change headers and definition names for
10712 multiboot. Add function grub_multiboot2_real_boot for multiboot 2.
10713
10714 2007-07-22 Robert Millan <rmh@aybabtu.com>
10715
10716 * geninitheader.sh: Process file specified in first parameter rather
10717 than hardcoding grub_modules_init.lst.
10718 * geninit.sh: Likewise. Also, construct header name dynamically rather
10719 than hardcoding grub_modules_init.h.
10720
10721 * conf/common.rmk: Rename grub_modules_init.[ch] files associated with
10722 grub-emu to grub_emu_init.[ch]. Add rules to build analogous
10723 grub_probe_init.[ch] and grub_setup_init.[ch].
10724
10725 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
10726 grub_modules_init.h with grub_emu_init.h.
10727 (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
10728 grub_probe_init.[ch] files.
10729 * conf/i386-efi.rmk: Likewise.
10730 * conf/i386-pc.rmk: Likewise.
10731 (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
10732 grub_setup_init.[ch] files.
10733
10734 * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
10735 * util/grub-probe.c: Include grub_probe_init.h. Use grub_init_all()
10736 to initialize modules rather than a list of hardcoded functions.
10737 * util/i386/pc/grub-setup.c: Include grub_setup_init.h. Use
10738 grub_init_all() to initialize modules rather than a list of hardcoded
10739 functions.
10740
10741 2007-07-22 Robert Millan <rmh@aybabtu.com>
10742
10743 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
10744 GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
10745
10746 2007-07-22 Robert Millan <rmh@aybabtu.com>
10747
10748 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
10749 GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
10750 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
10751 flag when running on SmartFirmware.
10752 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
10753 "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
10754 was set.
10755
10756 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
10757 Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
10758 rather than decreasing it.
10759
10760 * util/i386/pc/grub-setup.c (setup): When embedding is required, but
10761 there's not enough space to do it, fail in the same way as when it
10762 can't be done because there are no partitions.
10763
10764 * util/powerpc/ieee1275/grub-install.in: Improve error message shown
10765 when nvsetenv failed.
10766
10767 2007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
10768
10769 * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
10770 because this rule is automatically generated.
10771 (grub-mkrescue): Removed for the same reason as above.
10772
10773 2007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
10774
10775 Migrate to GNU General Public License Version 3.
10776
10777 * COPYING: Replaced with the plain text version of GPLv3.
10778
10779 * config.guess: Updated from gnulib.
10780 * config.sub: Likewise.
10781
10782 * geninit.sh: Output a GPLv3 copyright notice.
10783 * geninitheader.sh: Likewise.
10784 * genmodsrc.sh: Likewise.
10785 * gensymlist.sh.in: Likewise.
10786
10787 * boot/i386/pc/boot.S: Upgraded to GPLv3.
10788 * boot/i386/pc/diskboot.S: Likewise.
10789 * boot/i386/pc/pxeboot.S: Likewise.
10790 * commands/blocklist.c: Likewise.
10791 * commands/boot.c: Likewise.
10792 * commands/cat.c: Likewise.
10793 * commands/cmp.c: Likewise.
10794 * commands/configfile.c: Likewise.
10795 * commands/echo.c: Likewise.
10796 * commands/help.c: Likewise.
10797 * commands/ls.c: Likewise.
10798 * commands/search.c: Likewise.
10799 * commands/terminal.c: Likewise.
10800 * commands/test.c: Likewise.
10801 * commands/videotest.c: Likewise.
10802 * commands/i386/cpuid.c: Likewise.
10803 * commands/i386/pc/halt.c: Likewise.
10804 * commands/i386/pc/play.c: Likewise.
10805 * commands/i386/pc/reboot.c: Likewise.
10806 * commands/i386/pc/vbeinfo.c: Likewise.
10807 * commands/i386/pc/vbetest.c: Likewise.
10808 * commands/ieee1275/halt.c: Likewise.
10809 * commands/ieee1275/reboot.c: Likewise.
10810 * commands/ieee1275/suspend.c: Likewise.
10811 * disk/loopback.c: Likewise.
10812 * disk/lvm.c: Likewise.
10813 * disk/raid.c: Likewise.
10814 * disk/efi/efidisk.c: Likewise.
10815 * disk/i386/pc/biosdisk.c: Likewise.
10816 * disk/ieee1275/ofdisk.c: Likewise.
10817 * font/manager.c: Likewise.
10818 * fs/affs.c: Likewise.
10819 * fs/ext2.c: Likewise.
10820 * fs/fat.c: Likewise.
10821 * fs/fshelp.c: Likewise.
10822 * fs/hfs.c: Likewise.
10823 * fs/hfsplus.c: Likewise.
10824 * fs/iso9660.c: Likewise.
10825 * fs/jfs.c: Likewise.
10826 * fs/minix.c: Likewise.
10827 * fs/sfs.c: Likewise.
10828 * fs/ufs.c: Likewise.
10829 * fs/xfs.c: Likewise.
10830 * hello/hello.c: Likewise.
10831 * include/grub/acorn_filecore.h: Likewise.
10832 * include/grub/arg.h: Likewise.
10833 * include/grub/bitmap.h: Likewise.
10834 * include/grub/boot.h: Likewise.
10835 * include/grub/cache.h: Likewise.
10836 * include/grub/device.h: Likewise.
10837 * include/grub/disk.h: Likewise.
10838 * include/grub/dl.h: Likewise.
10839 * include/grub/elfload.h: Likewise.
10840 * include/grub/env.h: Likewise.
10841 * include/grub/err.h: Likewise.
10842 * include/grub/file.h: Likewise.
10843 * include/grub/font.h: Likewise.
10844 * include/grub/fs.h: Likewise.
10845 * include/grub/fshelp.h: Likewise.
10846 * include/grub/gzio.h: Likewise.
10847 * include/grub/hfs.h: Likewise.
10848 * include/grub/kernel.h: Likewise.
10849 * include/grub/loader.h: Likewise.
10850 * include/grub/lvm.h: Likewise.
10851 * include/grub/misc.h: Likewise.
10852 * include/grub/mm.h: Likewise.
10853 * include/grub/net.h: Likewise.
10854 * include/grub/normal.h: Likewise.
10855 * include/grub/parser.h: Likewise.
10856 * include/grub/partition.h: Likewise.
10857 * include/grub/pc_partition.h: Likewise.
10858 * include/grub/raid.h: Likewise.
10859 * include/grub/rescue.h: Likewise.
10860 * include/grub/script.h: Likewise.
10861 * include/grub/setjmp.h: Likewise.
10862 * include/grub/symbol.h: Likewise.
10863 * include/grub/term.h: Likewise.
10864 * include/grub/terminfo.h: Likewise.
10865 * include/grub/tparm.h: Likewise.
10866 * include/grub/types.h: Likewise.
10867 * include/grub/video.h: Likewise.
10868 * include/grub/efi/api.h: Likewise.
10869 * include/grub/efi/chainloader.h: Likewise.
10870 * include/grub/efi/console.h: Likewise.
10871 * include/grub/efi/console_control.h: Likewise.
10872 * include/grub/efi/disk.h: Likewise.
10873 * include/grub/efi/efi.h: Likewise.
10874 * include/grub/efi/pe32.h: Likewise.
10875 * include/grub/efi/time.h: Likewise.
10876 * include/grub/i386/linux.h: Likewise.
10877 * include/grub/i386/setjmp.h: Likewise.
10878 * include/grub/i386/types.h: Likewise.
10879 * include/grub/i386/efi/kernel.h: Likewise.
10880 * include/grub/i386/efi/loader.h: Likewise.
10881 * include/grub/i386/efi/time.h: Likewise.
10882 * include/grub/i386/pc/biosdisk.h: Likewise.
10883 * include/grub/i386/pc/boot.h: Likewise.
10884 * include/grub/i386/pc/chainloader.h: Likewise.
10885 * include/grub/i386/pc/console.h: Likewise.
10886 * include/grub/i386/pc/init.h: Likewise.
10887 * include/grub/i386/pc/kernel.h: Likewise.
10888 * include/grub/i386/pc/loader.h: Likewise.
10889 * include/grub/i386/pc/memory.h: Likewise.
10890 * include/grub/i386/pc/multiboot.h: Likewise.
10891 * include/grub/i386/pc/serial.h: Likewise.
10892 * include/grub/i386/pc/time.h: Likewise.
10893 * include/grub/i386/pc/vbe.h: Likewise.
10894 * include/grub/i386/pc/vbeblit.h: Likewise.
10895 * include/grub/i386/pc/vbefill.h: Likewise.
10896 * include/grub/i386/pc/vbeutil.h: Likewise.
10897 * include/grub/i386/pc/vga.h: Likewise.
10898 * include/grub/ieee1275/ieee1275.h: Likewise.
10899 * include/grub/ieee1275/ofdisk.h: Likewise.
10900 * include/grub/powerpc/libgcc.h: Likewise.
10901 * include/grub/powerpc/setjmp.h: Likewise.
10902 * include/grub/powerpc/types.h: Likewise.
10903 * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
10904 * include/grub/powerpc/ieee1275/console.h: Likewise.
10905 * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
10906 * include/grub/powerpc/ieee1275/kernel.h: Likewise.
10907 * include/grub/powerpc/ieee1275/loader.h: Likewise.
10908 * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
10909 * include/grub/powerpc/ieee1275/time.h: Likewise.
10910 * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
10911 * include/grub/sparc64/libgcc.h: Likewise.
10912 * include/grub/sparc64/setjmp.h: Likewise.
10913 * include/grub/sparc64/types.h: Likewise.
10914 * include/grub/sparc64/ieee1275/console.h: Likewise.
10915 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
10916 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
10917 * include/grub/sparc64/ieee1275/time.h: Likewise.
10918 * include/grub/util/biosdisk.h: Likewise.
10919 * include/grub/util/getroot.h: Likewise.
10920 * include/grub/util/lvm.h: Likewise.
10921 * include/grub/util/misc.h: Likewise.
10922 * include/grub/util/raid.h: Likewise.
10923 * include/grub/util/resolve.h: Likewise.
10924 * io/gzio.c: Likewise.
10925 * kern/device.c: Likewise.
10926 * kern/disk.c: Likewise.
10927 * kern/dl.c: Likewise.
10928 * kern/elf.c: Likewise.
10929 * kern/env.c: Likewise.
10930 * kern/err.c: Likewise.
10931 * kern/file.c: Likewise.
10932 * kern/fs.c: Likewise.
10933 * kern/loader.c: Likewise.
10934 * kern/main.c: Likewise.
10935 * kern/misc.c: Likewise.
10936 * kern/mm.c: Likewise.
10937 * kern/parser.c: Likewise.
10938 * kern/partition.c: Likewise.
10939 * kern/rescue.c: Likewise.
10940 * kern/term.c: Likewise.
10941 * kern/efi/efi.c: Likewise.
10942 * kern/efi/init.c: Likewise.
10943 * kern/efi/mm.c: Likewise.
10944 * kern/i386/dl.c: Likewise.
10945 * kern/i386/efi/init.c: Likewise.
10946 * kern/i386/efi/startup.S: Likewise.
10947 * kern/i386/pc/init.c: Likewise.
10948 * kern/i386/pc/lzo1x.S: Likewise.
10949 * kern/i386/pc/startup.S: Likewise.
10950 * kern/ieee1275/ieee1275.c: Likewise.
10951 * kern/powerpc/cache.S: Likewise.
10952 * kern/powerpc/dl.c: Likewise.
10953 * kern/powerpc/ieee1275/cmain.c: Likewise.
10954 * kern/powerpc/ieee1275/crt0.S: Likewise.
10955 * kern/powerpc/ieee1275/init.c: Likewise.
10956 * kern/powerpc/ieee1275/openfw.c: Likewise.
10957 * kern/sparc64/cache.S: Likewise.
10958 * kern/sparc64/dl.c: Likewise.
10959 * kern/sparc64/ieee1275/init.c: Likewise.
10960 * kern/sparc64/ieee1275/openfw.c: Likewise.
10961 * loader/efi/chainloader.c: Likewise.
10962 * loader/efi/chainloader_normal.c: Likewise.
10963 * loader/i386/efi/linux.c: Likewise.
10964 * loader/i386/efi/linux_normal.c: Likewise.
10965 * loader/i386/pc/chainloader.c: Likewise.
10966 * loader/i386/pc/chainloader_normal.c: Likewise.
10967 * loader/i386/pc/linux.c: Likewise.
10968 * loader/i386/pc/linux_normal.c: Likewise.
10969 * loader/i386/pc/multiboot.c: Likewise.
10970 * loader/i386/pc/multiboot_normal.c: Likewise.
10971 * loader/powerpc/ieee1275/linux.c: Likewise.
10972 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
10973 * normal/arg.c: Likewise.
10974 * normal/cmdline.c: Likewise.
10975 * normal/command.c: Likewise.
10976 * normal/completion.c: Likewise.
10977 * normal/execute.c: Likewise.
10978 * normal/function.c: Likewise.
10979 * normal/lexer.c: Likewise.
10980 * normal/main.c: Likewise.
10981 * normal/menu.c: Likewise.
10982 * normal/menu_entry.c: Likewise.
10983 * normal/misc.c: Likewise.
10984 * normal/parser.y: Likewise.
10985 * normal/script.c: Likewise.
10986 * normal/i386/setjmp.S: Likewise.
10987 * normal/powerpc/setjmp.S: Likewise.
10988 * normal/sparc64/setjmp.S: Likewise.
10989 * partmap/acorn.c: Likewise.
10990 * partmap/amiga.c: Likewise.
10991 * partmap/apple.c: Likewise.
10992 * partmap/gpt.c: Likewise.
10993 * partmap/pc.c: Likewise.
10994 * partmap/sun.c: Likewise.
10995 * term/gfxterm.c: Likewise.
10996 * term/terminfo.c: Likewise.
10997 * term/efi/console.c: Likewise.
10998 * term/i386/pc/console.c: Likewise.
10999 * term/i386/pc/serial.c: Likewise.
11000 * term/i386/pc/vesafb.c: Likewise.
11001 * term/i386/pc/vga.c: Likewise.
11002 * term/ieee1275/ofconsole.c: Likewise.
11003 * util/biosdisk.c: Likewise.
11004 * util/console.c: Likewise.
11005 * util/genmoddep.c: Likewise.
11006 * util/getroot.c: Likewise.
11007 * util/grub-emu.c: Likewise.
11008 * util/grub-mkdevicemap.c: Likewise.
11009 * util/grub-probe.c: Likewise.
11010 * util/lvm.c: Likewise.
11011 * util/misc.c: Likewise.
11012 * util/raid.c: Likewise.
11013 * util/resolve.c: Likewise.
11014 * util/update-grub.in: Likewise.
11015 * util/update-grub_lib.in: Likewise.
11016 * util/grub.d/00_header.in: Likewise.
11017 * util/grub.d/10_hurd.in: Likewise.
11018 * util/grub.d/10_linux.in: Likewise.
11019 * util/i386/efi/grub-install.in: Likewise.
11020 * util/i386/efi/grub-mkimage.c: Likewise.
11021 * util/i386/pc/grub-install.in: Likewise.
11022 * util/i386/pc/grub-mkimage.c: Likewise.
11023 * util/i386/pc/grub-mkrescue.in: Likewise.
11024 * util/i386/pc/grub-setup.c: Likewise.
11025 * util/i386/pc/misc.c: Likewise.
11026 * util/powerpc/ieee1275/grub-install.in: Likewise.
11027 * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
11028 * util/powerpc/ieee1275/misc.c: Likewise.
11029 * video/bitmap.c: Likewise.
11030 * video/video.c: Likewise.
11031 * video/i386/pc/vbe.c: Likewise.
11032 * video/i386/pc/vbeblit.c: Likewise.
11033 * video/i386/pc/vbefill.c: Likewise.
11034 * video/i386/pc/vbeutil.c: Likewise.
11035 * video/readers/tga.c: Likewise.
11036
11037 2007-07-02 Robert Millan <rmh@aybabtu.com>
11038
11039 * conf/i386-efi.rmk: Replace obsolete reference to
11040 util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
11041 with util/getroot.c.
11042 * conf/powerpc-ieee1275.rmk: Likewise.
11043 * conf/sparc64-ieee1275.rmk: Likewise.
11044
11045 * util/grub-emu.c (main): Fix unchecked pointer handling.
11046
11047 2007-07-02 Robert Millan <rmh@aybabtu.com>
11048
11049 * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
11050 invocation to fail, in order to support partition-less media.
11051
11052 * util/i386/pc/grub-install.in: Likewise.
11053
11054 * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
11055 which fs or partmap modules are needed (akin to its sister scripts).
11056
11057 Also use grub-probe to get rid of unportable /proc/mounts check.
11058
11059 Print the same informational message that the other scripts do, before
11060 exiting.
11061
11062 2007-06-23 Robert Millan <rmh@aybabtu.com>
11063
11064 * util/update-grub_lib.in (font_path): New function. Determine whether
11065 a font file can be found and, if so, echo the GRUB path to it.
11066
11067 * util/update-grub.in: Handle multiple terminals depending on user
11068 input, platform availability and font file presence. Propagate
11069 variables of our findings to /etc/grub.d/ children.
11070
11071 * util/grub.d/00_header.in: Handle multiple terminals, based on
11072 environment setup by update-grub.
11073
11074 2007-06-23 Robert Millan <rmh@aybabtu.com>
11075
11076 * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.
11077
11078 2007-06-21 Robert Millan <rmh@aybabtu.com>
11079
11080 * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
11081 indicate end of data section in kernel image.
11082 * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
11083 GRUB_KERNEL_MACHINE_DATA_END.
11084
11085 * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
11086 space for it.
11087 * kern/i386/efi/startup.S: Likewise.
11088
11089 * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
11090 during image generation. Implement --prefix option to override this
11091 patch.
11092 * util/i386/efi/grub-mkimage.c: Likewise.
11093
11094 * util/update-grub_lib.in (convert_system_path_to_grub_path): Split
11095 code to make path relative to its root into a separate function.
11096
11097 * util/i386/pc/grub-install.in: Use newly provided
11098 make_system_path_relative_to_its_root() to convert ${grubdir}, then
11099 pass the result to grub-install --prefix.
11100
11101 2007-06-13 Robert Millan <rmh@aybabtu.com>
11102
11103 * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
11104 DEFAULT_DEVICE_MAP.
11105 * util/grub-emu.c: Use above definitions from misc.h instead of
11106 defining them.
11107 * util/grub-mkdevicemap.c: Likewise.
11108 * util/i386/pc/grub-setup.c: Likewise.
11109 * util/grub-probe.c: Likewise.
11110 (probe): Abort with grub_util_error() when either
11111 grub_guess_root_device or grub_util_get_grub_dev fails.
11112
11113 2007-06-12 Robert Millan <rmh@aybabtu.com>
11114
11115 * normal/command.c (grub_command_execute): Use NULL rather than 0 for
11116 "pager" assignment.
11117 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
11118 "pcdata".
11119 * util/grub-probe.c (probe): Likewise for "drive_name".
11120
11121 2007-06-11 Robert Millan <rmh@aybabtu.com>
11122
11123 * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
11124 not just the cdrom one.
11125
11126 2007-06-11 Robert Millan <rmh@aybabtu.com>
11127
11128 * util/i386/pc/grub-mkrescue.in: Add "set -e".
11129 Add --pkglibdir=DIR option to override pkglibdir.
11130 Mention --image-type=TYPE in help output.
11131 Fix --grub-mkimage (it was a no-op).
11132 Abort gracefully when no parameter is given.
11133
11134 2007-06-11 Robert Millan <rmh@aybabtu.com>
11135
11136 * util/i386/pc/grub-mkrescue.in: New file.
11137 * conf/i386-pc.rmk: Add its build declarations. Put it in bin_SCRIPTS.
11138 * Makefile.in: Handle bin_SCRIPTS.
11139
11140 2007-06-10 Vesa Jaaskelainen <chaac@nic.fi>
11141
11142 * term/gfxterm.c (grub_gfxterm_init): Added support for specifying
11143 list of video modes.
11144
11145 2007-06-06 Robert Millan <rmh@aybabtu.com>
11146
11147 * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
11148 file doesn't exist, or if it is in a filesystem grub can't read.
11149
11150 * util/update-grub.in: Set fallback for GRUB_FS check to "unknown". Do
11151 not abort if GRUB_DRIVE could not be defined. Rearrange generated
11152 header comment to fit in 80 columns when the variables are resolved.
11153
11154 * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
11155 could be identified by update-grub. Remove redundant check for
11156 unifont.pff existence (since convert_system_path_to_grub_path now
11157 handles that).
11158
11159 2007-06-04 Robert Millan <rmh@aybabtu.com>
11160
11161 * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.
11162
11163 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.
11164
11165 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
11166
11167 2007-06-04 Robert Millan <rmh@aybabtu.com>
11168
11169 * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.
11170
11171 * include/grub/partition.h: Declare grub_apple_partition_map_init and
11172 grub_apple_partition_map_fini.
11173
11174 * util/biosdisk.c
11175 (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
11176 to access >2 TiB disks).
11177
11178 Print disk->total_sectors with %llu instead of %lu, since this
11179 variable is always 64-bit (prevents wrong disk size from being displayed
11180 on either >2 TiB disk or big-endian CPU).
11181
11182 (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
11183 into a generic case that supports all (sane) partition maps.
11184
11185 Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
11186 breaks big-endian.
11187
11188 * util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
11189 and grub_apple_partition_map_fini() after that.
11190
11191 2007-06-01 Robert Millan <rmh@aybabtu.com>
11192
11193 * util/update-grub.in: Export GRUB_CMDLINE_LINUX.
11194
11195 * util/grub.d/00_header.in: Only enable gfxterm when
11196 convert_system_path_to_grub_path() succeeds.
11197
11198 2007-05-20 Robert Millan <rmh@aybabtu.com>
11199
11200 * util/update-grub_lib.in: New file.
11201 * DISTLIST: Add update-grub_lib.in.
11202 * conf/common.rmk: Generate update-grub_lib and install it in
11203 $(lib_DATA).
11204 * Makefile.in: Add install routine for $(lib_DATA).
11205
11206 * util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
11207 function provided by update-grub_lib to support arbitrary paths of
11208 unifont.pff.
11209 * util/update-grub.in: Use convert_system_path_to_grub_path() to
11210 initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
11211
11212 2007-05-19 Robert Millan <rmh@aybabtu.com>
11213
11214 * commands/i386/cpuid.c: New module.
11215 * DISTLIST: Add it.
11216 * conf/i386-efi.rmk: Enable cpuid.mod.
11217 * conf/i386-pc.rmk: Likewise.
11218
11219 2007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
11220
11221 * kern/disk.c (grub_disk_read): Check return value of
11222 grub_realloc().
11223
11224 2007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
11225
11226 * util/getroot.c (grub_util_get_grub_dev): Support partitionable
11227 arrays.
11228 * disk/raid.c (grub_raid_open): Likewise.
11229
11230 2007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
11231
11232 * util/biosdisk.c (linux_find_partition): Allocate real_dev on the
11233 stack instead of on the heap.
11234
11235 * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
11236 before doing a read on it.
11237
11238 * configure.ac: Only use -fno-stack-protector for the target
11239 environment.
11240
11241 2007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
11242
11243 * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
11244 __attribute_ ((unused)) to mode_type argument.
11245
11246 * util/getroot.c (grub_guess_root_device): Fix #endif.
11247
11248 * kern/misc.c (memcmp): Fix prototype.
11249
11250 * include/grub/partition.h [GRUB_UTIL]
11251 (grub_gpt_partition_map_init): Add prototype.
11252 (grub_gpt_partition_map_fini): Likewise.
11253
11254 * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
11255 at the right place.
11256
11257 * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
11258 (grub_fat_read_data): Likewise.
11259 (grub_fat_find_dir): Likewise.
11260
11261 * font/manager.c (find_glyph): Make table a const.
11262 (grub_font_get_glyph): Remove bitmap from if statement.
11263
11264 2007-05-16 Jeroen Dekkers <jeroen@dekkers.cx>
11265
11266 * util/getroot.c (grub_guess_root_device): Remove RAID and LVM
11267 code, first search for device in /dev/mapper, then in /dev.
11268 (grub_util_get_grub_dev): New function.
11269 * include/grub/util/getroot.h (grub_util_get_grub_dev): Add
11270 prototype.
11271 * util/grub-probe.c (probe): Remove check for RAID, call
11272 grub_util_get_grub_dev() instead of
11273 grub_util_biosdisk_get_grub_dev().
11274 * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
11275 grub_util_biosdisk_get_grub_dev().
11276 * util/i386/pc/grub-setup.c (main): Likewise.
11277
11278 2007-05-16 Robert Millan <rmh@aybabtu.com>
11279
11280 * DISTLIST: Update for the latest changes.
11281 * conf/i386-pc.rmk: Use the new paths for util/getroot.c,
11282 util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
11283 * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
11284 grub/util/biosdisk.h.
11285 * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
11286 grub/util/biosdisk.h.
11287
11288 2007-05-16 Robert Millan <rmh@aybabtu.com>
11289
11290 * util/grub.d/00_header.in: Set default gfxmode to `640x480'.
11291
11292 2007-05-16 Robert Millan <rmh@aybabtu.com>
11293
11294 * util/i386/efi/grub-install.in: New.
11295 * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
11296 newly added grub-install.
11297 * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
11298 include.
11299 * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
11300 grub/util/biosdisk.h.
11301 * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
11302 grub/util/biosdisk.h.
11303
11304 2007-05-16 Robert Millan <rmh@aybabtu.com>
11305
11306 * include/grub/i386/pc/util/biosdisk.h: Moved to ...
11307 * include/grub/util/biosdisk.h: ... here.
11308 * util/i386/pc/biosdisk.c: Moved to ...
11309 * util/biosdisk.c: ... here.
11310 * util/i386/pc/getroot.c: Moved to ...
11311 * util/getroot.c: ... here.
11312 * util/i386/pc/grub-mkdevicemap.c: Moved to ...
11313 * util/grub-mkdevicemap.c: ... here.
11314 * util/i386/pc/grub-probe.c: Moved to ...
11315 * util/grub-probe.c: ... here.
11316
11317 2007-05-15 Robert Millan <rmh@aybabtu.com>
11318
11319 * util/update-grub.in: Remove duplicated line in grub.cfg header
11320 message.
11321
11322 2007-05-13 Robert Millan <rmh@aybabtu.com>
11323
11324 * util/update-grub.in: Fix a few assumptions about the devices holding
11325 /, /boot and /boot/grub being the same.
11326 * util/grub.d/00_header.in: Likewise.
11327 * util/grub.d/10_hurd.in: Likewise.
11328 * util/grub.d/10_linux.in: Likewise.
11329
11330 * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
11331 patterns. Use that to define the `.old' suffix as older than `'.
11332
11333 * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.
11334
11335 * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
11336 the grub.cfg header message.
11337
11338 2007-05-11 Robert Millan <rmh@aybabtu.com>
11339
11340 * util/update-grub.in: Create device.map if it doesn't already exist,
11341 before attempting to run grub-probe.
11342 Check for grub-probe and grub-mkdevicemap with the same code
11343 grub-install is using.
11344 Remove test mode.
11345
11346 2007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
11347
11348 * Makefile.in: Add the datarootdir autoconf variable.
11349
11350 2007-05-09 Robert Millan <rmh@aybabtu.com>
11351
11352 * util/i386/pc/grub-probe.c (probe): When detecting partition map,
11353 fail gracefully if dev->disk->partition == NULL.
11354
11355 2007-05-07 Robert Millan <rmh@aybabtu.com>
11356
11357 * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
11358 determine partition map module.
11359 * util/i386/pc/grub-install.in: Use this feature to decide which
11360 partition module to load, instead of hardcoding pc and gpt.
11361
11362 2007-05-07 Robert Millan <rmh@aybabtu.com>
11363
11364 * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
11365 source directory differs from build directory.
11366
11367 2007-05-05 Robert Millan <rmh@aybabtu.com>
11368
11369 * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
11370 initialisation.
11371
11372 2007-05-05 Robert Millan <rmh@aybabtu.com>
11373
11374 * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
11375
11376 2007-05-05 Robert Millan <rmh@aybabtu.com>
11377
11378 * util/grub.d/10_linux.in: Allow the administrator to insert Linux
11379 command-line arguments via ${GRUB_CMDLINE_LINUX}.
11380
11381 2007-05-05 Robert Millan <rmh@aybabtu.com>
11382
11383 * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
11384 (grub_probe_SOURCES): Likewise.
11385 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
11386 GPT and initialize dos_part and bsd_part accordingly.
11387 * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
11388 install_bsd_part.
11389 (main): Activate gpt module for use during partition identification,
11390 and deactivate it afterwards.
11391 * util/i386/pc/grub-install.in: Add gpt module to core.img.
11392 * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
11393 partition identification, and deactivate it afterwards.
11394
11395 2007-05-05 Robert Millan <rmh@aybabtu.com>
11396
11397 * term/i386/pc/console.c (grub_console_fini): Call
11398 grub_term_set_current() before grub_term_unregister().
11399
11400 2007-05-04 Robert Millan <rmh@aybabtu.com>
11401
11402 * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
11403 util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
11404 * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS
11405 and update-grub_DATA.
11406 * conf/common.rmk: Build and install update-grub components.
11407 * conf/common.mk: Regenerate.
11408 * util/update-grub.in: New. Core of update-grub.
11409 * util/grub.d/00_header.in: New. Generates grub.cfg header.
11410 * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd.
11411 * util/grub.d/10_linux.in: New. Generates boot entries for Linux.
11412 * util/grub.d/README: New. Document grub.d directory layout.
11413
11414 2007-05-01 Robert Millan <rmh@aybabtu.com>
11415
11416 * util/grub-emu.c: Move initialization functions
11417 grub_util_biosdisk_init() and grub_init_all() before
11418 grub_util_biosdisk_get_grub_dev(), which relies on them.
11419
11420 2007-04-19 Robert Millan <rmh@aybabtu.com>
11421
11422 * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
11423 it is used later.
11424
11425 2007-04-18 Jerone Young <jerone@gmail.com>
11426
11427 * kernel/elf.c: Add missing parenthesis for conditional statement
11428 stanza.
11429
11430 2007-04-10 Jerone Young <jerone@gmail.com>
11431
11432 * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
11433 continue on and look for device node with real device name.
11434
11435 2007-04-10 Jerone Young <jerone@gmail.com>
11436
11437 * configure.ac: Add argument for autoconf to use transformation
11438 ability.
11439 * Makefile.in: Add autoconf package transformation code.
11440 * util/i386/pc/grub-install.in: Likewise.
11441 * util/powerpc/ieee1275/grub-install.in: Likewise.
11442
11443 2007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
11444
11445 * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
11446 (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
11447 (EXT2_REVISION): Likewise.
11448 (EXT2_INODE_SIZE): Likewise.
11449 (struct grub_ext2_block_group): Added a missing member
11450 "used_dirs".
11451 (grub_ext2_read_inode): Divide by the inode size in a superblock
11452 instead of 128 to obtain INODES_PER_BLOCK.
11453 Use the macro EXT2_INODE_SIZE instead of directly using
11454 SBLOCK->INODE_SIZE.
11455
11456 2007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
11457
11458 * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
11459 superblock instead of the structure size to compute an
11460 offset. This fixes the problem that GRUB could not read a
11461 filesystem when inode size is different from 128-byte.
11462
11463 2007-03-05 Marco Gerards <marco@gnu.org>
11464
11465 * normal/main.c (read_config_file): When "menu" is not set, create
11466 an initial context.
11467
11468 2007-02-21 Hollis Blanchard <hollis@penguinppc.org>
11469
11470 * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
11471 (HEAP_LIMIT): New macro.
11472 (grub_claim_heap): Claim memory up to `heaplimit'.
11473
11474 2007-02-21 Hollis Blanchard <hollis@penguinppc.org>
11475
11476 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
11477 * kern/powerpc/ieee1275/init.c (_end): Add declaration.
11478 (_start): Likewise.
11479 (grub_arch_modules_addr): Return address after `_end'.
11480 * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
11481 (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
11482 (add_segments): Calculate `_end' from phdr size and location.
11483 (ALIGN_UP): Moved to ...
11484 * include/grub/misc.h: here.
11485 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
11486 New macro.
11487 (GRUB_IEEE1275_MODULE_BASE): Removed.
11488
11489 2007-02-20 Hollis Blanchard <hollis@penguinppc.org>
11490
11491 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
11492 loop boundary.
11493
11494 2007-02-20 Hollis Blanchard <hollis@penguinppc.org>
11495
11496 * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
11497 All users updated.
11498 (grub_elf64_load_hook_t): Likewise.
11499 * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
11500 debug output.
11501
11502 2007-02-20 Hollis Blanchard <hollis@penguinppc.org>
11503
11504 * kern/mm.c: Update copyright.
11505 (grub_mm_debug): Correct syntax error.
11506 (grub_mm_dump_free): New function.
11507 (grub_debug_free): Call `grub_free'.
11508 * include/grub/mm.h: Update copyright.
11509 (grub_mm_dump_free): Add declaration.
11510
11511 2007-02-12 Hollis Blanchard <hollis@penguinppc.org>
11512
11513 * include/grub/ieee1275/ieee1275.h: Update copyright.
11514 * kern/powerpc/ieee1275/init.c: Likewise.
11515 * kern/powerpc/ieee1275/openfw.c: Likewise.
11516
11517 * loader/powerpc/ieee1275/linux.c: Likewise.
11518 * include/grub/elfload.h: Likewise.
11519 * kern/elf.c: Likewise.
11520 (grub_elf32_load): Pass `base' and `size' parameters. Update all
11521 callers.
11522 (grub_elf64_load): Likewise.
11523 (grub_elf32_load_segment): Move to a nested function.
11524 (grub_elf64_load_segment): Likewise.
11525
11526 2007-02-12 Hollis Blanchard <hollis@penguinppc.org>
11527
11528 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
11529 prototype.
11530 * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
11531 (grub_heap_len): Likewise.
11532 (HEAP_SIZE): New macro.
11533 (grub_claim_heap): New function.
11534 (grub_machine_init): Don't claim heap directly. Call
11535 `grub_claim_heap'.
11536 * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
11537 (grub_available_iterate): New function.
11538
11539 2007-02-03 Thomas Schwinge <tschwinge@gnu.org>
11540
11541 * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
11542 * configure.ac: Use it for testing the HOST and TARGET compilers.
11543
11544 2006-12-13 Thomas Schwinge <tschwinge@gnu.org>
11545
11546 * Makefile.in (enable_grub_emu): New variable.
11547 * configure.ac (--enable-grub-emu): New option.
11548 Do the checks for (n)curses only if `--enable-grub-emu' is requested.
11549 * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
11550 * conf/i386-pc.rmk: Likewise.
11551 * conf/powerpc-ieee1275.rmk: Likewise.
11552 * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
11553
11554 2006-12-12 Marco Gerards <marco@gnu.org>
11555
11556 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
11557
11558 * kern/env.c (grub_env_unset): Don't free the member `value' when
11559 the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
11560 pointer.
11561
11562 * normal/main.c (current_menu): Removed.
11563 (free_menu): Unset the `menu' environment variable.
11564 (grub_normal_menu_addentry): Make use of the environment variable
11565 `menu', instead of using the global `current_menu'. Allocate
11566 memory for the sourcecode of this entry.
11567 (read_config_file): New argument `nested', changed all callers.
11568 Only in the case of a new context, initialize a new menu. Set the
11569 `menu' environment variable.
11570 (grub_normal_execute): Don't set and unset the environment
11571 variable `menu' here anymore. Only free the menu when leaving the
11572 context.
11573
11574 * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
11575 leak.
11576
11577 2006-12-11 Marco Gerards <marco@gnu.org>
11578
11579 * normal/menu_entry.c (run): Fix off by one bug so the last line
11580 is executed. Move the loader check to outside the loop.
11581
11582 2006-12-08 Hollis Blanchard <hollis@penguinppc.org>
11583
11584 * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
11585
11586 2006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
11587
11588 * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
11589 the number of sectors. Reported by Andrey Shuvikov
11590 <mr_hyro@yahoo.com>.
11591
11592 2006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
11593
11594 * kern/disk.c (grub_disk_read): When there is a read error, always
11595 try to read only the necessary data.
11596
11597 * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
11598 disk/raid.c.
11599 * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
11600 prototype.
11601 [GRUB_UTIL] (grub_raid_fini): Likewise.
11602 [GRUB_UTIL] (grub_lvm_init): Likewise.
11603 [GRUB_UTIL] (grub_lvm_fini): Likewise.
11604 * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
11605 RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
11606 (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
11607 and grub_raid_fini().
11608
11609 2006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
11610
11611 * include/grub/types.h (__unused): Rename to UNUSED.
11612 * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
11613 (grub_elf64_size): Likewise.
11614
11615 2006-11-03 Hollis Blanchard <hollis@penguinppc.org>
11616
11617 * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
11618 grub_error_push and grub_error_pop in the error-handling path.
11619 (grub_elf32_load_segment): Only call grub_file_read with non-zero
11620 length.
11621
11622 2006-11-03 Hollis Blanchard <hollis@penguinppc.org>
11623
11624 * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
11625 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
11626 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
11627 (kernel_elf_SOURCES): Likewise.
11628 * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
11629 * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
11630 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
11631 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
11632 * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
11633 (elf_mod_SOURCES): New variable.
11634 (elf_mod_CFLAGS): Likewise.
11635 (elf_mod_LDFLAGS): Likewise.
11636 * include/grub/types.h (__unused): New macro.
11637 * include/grub/elfload.h: New file.
11638 * kern/elf.c: Likewise.
11639 * loader/powerpc/ieee1275/linux.c: Include elfload.h.
11640 (ELF32_LOADMASK): New macro.
11641 (ELF64_LOADMASK): Likewise.
11642 (vmlinux): Removed.
11643 (grub_linux_load32): New function.
11644 (grub_linux_load64): Likewise.
11645 (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
11646 Use grub_elf_t instead of grub_file_t.
11647
11648 2006-11-02 Hollis Blanchard <hollis@penguinppc.org>
11649
11650 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
11651 `catch_result' to struct set_color_args.
11652
11653 2006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
11654
11655 * normal/menu.c: Include grub/script.h.
11656 * normal/menu_entry.c: Likewise.
11657 * include/grub/normal.h: Do not include grub/script.h.
11658
11659 2006-10-27 Hollis Blanchard <hollis@penguinppc.org>
11660
11661 * kern/disk.c (grub_disk_read): Correct debug printf formatting.
11662
11663 2006-10-27 Hollis Blanchard <hollis@penguinppc.org>
11664
11665 * kern/disk.c (grub_disk_open): Print debug messages when opening a
11666 disk.
11667 (grub_disk_close): Print debug messages when closing a disk.
11668 (grub_disk_read): Print debug messages when disk read fails.
11669 * kern/fs.c (grub_fs_probe): Print debug messages when detecting
11670 filesystem type.
11671 * kern/partition.c: Include misc.h.
11672 (grub_partition_iterate): Print debug messages when detecting
11673 partition type.
11674
11675 2006-10-27 Hollis Blanchard <hollis@penguinppc.org>
11676
11677 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
11678 is negative.
11679 * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
11680
11681 2006-10-26 Hollis Blanchard <hollis@penguinppc.org>
11682
11683 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
11684 Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
11685
11686 2006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
11687
11688 * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
11689 instead of sizeof(lv). Patch by Michael Guntsche.
11690
11691 2006-10-18 Jeroen Dekkers <jeroen@dekkers.cx>
11692
11693 * disk/lvm.c: Rename VGS to VG_LIST.
11694 (grub_lvm_iterate): Change VGS->LV to VG-LV.
11695 (grub_lvm_open): Likewise.
11696 Thanks to Michael Guntsche for finding this bug.
11697
11698 2006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
11699
11700 * configure.ac (AC_INIT): Bumped to 1.95.
11701
11702 2006-10-14 Robert Millan <rmh@aybabtu.com>
11703
11704 * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
11705 with "/dev/.static/dev/md".
11706
11707 2006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
11708
11709 * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
11710 DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
11711 DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
11712 DRIVE_NAME are always freed.
11713
11714 * util/i386/pc/biosdisk.c (make_device_name): Add one into
11715 DOS_PART, as a DOS partition is counted from one instead of zero
11716 now. Reported by Robert Millan.
11717
11718 2006-10-14 Robert Millan <rmh@aybabtu.com>
11719
11720 * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
11721 grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
11722 * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
11723 string returned by grub_guess_root_device.
11724 * util/i386/pc/grub-setup.c: Likewise.
11725 * util/i386/pc/grub-probefs.c: Likewise.
11726
11727 * util/i386/pc/grub-probefs.c: Rename to ...
11728 * util/i386/pc/grub-probe.c: ... this.
11729 * DISTLIST: Remove grub-probefs, add grub-probe.
11730 * conf/i386-efi.rmk: Likewise.
11731 * conf/i386-pc.rmk: Likewise.
11732 * util/i386/pc/grub-install.in: Likewise.
11733
11734 * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
11735 choose which information we want to print.
11736
11737 2006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
11738
11739 * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
11740 include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
11741 include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
11742 include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
11743 video/readers/tga.c and video/i386/pc/vbeutil.c.
11744
11745 2006-10-14 Jeroen Dekkers <jeroen@dekkers.cx>
11746
11747 Added support for RAID and LVM.
11748
11749 * disk/lvm.c: New file.
11750 * disk/raid.c: Likewise.
11751 * include/grub/lvm.h: Likewise.
11752 * include/grub/raid.h: Likewise.
11753 * include/grub/util/lvm.h: Likewise.
11754 * include/grub/util/raid.h: Likewise.
11755 * util/lvm.c: Likewise.
11756 * util/raid.c: Likewise.
11757
11758 * include/grub/disk.h (grub_disk_dev_id): Add
11759 GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
11760 (grub_disk_get_size): New prototype.
11761 * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
11762 returns a partition.
11763 (grub_disk_get_size): New function.
11764
11765 * kern/i386/pc/init.c (make_install_device): Copy the prefix
11766 verbatim if grub_install_dos_part is -2.
11767
11768 * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
11769 and LVM devices.
11770
11771 * util/i386/pc/grub-setup.c (setup): New argument
11772 MUST_EMBED. Force embedding of GRUB when the argument is
11773 true. Close FILE before returning.
11774 (main): Add support for RAID and LVM.
11775
11776 * conf/common.rmk: Add RAID and LVM modules.
11777 * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
11778 util/lvm.c.
11779 (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
11780
11781 * kern/misc.c (grub_strstr): New function.
11782 * include/grub/misc.h (grub_strstr): New prototype.
11783
11784 2006-10-10 Tristan Gingold <tristan.gingold@bull.net>
11785
11786 * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
11787
11788 2006-10-05 Tristan Gingold <tristan.gingold@bull.net>
11789
11790 * kern/misc.c (grub_strtoull): Guess the base only if not
11791 specified.
11792
11793 2006-10-01 Hollis Blanchard <hollis@penguinppc.org>
11794
11795 * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
11796 PowerMac support.
11797
11798 2006-10-01 Hollis Blanchard <hollis@penguinppc.org>
11799
11800 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
11801
11802 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
11803 Remove `flags' argument. All callers changed.
11804 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
11805 (IEEE1275_IHANDLE_INVALID): New variable.
11806 (IEEE1275_CELL_INVALID): New variable.
11807 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
11808 grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
11809 grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
11810 grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
11811 grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
11812 codes from Open Firmware. All callers updated.
11813 (grub_ieee1275_next_property): Directly return Open Firmware return
11814 code.
11815 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
11816 Standardize error checking from `grub_ieee1275_get_property'.
11817 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
11818 `devalias' to `aliases'. Correct comments. Consolidate error paths.
11819
11820 2006-10-01 Hollis Blanchard <hollis@penguinppc.org>
11821
11822 * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
11823 `instance_to_package_args' to `instance_to_path_args'.
11824
11825 * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
11826 `grub_ieee1275_chosen'.
11827
11828 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
11829 `grub_ieee1275_interpret'.
11830
11831 2006-09-25 Hollis Blanchard <hollis@penguinppc.org>
11832
11833 * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
11834
11835 2006-09-25 Hollis Blanchard <hollis@penguinppc.org>
11836
11837 * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
11838 (__cmpdi): Likewise.
11839
11840 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
11841 `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type
11842 `grub_ssize_t'.
11843
11844 * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
11845
11846 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
11847 to type `grub_ssize_t'.
11848 (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
11849
11850 2006-09-22 Marco Gerards <marco@gnu.org>
11851
11852 * normal/script.c (grub_script_create_cmdmenu): Skip leading
11853 newlines.
11854
11855 2006-09-22 Marco Gerards <marco@gnu.org>
11856
11857 * commands/echo.c: New file.
11858
11859 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
11860
11861 * conf/common.rmk (echo_mod_SOURCES): New variable.
11862 (echo_mod_CFLAGS): Likewise.
11863 (echo_mod_LDFLAGS): Likewise.
11864
11865 2006-09-22 Marco Gerards <marco@gnu.org>
11866
11867 * normal/main.c (get_line): Malloc memory instead of using
11868 preallocated memory. Removed the arguments `cmdline' and
11869 `max_len'. Updated all callers.
11870
11871 2006-09-22 Marco Gerards <marco@gnu.org>
11872
11873 * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
11874 (normal_mod_DEPENDENCIES): Likewise.
11875
11876 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
11877 (normal_mod_DEPENDENCIES): Likewise.
11878
11879 * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
11880
11881 2006-09-22 Johan Rydberg <jrydberg@gnu.org>
11882
11883 * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
11884 programs.
11885 * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
11886 (normal_mod_DEPENDENCIES): Likewise.
11887 * conf/i386-pc.mk: Regenerate.
11888 * conf/i386-efi.mk: Likewise
11889 * conf/common.mk: Likewise.
11890 * conf/powerpc-ieee1275.mk: Likewise.
11891 * conf/sparc64-ieee1275.mk: Likewise.
11892
11893 2006-09-22 Robert Millan <rmh@aybabtu.com>
11894
11895 Sync with i386 version.
11896 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
11897 * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
11898
11899 2006-09-21 Robert Millan <rmh@aybabtu.com>
11900
11901 Import from GRUB Legacy (lib/device.c):
11902 * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
11903 (init_device_map) [__linux__]: Add support for I2O devices.
11904
11905 2006-09-14 Marco Gerards <marco@gnu.org>
11906
11907 * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
11908 `-melf_i386'.
11909
11910 2006-09-14 Robert Millan <rmh@aybabtu.com>
11911
11912 * util/i386/pc/grub-install.in: Skip menu.lst when removing
11913 /boot/grub/*.lst.
11914
11915 * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
11916
11917 * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
11918 before adding it to device.map.
11919
11920 2006-08-15 Johan Rydberg <jrydberg@gnu.org>
11921
11922 * genmk.rb: Let GCC generate dependencies the first time it
11923 compiles a file; using the -MD option.
11924 * conf/common.mk: Regenerate.
11925 * conf/i386-pc.mk: Likewise.
11926 * conf/i386-efi.mk: Likewise.
11927 * conf/powerpc-ieee1275.mk: Likewise.
11928 * conf/sparc64-ieee1275.mk: Likewise.
11929
11930 2006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
11931
11932 Move the prototypes of grub_setjmp and grub_longjmp to
11933 cpu/setjmp.h, so that each architecture may specify different
11934 attributes.
11935
11936 * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
11937 (grub_longjmp): Likewise.
11938 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
11939 (grub_longjmp): Likewise.
11940 * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
11941 (grub_longjmp): Likewise.
11942
11943 * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
11944 [!GRUB_UTIL] (grub_longjmp): Removed.
11945
11946 2006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
11947
11948 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
11949 "color!" method does not return any value.
11950
11951 2006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
11952
11953 * include/grub/bitmap.h: New file.
11954
11955 * include/grub/i386/pc/vbeutil.h: Likewise.
11956
11957 * video/bitmap.c: Likewise.
11958
11959 * video/readers/tga.c: Likewise.
11960
11961 * video/i386/pc/vbeutil.c: Likewise.
11962
11963 * commands/videotest.c: Code cleanup and updated to reflect to new
11964 video API.
11965
11966 * term/gfxterm.c: Likewise.
11967
11968 * video/video.c: Likewise.
11969
11970 * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
11971 (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
11972 (bitmap_mod_SOURCES): New entry.
11973 (bitmap_mod_CFLAGS): Likewise.
11974 (bitmap_mod_LDFLAGS): Likewise.
11975 (tga_mod_SOURCES): Likewise.
11976 (tga_mod_CFLAGS): Likewise.
11977 (tga_mod_LDFLAGS): Likewise.
11978
11979 * include/grub/video.h (grub_video_blit_operators): New enum type.
11980 (grub_video_render_target): Changed as forward declaration and moved
11981 actual definition to be video driver specific.
11982 (grub_video_adapter.blit_bitmap): Added blitting operator.
11983 (grub_video_adapter.blit_render_target): Likewise.
11984 (grub_video_blit_bitmap): Likewise.
11985 (grub_video_blit_render_target): Likewise.
11986
11987 * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
11988 driver specific render target definition.
11989 (grub_video_vbe_map_rgba): Added driver internal helper.
11990 (grub_video_vbe_unmap_color): Updated to use
11991 grub_video_i386_vbeblit_info.
11992 (grub_video_vbe_get_video_ptr): Likewise.
11993
11994 * include/grub/i386/pc/vbeblit.h
11995 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
11996 grub_video_i386_vbeblit_info.
11997 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
11998 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
11999 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
12000 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
12001 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
12002 (grub_video_i386_vbeblit_index_index): Likewise.
12003 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
12004 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
12005 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
12006 (grub_video_i386_vbeblit_blend): Added generic blitter for blend
12007 operator.
12008 (grub_video_i386_vbeblit_replace): Added generic blitter for replace
12009 operator.
12010
12011 * video/i386/pc/vbeblit.c: Updated to reflect changes on
12012 include/grub/i386/pc/vbeblit.h.
12013
12014 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
12015 Updated to use grub_video_i386_vbeblit_info.
12016 (grub_video_i386_vbefill_R8G8B8): Likewise.
12017 (grub_video_i386_vbefill_index): Likewise.
12018 (grub_video_i386_vbefill): Added generic filler.
12019
12020 * video/i386/pc/vbefill.c: Updated to reflect changes on
12021 include/grub/i386/pc/vbefill.h.
12022
12023 * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
12024 grub_video_i386_vbeblit_info.
12025 (grub_video_vbe_unmap_color): Likewise.
12026 (grub_video_vbe_blit_glyph): Likewise.
12027 (grub_video_vbe_scroll): Likewise.
12028 (grub_video_vbe_draw_pixel): Removed function.
12029 (grub_video_vbe_get_pixel): Likewise.
12030 (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
12031 updated code to use it.
12032 (common_blitter): Added common blitter for render target and bitmap.
12033 (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
12034 (grub_video_vbe_blit_render_target): Likewise.
12035
12036 2006-07-30 Johan Rydberg <jrydberg@gnu.org>
12037
12038 * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
12039 is in text mode if there is no console control protocol instance
12040 available.
12041
12042 2006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
12043
12044 * include/grub/video.h: Code cleanup.
12045
12046 * include/grub/i386/pc/vbe.h: Likewise.
12047
12048 * video/i386/pc/vbe.c: Likewise.
12049
12050 * video/i386/pc/vbeblit.c: Likewise.
12051
12052 * video/i386/pc/vbefill.c: Likewise.
12053
12054 * video/video.c: Likewise. Also added more comments.
12055
12056 2006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
12057
12058 * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
12059 (struct grub_biosdisk_dap): Likewise.
12060
12061 * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected
12062 linkage settings for all functions.
12063
12064 2006-07-12 Marco Gerards <marco@gnu.org>
12065
12066 * configure.ac (--enable-mm-debug): Fix typo.
12067
12068 * genkernsyms.sh.in: Use proper quoting for `CC'.
12069
12070 2006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
12071
12072 * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
12073 (normal_mod_ASFLAGS): Remove "-m32".
12074
12075 2006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
12076
12077 * util/misc.c: Include config.h.
12078 [!HAVE_MEMALIGN]: Do not include malloc.h.
12079 (grub_memalign): Use posix_memalign, if present. Then, use
12080 memalign, if present. Otherwise, emit an error.
12081
12082 * util/grub-emu.c: Do not include malloc.h.
12083
12084 * include/grub/util/misc.h: Include unistd.h. This is required for
12085 FreeBSD, because off_t is defined in unistd.h. Reported by Harley
12086 D. Eades III <hde@foobar-qux.org>.
12087
12088 * configure.ac (AC_GNU_SOURCE): Added.
12089 (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
12090 type.
12091
12092 2006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
12093
12094 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
12095 ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
12096
12097 2006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
12098
12099 * include/grub/types.h (grub_host_addr_t): Rename to
12100 grub_target_addr_t.
12101 (grub_host_off_t): Rename to grub_target_off_t.
12102 (grub_host_size_t): Rename to grub_target_size_t.
12103 (grub_host_ssize_t): Rename to grub_target_ssize_t.
12104 Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
12105
12106 * include/grub/kernel.h (struct grub_module_header): Change type
12107 of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
12108 (grub_module_info): Likewise.
12109
12110 2006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
12111
12112 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
12113 of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
12114 Velazquez <jesus.velazquez@gmail.com>.
12115
12116 2006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
12117
12118 Count partitions from 1 instead of 0 in the string representation
12119 of partitions. Still use 0-based internally.
12120
12121 * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
12122 (sun_partition_map_iterate): Use grub_partition_t instead of
12123 struct grub_partition *. Cast DESC->START_CYLINDER to
12124 grub_uint64_t after converting the endian.
12125 (sun_partition_map_probe): Subtract 1 for PARTNUM.
12126 (sun_partition_map_get_name): Add 1 to P->INDEX.
12127
12128 * partmap/pc.c (grub_partition_parse): Subtract 1 for
12129 PCDATA->DOS_PART.
12130 (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
12131
12132 * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
12133 zero instead of one.
12134 (gpt_partition_map_probe): Subtract 1 for PARTNUM.
12135 (gpt_partition_map_get_name): Add 1 into P->INDEX.
12136
12137 * partmap/apple.c (apple_partition_map_iterate): Change the type
12138 of POS to unsigned.
12139 (apple_partition_map_probe): Subtract 1 for PARTNUM.
12140 (apple_partition_map_get_name): Add 1 into P->INDEX.
12141
12142 * partmap/amiga.c (amiga_partition_map_iterate): Change the type
12143 of POS to unsigned.
12144 (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
12145 calculate the offset of a partition.
12146 (amiga_partition_map_probe): Subtract 1 for PARTNUM.
12147 (amiga_partition_map_get_name): Add 1 into P->INDEX.
12148
12149 * partmap/acorn.c (acorn_partition_map_find): Change the type of
12150 SECTOR to grub_disk_addr_t.
12151 (acorn_partition_map_iterate): Likewise.
12152 (acorn_partition_map_probe): Subtract 1 for PARTNUM.
12153 Change the type of SECTOR to grub_disk_addr_t. Declare P on the
12154 top.
12155 (acorn_partition_map_get_name): Add 1 into P->INDEX.
12156
12157 * kern/i386/pc/init.c (make_install_device): Add 1 into
12158 GRUB_INSTALL_DOS_PART.
12159
12160 * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
12161 conditional.
12162
12163 2006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
12164
12165 Clean up the code to support 64-bit addressing in disks and
12166 files. This change is not enough for filesystems yet.
12167
12168 * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
12169 type of "start" to grub_uint64_t.
12170 (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
12171 grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
12172 save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
12173 convert addresses.
12174
12175 * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
12176 to grub_disk_addr_t.
12177
12178 * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
12179 string.
12180
12181 * partmap/pc.c (pc_partition_map_iterate): Likewise.
12182
12183 * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
12184 to char *.
12185
12186 * normal/script.c (grub_script_parse): Remove unused MEMFREE.
12187
12188 * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
12189
12190 * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
12191
12192 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
12193 to grub_off_t, to detect an error from grub_file_seek.
12194 (grub_multiboot_load_elf32): Likewise.
12195
12196 * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
12197 maximum unsigned long value when an overflow is detected.
12198 (grub_strtoull): New function.
12199 (grub_divmod64): Likewise.
12200 (grub_lltoa): use grub_divmod64.
12201
12202 * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
12203 grub_disk_addr_t.
12204 (grub_fs_blocklist_open): Increase P if P is not NULL to advance
12205 the pointer to next character. Use grub_strtoull instead of
12206 grub_strtoul.
12207 (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
12208 SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
12209 respectively.
12210
12211 * kern/file.c (grub_file_read): Prevent an overflow of LEN, as the
12212 return value is signed.
12213 (grub_file_seek): Change the type of OLD to grub_off_t. Do not
12214 test if OFFSET is less than zero, as OFFSET is unsigned now.
12215
12216 * kern/disk.c (struct grub_disk_cache): Change the type of
12217 "sector" to grub_disk_addr_t.
12218 (grub_disk_cache_get_index): Change the type of SECTOR to
12219 grub_disk_addr_t. Calculate the hash with SECTOR casted to
12220 unsigned after shifting.
12221 (grub_disk_cache_invalidate): Change the type of SECTOR to
12222 grub_disk_addr_t.
12223 (grub_disk_cache_unlock): Likewise.
12224 (grub_disk_cache_store): Likewise.
12225 (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
12226 START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
12227 grub_disk_addr_t and grub_uint64_t, respectively.
12228 (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
12229 body, as the value of OFFSET is tweaked by
12230 grub_disk_check_range. Change the types of START_SECTOR, LEN and
12231 POS to grub_disk_addr_t, grub_size_t and grub_size_t,
12232 respectively.
12233 (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
12234 body, as the value of OFFSET is tweaked by
12235 grub_disk_check_range. Change the types of LEN and N to
12236 grub_size_t.
12237
12238 * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
12239 and "saved_offset" to grub_off_t.
12240 (test_header): Cast BUF to char *.
12241 (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
12242 to char *.
12243 (grub_gzio_read): Change the types of OFFSET and SIZE to
12244 grub_off_t and grub_size_t, respectively.
12245
12246 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
12247 Removed.
12248 (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
12249 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
12250 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
12251 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
12252 (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
12253
12254 * include/grub/types.h (grub_off_t): Unconditionally set to
12255 grub_uint64_t.
12256 (grub_disk_addr_t): Changed to grub_uint64_t.
12257
12258 * include/grub/partition.h (struct grub_partition): Change the
12259 types of "start", "len" and "offset" to grub_disk_addr_t,
12260 grub_uint64_t and grub_disk_addr_t, respectively.
12261 (grub_partition_get_start): Return grub_disk_addr_t.
12262 (grub_partition_get_len): Return grub_uint64_t.
12263
12264 * include/grub/misc.h (grub_strtoull): New prototype.
12265 (grub_divmod64): Likewise.
12266
12267 * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
12268 of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
12269 grub_off_t, respectively.
12270 All callers and references changed.
12271
12272 * include/grub/fs.h (struct grub_fs): Change the type of LEN to
12273 grub_size_t in "read".
12274 All callers and references changed.
12275
12276 * include/grub/file.h (struct grub_file): Change the types of
12277 "offset" and "size" to grub_off_t and grub_off_t,
12278 respectively. Change the type of SECTOR to grub_disk_addr_t in
12279 "read_hook".
12280 (grub_file_read): Change the type of LEN to grub_size_t.
12281 (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
12282 grub_off_t.
12283 (grub_file_size): Return grub_off_t.
12284 (grub_file_tell): Likewise.
12285 All callers and references changed.
12286
12287 * include/grub/disk.h (struct grub_disk_dev): Change the types of
12288 SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
12289 "write".
12290 (struct grub_disk): Change the type of "total_sectors" to
12291 grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
12292 "read_hook".
12293 (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
12294 grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
12295 (grub_disk_write): Likewise.
12296 All callers and references changed.
12297
12298 * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
12299 char * for grub_strncmp to silence gcc.
12300 (grub_iso9660_mount): Likewise.
12301 (grub_iso9660_mount): Likewise.
12302 (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
12303 return statement.
12304 (grub_iso9660_iterate_dir): Likewise.
12305 (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
12306
12307 * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
12308 LEN to grub_disk_addr_t and grub_size_t, respectively.
12309
12310 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
12311
12312 * fs/jfs.c (grub_jfs_read_file): Likewise.
12313
12314 * fs/minix.c (grub_jfs_read_file): Likewise.
12315
12316 * fs/sfs.c (grub_jfs_read_file): Likewise.
12317
12318 * fs/ufs.c (grub_jfs_read_file): Likewise.
12319
12320 * fs/xfs.c (grub_jfs_read_file): Likewise.
12321
12322 * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
12323 and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
12324 respectively.
12325
12326 * fs/ext2.c (grub_ext2_read_block): When an error happens, set
12327 BLKNR to -1 instead of returning GRUB_ERRNO.
12328 (grub_ext2_read_file): Change the types of SECTOR and
12329 LEN to grub_disk_addr_t and grub_size_t, respectively.
12330
12331 * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
12332 LEN to grub_disk_addr_t and grub_size_t, respectively.
12333
12334 * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
12335 grub_file_read.
12336
12337 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
12338 string. Do not cast SECTOR explicitly.
12339
12340 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
12341 TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
12342 (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
12343 grub_disk_addr_t and grub_size_t, respectively. If the sector is
12344 over 2TB and LBA mode is not supported, raise an error.
12345 (get_safe_sectors): New function.
12346 (grub_biosdisk_read): Use get_safe_sectors.
12347 (grub_biosdisk_write): Likewise.
12348
12349 * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
12350 (grub_efidisk_write): Likewise.
12351
12352 * disk/loopback.c (delete_loopback): Cosmetic changes.
12353 (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
12354 correctly.
12355 (grub_loopback_open): Likewise.
12356 (grub_loopback_read): Likewise. Also, change the type of POS to
12357 grub_off_t, and fix the usage of grub_memset.
12358
12359 * commands/i386/pc/play.c: Include grub/machine/time.h.
12360
12361 * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
12362 print FILE->SIZE.
12363
12364 * commands/configfile.c: Include grub/env.h.
12365
12366 * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
12367 GRUB_ERRNO directly instead. Change the type of POS to
12368 grub_off_t. Follow the coding standard.
12369
12370 * commands/blocklist.c: Include grub/partition.h.
12371 (grub_cmd_blocklist): Return an error if the underlying device is
12372 not a disk. Take the starting sector of a partition into account,
12373 if a partition is used.
12374
12375 * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
12376 a length field.
12377 (lba_mode): Support 64-bit addresses.
12378 (chs_mode): Likewise.
12379 (copy_buffer): Adapted to the new offsets of a length field and a
12380 segment field.
12381 (blocklist_default_start): Allocate 64-bit space.
12382
12383 * boot/i386/pc/boot.S (force_lba): Removed.
12384 (boot_drive): Moved to under KERNEL_SECTOR.
12385 (kernel_sector): Moved to under KERNEL_SEGMENT. Allocate 64-bit
12386 space.
12387 (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
12388 is useless.
12389 (lba_mode): Refactored to support a 64-bit address. More size
12390 optimization.
12391 (setup_sectors): Likewise.
12392
12393 2006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
12394
12395 * DISTLIST: Added include/grub/i386/linux.h. Removed
12396 include/grub/i386/pc/linux.h
12397
12398 * configure.ac (AC_INIT): Bumped to 1.94.
12399
12400 * config.guess: Updated from gnulib.
12401 * config.sub: Likewise.
12402 * install-sh: Likewise.
12403 * mkinstalldirs: Likewise.
12404
12405 2006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
12406
12407 * conf/common.rmk (grub_modules_init.lst): Depended on
12408 grub_emu_SOURCES, excluding grub_emu_init.c, instead of
12409 MODSRCFILES.
12410
12411 * genmk.rb (PModule::rule): Reverted the previous change.
12412
12413 2006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
12414
12415 * conf/common.rmk (grub_modules_init.lst): Depends on
12416 $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
12417 that the target does not exist before producing.
12418 (grub_modules_init.h): Remove the target before generating.
12419 (grub_emu_init.c): Likewise.
12420
12421 * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
12422
12423 2006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
12424
12425 * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
12426 for the target-specific tests. Make sure that we also have the
12427 up-to-date target variables for those tests.
12428
12429 2006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
12430
12431 * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
12432 (PModule::rule): Likewise.
12433
12434 2006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
12435
12436 * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
12437 TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
12438 target-specific flags should be prefixed.
12439 (PModule::rule): Likewise.
12440
12441 2006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
12442
12443 * configure.ac (CMP): Check if cmp is available explicitly.
12444
12445 2006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
12446
12447 * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
12448 (target_cpu): New variable.
12449 (pkglibdir): Use target_cpu instead of host_cpu.
12450
12451 * util/i386/pc/grub-install.in (host_cpu): Removed.
12452 (target_cpu): New variable.
12453 (pkglibdir): Use target_cpu instead of host_cpu.
12454
12455 * util/genmoddep.c: Removed.
12456
12457 * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
12458 instead of GRUB_HOST_SIZEOF_VOID_P.
12459 * kern/dl.c: Likewise.
12460
12461 * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
12462 ...
12463 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
12464 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
12465 (GRUB_TARGET_SIZEOF_LONG): ... this.
12466 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
12467 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
12468 * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
12469 to ...
12470 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
12471 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
12472 (GRUB_TARGET_SIZEOF_LONG): ... this.
12473 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
12474 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
12475 * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
12476 to ...
12477 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
12478 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
12479 (GRUB_TARGET_SIZEOF_LONG): ... this.
12480 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
12481 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
12482
12483 * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
12484 GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
12485 [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
12486 instead of GRUB_HOST_SIZEOF_LONG.
12487 [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
12488 GRUB_HOST_WORDS_BIGENDIAN to define or undefine
12489 GRUB_CPU_WORDS_BIGENDIAN.
12490 Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
12491 define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
12492 grub_host_ssize_t.
12493
12494 * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
12495 (genmoddep_SOURCES): Likewise.
12496 * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
12497 (genmoddep_SOURCES): Likewise.
12498 * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
12499 (genmoddep_SOURCES): Likewise.
12500 * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
12501 Likewise.
12502 (genmoddep_SOURCES): Likewise.
12503
12504 * genmoddep.awk: New file.
12505
12506 * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
12507 TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
12508 CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
12509 (PModule::rule): Likewise.
12510 (Program::rule): Likewise.
12511 (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
12512 BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
12513 respectively.
12514
12515 * configure.ac: Rewritten intensively to use host and target
12516 instead of build and host, respectively.
12517
12518 * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
12519 (host_cpu): Removed.
12520 (target_cpu): New variable.
12521 (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
12522 (BUILD_CC): Removed.
12523 (BUILD_CFLAGS): Likewise.
12524 (BUILD_CPPFLAGS): Likewise.
12525 (TARGET_CC): New variable.
12526 (TARGET_CFLAGS): Likewise.
12527 (TARGET_CPPFLAGS): Likewise.
12528 (TARGET_LDFLAGS): Likewise.
12529 (AWK): Likewise.
12530 (include): Use target_cpu instead of host_cpu.
12531 (moddep.lst:): Use genmoddep.awk instead of genmoddep.
12532
12533 * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
12534
12535 2006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
12536
12537 * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
12538 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed
12539 field 'false' to 'exec_on_false'.
12540 (grub_script_create_cmdif): Renamed argument names to reflect above
12541 changes.
12542
12543 * normal/execute.c (grub_script_execute_cmdif): Likewise.
12544
12545 * normal/script.c (grub_script_create_cmdif): Likewise.
12546
12547 2006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
12548
12549 * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
12550 top.
12551 (grub_hfsplus_btree_recptr): Likewise.
12552 (grub_hfsplus_find_block): Do not take RETRY any longer. Use
12553 FILEBLOCK both to pass a block number and store next block
12554 number.
12555 (grub_hfsplus_read_block): Rewritten heavily to support an extent
12556 overflow file correctly. Specify errors appropriately, because
12557 fshelp expects that GRUB_ERRNO is set when fails. Reuse
12558 grub_hfsplus_btree_recptr to get the pointer to a found key.
12559 (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
12560 is found.
12561
12562 * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
12563 linux.mod.
12564 (_linux_mod_SOURCES): New variable.
12565 (_linux_mod_CFLAGS): Likewise.
12566 (_linux_mod_LDFLAGS): Likewise.
12567 (linux_mod_SOURCES): Likewise.
12568 (linux_mod_CFLAGS): Likewise.
12569 (linux_mod_LDFLAGS): Likewise.
12570
12571 * DISTLIST: Added loader/i386/efi/linux.c,
12572 loader/i386/efi/linux_normal.c and
12573 include/grub/i386/efi/loader.h.
12574
12575 * loader/i386/efi/linux.c: New file.
12576 * loader/i386/efi/linux_normal.c: Likewise.
12577 * include/grub/i386/efi/loader.h: Likewise.
12578
12579 2006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
12580
12581 * commands/blocklist.c: New file.
12582
12583 * DISTLIST: Added commands/blocklist.c.
12584
12585 * term/efi/console.c (grub_console_highlight_color): Use a lighter
12586 color for the background, and a darker color for the foreground.
12587 (grub_console_checkkey): Return READ_KEY.
12588 (grub_console_cls): Set the background to
12589 GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
12590
12591 * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
12592
12593 * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
12594 the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
12595
12596 * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
12597 prototype.
12598
12599 * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
12600 BG. The spec is wrong again.
12601
12602 * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
12603 prototype.
12604 [GRUB_UTIL] (grub_blocklist_fini): Likewise.
12605
12606 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
12607 commands/blocklist.c.
12608 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12609
12610 * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
12611 (blocklist_mod_SOURCES): New variable.
12612 (blocklist_mod_CFLAGS): Likewise.
12613 (blocklist_mod_LDFLAGS): Likewise.
12614
12615 2006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
12616
12617 * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
12618 duplication.
12619 (lba_mode): Use %eax more intensively to reduce the code size.
12620
12621 2006-05-20 Marco Gerards <marco@gnu.org>
12622
12623 * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
12624
12625 * normal/parser.y (commandblock): Defined as <cmd>. A subroutine
12626 for `menuentry'.
12627 (script): Accept leading newlines.
12628 (newlines): New rule to describe 0 or more newlines.
12629 (commands): Accept `command' with trailing newline. Fixed the
12630 order in which arguments were passed to `grub_script_add_cmd'.
12631 Accept commands separated by newlines.
12632 (function): Changed to accept newlines.
12633 (menuentry) Rewritten.
12634
12635 * normal/script.c (grub_script_create_cmdmenu): Add new entries in
12636 front of the list, instead of to the end.
12637
12638 2006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
12639
12640 * util/i386/pc/grub-install.in (bindir): New variable.
12641 (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
12642 Shaver <lbgwjl@gmail.com>.
12643
12644 2006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
12645
12646 * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
12647 grub/machine/linux.h
12648 * loader/i386/pc/linux.c: Likewise.
12649
12650 * include/grub/i386/pc/linux.h: Moved to ...
12651 * include/grub/i386/linux.h: ... here.
12652
12653 * include/grub/i386/linux.h (struct linux_kernel_params): New
12654 struct.
12655
12656 2006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
12657
12658 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
12659 checking.
12660 (grub_video_vbe_blit_glyph): Likewise.
12661 (grub_video_vbe_blit_bitmap): Likewise.
12662 (grub_video_vbe_blit_render_target): Likewise.
12663
12664 2006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
12665
12666 * configure.ac (--with-platform): Properly quote the square
12667 brackets.
12668
12669 2006-05-08 Marco Gerards <marco@gnu.org>
12670
12671 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
12672 this...
12673 (kernel_elf_HEADERS): ...to this. Updated all users.
12674 (grubof_symlist.c): Renamed from this...
12675 (kernel_elf_symlist.c): ...to this. Updated all users.
12676 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
12677 (grubof_SOURCES): Renamed from this...
12678 (kernel_elf_SOURCES): ...to this.
12679 (grubof_HEADERS): Renamed from this...
12680 (kernel_elf_HEADERS): ...to this.
12681 (grubof_CFLAGS): Renamed from this...
12682 (kernel_elf_CFLAGS): ...to this.
12683 (grubof_ASFLAGS): Renamed from this...
12684 (kernel_elf_ASFLAGS): ...to this.
12685 (grubof_LDFLAGS): Renamed from this...
12686 (kernel_elf_LDFLAGS): ...to this.
12687
12688 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
12689 this...
12690 (kernel_elf_HEADERS): ...to this. Updated all users.
12691 (grubof_symlist.c): Renamed from this...
12692 (kernel_elf_symlist.c): ...to this. Updated all users.
12693 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
12694 (grubof_SOURCES): Renamed from this...
12695 (kernel_elf_SOURCES): ...to this.
12696 (grubof_HEADERS): Renamed from this...
12697 (kernel_elf_HEADERS): ...to this.
12698 (grubof_CFLAGS): Renamed from this...
12699 (kernel_elf_CFLAGS): ...to this.
12700 (grubof_ASFLAGS): Renamed from this...
12701 (kernel_elf_ASFLAGS): ...to this.
12702 (grubof_LDFLAGS): Renamed from this...
12703 (kernel_elf_LDFLAGS): ...to this.
12704
12705 * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
12706 `kernel.elf' instead of `grubof'.
12707
12708 2006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
12709
12710 Add --with-platform to configure. Use pkglibdir instead of
12711 pkgdatadir. This is reported by Roger Leigh.
12712
12713 * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
12714 (host_vendor): Likewise.
12715 (host_os): Likewise.
12716 (pkgdatadir): Likewise.
12717 (platform): New variable.
12718 (pkglibdir): Likewise.
12719 Use PKGLIBDIR instead of PKGDATADIR.
12720
12721 * util/i386/pc/grub-install.in (datadir): Removed.
12722 (host_vendor): Likewise.
12723 (host_os): Likewise.
12724 (pkgdatadir): Likewise.
12725 (platform): New variable.
12726 (pkglibdir): Likewise.
12727 Use PKGLIBDIR instead of PKGDATADIR.
12728
12729 * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
12730 instead of GRUB_DATADIR.
12731 (main): Likewise.
12732 * util/i386/pc/grub-mkimage.c (usage): Likewise.
12733 (main): Likewise.
12734 * util/i386/efi/grub-mkimage.c (usage): Likewise.
12735 (main): Likewise.
12736
12737 * configure.ac (--with-platform): New option.
12738 Use PLATFORM instead of HOST_VENDOR to specify a platform.
12739
12740 * Makefile.in: Include a makefile based on PLATFORM instead of
12741 HOST_VENDOR.
12742 (pkgdatadir): Not appended by the machine type.
12743 (pkglibdir): Appended by the machine type.
12744 (host_vendor): Removed.
12745 (platform): New variable.
12746 (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
12747 (install-local): Use PKGLIBDIR instead of PKGDATADIR.
12748 (uninstall): Likewise.
12749
12750 2006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
12751
12752 Use the environment context in the menu. Remove the commands
12753 "default" and "timeout", and use variables instead.
12754
12755 * normal/menu.c: Include grub/env.h.
12756 (print_entry): Cast TITLE to silence gcc.
12757 (get_timeout): New function.
12758 (set_timeout): Likewise.
12759 (get_entry_number): Likewise.
12760 (run_menu): Use a default entry, a fallback entry and a timeout
12761 in the environment variables "default", "fallback" and
12762 "timeout". Also, tweak the default entry if it is not within the
12763 current menu entries.
12764 (grub_menu_run): Use a fallback entry in the environment variable
12765 "fallback".
12766
12767 * normal/main.c (read_config_file): Do not initialize
12768 NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
12769 NEWMENU->TIMEOUT.
12770 (grub_normal_execute): Use a data slot to store the menu.
12771
12772 * include/grub/normal.h (struct grub_menu): Removed default_entry,
12773 fallback_entry and timeout.
12774 (struct grub_menu_list): Removed.
12775 (grub_menu_list_t): Likewise.
12776 (struct grub_context): Likewise.
12777 (grub_context_t): Likewise.
12778 (grub_context_get): Likewise.
12779 (grub_context_get_current_menu): Likewise.
12780 (grub_context_push_menu): Likewise.
12781 (grub_context_pop_menu): Likewise.
12782 (grub_default_init): Likewise.
12783 (grub_default_fini): Likewise.
12784 (grub_timeout_init): Likewise.
12785 (grub_timeout_fini): Likewise.
12786
12787 * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
12788 and timeout.mod.
12789 (normal_mod_SOURCES): Removed normal/context.c.
12790
12791 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
12792 commands/default.c, commands/timeout.c and normal/context.c.
12793 (normal_mod_SOURCES): Removed normal/context.c.
12794
12795 * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
12796 commands/timeout.c and normal/context.c.
12797 (normal_mod_SOURCES): Removed normal/context.c.
12798
12799 * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
12800 commands/default.c, commands/timeout.c and normal/context.c.
12801 (normal_mod_SOURCES): Removed normal/context.c.
12802
12803 * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
12804 timeout.mod.
12805 (default_mod_SOURCES): Removed.
12806 (default_mod_CFLAGS): Likewise.
12807 (default_mod_LDFLAGS): Likewise.
12808 (timeout_mod_SOURCES): Removed.
12809 (timeout_mod_CFLAGS): Likewise.
12810 (timeout_mod_LDFLAGS): Likewise.
12811
12812 * DISTLIST: Removed commands/default.c, commands/timeout.c and
12813 normal/context.c.
12814
12815 * commands/default.c: Removed.
12816 * commands/timeout.c: Likewise.
12817 * normal/context.c: Likewise.
12818
12819 2006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
12820
12821 * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
12822
12823 2006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
12824
12825 * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
12826 "next" to "prev" for readability.
12827 (struct grub_env_sorted_var): New struct.
12828 (grub_env_context): Renamed to ...
12829 (initial_context): ... this.
12830 (grub_env_var_context): Renamed to ...
12831 (current_context): ... this.
12832 (grub_env_find): Look only at CURRENT_CONTEXT.
12833 (grub_env_context_open): Rewritten to copy exported variables from
12834 previous context.
12835 (grub_env_context_close): Rewritten according to the new
12836 scheme. Also, add an assertion to prevent the initial context from
12837 removed.
12838 (grub_env_insert): Removed the code for the sorted list.
12839 (grub_env_remove): Likewise.
12840 (grub_env_export): Simply mark the variable with
12841 GRUB_ENV_VAR_GLOBAL.
12842 (grub_env_set): A cosmetic change for naming consistency.
12843 (grub_env_get): Likewise.
12844 (grub_env_unset): Likewise.
12845 (grub_env_iterate): Rewritten to sort variables within this
12846 function.
12847 (grub_register_variable_hook): Fixed for naming consistency. Call
12848 grub_env_find again, only if NAME is not found at the first time.
12849 (mangle_data_slot_name): New function.
12850 (grub_env_set_data_slot): Likewise.
12851 (grub_env_get_data_slot): Likewise.
12852 (grub_env_unset_data_slot): Likewise.
12853
12854 * include/grub/env.h (grub_env_var_type): New enum.
12855 (GRUB_ENV_VAR_LOCAL): New constant.
12856 (GRUB_ENV_VAR_GLOBAL): Likewise.
12857 (GRUB_ENV_VAR_DATA): Likewise.
12858 (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
12859 "type".
12860 (grub_env_set): Replace VAR with NAME for consistency.
12861 (grub_register_variable_hook): Likewise.
12862 (grub_env_export): Specify the name of the argument.
12863 (grub_env_set_data_slot): New prototype.
12864 (grub_env_get_data_slot): Likewise.
12865 (grub_env_unset_data_slot): Likewise.
12866
12867 2006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
12868
12869 Extend the loader so that GRUB can accept a loader which comes
12870 back to GRUB when a loaded image exits. Also, this change adds
12871 support for a chainloader on EFI.
12872
12873 * term/efi/console.c: Include grub/misc.h.
12874 (grub_console_checkkey): Display a scan code on the top for
12875 debugging. This will be removed once the EFI port gets stable.
12876 Correct the scan code mapping.
12877
12878 * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
12879 allocate memory from larger regions, in order to reduce the number
12880 of allocated regions. Otherwise, the MacOSX loader panics.
12881 (filter_memory_map): Avoid less than 1MB for compatibility with
12882 other loaders.
12883 (add_memory_regions): Allocate from the tail of a region, if
12884 possible, to avoid allocating a region near to 1MB, for the MacOSX
12885 loader.
12886
12887 * kern/efi/init.c (grub_efi_set_prefix): Specify
12888 GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
12889
12890 * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
12891 argument IMAGE_HANDLE and specify it to get a loaded image.
12892 (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
12893 grub_efi_get_loaded_image.
12894 (grub_efi_get_filename): Divide the length by the size of
12895 grub_efi_char16_t.
12896 (grub_efi_get_device_path): New function.
12897 (grub_efi_print_device_path): Print End Device Path nodes. Divide
12898 the length by the size of grub_efi_char16_t for a file path device
12899 path node.
12900
12901 * kern/loader.c (grub_loader_noreturn): New variable.
12902 (grub_loader_set): Accept a new argument NORETURN. Set
12903 GRUB_LOADER_NORETURN to NORETURN.
12904 All callers changed.
12905 (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
12906 grub_machine_fini.
12907
12908 * include/grub/efi/efi.h (grub_efi_get_device_path): New
12909 prototype.
12910 (grub_efi_get_loaded_image): Take an argument to specify an image
12911 handle.
12912
12913 * include/grub/loader.h (grub_loader_set): Added one more argument
12914 NORETURN.
12915
12916 * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
12917 instead of grub_efi_open_protocol.
12918 (grub_efidisk_get_device_name): Likewise.
12919 (grub_efidisk_close): Print a newline.
12920 (grub_efidisk_get_device_handle): Fixed to use
12921 GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
12922 GRUB_EFI_DEVICE_PATH_TYPE.
12923
12924 * disk/efi/efidisk.c (device_path_guid): Moved to ...
12925 * kern/efi/efi.c (device_path_guid): ... here.
12926
12927 * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
12928 chain.mod.
12929 (kernel_mod_HEADERS): Added efi/disk.h.
12930 (_chain_mod_SOURCES): New variable.
12931 (_chain_mod_CFLAGS): Likewise.
12932 (_chain_mod_LDFLAGS): Likewise.
12933 (chain_mod_SOURCES): Likewise.
12934 (chain_mod_CFLAGS): Likewise.
12935 (chain_mod_LDFLAGS): Likewise.
12936
12937 * DISTLIST: Added include/grub/efi/chainloader.h,
12938 loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
12939
12940 * include/grub/efi/chainloader.h: New file.
12941 * loader/efi/chainloader.c: Likewise.
12942 * loader/efi/chainloader_normal.c: Likewise.
12943
12944 2006-04-30 Marco Gerards <marco@gnu.org>
12945
12946 * commands/configfile.c (grub_cmd_source): New function.
12947 (GRUB_MOD_INIT): Register the commands `source' and `.'.
12948 (GRUB_MOD_FINI): De-register the commands `source' and `.'.
12949
12950 2006-04-30 Marco Gerards <marco@gnu.org>
12951
12952 * normal/execute.c (grub_script_execute_cmd): Change the return
12953 type to `grub_err_t'. Correctly return the error.
12954 (grub_script_execute_cmdline): In case a command line is not a
12955 command or a function, try to interpret it as an assignment.
12956
12957 2006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
12958
12959 * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
12960 (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
12961 skip a node whose name is obviously invalid as UTF-16,
12962 i.e. contains a NUL character. Stop the iteration when the last
12963 directory entry is found. Instead of using the return value of
12964 grub_hfsplus_btree_iterate_node, store the value in RET and use
12965 it, because the iterator can be stopped by the last directory
12966 entry.
12967
12968 2006-04-30 Marco Gerards <marco@gnu.org>
12969
12970 * include/grub/env.h (grub_env_export): New prototype. Reported
12971 by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
12972
12973 2006-04-30 Marco Gerards <marco@gnu.org>
12974
12975 * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
12976 size of the extents in a catalog file record.
12977
12978 2006-04-29 Marco Gerards <marco@gnu.org>
12979
12980 * commands/configfile.c (grub_cmd_configfile): Execute the
12981 configfile within its own context.
12982
12983 * include/grub/env.h (grub_env_context_open): New prototype.
12984 (grub_env_context_close): Likewise.
12985
12986 * kern/env.c (grub_env): Removed.
12987 (grub_env_sorted): Likewise.
12988 (grub_env_context): New variable.
12989 (grub_env_var_context): Likewise.
12990 (grub_env_find): Search both the active context and the global
12991 context.
12992 (grub_env_context_open): New function.
12993 (grub_env_context_close): Likewise.
12994 (grub_env_insert): Likewise.
12995 (grub_env_remove): Likewise.
12996 (grub_env_export): Likewise.
12997 (grub_env_set): Changed to use helper functions to avoid code
12998 duplication.
12999 (grub_env_iterate): Rewritten so both the current context and the
13000 global context are being used.
13001
13002 * normal/command.c (export_command): New function.
13003 (grub_command_init): Register the `export' function.
13004
13005 2006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
13006
13007 * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
13008 explicitly to suppress gcc's warnings.
13009 * fs/fat.c (grub_fat_find_dir): Likewise.
13010 (grub_fat_label): Likewise.
13011 * fs/xfs.c (grub_xfs_read_inode): Likewise.
13012 (grub_xfs_mount): Likewise.
13013 (grub_xfs_label): Likewise.
13014 * fs/affs.c (grub_affs_mount): Likewise.
13015 (grub_affs_label): Likewise.
13016 (grub_affs_iterate_dir): Likewise.
13017 * fs/sfs.c (grub_sfs_mount): Likewise.
13018 (grub_sfs_iterate_dir): Likewise.
13019 * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
13020 * fs/hfs.c (grub_hfs_mount): Likewise.
13021 (grub_hfs_cmp_catkeys): Likewise.
13022 (grub_hfs_find_dir): Likewise.
13023 (grub_hfs_dir): Likewise.
13024 (grub_hfs_label): Likewise.
13025 * fs/jfs.c (grub_jfs_mount): Likewise.
13026 (grub_jfs_opendir): Likewise.
13027 (grub_jfs_getent): Likewise.
13028 (grub_jfs_lookup_symlink): Likewise.
13029 (grub_jfs_label): Likewise.
13030 * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
13031 (grub_hfsplus_iterate_dir): Likewise.
13032 (grub_hfsplus_btree_iterate_node): Made static.
13033
13034 * util/grub-emu.c (prefix): New variable.
13035 (grub_machine_set_prefix): New function.
13036 (main): Do not set the environment variable "prefix" here. Only
13037 set PREFIX, which is used later by grub_machine_set_prefix.
13038
13039 * include/grub/video.h: Do not include grub/symbol.h.
13040 (grub_video_register): Not exported. This symbol is not defined in
13041 the kernel.
13042 (grub_video_unregister): Likewise.
13043 (grub_video_iterate): Likewise.
13044 (grub_video_setup): Likewise.
13045 (grub_video_restore): Likewise.
13046 (grub_video_get_info): Likewise.
13047 (grub_video_get_blit_format): Likewise.
13048 (grub_video_set_palette): Likewise.
13049 (grub_video_get_palette): Likewise.
13050 (grub_video_set_viewport): Likewise.
13051 (grub_video_get_viewport): Likewise.
13052 (grub_video_map_color): Likewise.
13053 (grub_video_map_rgb): Likewise.
13054 (grub_video_map_rgba): Likewise.
13055 (grub_video_fill_rect): Likewise.
13056 (grub_video_blit_glyph): Likewise.
13057 (grub_video_blit_bitmap): Likewise.
13058 (grub_video_blit_render_target): Likewise.
13059 (grub_video_scroll): Likewise.
13060 (grub_video_swap_buffers): Likewise.
13061 (grub_video_create_render_target): Likewise.
13062 (grub_video_delete_render_target): Likewise.
13063 (grub_video_set_active_render_target): Likewise.
13064
13065 * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
13066 Undefined.
13067 [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
13068
13069 * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
13070 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
13071 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
13072 instead of $(srcdir)/genkernsyms.sh.
13073
13074 * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
13075 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
13076 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
13077 instead of $(srcdir)/genkernsyms.sh.
13078
13079 * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
13080 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
13081 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
13082 instead of $(srcdir)/genkernsyms.sh.
13083
13084 * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
13085 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
13086 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
13087 instead of $(srcdir)/genkernsyms.sh.
13088
13089 * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
13090 genkernsyms.sh.
13091
13092 * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
13093 genkernsyms.sh.
13094 (gensymlist.sh): New target.
13095 (genkernsyms.sh): Likewise.
13096
13097 * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
13098 genkernsyms.sh.in and gensymlist.sh.in.
13099
13100 * genkernsyms.sh: Removed.
13101 * gensymlist.sh: Likewise.
13102
13103 * genkernsyms.sh.in: New file.
13104 * gensymlist.sh.in: Likewise.
13105
13106 2006-04-25 Hollis Blanchard <hollis@penguinppc.org>
13107
13108 * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
13109 clobber "prefix", since we may have already set it manually.
13110
13111 2006-04-25 Hollis Blanchard <hollis@penguinppc.org>
13112
13113 * kern/misc.c (abort): New alias for grub_abort.
13114
13115 2006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
13116
13117 A new machine-specific function "grub_machine_set_prefix" is
13118 defined. This is called after loading modules, so that a prefix
13119 initialization can use modules. Also, this change adds an
13120 intensive debugging feature for the memory manager via the
13121 configure option "--enable-mm-debug".
13122
13123 * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
13124 PART.LEN.
13125
13126 * kern/sparc64/ieee1275/init.c (abort): Removed.
13127 (grub_stop): Likewise.
13128 (grub_exit): New function.
13129 (grub_set_prefix): Renamed to ...
13130 (grub_machine_set_prefix): ... this.
13131 (grub_machine_init): Do not call grub_set_prefix.
13132
13133 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
13134 (grub_machine_set_prefix): ... this.
13135 (grub_machine_init): Do not call grub_set_prefix.
13136
13137 * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
13138 (grub_machine_init): Do not set the prefix here.
13139
13140 * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
13141
13142 * kern/efi/init.c: Include grub/mm.h.
13143 (grub_efi_set_prefix): New function.
13144
13145 * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
13146 (grub_efi_get_filename): New function.
13147 (grub_print_device_path): Renamed to ...
13148 (grub_efi_print_device_path): ... this.
13149
13150 * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
13151 [MM_DEBUG] (grub_realloc): Likewise.
13152 [MM_DEBUG] (grub_free): Likewise.
13153 [MM_DEBUG] (grub_memalign): Likewise.
13154 [MM_DEBUG] (grub_mm_debug): New variable.
13155 [MM_DEBUG] (grub_debug_malloc): New function.
13156 [MM_DEBUG] (grub_debug_free): New function.
13157 [MM_DEBUG] (grub_debug_realloc): New function.
13158 [MM_DEBUG] (grub_debug_memalign): New function.
13159
13160 * kern/misc.c (grub_abort): Print a newline to distinguish
13161 the message.
13162
13163 * kern/main.c (grub_main): Call grub_machine_set_prefix and
13164 grub_set_root_dev after loading modules. This is necessary when
13165 setting a prefix depends on modules.
13166
13167 * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
13168 (grub_efi_print_device_path): ... this.
13169 (grub_efi_get_filename): New prototype.
13170 (grub_efi_set_prefix): Likewise.
13171
13172 * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
13173 and grub/disk.h.
13174 (grub_efidisk_get_device_handle): New prototype.
13175 (grub_efidisk_get_device_name): Likewise.
13176
13177 * include/grub/mm.h: Include config.h.
13178 (MM_DEBUG): Removed.
13179 [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
13180 [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
13181 [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
13182 [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
13183 [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
13184 [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
13185 [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
13186 [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
13187 [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
13188
13189 * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
13190
13191 * disk/efi/efidisk.c: Include grub/partition.h.
13192 (iterate_child_devices): New function.
13193 (add_device): First, compare only last device path nodes, so that
13194 devices are sorted by the types.
13195 (grub_efidisk_get_device_handle): New function.
13196 (grub_efidisk_get_device_name): Likewise.
13197
13198 * configure.ac (--enable-mm-debug): New option to enable the
13199 memory manager debugging feature. This makes the binary much
13200 bigger, so is disabled by default.
13201
13202 2006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
13203
13204 Use grub_abort instead of grub_stop, and grub_exit must be
13205 define in each architecture now. Also, this change adds support
13206 for EFI disks.
13207
13208 * util/i386/pc/grub-probefs.c: Include grub/term.h.
13209 (grub_getkey): New function.
13210 (grub_term_get_current): Likewise.
13211
13212 * util/i386/pc/grub-setup.c: Include grub/term.h.
13213 (grub_getkey): New function.
13214 (grub_term_get_current): Likewise.
13215
13216 * util/misc.c (grub_stop): Renamed to ...
13217 (grub_exit): ... this.
13218
13219 * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
13220 (grub_exit): ... this.
13221 (grub_machine_init): Use grub_abort instead of abort.
13222 (grub_stop): Removed.
13223
13224 * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
13225 abort.
13226
13227 * kern/i386/pc/startup.S (grub_exit): New function.
13228 (cold_reboot): New label.
13229
13230 * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
13231 (grub_efi_init): Call grub_efidisk_init.
13232 (grub_efi_fini): Call grub_efidisk_fini.
13233
13234 * kern/efi/efi.c: Include grub/mm.h.
13235 (grub_efi_console_control_guid): Renamed to ...
13236 (console_control_guid): ... this.
13237 (grub_efi_loaded_image_guid): Renamed to ...
13238 (loaded_image_guid): ... this.
13239 (grub_efi_locate_handle): New function.
13240 (grub_efi_open_protocol): Likewise.
13241 (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
13242 GRUB_EFI_CONSOLE_CONTROL_GUID.
13243 (grub_efi_exit): Removed.
13244 (grub_stop): Likewise.
13245 (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
13246 (grub_exit): New function.
13247 (grub_print_device_path): Likewise.
13248
13249 * kern/rescue.c (grub_rescue_cmd_exit): New function.
13250 (grub_enter_rescue_mode): Register "exit".
13251
13252 * kern/misc.c (grub_real_dprintf): A cosmetic change.
13253 (grub_abort): New function.
13254
13255 * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
13256
13257 * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
13258
13259 * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
13260
13261 * include/grub/efi/efi.h (grub_efi_exit): Removed.
13262 (grub_print_device_path): New prototype.
13263 (grub_efi_locate_handle): Likewise.
13264 (grub_efi_open_protocol): Likewise.
13265
13266 * include/grub/efi/disk.h (grub_efidisk_fini): New file.
13267 * disk/efi/efidisk.c: Likewise.
13268
13269 * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
13270
13271 * include/grub/efi/console_control.h
13272 (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
13273
13274 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
13275 last 8 bytes as an array.
13276 (GRUB_EFI_DISK_IO_GUID): New macro.
13277 (GRUB_EFI_BLOCK_IO_GUID): Likewise.
13278 (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
13279 (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
13280 grub_uint8_t.
13281 (struct grub_efi_guid): Use an array to specify the last 8 bytes.
13282 (struct grub_efi_device_path): Rename the member "sub_type" to
13283 "subtype".
13284 (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
13285 (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
13286 (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
13287 (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
13288 (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
13289 (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
13290 (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
13291 (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
13292 (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
13293 (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
13294 (struct grub_efi_pci_device_path): New structure.
13295 (grub_efi_pci_device_path_t): New type.
13296 (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
13297 (struct grub_efi_pccard_device_path): New structure.
13298 (grub_efi_pccard_device_path_t): New type.
13299 (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
13300 (struct grub_efi_memory_mapped_device_path): New structure.
13301 (grub_efi_memory_mapped_device_path_t): New type.
13302 (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
13303 (struct grub_efi_vendor_device_path): New structure.
13304 (grub_efi_vendor_device_path_t): New type.
13305 (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
13306 (struct grub_efi_controller_device_path): New structure.
13307 (grub_efi_controller_device_path_t): New type.
13308 (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
13309 (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
13310 (struct grub_efi_acpi_device_path): New structure.
13311 (grub_efi_acpi_device_path_t): New type.
13312 (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
13313 (struct grub_efi_expanded_acpi_device_path): New structure.
13314 (grub_efi_expanded_acpi_device_path_t): New type.
13315 (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
13316 (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
13317 (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
13318 (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
13319 (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
13320 (struct grub_efi_atapi_device_path): New structure.
13321 (grub_efi_atapi_device_path_t): New type.
13322 (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
13323 (struct grub_efi_fibre_channel_device_path): New structure.
13324 (grub_efi_fibre_channel_device_path_t): New type.
13325 (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
13326 (struct grub_efi_1394_device_path): New structure.
13327 (grub_efi_1394_device_path_t): New type.
13328 (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
13329 (struct grub_efi_usb_device_path): New structure.
13330 (grub_efi_usb_device_path_t): New type.
13331 (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
13332 (struct grub_efi_usb_class_device_path): New structure.
13333 (grub_efi_usb_class_device_path_t): New type.
13334 (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
13335 (struct grub_efi_i2o_device_path): New structure.
13336 (grub_efi_i2o_device_path_t): New type.
13337 (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
13338 (struct grub_efi_mac_address_device_path): New structure.
13339 (grub_efi_mac_address_device_path_t): New type.
13340 (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
13341 (struct grub_efi_ipv4_device_path): New structure.
13342 (grub_efi_ipv4_device_path_t): New type.
13343 (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
13344 (struct grub_efi_ipv6_device_path): New structure.
13345 (grub_efi_ipv6_device_path_t): New type.
13346 (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
13347 (struct grub_efi_infiniband_device_path): New structure.
13348 (grub_efi_infiniband_device_path_t): New type.
13349 (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
13350 (struct grub_efi_uart_device_path): New structure.
13351 (grub_efi_uart_device_path_t): New type.
13352 (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
13353 (struct grub_efi_vendor_messaging_device_path): New structure.
13354 (grub_efi_vendor_messaging_device_path_t): New type.
13355 (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
13356 (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
13357 (struct grub_efi_hard_drive_device_path): New structure.
13358 (grub_efi_hard_drive_device_path_t): New type.
13359 (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
13360 (struct grub_efi_cdrom_device_path): New structure.
13361 (grub_efi_cdrom_device_path_t): New type.
13362 (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
13363 (struct grub_efi_vendor_media_device_path): New structure.
13364 (grub_efi_vendor_media_device_path_t): New type.
13365 (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
13366 (struct grub_efi_file_path_device_path): New structure.
13367 (grub_efi_file_path_device_path_t): New type.
13368 (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
13369 (struct grub_efi_protocol_device_path): New structure.
13370 (grub_efi_protocol_device_path_t): New type.
13371 (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
13372 (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
13373 (struct grub_efi_bios_device_path): New structure.
13374 (grub_efi_bios_device_path_t): New type.
13375 (struct grub_efi_disk_io): New structure.
13376 (grub_efi_disk_io_t): New type.
13377 (struct grub_efi_block_io_media): New structure.
13378 (grub_efi_block_io_media_t): New type.
13379 (struct grub_efi_block_io): New structure.
13380 (grub_efi_block_io_t): New type.
13381
13382 * include/grub/misc.h (grub_stop): Removed.
13383 (grub_exit): New prototype.
13384 (grub_abort): Likewise.
13385
13386 * include/grub/disk.h (enum grub_disk_dev_id): Added
13387 GRUB_DISK_DEVICE_EFIDISK_ID.
13388
13389 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
13390 disk/efi/efidisk.c.
13391 (kernel_syms.lst): Remove the target if an error occurs.
13392
13393 2006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
13394
13395 * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
13396 as it was simply too buggy.
13397
13398 2006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
13399
13400 * kern/misc.c (grub_lltoa): New function.
13401 (grub_vsprintf): Added support for the long long suffix,
13402 i.e. "ll".
13403
13404 2006-04-20 Hollis Blanchard <hollis@penguinppc.org>
13405
13406 * Makefile.in (LDFLAGS): Add variable.
13407 (LD): Remove variable.
13408 * configure.ac: Add -m32 to LDFLAGS.
13409 * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
13410 * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
13411 (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
13412 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
13413 suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
13414 variables.
13415 * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
13416 * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
13417 * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
13418
13419 2006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
13420
13421 * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
13422 length for unknown glyph.
13423
13424 2006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
13425
13426 Add support for pre-loaded modules into the EFI port.
13427
13428 * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
13429 completely. Accept one more argument DIR. The caller has changed.
13430
13431 * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
13432
13433 * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
13434 (grub_efi_loaded_image_guid): New variable.
13435 (grub_efi_get_loaded_image): New function.
13436 (grub_arch_modules_addr): Likewise.
13437
13438 * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
13439 prototype.
13440
13441 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
13442 (struct grub_efi_loaded_image): New structure.
13443 (grub_efi_loaded_image_t): New type.
13444
13445 2006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
13446
13447 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
13448 size with GRUB_OS_AREA_SIZE as grub_size_t instead of
13449 grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
13450
13451 2006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
13452
13453 * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
13454
13455 2006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
13456
13457 * DISTLIST: Added include/grub/efi/console.h,
13458 include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
13459 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
13460
13461 * include/grub/efi/console.h: New file.
13462 * include/grub/efi/time.h: Likewise.
13463 * include/grub/i386/efi/kernel.h: Likewise.
13464 * kern/efi/init.c: Likewise.
13465 * kern/efi/mm.c: Likewise.
13466 * term/efi/console.c: Likewise.
13467
13468 * kern/i386/efi/init.c: Do not include grub/machine/time.h.
13469 (grub_stop): Removed.
13470 (grub_get_rtc): Likewise.
13471 (grub_machine_init): Simply call grub_efi_init.
13472 (grub_machine_fini): Call grub_efi_fini.
13473
13474 * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
13475 (grub_efi_output_string): Removed.
13476 (grub_efi_stall): New function.
13477 (grub_stop): Likewise.
13478 (grub_get_rtc): Likewise.
13479
13480 * include/grub/efi/efi.h (grub_efi_output_string): Removed.
13481 (grub_efi_stall): New prototype.
13482 (grub_efi_allocate_pages): Likewise.
13483 (grub_efi_free_pages): Likewise.
13484 (grub_efi_get_memory_map): Likewise.
13485 (grub_efi_mm_init): Likewise.
13486 (grub_efi_mm_fini): Likewise.
13487 (grub_efi_init): Likewise.
13488 (grub_efi_fini): Likewise.
13489
13490 * include/grub/i386/efi/time.h: Do not include
13491 grub/symbol.h. Include grub/efi/time.h.
13492 (GRUB_TICKS_PER_SECOND): Removed.
13493 (grub_get_rtc): Likewise.
13494
13495 * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
13496 Added padding. The EFI spec is buggy.
13497 (GRUB_EFI_BLACK): New macro.
13498 (GRUB_EFI_BLUE): Likewise.
13499 (GRUB_EFI_GREEN): Likewise.
13500 (GRUB_EFI_CYAN): Likewise.
13501 (GRUB_EFI_RED): Likewise.
13502 (GRUB_EFI_MAGENTA): Likewise.
13503 (GRUB_EFI_BROWN): Likewise.
13504 (GRUB_EFI_LIGHTGRAY): Likewise.
13505 (GRUB_EFI_BRIGHT): Likewise.
13506 (GRUB_EFI_DARKGRAY): Likewise.
13507 (GRUB_EFI_LIGHTBLUE): Likewise.
13508 (GRUB_EFI_LIGHTGREEN): Likewise.
13509 (GRUB_EFI_LIGHTCYAN): Likewise.
13510 (GRUB_EFI_LIGHTRED): Likewise.
13511 (GRUB_EFI_LIGHTMAGENTA): Likewise.
13512 (GRUB_EFI_YELLOW): Likewise.
13513 (GRUB_EFI_WHITE): Likewise.
13514 (GRUB_EFI_BACKGROUND_BLACK): Likewise.
13515 (GRUB_EFI_BACKGROUND_BLUE): Likewise.
13516 (GRUB_EFI_BACKGROUND_GREEN): Likewise.
13517 (GRUB_EFI_BACKGROUND_CYAN): Likewise.
13518 (GRUB_EFI_BACKGROUND_RED): Likewise.
13519 (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
13520 (GRUB_EFI_BACKGROUND_BROWN): Likewise.
13521 (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
13522 (GRUB_EFI_TEXT_ATTR): Likewise.
13523
13524 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
13525 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
13526 (kernel_mod_HEADERS): Added efi/time.h.
13527
13528 2006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
13529
13530 * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
13531 include/grub/efi/api.h, include/grub/efi/console_control.h,
13532 include/grub/efi/efi.h, include/grub/efi/pe32.h,
13533 include/grub/i386/efi/time.h, kern/efi/efi.c,
13534 kern/i386/efi/init.c, kern/i386/efi/startup.S,
13535 and util/i386/efi/grub-mkimage.c.
13536
13537 * Makefile.in (RMKFILES): Added i386-efi.rmk.
13538
13539 * genmk.rb (PModule#rule): Do not export symbols if
13540 #{prefix}_EXPORTS is set to "no".
13541
13542 * conf/i386-efi.mk: New file.
13543 * conf/i386-efi.rmk: Likewise.
13544 * include/grub/efi/api.h: Likewise.
13545 * include/grub/efi/console_control.h: Likewise.
13546 * include/grub/efi/efi.h: Likewise.
13547 * include/grub/efi/pe32.h: Likewise.
13548 * include/grub/i386/efi/time.h: Likewise.
13549 * kern/efi/efi.c: Likewise.
13550 * kern/i386/efi/init.c: Likewise.
13551 * kern/i386/efi/startup.S: Likewise.
13552 * util/i386/efi/grub-mkimage.c: Likewise.
13553
13554 2006-04-17 Marco Gerards <marco@gnu.org>
13555
13556 * include/grub/script.h: Include <grub/parser.h> and
13557 "grub_script.tab.h".
13558 (struct grub_lexer_param): New struct.
13559 (struct grub_parser_param): Likewise.
13560 (grub_script_create_arglist): Pass the state in an argument.
13561 (grub_script_add_arglist): Likewise.
13562 (grub_script_create_cmdline): Likewise.
13563 (grub_script_create_cmdblock): Likewise.
13564 (grub_script_create_cmdif): Likewise.
13565 (grub_script_create_cmdmenu): Likewise.
13566 (grub_script_add_cmd): Likewise.
13567 (grub_script_arg_add): Likewise.
13568 (grub_script_lexer_ref): Likewise.
13569 (grub_script_lexer_deref): Likewise.
13570 (grub_script_lexer_record_start): Likewise.
13571 (grub_script_lexer_record_stop): Likewise.
13572 (grub_script_mem_record): Likewise.
13573 (grub_script_mem_record_stop): Likewise.
13574 (grub_script_malloc): Likewise.
13575 (grub_script_yylex): Likewise.
13576 (grub_script_yyparse): Likewise.
13577 (grub_script_yyerror): Likewise.
13578 (grub_script_yylex): Likewise.
13579 (grub_script_lexer_init): Return the state.
13580
13581 * normal/lexer.c (grub_script_lexer_state): Removed variable.
13582 (grub_script_lexer_done): Likewise.
13583 (grub_script_lexer_getline): Likewise.
13584 (grub_script_lexer_refs): Likewise.
13585 (script): Likewise.
13586 (newscript): Likewise.
13587 (record): Likewise.
13588 (recording): Likewise.
13589 (recordpos): Likewise.
13590 (recordlen): Likewise.
13591 (grub_script_lexer_init): Return the state instead of setting
13592 global variables.
13593 (grub_script_lexer_ref): Use the newly added argument for state
13594 instead of globals.
13595 (grub_script_lexer_deref): Likewise.
13596 (grub_script_lexer_record_start): Likewise.
13597 (grub_script_lexer_record_stop): Likewise.
13598 (recordchar): Likewise.
13599 (nextchar): Likewise.
13600 (grub_script_yylex2): Likewise.
13601 (grub_script_yylex): Likewise.
13602 (grub_script_yyerror): Likewise.
13603
13604 * normal/parser.y (func_mem): Removed variable.
13605 (menu_entry): Likewise.
13606 (err): Likewise.
13607 (%lex-param): New parser option.
13608 (%parse-param): Likewise.
13609 (script): Always return the AST.
13610 (argument): Pass the state around.
13611 (arguments): Likewise.
13612 (grubcmd): Likewise.
13613 (commands): Likewise.
13614 (function): Likewise.
13615 (menuentry): Likewise.
13616 (if_statement): Likewise.
13617 (if): Likewise.
13618
13619 * normal/script.c (grub_script_memused): Removed variable.
13620 (grub_script_parsed): Likewise.
13621 (grub_script_malloc): Added a state argument. Use that instead of
13622 global variables.
13623 (grub_script_mem_record): Likewise.
13624 (grub_script_mem_record_stop): Likewise.
13625 (grub_script_arg_add): Likewise.
13626 (grub_script_add_arglist): Likewise.
13627 (grub_script_create_cmdline): Likewise.
13628 (grub_script_create_cmdif): Likewise.
13629 (grub_script_create_cmdmenu): Likewise.
13630 (grub_script_add_cmd): Likewise.
13631 (grub_script_parse): Setup the state before calling the parser.
13632
13633 2006-04-16 Marco Gerards <marco@gnu.org>
13634
13635 * normal/command.c (grub_command_init): Remove the title command.
13636
13637 * normal/lexer.c (grub_script_yylex): Renamed from this...
13638 (grub_script_yylex2): ... to this.
13639 (grub_script_yylex): New function. Temporary
13640 introduced to filter some tokens.
13641 (grub_script_yyerror): Print a newline.
13642
13643 * normal/main.c (read_config_file): Output information about the
13644 lines that contain errors. Wait for a key after all lines have
13645 been processed. Don't return an empty menu.
13646
13647 * normal/parser.y (func_mem): Don't initialize.
13648 (menu_entry): Likewise.
13649 (err): New variable.
13650 (script): Don't return anything when an error was encountered.
13651 (ws, returns): Removed rules.
13652 (argument): Disabled concatenated variable support.
13653 (arguments): Remove explicit separators.
13654 (grubcmd): Likewise.
13655 (function): Likewise.
13656 (menuentry): Likewise.
13657 (if): Likewise.
13658 (commands): Likewise. Add error handling.
13659
13660 * normal/script.c (grub_script_create_cmdline): If
13661 `grub_script_parsed' is 0, assume the parser encountered an error.
13662
13663 2006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
13664
13665 * configure.ac: Add support for EFI. Fix the typo
13666 BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
13667
13668 2006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
13669
13670 * util/unifont2pff.rb: Removed unnecessary byte ordering. Now
13671 foreign multibyte characters should be shown correctly.
13672
13673 2006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
13674
13675 * normal/main.c (grub_normal_menu_addentry): Fixed menu size
13676 calculation.
13677 (read_config_file): Made it to close file before returning.
13678
13679 2006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
13680
13681 * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
13682 include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
13683 video/i386/pc/vbefill.c.
13684
13685 * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
13686 video/i386/pc/vbefill.c.
13687
13688 * include/grub/video.h (grub_video_blit_format): New enum.
13689 (grub_video_mode_info): Added new member blit_format.
13690 (grub_video_get_blit_format): New function prototype.
13691
13692 * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
13693 function prototype.
13694 (grub_video_vbe_map_rgb): Likewise.
13695 (grub_video_vbe_unmap_color): Likewise.
13696
13697 * include/grub/i386/pc/vbeblit.h: New file.
13698
13699 * include/grub/i386/pc/vbefill.h: New file.
13700
13701 * video/video.c (grub_video_get_blit_format): New function.
13702 (grub_video_vbe_get_video_ptr): Re-declared as non-static.
13703 (grub_video_vbe_map_rgb): Likewise.
13704 (grub_video_vbe_unmap_color): Likewise.
13705
13706 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
13707 optimized fills.
13708 (grub_video_vbe_blit_render_target): Changed to use more optimized
13709 blits.
13710 (grub_video_vbe_setup): Added detection for optimized settings.
13711 (grub_video_vbe_create_render_target): Likewise.
13712
13713 * video/i386/pc/vbeblit.c: New file.
13714
13715 * video/i386/pc/vbefill.c: New file.
13716
13717 2006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
13718
13719 * font/manager.c (grub_font_get_glyph): Removed font fixup from
13720 here...
13721
13722 * util/unifont2pff.rb: ... and moved it to here. Improved argument
13723 parsing to support both hex and dec ranges. If filename was missing
13724 show usage information.
13725
13726 2006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
13727
13728 * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
13729 video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c.
13730
13731 * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
13732 gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod.
13733 (video_mod_SOURCES): Added.
13734 (video_mod_CFLAGS): Likewise.
13735 (video_mod_LDFLAGS): Likewise.
13736 (gfxterm_mod_SOURCES): Likewise.
13737 (gfxterm_mod_CFLAGS): Likewise.
13738 (gfxterm_mod_LDFLAGS): Likewise.
13739 (videotest_mod_SOURCES): Likewise.
13740 (videotest_mod_CFLAGS): Likewise.
13741 (videotest_mod_LDFLAGS): Likewise.
13742 (vesafb_mod_SOURCES): Removed.
13743 (vesafb_mod_CFLAGS): Likewise.
13744 (vesafb_mod_LDFLAGS): Likewise.
13745 (vga_mod_SOURCES): Likewise.
13746 (vga_mod_CFLAGS): Likewise.
13747 (vga_mod_LDFLAGS): Likewise.
13748
13749 * commands/videotest.c: New file.
13750
13751 * font/manager.c (fill_with_default_glyph): Modified to use
13752 grub_font_glyph.
13753 (grub_font_get_glyph): Likewise.
13754 (fontmanager): Renamed from this...
13755 (font_manager): ... to this.
13756
13757 * include/grub/font.h (grub_font_glyph): Added new structure.
13758 (grub_font_get_glyph): Modified to use grub_font_glyph.
13759
13760 * include/grub/misc.h (grub_abs): Added as inline function.
13761
13762 * include/grub/video.h: New file.
13763
13764 * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
13765 (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
13766 (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
13767 (grub_vbe_get_controller_info): Renamed from this...
13768 (grub_vbe_bios_get_controller_info): ... to this.
13769 (grub_vbe_get_mode_info): Renamed from this...
13770 (grub_vbe_bios_get_mode_info): ... to this.
13771 (grub_vbe_set_mode): Renamed from this...
13772 (grub_vbe_bios_set_mode): ... to this.
13773 (grub_vbe_get_mode): Renamed from this...
13774 (grub_vbe_bios_get_mode): ... to this.
13775 (grub_vbe_set_memory_window): Renamed from this...
13776 (grub_vbe_bios_set_memory_window): ... to this.
13777 (grub_vbe_get_memory_window): Renamed from this...
13778 (grub_vbe_bios_get_memory_window): ... to this.
13779 (grub_vbe_set_scanline_length): Renamed from this...
13780 (grub_vbe_set_scanline_length): ... to this.
13781 (grub_vbe_get_scanline_length): Renamed from this...
13782 (grub_vbe_bios_get_scanline_length): ... to this.
13783 (grub_vbe_set_display_start): Renamed from this...
13784 (grub_vbe_bios_set_display_start): ... to this.
13785 (grub_vbe_get_display_start): Renamed from this...
13786 (grub_vbe_bios_get_display_start): ... to this.
13787 (grub_vbe_set_palette_data): Renamed from this...
13788 (grub_vbe_bios_set_palette_data): ... to this.
13789 (grub_vbe_set_pixel_rgb): Removed.
13790 (grub_vbe_set_pixel_index): Likewise.
13791
13792 * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
13793 from this...
13794 (grub_vbe_bios_get_controller_info): ... to this.
13795 (grub_vbe_get_mode_info): Renamed from this...
13796 (grub_vbe_bios_get_mode_info): ... to this.
13797 (grub_vbe_set_mode): Renamed from this...
13798 (grub_vbe_bios_set_mode): ... to this.
13799 (grub_vbe_get_mode): Renamed from this...
13800 (grub_vbe_bios_get_mode): ... to this.
13801 (grub_vbe_set_memory_window): Renamed from this...
13802 (grub_vbe_bios_set_memory_window): ... to this.
13803 (grub_vbe_get_memory_window): Renamed from this...
13804 (grub_vbe_bios_get_memory_window): ... to this.
13805 (grub_vbe_set_scanline_length): Renamed from this...
13806 (grub_vbe_set_scanline_length): ... to this.
13807 (grub_vbe_get_scanline_length): Renamed from this...
13808 (grub_vbe_bios_get_scanline_length): ... to this.
13809 (grub_vbe_set_display_start): Renamed from this...
13810 (grub_vbe_bios_set_display_start): ... to this.
13811 (grub_vbe_get_display_start): Renamed from this...
13812 (grub_vbe_bios_get_display_start): ... to this.
13813 (grub_vbe_set_palette_data): Renamed from this...
13814 (grub_vbe_bios_set_palette_data): ... to this.
13815 (grub_vbe_bios_get_controller_info): Fixed problem with registers
13816 getting corrupted after calling it. Added more pushes and pops.
13817 (grub_vbe_bios_set_mode): Likewise.
13818 (grub_vbe_bios_get_mode): Likewise.
13819 (grub_vbe_bios_get_memory_window): Likewise.
13820 (grub_vbe_bios_set_scanline_length): Likewise.
13821 (grub_vbe_bios_get_scanline_length): Likewise.
13822 (grub_vbe_bios_get_display_start): Likewise.
13823 (grub_vbe_bios_set_palette_data): Likewise.
13824
13825 * normal/cmdline.c (cl_set_pos): Refresh the screen.
13826 (cl_insert): Likewise.
13827 (cl_delete): Likewise.
13828
13829 * term/gfxterm.c: New file.
13830
13831 * term/i386/pc/vesafb.c: Removed file.
13832
13833 * video/video.c: New file.
13834
13835 * video/i386/pc/vbe.c (real2pm): Added new function.
13836 (grub_video_vbe_draw_pixel): Likewise.
13837 (grub_video_vbe_get_video_ptr): Likewise.
13838 (grub_video_vbe_get_pixel): Likewise
13839 (grub_video_vbe_init): Likewise.
13840 (grub_video_vbe_fini): Likewise.
13841 (grub_video_vbe_setup): Likewise.
13842 (grub_video_vbe_get_info): Likewise.
13843 (grub_video_vbe_set_palette): Likewise.
13844 (grub_video_vbe_get_palette): Likewise.
13845 (grub_video_vbe_set_viewport): Likewise.
13846 (grub_video_vbe_get_viewport): Likewise.
13847 (grub_video_vbe_map_color): Likewise.
13848 (grub_video_vbe_map_rgb): Likewise.
13849 (grub_video_vbe_map_rgba): Likewise.
13850 (grub_video_vbe_unmap_color): Likewise.
13851 (grub_video_vbe_fill_rect): Likewise.
13852 (grub_video_vbe_blit_glyph): Likewise.
13853 (grub_video_vbe_blit_bitmap): Likewise.
13854 (grub_video_vbe_blit_render_target): Likewise.
13855 (grub_video_vbe_scroll): Likewise.
13856 (grub_video_vbe_swap_buffers): Likewise.
13857 (grub_video_vbe_create_render_target): Likewise.
13858 (grub_video_vbe_delete_render_target): Likewise.
13859 (grub_video_vbe_set_active_render_target): Likewise.
13860 (grub_vbe_set_pixel_rgb): Remove function.
13861 (grub_vbe_set_pixel_index): Likewise.
13862 (index_color_mode): Remove static variable.
13863 (active_mode): Likewise.
13864 (framebuffer): Likewise.
13865 (bytes_per_scan_line): Likewise.
13866 (grub_video_vbe_adapter): Added new static variable.
13867 (framebuffer): Likewise.
13868 (render_target): Likewise.
13869 (initial_mode): Likewise.
13870 (mode_in_use): Likewise.
13871 (mode_list): Likewise.
13872
13873 2006-03-10 Marco Gerards <marco@gnu.org>
13874
13875 * configure.ac (AC_INIT): Bumped to 1.93.
13876
13877 * DISTLIST: Added `include/grub/hfs.h'.
13878
13879 2006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
13880
13881 * boot/i386/pc/boot.S (general_error): Before looping, try INT
13882 18H, which might help the BIOS falling back to next boot media.
13883
13884 2006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
13885
13886 * util/i386/pc/grub-install.in: Escape a backslash. Reported by
13887 Poe Chen <poe.poechen@gmail.com>.
13888
13889 2006-01-17 Marco Gerards <marco@gnu.org>
13890
13891 * include/grub/normal.h: Include <grub/script.h>.
13892 (grub_command_list): Removed struct.
13893 (grub_command_list_t): Removed type.
13894 (grub_menu_entry): Remove members `num' and `command_list'. Add
13895 members `commands' and `sourcecode'.
13896 * include/grub/script.h: Add inclusion guards.
13897 (grub_script_cmd_menuentry): New struct.
13898 (grub_script_execute_menuentry): New prototype.
13899 (grub_script_lexer_record_start): Likewise.
13900 (grub_script_lexer_record_stop): Likewise.
13901 * normal/execute.c (grub_script_execute_menuentry): New function.
13902 * normal/lexer.c (record, recording, recordpos, recordlen): New
13903 variables.
13904 (grub_script_lexer_record_start): New function.
13905 (grub_script_lexer_record_stop): Likewise.
13906 (recordchar): Likewise.
13907 (nextchar): Likewise.
13908 (grub_script_yylex): Use `nextchar' to fetch new characters. Use
13909 2048 as the buffer size. Add the tokens `menuentry' and `@'.
13910 * normal/main.c: Include <grub/parser.h> and <grub/script.h>
13911 (current_menu): New variable.
13912 (free_menu): Mainly rewritten.
13913 (grub_normal_menu_addentry): New function.
13914 (read_config_file): Rewritten.
13915 * normal/menu.c (run_menu_entry): Mainly rewritten.
13916 * normal/menu_entry.c (make_screen): Rewritten the code to insert
13917 the menu entry.
13918 (run): Mainly rewritten.
13919 * normal/parser.y (menu_entry): New variable.
13920 (GRUB_PARSER_TOKEN_MENUENTRY): New token.
13921 (menuentry): New rule.
13922 (command): Add `menuentry'.
13923 (if_statement): Allow additional returns before `fi'.
13924 * normal/script.c (grub_script_create_cmdmenu): New function.
13925
13926 2006-01-03 Marco Gerards <marco@gnu.org>
13927
13928 * INSTALL: GNU Bison is required.
13929 * configure.ac: Rewritten the test to detect Bison.
13930 * Makefile.in (YACC): New variable. Reported by Xun Sun
13931 <xun.sun.cn@gmail.com>.
13932
13933 2006-01-03 Marco Gerards <marco@gnu.org>
13934
13935 * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
13936 the HFS+ filesystem to filesystem blocks.
13937 (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
13938 GCC warning is silenced.
13939
13940 2006-01-03 Marco Gerards <marco@gnu.org>
13941
13942 * partmap/apple.c (apple_partition_map_iterate): Convert the data
13943 read from disk from big endian to host byte order.
13944
13945 2006-01-03 Hollis Blanchard <hollis@penguinppc.org>
13946
13947 * fs/hfs.c: Include <grub/hfs.h>. Added reference to the official
13948 documentation.
13949 (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
13950 (grub_hfs_mount): Grammar fix in error. Make sure this is not an
13951 embedded HFS+ filesystem.
13952 (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
13953 (grub_hfs_sblock): Move from here...
13954 * include/grub/hfs.h: To here... New file.
13955 * fs/hfsplus.c: Include <grub/hfs.h>. Added reference to the official
13956 documentation.
13957 (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
13958 New macros.
13959 (grub_hfsplus_volheader): Change type of member `magic' to
13960 `grub_uint16_t'.
13961 (grub_hfsplus_data): Add new member `embedded_offset'.
13962 (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
13963 returned block.
13964 (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
13965 Calculate the offset.
13966
13967 2005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
13968
13969 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
13970 Removed.
13971 (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
13972
13973 2005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
13974
13975 * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
13976 ENV->NAME is NULL after allocating ENV->VALUE.
13977
13978 2005-12-25 Marco Gerards <marco@gnu.org>
13979
13980 * kern/env.c (grub_env_set): Rewritten the error handling code.
13981
13982 2005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
13983
13984 * geninit.sh: Made more robust, and more portable.
13985
13986 2005-12-25 Marco Gerards <marco@gnu.org>
13987
13988 Add support for Apple HFS+ filesystems.
13989
13990 * fs/hfsplus.c: New file.
13991
13992 * DISTLIST: Added `fs/hfsplus.c'.
13993
13994 * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
13995 (hfsplus_mod_SOURCES): New variable.
13996 (hfsplus_mod_CFLAGS): Likewise.
13997 (hfsplus_mod_LDFLAGS): Likewise.
13998 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
13999 (grub_setup_SOURCES): Likewise.
14000 (grub_mkdevicemap_SOURCES): Likewise.
14001 (grub_emu_SOURCES): Likewise.
14002 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
14003
14004 * fs/fshelp.c (grub_fshelp_log2blksize): New function.
14005
14006 * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
14007
14008 2005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
14009
14010 * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
14011 commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
14012 include/grub/parser.h, include/grub/script.h, kern/parser.c,
14013 kern/sparc64/cache.S, normal/execute.c, normal/function.c,
14014 normal/lexer.c, normal/parser.y, normal/script.c, and
14015 partmap/gpt.c.
14016 Removed kern/sparc64/cache.c.
14017
14018 * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
14019 grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
14020 grub_emu_init.c.
14021
14022 * configure.ac (AC_INIT): Bumped to 1.92.
14023
14024 2005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
14025
14026 * kern/err.c (grub_error_push): Added new function to support error
14027 stacks.
14028 (grub_error_pop): Likewise.
14029 (grub_error_stack_items): New local variable to support error stacks.
14030 (grub_error_stack_pos): Likewise.
14031 (grub_error_stack_assert): Likewise.
14032 (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
14033 stack depth.
14034 (grub_print_error): Added support to print errors from error stack.
14035
14036 * include/grub/err.h (grub_error_push): Added function prototype.
14037 (grub_error_pop): Likewise.
14038
14039 2005-12-09 Hollis Blanchard <hollis@penguinppc.org>
14040
14041 * configure.ac: Accept `powerpc64' as host_cpu.
14042 (amd64): Rename to `biarch32'.
14043
14044 * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
14045 non-cacheline-aligned addresses.
14046
14047 * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
14048 (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
14049 if `size' is non-zero.
14050
14051 2005-12-03 Marco Gerards <mgerards@xs4all.nl>
14052
14053 * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
14054 and `cd' to make sure the filename is not prefixed with a
14055 directory name.
14056 (pkgdata_MODULES): Add `gpt.mod'.
14057 (gpt_mod_SOURCES): New variable.
14058 (gpt_mod_CFLAGS): Likewise.
14059 (gpt_mod_LDFLAGS): Likewise.
14060
14061 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
14062
14063 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
14064 New macro.
14065
14066 * partmap/gpt.c: New file.
14067
14068 * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
14069 GPT partition map is detected.
14070
14071 2005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
14072
14073 * commands/i386/pc/play.c: New file.
14074 * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
14075 (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
14076 macros.
14077
14078 2005-11-27 Marco Gerards <mgerards@xs4all.nl>
14079
14080 * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
14081 ((unused))' to silence gcc warning.
14082
14083 2005-11-26 Hollis Blanchard <hollis@penguinppc.org>
14084
14085 * configure.ac: Correct `AC_PROG_YACC' test.
14086
14087 2005-11-22 Hollis Blanchard <hollis@penguinppc.org>
14088
14089 * util/powerpc/ieee1275/grub-install.in: Run the mount point
14090 check before installing files.
14091
14092 2005-11-22 Mike Small <smallm@panix.com>
14093
14094 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
14095 number regex so multidigit numbers are recognized correctly.
14096
14097 2005-11-22 Mike Small <smallm@panix.com>
14098
14099 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
14100 debugging message before attempting to claim memory.
14101 (grub_rescue_cmd_initrd): Add a claim debugging message and try
14102 multiple addresses in case of failure.
14103
14104 2005-11-22 Hollis Blanchard <hollis@penguinppc.org>
14105
14106 * term/tparm.c (get_space): Remove empty `if' statement.
14107
14108 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
14109
14110 * kern/parser.c (check_varstate): Rename `state' to 's'.
14111
14112 2005-11-22 Hollis Blanchard <hollis@penguinppc.org>
14113
14114 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
14115 variable definitions to the beginning of each function. Sort stack
14116 variables by size.
14117 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
14118 `buf' argument to `char *'.
14119
14120 2005-11-22 Hollis Blanchard <hollis@penguinppc.org>
14121
14122 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
14123 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
14124 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
14125 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
14126 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
14127 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
14128 configfile.mod, search.mod, gzio.mod and test.mod.
14129 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
14130 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
14131 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
14132 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
14133 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
14134 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
14135 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
14136 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
14137 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
14138 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
14139 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
14140 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
14141 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
14142 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
14143 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
14144 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
14145 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
14146 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
14147 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
14148 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
14149 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
14150 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
14151 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
14152
14153 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
14154 `grep --include'.
14155 (pkgdata_MODULES): Add test.mod.
14156
14157 2005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
14158
14159 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
14160 appending to variables with "+=".
14161 (PModule): Use full pathname to generate *.lst filenames.
14162
14163 * Makefile.in: Fixed list rules moved from genmk.rb.
14164 (.DELETE_ON_ERROR): New special target.
14165 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
14166
14167 * conf/i386-pc.rmk: Include conf/common.mk.
14168 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
14169 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
14170 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
14171 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
14172 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
14173 configfile.mod, search.mod, gzio.mod and test.mod.
14174 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
14175 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
14176 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
14177 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
14178 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
14179 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
14180 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
14181 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
14182 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
14183 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
14184 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
14185 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
14186 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
14187 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
14188 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
14189 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
14190 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
14191 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
14192 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
14193 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
14194 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
14195 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
14196 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
14197 here...
14198 * conf/common.rmk: ... to here. New file.
14199
14200 * conf/common.mk: New file.
14201
14202 2005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
14203
14204 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
14205 (grub_script.tab.c): ... here.
14206
14207 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
14208 (grub_script.tab.c): ... here.
14209
14210 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
14211 (grub_script.tab.c): ... here.
14212
14213 * normal/command.c (grub_command_find): Fixed a memory leak of
14214 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
14215
14216 2005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
14217
14218 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
14219 "@" which marks the start of a comment on ARM.
14220 (VARIABLE): Likewise.
14221
14222 2005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
14223
14224 Add support for Linux/ADFS partition tables.
14225
14226 * partmap/acorn.c: New file.
14227
14228 * include/grub/acorn_filecore.h: Likewise.
14229
14230 * DISTLIST: Added `partmap/acorn.c' and
14231 `include/grub/acorn_filecore.h'.
14232
14233 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
14234 `partmap/acorn.c'.
14235 (pkgdata_MODULES): Add `acorn.mod'.
14236 (acorn_mod_SOURCES): New variable.
14237 (acorn_mod_CFLAGS): Likewise.
14238
14239 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
14240 `partmap/acorn.c'.
14241 (pkgdata_MODULES): Add `acorn.mod'.
14242 (acorn_mod_SOURCES): New variable.
14243 (acorn_mod_CFLAGS): Likewise.
14244
14245 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
14246 (pkgdata_MODULES): Add `acorn.mod'.
14247 (acorn_mod_SOURCES): New variable.
14248 (acorn_mod_CFLAGS): Likewise.
14249 (acorn_mod_LDFLAGS): Likewise.
14250
14251 * include/types.h (grub_disk_addr_t): New typedef.
14252
14253 2005-11-13 Marco Gerards <mgerards@xs4all.nl>
14254
14255 * geninit.sh: New file.
14256
14257 * geninitheader.sh: Likewise.
14258
14259 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
14260 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
14261 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
14262 * commands/configfile.c (grub_configfile_init)
14263 (grub_configfile_fini): Likewise.
14264 * commands/default.c (grub_default_init, grub_default_fini):
14265 Likewise.
14266 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
14267 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
14268 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
14269 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
14270 Likewise.
14271 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
14272 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
14273 Likewise.
14274 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
14275 * commands/ieee1275/halt.c (grub_halt_init, grub_halt_fini):
14276 Likewise.
14277 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
14278 Likewise.
14279 * commands/ieee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
14280 Likewise.
14281 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
14282 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
14283 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
14284 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
14285 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
14286 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
14287 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
14288 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
14289 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
14290 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
14291 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
14292 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
14293 * partmap/amiga.c (grub_amiga_partition_map_init)
14294 (grub_amiga_partition_map_fini): Likewise.
14295 * partmap/apple.c (grub_apple_partition_map_init)
14296 (grub_apple_partition_map_fini): Likewise.
14297 * partmap/pc.c (grub_pc_partition_map_init)
14298 (grub_pc_partition_map_fini): Likewise.
14299 * partmap/sun.c (grub_sun_partition_map_init,
14300 grub_sun_partition_map_fini): Likewise.
14301 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
14302 Likewise.
14303
14304 * util/grub-emu.c: Include <grub_modules_init.h>.
14305 (main): Don't initialize and de-initialize any modules directly,
14306 use `grub_init_all' and `grub_fini_all' instead.
14307
14308 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
14309 `grub_vesafb_mod_init'.
14310 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
14311 all users.
14312 * term/i386/pc/vga.c (grub_vga_init): Renamed to
14313 `grub_vga_mod_init'. Updated all users.
14314 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
14315
14316 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
14317 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
14318 rules.
14319
14320 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
14321 Generate a function to initialize the module in utilities.
14322 Updated all callers.
14323 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
14324 initialize the module in utilities. Updated all callers.
14325
14326 2005-11-09 Hollis Blanchard <hollis@penguinppc.org>
14327
14328 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
14329 escape sequence and a literal ^L to clear the screen.
14330
14331 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
14332 when returning from Open Firmware.
14333
14334 2005-11-09 Hollis Blanchard <hollis@penguinppc.org>
14335
14336 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
14337 (grub_ofconsole_height): Likewise.
14338 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
14339 manually insert a '\n'.
14340 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
14341 `grub_ofconsole_height'. Return early if these are already set.
14342
14343 2005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
14344
14345 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
14346 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
14347 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
14348 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
14349 and `normal/script.c'.
14350 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
14351 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
14352 (test_mod_SOURCES): New variable.
14353 (test_mod_CFLAGS): Likewise.
14354 (test_mod_LDFLAGS): Likewise.
14355 (pkgdata_MODULES): Add `test.mod'.
14356 (grub_script.tab.c): New rule.
14357 (grub_script.tab.h): Likewise.
14358
14359 2005-11-07 Marco Gerards <mgerards@xs4all.nl>
14360
14361 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
14362 `commands/test.c', `normal/execute.c', `normal/lexer.c',
14363 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
14364 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
14365 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
14366 (test_mod_SOURCES): New variable.
14367 (test_mod_CFLAGS): Likewise.
14368 (pkgdata_MODULES): Add `test.mod'.
14369 (grub_script.tab.c): New rule.
14370 (grub_script.tab.h): Likewise.
14371
14372 2005-11-06 Marco Gerards <mgerards@xs4all.nl>
14373
14374 Add initial scripting support.
14375
14376 * commands/test.c: New file.
14377 * include/grub/script.h: Likewise.
14378 * normal/execute.c: Likewise.
14379 * normal/function.c: Likewise.
14380 * normal/lexer.c: Likewise.
14381 * normal/parser.y: Likewise.
14382 * normal/script.c: Likewise.
14383
14384 * configure.ac: Add `AC_PROG_YACC' test.
14385
14386 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
14387 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
14388 `normal/function.c' and `normal/script.c'.
14389 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
14390 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
14391 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
14392 variables.
14393 (pkgdata_MODULES): Add `test.mod'.
14394 (grub_script.tab.c): New rule.
14395 (grub_script.tab.h): Likewise.
14396
14397 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
14398
14399 * include/grub/normal.h (grub_test_init): New prototype.
14400 (grub_test_fini): Likewise.
14401
14402 * normal/command.c: Include <grub/script.h>.
14403 (grub_command_execute): Rewritten.
14404
14405 * util/grub-emu.c (main): Call `grub_test_init' and
14406 `grub_test_fini'.
14407
14408 2005-11-03 Hollis Blanchard <hollis@penguinppc.org>
14409
14410 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
14411 to 0.
14412 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
14413 there are no pending characters.
14414
14415 2005-11-03 Hollis Blanchard <hollis@penguinppc.org>
14416
14417 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
14418 `grub_strndup' to drop device arguments. Replace unnecessary
14419 `grub_strndup' with `grub_strdup'.
14420
14421 2005-11-03 Hollis Blanchard <hollis@penguinppc.org>
14422
14423 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
14424 `debug' environment variable has been set.
14425
14426 2005-11-02 Hollis Blanchard <hollis@penguinppc.org>
14427
14428 * Makefile.in (install-local): Use $(DATA).
14429 (uninstall): Likewise.
14430 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
14431 (sbin_UTILITIES): ... to here.
14432 (sbin_SCRIPTS): New variable.
14433 (grub_install_SOURCES): New variable.
14434 * util/powerpc/ieee1275/grub-install.in: New file.
14435 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
14436 variable.
14437 (add_segments): Call `grub_util_get_path'.
14438
14439 2005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
14440
14441 From Timothy Baldwin:
14442 * commands/ls.c (grub_ls_list_files): Close FILE with
14443 grub_file_close.
14444 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
14445
14446 2005-10-24 Marco Gerards <mgerards@xs4all.nl>
14447
14448 * include/grub/parser.h: New file.
14449
14450 * kern/parser.c: Likewise.
14451
14452 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
14453 (grub_setup_SOURCES): Likewise.
14454 (grub_probefs_SOURCES): Likewise.
14455 (grub_emu_SOURCES): Likewise.
14456 (kernel_img_HEADERS): Add `parser.h'.
14457
14458 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
14459 (grub_emu_SOURCES): Add `kern/parser.c'.
14460 (grubof_SOURCES): Likewise.
14461
14462 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
14463 (grubof_SOURCES): Add `kern/parser.c'.
14464
14465 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
14466
14467 * kern/misc.c (grub_split_cmdline): Removed function.
14468
14469 * kern/rescue.c: Include <grub/parser.h>.
14470 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
14471 of `grub_split_cmdline'.
14472
14473 * normal/command.c: Include <grub/parser.h>.
14474 (grub_command_execute): Use `grub_parser_split_cmdline' instead
14475 of `grub_split_cmdline'.
14476
14477 * normal/completion.c: Include <grub/parser.h>.
14478 (cmdline_state): New variable.
14479 (iterate_dir): End the filename with a quote depending on the
14480 command line state.
14481 (get_state): new function.
14482 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
14483 split the arguments and determine the current argument. When the
14484 argument string is not quoted, escape all spaces.
14485
14486 2005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
14487
14488 * normal/sparc64/setjmp.S: New file.
14489
14490 2005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
14491
14492 * include/grub/sparc64/libgcc.h: New file.
14493 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
14494 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
14495 normal/sparc64/setjmp.c.
14496
14497 2005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
14498
14499 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
14500 * kern/sparc64/cache.S: New file.
14501 * kern/sparc64/cache.c: Removed.
14502 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
14503 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
14504 -mtune=ultrasparc.
14505 (COMMON_LDFLAGS): Add -melf64_sparc.
14506 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
14507 (grubof_SOURCES): Use cache.S instead of cache.c.
14508 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
14509 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
14510 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
14511 commented though.
14512 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
14513 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
14514 (linux_mod_CFLAGS): Commented out.
14515 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
14516 out because module isn't built.
14517 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
14518 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
14519 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
14520 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
14521 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
14522 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
14523 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
14524 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
14525 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
14526 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
14527 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
14528 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
14529 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
14530 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
14531
14532 2005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
14533
14534 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
14535 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
14536 longer, because HFS should not be used on PC.
14537
14538 2005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
14539
14540 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
14541 consistently within the loop.
14542
14543 2005-10-15 Marco Gerards <mgerards@xs4all.nl>
14544
14545 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
14546 directory can not be read.
14547
14548 2005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
14549
14550 * configure.ac (AC_INIT): Increase the version number to 1.91.
14551
14552 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
14553 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
14554 term/i386/pc/serial.c.
14555
14556 2005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
14557
14558 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
14559 file size must be permitted.
14560
14561 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
14562 between %ah and %al.
14563
14564 2005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
14565
14566 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
14567 grub_uint64_t.
14568 Call the hook with a NUL-terminated filename.
14569 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
14570 grub_cpu_to_be32.
14571
14572 * kern/term.c (cursor_state): New variable.
14573 (grub_term_set_current): Reset the cursor state on a new
14574 terminal.
14575 (grub_setcursor): Rewritten to use CURSOR_STATE.
14576 (grub_getcursor): New function.
14577
14578 * include/grub/term.h (grub_getcursor): New prototype.
14579
14580 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
14581 integers on ARM. Reported by Timothy Baldwin
14582 <T.E.Baldwin99@members.leeds.ac.uk>.
14583
14584 2005-10-11 Marco Gerards <mgerards@xs4all.nl>
14585
14586 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
14587 allocated.
14588 (grub_sfs_dir): Likewise.
14589
14590 2005-10-09 Marco Gerards <mgerards@xs4all.nl>
14591
14592 Add support for the SFS filesystem.
14593
14594 * fs/sfs.c: New file.
14595
14596 * DISTLIST: Added `fs/sfs.c'.
14597
14598 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
14599 (grub_probefs_SOURCES): Likewise.
14600 (grub_emu_SOURCES): Likewise.
14601 (pkgdata_MODULES): Add `sfs.mod'.
14602 (sfs_mod_SOURCES): New variable.
14603 (sfs_mod_CFLAGS): Likewise.
14604 (sfs_mod_LDFLAGS): Likewise.
14605
14606 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
14607 (pkgdata_MODULES): Add `sfs.mod'.
14608 (sfs_mod_SOURCES): New variable.
14609 (sfs_mod_CFLAGS): Likewise.
14610
14611 * util/grub-emu.c (main): Call `grub_sfs_init' and
14612 `grub_sfs_fini'.
14613
14614 * include/grub/fs.h (grub_sfs_init): New prototype.
14615 (grub_sfs_fini): Likewise.
14616
14617 2005-10-07 Marco Gerards <mgerards@xs4all.nl>
14618
14619 Add support for the AFFS filesystem.
14620
14621 * fs/affs.c: New file.
14622
14623 * DISTLIST: Added `fs/affs.c'.
14624
14625 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
14626 (grub_probefs_SOURCES): Likewise.
14627 (grub_emu_SOURCES): Likewise.
14628 (pkgdata_MODULES): Add `affs.mod'.
14629 (affs_mod_SOURCES): New variable.
14630 (affs_mod_CFLAGS): Likewise.
14631 (affs_mod_LDFLAGS): Likewise.
14632
14633 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
14634 (pkgdata_MODULES): Add `affs.mod'.
14635 (affs_mod_SOURCES): New variable.
14636 (affs_mod_CFLAGS): Likewise.
14637
14638 * util/grub-emu.c (main): Call `grub_affs_init' and
14639 `grub_affs_fini'.
14640
14641 * include/grub/fs.h (grub_affs_init): New prototype.
14642 (grub_affs_fini): Likewise.
14643
14644 2005-10-01 Marco Gerards <mgerards@xs4all.nl>
14645
14646 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
14647
14648 2005-10-01 Marco Gerards <mgerards@xs4all.nl>
14649
14650 * configure.ac: Accept `x86_64' as host_cpu. In that case add
14651 `-m32' to CFLAGS.
14652
14653 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
14654 linking.
14655
14656 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
14657 (COMMON_LDFLAGS): New variable.
14658 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
14659 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
14660 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
14661 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
14662 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
14663 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
14664 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
14665 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
14666 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
14667 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
14668 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
14669 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
14670 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
14671 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
14672 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
14673 variables.
14674 (normal_mod_ASFLAGS): Add `-m32'.
14675
14676 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
14677 (grub_host_size_t, grub_host_ssize_t): New types.
14678 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
14679 dependent of `GRUB_CPU_SIZEOF_VOID_P' instead on
14680 `GRUB_HOST_SIZEOF_VOID_P'.
14681
14682 * include/grub/kernel.h (struct grub_module_header): Type of
14683 member offset changed to `grub_host_off_t'. Type of member size
14684 changed to `grub_host_size_t'.
14685 (struct grub_module_info): Type of member offset changed to
14686 `grub_host_off_t'. Type of member size changed to
14687 `grub_host_size_t'.
14688
14689 2005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
14690
14691 Make GRUB's kernel compliant to Multiboot Specification.
14692
14693 * kern/i386/pc/startup.S (multiboot_header): New label.
14694 (multiboot_entry): Likewise.
14695 (multiboot_trampoline): Likewise.
14696
14697 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
14698 Increased to 0x4A0.
14699
14700 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
14701 put parentheses after a question mark.
14702 [!GRUB_UTIL] (my_mod): New variable.
14703
14704 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
14705
14706 2005-09-28 Marco Gerards <mgerards@xs4all.nl>
14707
14708 Adds support for the XFS filesystem. Btrees are not supported
14709 yet.
14710
14711 * fs/xfs.c: New file.
14712
14713 * DISTLIST: Added `fs/xfs.c'.
14714
14715 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
14716 (grub_probefs_SOURCES): Likewise.
14717 (grub_emu_SOURCES): Likewise.
14718 (pkgdata_MODULES): Add `xfs.mod'.
14719 (xfs_mod_SOURCES): New variable.
14720 (xfs_mod_CFLAGS): Likewise.
14721
14722 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
14723 (pkgdata_MODULES): Add `xfs.mod'.
14724 (xfs_mod_SOURCES): New variable.
14725 (xfs_mod_CFLAGS): Likewise.
14726
14727 * util/grub-emu.c (main): Call `grub_xfs_init' and
14728 `grub_xfs_fini'.
14729
14730 * include/grub/fs.h (grub_xfs_init): New prototype.
14731 (grub_xfs_fini): Likewise.
14732
14733
14734 2005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
14735
14736 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
14737 color modes, allow greater than 16 colors to be configured as
14738 a default palette.
14739
14740 2005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
14741
14742 * normal/completion.c (complete_arguments): Add the qualifier
14743 const into OPTIONS.
14744
14745 From Omniflux <omniflux+lists@omniflux.com>:
14746 * include/grub/terminfo.h: New file.
14747 * include/grub/tparm.h: Likewise.
14748 * include/grub/i386/pc/serial.h: Likewise.
14749 * term/terminfo.c: Likewise.
14750 * term/tparm.c: Likewise.
14751 * term/i386/pc/serial.c: Likewise.
14752 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
14753 serial.mod.
14754 (terminfo_mod_SOURCES): New variable.
14755 (terminfo_mod_CFLAGS): Likewise.
14756 (serial_mod_SOURCES): Likewise.
14757 (serial_mod_CFLAGS): Likewise.
14758
14759 2005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
14760
14761 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
14762 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
14763 and kern/powerpc/ieee1275/cmain.c, respectively.
14764
14765 * boot/powerpc/ieee1275/crt0.S: Moved to ...
14766 * kern/powerpc/ieee1275/crt0.S: ... here.
14767
14768 * boot/powerpc/ieee1275/cmain.c: Moved to ...
14769 * kern/powerpc/ieee1275/cmain.c: ... here.
14770
14771 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
14772 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
14773 instead of boot/powerpc/ieee1275/crt0.S and
14774 boot/powerpc/ieee1275/cmain.c, respectively.
14775
14776 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
14777 sectors. It was not used anyway.
14778
14779 2005-08-30 Hollis Blanchard <hollis@penguinppc.org>
14780
14781 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
14782 `unused parameter' warning.
14783
14784 2005-08-30 Hollis Blanchard <hollis@penguinppc.org>
14785
14786 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
14787 function.
14788 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
14789 getcharwidth.
14790
14791 2005-08-28 Marco Gerards <metgerards@student.han.nl>
14792
14793 * include/grub/normal.h (enum grub_completion_type): Added
14794 `GRUB_COMPLETION_TYPE_ARGUMENT'.
14795
14796 * normal/cmdline.c (print_completion): Handle
14797 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
14798 * normal/menu_entry.c (store_completion): Likewise.
14799
14800 * normal/completion.c (complete_arguments): New function.
14801 (grub_normal_do_completion): Call `complete_arguments' when the
14802 current words start with a dash.
14803
14804 2005-08-27 Marco Gerards <metgerards@student.han.nl>
14805
14806 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
14807 `gzio.mod' instead of `io.mod').
14808
14809 2005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
14810
14811 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
14812 (DISTDIRS): Added io and video.
14813 Rewrite the search routine to make an output consistently.
14814
14815 * DISTLIST: Added conf/sparc64-ieee1275.mk,
14816 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
14817 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
14818 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
14819 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
14820 util/powerpc/ieee1275/misc.c.
14821
14822 * include/grub/gzio.h: New file.
14823 * io/gzio.c: Likewise.
14824
14825 * kern/file.c (grub_file_close): Call grub_device_close only if
14826 FILE->DEVICE is not NULL.
14827
14828 * include/grub/mm.h [!NULL] (NULL): New macro.
14829
14830 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
14831
14832 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
14833 (pkgdata_MODULES): Added gzio.mod.
14834 (gzio_mod_SOURCES): New variable.
14835 (gzio_mod_CFLAGS): Likewise.
14836
14837 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
14838 (pkgdata_MODULES): Added gzio.mod.
14839 (gzio_mod_SOURCES): New variable.
14840 (gzio_mod_CFLAGS): Likewise.
14841
14842 * commands/cat.c: Include grub/gzio.h.
14843 (grub_cmd_cat): Use grub_gzfile_open instead of
14844 grub_file_open.
14845
14846 * commands/cmp.c: Include grub/gzio.h.
14847 (grub_cmd_cmp): Use grub_gzfile_open instead of
14848 grub_file_open.
14849
14850 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
14851 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
14852 grub_file_open.
14853 (grub_rescue_cmd_module): Likewise.
14854
14855 2005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
14856
14857 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
14858 kern/sparc64/ieee1275/init.c because it contains _start.
14859 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
14860
14861 2005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
14862
14863 * configure.ac: Add support for sparc64 host with ieee1275
14864 firmware.
14865 * configure: Generated from configure.ac.
14866 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
14867 instead of int.
14868 (grub_ofdisk_read): Likewise.
14869 (grub_ofdisk_open): Use %p to print pointer values, and cast the
14870 pointers as (void *) to remove a warning.
14871 (grub_ofdisk_close): Likewise.
14872 (grub_ofdisk_read): Likewise.
14873 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
14874 returns, so make it return void to remove a warning.
14875 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
14876 Corresponding prototype change.
14877 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
14878 values, and cast the pointers as (void *) to remove a warning.
14879 (grub_mm_dump): Likewise.
14880 * conf/sparc64-ieee1275.mk: New file.
14881 * conf/sparc64-ieee1275.rmk: Likewise.
14882 * include/grub/sparc64/setjmp.h: Likewise.
14883 * include/grub/sparc64/types.h: Likewise.
14884 * include/grub/sparc64/ieee1275/console.h: Likewise.
14885 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
14886 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
14887 * include/grub/sparc64/ieee1275/time.h: Likewise.
14888 * kern/sparc64/cache.c: Likewise.
14889 * kern/sparc64/dl.c: Likewise.
14890 * kern/sparc64/ieee1275/init.c: Likewise.
14891 * kern/sparc64/ieee1275/openfw.c: Likewise.
14892
14893 2005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
14894
14895 * util/console.c (grub_ncurses_putchar): If C is greater than
14896 0x7f, set C to a question mark.
14897 (grub_ncurses_getcharwidth): New function.
14898 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
14899 getcharwidth.
14900
14901 * normal/menu.c (print_entry): Made aware of Unicode. First,
14902 convert TITLE to UCS-4, and predict the cursor position by
14903 grub_getcharwidth.
14904
14905 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
14906 const to SRC.
14907 * kern/misc.c (grub_utf16_to_utf8): Likewise.
14908
14909 2005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
14910
14911 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
14912 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
14913 grub_strcat.
14914
14915 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
14916 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
14917 grub_strcpy and grub_strlen. Take it into account that a space
14918 character is inserted as a delimiter.
14919
14920 2005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
14921
14922 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
14923 invalid magic in the error.
14924
14925 * commands/search.c: New file.
14926
14927 * util/grub-emu.c (main): Call grub_search_init and
14928 grub_search_fini.
14929
14930 * kern/rescue.c (grub_rescue_print_disks): Removed.
14931 (grub_rescue_print_devices): New function.
14932 (grub_rescue_cmd_ls): Use grub_device_iterate with
14933 grub_rescue_print_devices instead of grub_disk_dev_iterate with
14934 grub_rescue_print_disks.
14935
14936 * kern/partition.c (grub_partition_iterate): Return the result of
14937 PARTMAP->ITERATE instead of GRUB_ERRNO.
14938
14939 * kern/device.c: Include grub/partition.h.
14940 (grub_device_iterate): New function.
14941
14942 * include/grub/partition.h (grub_partition_iterate): Return int
14943 instead of grub_err_t.
14944
14945 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
14946 prototype.
14947 [GRUB_UTIL] (grub_search_fini): Likewise.
14948
14949 * include/grub/device.h (grub_device_iterate): New prototype.
14950
14951 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
14952 commands/search.c.
14953 (pkgdata_MODULES): Added search.mod.
14954 (search_mod_SOURCES): New variable.
14955 (search_mod_CFLAGS): Likewise.
14956
14957 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
14958 (pkgdata_MODULES): Added search.mod.
14959 (search_mod_SOURCES): New variable.
14960 (search_mod_CFLAGS): Likewise.
14961
14962 * commands/ls.c (grub_ls_list_disks): Renamed to ...
14963 (grub_ls_list_devices): ... this, and use grub_device_iterate.
14964 All callers changed.
14965
14966 * DISTLIST: Added commands/search.c.
14967
14968 2005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
14969
14970 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
14971 conversion.
14972 (grub_getcharwidth): New function.
14973
14974 * kern/misc.c (grub_utf8_to_ucs4): New function.
14975
14976 * include/grub/term.h (struct grub_term): Added a new member
14977 "getcharwidth".
14978 (grub_getcharwidth): New prototype.
14979
14980 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
14981
14982 * term/i386/pc/console.c (map_char): New function. Segregated from
14983 grub_console_putchar.
14984 (grub_console_putchar): Use map_char.
14985 (grub_console_getcharwidth): New function.
14986 (grub_console_term): Specified grub_console_getcharwidth as
14987 getcharwidth.
14988
14989 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
14990 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
14991
14992 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
14993 GRUB_ERRNO.
14994 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
14995 on grub_strtoul completely.
14996 (write_char): Declare local variables in the beginning of the
14997 function.
14998 (grub_vesafb_getcharwidth): New function.
14999 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
15000 getcharwidth.
15001
15002 2005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
15003
15004 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
15005 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
15006 commands/i386/pc/vbetest.c.
15007
15008 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
15009 call grub_vbe_get_controller_info again, because the returned
15010 information is volatile.
15011 (grub_vbe_set_video_mode): Mostly rewritten.
15012 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
15013 grub_vbe_status_t correctly.
15014 (grub_vbe_get_video_mode_info): Likewise.
15015 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
15016 several if statements.
15017
15018 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
15019 * commands/i386/pc/vbeinfo.c: ... this.
15020
15021 * commands/i386/pc/vbe_test.c: Renamed to ...
15022 * commands/i386/pc/vbetest.c: ... this.
15023
15024 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
15025 ...
15026 (grub_cmd_vbeinfo): ... this. Save video modes before
15027 iterating. Skip a video mode, if it is not available, not enough
15028 information is given or it is monochrome. Show the memory
15029 model. Leave the interpretation of MODEVAR to grub_strtoul
15030 completely.
15031 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
15032 (GRUB_MOD_FINI): Likewise.
15033
15034 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
15035 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
15036 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
15037 duplicated grub_env_get. Leave the interpretation of MODEVAR to
15038 grub_strtoul completely.
15039 (real2pm): Removed.
15040 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
15041 (GRUB_MOD_FINI): Likewise.
15042
15043 * normal/misc.c: Include grub/mm.h.
15044
15045 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
15046 vbe_list_modes with vbetest.mod and vbeinfo.mod.
15047 (vbe_list_modes_mod_SOURCES): Removed.
15048 (vbe_list_modes_mod_CFLAGS): Likewise.
15049 (vbe_test_mod_SOURCES): Likewise.
15050 (vbe_test_mod_CFLAGS): Likewise.
15051 (vbeinfo_mod_SOURCES): New variable.
15052 (vbeinfo_mod_CFLAGS): Likewise.
15053 (vbetest_mod_SOURCES): Likewise.
15054 (vbetest_mod_CFLAGS): Likewise.
15055
15056 2005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
15057
15058 * normal/misc.c: New file.
15059
15060 * DISTLIST: Added normal/misc.c.
15061
15062 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
15063 DISK to HOOK. Call HOOK with DISK.
15064 * partmap/apple.c (apple_partition_map_iterate): Likewise.
15065 * partmap/pc.c (pc_partition_map_iterate): Likewise.
15066 * partmap/sun.c (sun_partition_map_iterate): Likewise.
15067
15068 * normal/menu_entry.c (struct screen): Added a new member
15069 "completion_shown".
15070 (completion_buffer): New global variable.
15071 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
15072 (store_completion): New function.
15073 (complete): Likewise.
15074 (clear_completions): Likewise.
15075 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
15076 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
15077 a tab, call complete.
15078
15079 * normal/completion.c (disk_dev): Removed.
15080 (print_simple_completion): Likewise.
15081 (print_partition_completion): Likewise.
15082 (print_func): New global variable.
15083 (add_completion): Do not take the arguments WHAT or PRINT any
15084 longer. Added a new argument TYPE. Instead of printing directly,
15085 call PRINT_FUNC if not NULL.
15086 All callers changed.
15087 (complete_device): Use a local variable DEV instead of
15088 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
15089 (grub_normal_do_completion): Take a new argument HOOK. Do not
15090 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
15091 empty string, return NULL instead.
15092 All callers changed.
15093
15094 * normal/cmdline.c (print_completion): New function.
15095
15096 * kern/partition.c (grub_partition_iterate): Add an argument DISK
15097 to HOOK.
15098 All callers changed.
15099
15100 * kern/disk.c (grub_print_partinfo): Removed.
15101
15102 * include/grub/partition.h (struct grub_partition_map): Add a new
15103 argument DISK into HOOK of ITERATE.
15104 (grub_partition_iterate): Add a new argument DISK to HOOK.
15105
15106 * include/grub/normal.h (enum grub_completion_type): New enum.
15107 (grub_completion_type_t): New type.
15108 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
15109 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
15110 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
15111 (GRUB_COMPLETION_TYPE_FILE): Likewise.
15112 (grub_normal_do_completion): Added a new argument HOOK.
15113 (grub_normal_print_device_info): New prototype.
15114
15115 * include/grub/disk.h (grub_print_partinfo): Removed.
15116
15117 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
15118 (normal_mod_SOURCES): Likewise.
15119 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
15120 (normal_mod_SOURCES): Likewise.
15121
15122 * commands/ls.c (grub_ls_list_disks): Use
15123 grub_normal_print_device_info instead of grub_print_partinfo. Free
15124 PNAME.
15125 (grub_ls_list_files): Use grub_normal_print_device_info instead of
15126 duplicating the code.
15127
15128 2005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
15129
15130 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
15131 follow GCS more precisely.
15132 * commands/i386/pc/vbe_test.c: Likewise.
15133 * include/grub/i386/pc/vbe.h: Likewise.
15134 * term/i386/pc/vesafb.c: Likewise.
15135 * video/i386/pc/vbe.c: Likewise.
15136
15137 2005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
15138
15139 * DISTLIST: Added term/i386/pc/vesafb.c
15140 DISTLIST: Added video/i386/pc/vbe.c
15141 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
15142 DISTLIST: Added commands/i386/pc/vbe_test.c.
15143 * commands/i386/pc/vbe_list_modes.c: New file.
15144 * commands/i386/pc/vbe_test.c: Likewise.
15145 * term/i386/pc/vesafb.c: Likewise.
15146 * video/i386/pc/vbe.c: Likewise.
15147 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
15148 (grub_vbe_probe) Added prototype.
15149 (grub_vbe_set_video_mode) Likewise.
15150 (grub_vbe_get_video_mode) Likewise.
15151 (grub_vbe_get_video_mode_info) Likewise.
15152 (grub_vbe_set_pixel_rgb) Likewise.
15153 (grub_vbe_set_pixel_index) Likewise.
15154 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
15155 (pkgdata_MODULES): Added vesafb.mod.
15156 (pkgdata_MODULES): Added vbe_list_modes.mod.
15157 (pkgdata_MODULES): Added vbe_test.mod.
15158 (vbe_mod_SOURCES): Added.
15159 (vbe_mod_CFLAGS): Likewise.
15160 (vesafb_mod_SOURCES): Likewise.
15161 (vesafb_mod_CFLAGS): Likewise.
15162 (vbe_list_modes_mod_SOURCES): Likewise.
15163 (vbe_list_modes_mod_CFLAGS): Likewise.
15164 (vbe_test_mod_SOURCES): Likewise.
15165 (vbe_test_mod_CFLAGS): Likewise.
15166
15167 2005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
15168
15169 * normal/command.c (grub_command_execute): If INTERACTIVE is
15170 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
15171 CMDLINE. Disable the pager if INTERACTIVE is true.
15172 All callers are changed.
15173
15174 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
15175 before reading a config file.
15176 * normal/main.c (read_config_file): Even if a command is not
15177 found, register it if it is within an entry.
15178
15179 * util/grub-emu.c: Include sys/types.h and unistd.h.
15180 (options): Added --hold.
15181 (struct arguments): Added a new member "hold".
15182 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
15183 missing.
15184 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
15185 cleared by a debugger, if it is not zero.
15186
15187 * include/grub/normal.h (grub_command_execute): Add an argument
15188 INTERACTIVE.
15189
15190 2005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
15191
15192 * DISTLIST: Added include/grub/i386/pc/vbe.h.
15193
15194 2005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
15195
15196 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
15197 program with another one, because the old one didn't detect a bug
15198 in gcc-3.4. Always use regparm 2, because the new test is still
15199 not enough for gcc-4.0. Someone must investigate a simple test
15200 case which detects a bug in gcc-4.0.
15201
15202 2005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
15203
15204 * DISTLIST: Added normal/completion.c.
15205
15206 * normal/completion.c: New file.
15207
15208 * term/i386/pc/console.c (grub_console_getwh): New function.
15209 (grub_console_term): Assign grub_console_getwh to getwh.
15210
15211 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
15212 function is defined in normal/completion.c as
15213 grub_normal_do_completion.
15214 (grub_cmdline_get): Use grub_normal_do_completion instead of
15215 grub_tab_complete.
15216
15217 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
15218 returns non-zero, otherwise return 0.
15219 (grub_partition_iterate): First, probe the partition map. Then,
15220 call ITERATE only for this partition map.
15221
15222 * kern/misc.c (grub_strncmp): Rewritten.
15223
15224 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
15225 returns non-zero. Otherwise return 0.
15226
15227 * include/grub/partition.h (grub_partition_map_iterate): Return
15228 int instead of void.
15229
15230 * include/grub/normal.h (grub_normal_do_completion): New prototype.
15231
15232 * include/grub/misc.h (grub_strncmp): Change the type of N to
15233 grub_size_t.
15234
15235 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
15236 of void.
15237
15238 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
15239 unsigned explicitly before comparing it with I.
15240
15241 * kern/main.c (grub_env_write_root): Add the attribute unused into
15242 VAR.
15243
15244 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
15245 normal/completion.c.
15246 (normal_mod_SOURCES): Likewise.
15247 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
15248 (normal_mod_SOURCES): Likewise.
15249
15250 * normal/command.c (grub_iterate_commands): If ITERATE returns
15251 non-zero, return one immediately.
15252
15253 2005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
15254
15255 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
15256 * kern/i386/pc/startup.S: Updated Global Descriptor table's
15257 descriptions.
15258 (grub_vbe_get_controller_info): New function.
15259 (grub_vbe_get_mode_info): Likewise.
15260 (grub_vbe_set_mode): Likewise.
15261 (grub_vbe_get_mode): Likewise.
15262 (grub_vbe_set_memory_window): Likewise.
15263 (grub_vbe_get_memory_window): Likewise.
15264 (grub_vbe_set_scanline_length): Likewise.
15265 (grub_vbe_get_scanline_length): Likewise.
15266 (grub_vbe_set_display_start): Likewise.
15267 (grub_vbe_get_display_start): Likewise.
15268 (grub_vbe_set_palette_data): Likewise.
15269 * include/grub/i386/pc/vbe.h: New file.
15270
15271 2005-08-08 Hollis Blanchard <hollis@penguinppc.org>
15272
15273 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
15274 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
15275 * DISTLIST: Likewise.
15276 * kern/ieee1275/of.c: Moved to ...
15277 * kern/ieee1275/ieee1275.c: ... here.
15278
15279 2005-08-08 Hollis Blanchard <hollis@penguinppc.org>
15280
15281 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
15282 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
15283 Pass 0 as `end' parameter to grub_strtoul().
15284
15285 2005-08-08 Hollis Blanchard <hollis@penguinppc.org>
15286
15287 * include/grub/powerpc/ieee1275/console.h: Do not include
15288 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
15289 ifdef.
15290 (grub_console_cur_color): Remove i386-specific prototype.
15291 (grub_console_real_putchar): Likewise.
15292 (grub_console_checkkey): Likewise.
15293 (grub_console_getkey): Likewise.
15294 (grub_console_getxy): Likewise.
15295 (grub_console_gotoxy): Likewise.
15296 (grub_console_cls): Likewise.
15297 (grub_console_setcursor): Likewise.
15298 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
15299 Include <grub/machine/console.h>.
15300 * term/ieee1275/ofconsole.c: Likewise.
15301
15302 2005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
15303
15304 * Makefile.in (LIBLZO): New variable.
15305
15306 * configure.ac: Check for LZO version 2.
15307
15308 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
15309 lzo/lzo1x.h instead of lzo1x.h.
15310
15311 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
15312 of -llzo.
15313
15314 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
15315 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
15316
15317 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
15318 copying the data from PARTITION to P.
15319
15320 2005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
15321
15322 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
15323 negative, unload the module.
15324
15325 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
15326 map is "pc_partition_map" but not "pc".
15327 (usage): Fix the description. The options are --boot-image and
15328 --core-image but not --boot-file or --core-file.
15329 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
15330 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
15331 DEFAULT_DIRECTORY.
15332
15333 * util/i386/pc/grub-install.in: Do not specify --boot-file or
15334 --core-file. Specify INSTALL_DEVICE as an argument.
15335
15336 * util/console.c: Include config.h.
15337 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
15338 [HAVE_NCURSES_H]: Include ncurses.h.
15339 [HAVE_CURSES_H]: Include curses.h.
15340 [!A_NORMAL] (A_NORMAL): Defined as zero.
15341 [!A_STANDOUT] (A_STANDOUT): Likewise.
15342
15343 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
15344 -lncurses.
15345 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
15346
15347 * configure.ac: Check for curses libraries and headers.
15348
15349 * Makefile.in (LIBCURSES): New variable.
15350
15351 * genmk.rb (Script::rule): Set the executable bits.
15352
15353 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
15354 name of the PC partition map is "pc_partition_map" but not "pc".
15355
15356 2005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
15357
15358 * util/i386/pc/grub-install.in (grub_probefs): New variable.
15359 (modules): Likewise.
15360 (usage): Added descriptions for --modules and --grub-probefs.
15361 Handle --modules and --grub-probefs. Save the arguments in MODULES
15362 and GRUB_PROBEFS, respectively.
15363 Auto-detect a filesystem module against GRUBDIR. If the result is
15364 empty and modules are not specified explicitly, abort the
15365 installation. Add the result to MODULES.
15366
15367 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
15368 disk/powerpc/ieee1275/ofdisk.c,
15369 include/grub/powerpc/ieee1275/init.h and
15370 term/powerpc/ieee1275/ofconsole.c.
15371 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
15372 term/ieee1275/ofconsole.c.
15373
15374 * include/grub/powerpc/ieee1275/console.h: Resurrected.
15375
15376 * COPYING: Upgraded to the latest version. Only the address of the
15377 FSF office has changed.
15378
15379 2005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
15380
15381 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
15382 kern/ieee1275.c with kern/ieee1275/of.c.
15383
15384 * kern/ieee1275.c: Moved to ...
15385 * kern/ieee1275/of.c: ... here.
15386
15387 2005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
15388
15389 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
15390 readability.
15391
15392 * config.guess: Updated to the latest version from gnulib.
15393 * config.sub: Likewise.
15394 * install.sh: Likewise.
15395 * mkinstalldirs: Likewise.
15396
15397 * include/grub/console.h: Removed. This file is arch-specific. Do
15398 not put this in include/grub.
15399
15400 * include/grub/i386/pc/console.h: Resurrected.
15401
15402 * util/console.c: Include grub/machine/console.h instead of
15403 grub/console.h.
15404 * util/grub-emu.c: Likewise.
15405
15406 2005-08-04 Marco Gerards <metgerards@student.han.nl>
15407
15408 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
15409 hardcoded value.
15410
15411 From Vincent Pelletier <subdino2004@yahoo.fr>
15412 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
15413 Redefined to use grub_getwh.
15414 (grub_term): New member named getwh.
15415 (grub_getwh): New prototype.
15416 * kern/term.c (grub_getwh): New function.
15417 * term/i386/pc/console.c (grub_console_getwh): New function.
15418 (grub_console_term): New member `getwh'.
15419 * term/i386/pc/vga.c (grub_vga_getwh): New function.
15420 (grub_vga_term): New member `getwh'.
15421 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
15422 grub_ssize_t.
15423 (grub_ofconsole_getw): New function.
15424 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
15425 (grub_ofconsole_term): New field named getwh and new initial
15426 value.
15427
15428 2005-08-03 Hollis Blanchard <hollis@penguinppc.org>
15429
15430 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
15431 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
15432 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
15433 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
15434 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
15435 of <grub/machine/ieee1275.h>.
15436 * commands/ieee1275/reboot.c: Likewise.
15437 * boot/powerpc/ieee1275/ieee1275.c: Move ...
15438 * kern/ieee1275.c: ... to here. All users updated. Change all
15439 parameter structs to use new type `grub_ieee1275_cell_t'.
15440 * term/powerpc/ieee1275/ofconsole.c: Move ...
15441 * term/ieee1275/ofconsole.c: ... to here. All users updated.
15442 * disk/powerpc/ieee1275/ofdisk.c: Move ...
15443 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
15444 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
15445 to return int.
15446 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
15447 Remove unused prototypes. All users updated.
15448 * include/grub/powerpc/ieee1275/console.h: Removed.
15449 * include/grub/powerpc/ieee1275/ieee1275.h: Define
15450 `grub_ieee1275_cell_t'.
15451 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
15452 Cast comparisons with -1 to the correct type.
15453 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
15454 type to match `grub_ieee1275_entry_fn'.
15455
15456 2005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
15457
15458 * DISTLIST: Added util/i386/pc/grub-probefs.c.
15459
15460 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
15461 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
15462 partmap/sun.c.
15463 (grub_probefs_SOURCES): New variable.
15464
15465 * util/i386/pc/grub-probefs.c: New file.
15466
15467 * util/i386/pc/grub-setup.c (main): Call
15468 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
15469 grub_hfs_init and grub_jfs_init to initialize the system. Call
15470 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
15471 grub_pc_partition_map_fini to finish the system.
15472
15473 2005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
15474
15475 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
15476 function.
15477 (grub_multiboot_load_elf32): Likewise.
15478 (grub_multiboot_is_elf64): Likewise.
15479 (grub_multiboot_load_elf64): Likewise.
15480 (grub_multiboot_load_elf): Likewise.
15481 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
15482 an ELF32 or ELF64 file.
15483 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
15484
15485 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
15486 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
15487 NULL before calling FS->LABEL.
15488 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
15489 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
15490 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
15491 before calling FS->LABEL.
15492
15493 2005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
15494
15495 * util/i386/pc/grub-install.in (datadir): New variable.
15496 (libdir): Removed.
15497 (pkgdatadir): New variable.
15498 (pkglibdir): Removed.
15499
15500 2005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
15501
15502 * DISTLIST: Added util/i386/pc/grub-install.in.
15503
15504 * util/i386/pc/grub-install.in: New file.
15505
15506 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
15507 (grub_install_SOURCES): Likewise.
15508
15509 * genmk.rb: Added support for scripts.
15510 (Script): New class.
15511 (scripts): New variable.
15512
15513 * Makefile.in (install-local): Install sbin_SCRIPTS by
15514 INSTALL_SCRIPT.
15515 (uninstall): Remove sbin_SCRIPTS.
15516
15517 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
15518 device, try to get a GRUB device by
15519 grub_util_biosdisk_get_grub_dev.
15520 Free DEST_DEV.
15521
15522 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
15523 description for --device-map.
15524
15525 2005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
15526
15527 Change the semantics of variable hooks. They now return strings
15528 instead of error values.
15529
15530 * util/i386/pc/grub-setup.c: Include grub/env.h.
15531 (setup): Use grub_device_set_root instead of grub_env_set.
15532
15533 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
15534 grub_env_get instead of grub_device_set_root and
15535 grub_device_get_root, respectively.
15536
15537 * kern/main.c (grub_env_write_root): New function.
15538 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
15539 grub_env_set instead of grub_device_set_root.
15540
15541 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
15542 many variables.
15543 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
15544 rather than calling ENV->WRITE_HOOK afterwards.
15545 (grub_env_get): Return the result of ENV->READ_HOOK rather than
15546 passing a pointer of a pointer.
15547 (grub_register_variable_hook): Change the types of "read_hook" and
15548 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
15549 respectively.
15550 Allocate the default empty string on the heap, because this string
15551 may be freed later.
15552
15553 * kern/device.c: Include grub/env.h.
15554 (grub_device_set_root): Removed.
15555 (grub_device_get_root): Likewise.
15556 (grub_device_open): Use grub_env_get instead of
15557 grub_device_get_root.
15558
15559 * include/grub/env.h (grub_env_read_hook_t): New type.
15560 (grub_env_write_hook_t): Likewise.
15561 (grub_env_var): Change the types of "read_hook" and "write_hook"
15562 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
15563 (grub_register_variable_hook): Likewise.
15564
15565 * include/grub/device.h (grub_device_set_root): Removed.
15566 (grub_device_set_root): Likewise.
15567
15568 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
15569 make sure that DIRNAME terminates with '/', so that
15570 grub_fat_find_dir will fail if PATH is not a directory.
15571
15572 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
15573 from DIRNAME.
15574 Use the qualifier auto for print_files and print_files_long.
15575 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
15576 as a regular file.
15577 Put a newline only if there is no error.
15578 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
15579 used.
15580
15581 2005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
15582
15583 * kern/partition.c (grub_partition_probe): Initialize PART to
15584 NULL. Otherwise, when no partition map is registered, this returns
15585 a garbage.
15586
15587 2005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
15588
15589 * partmap/apple.c (apple_partition_map_iterate): Check if POS
15590 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
15591 valid.
15592
15593 2005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
15594
15595 * commands/ls.c (grub_ls_list_disks): Print the filesystem
15596 information on each device, if it does not have partitions. Print
15597 "Device" instead of "Disk", because this function is not specific
15598 to disk devices.
15599
15600 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
15601 static to ensure that it is put on the memory rather than a
15602 register.
15603
15604 2005-07-17 Yoshinori Okuji <okuji@enbug.org>
15605
15606 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
15607 (grub_cat_init): Likewise.
15608 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
15609 (options): Likewise.
15610 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
15611 (grub_configfile_init): Likewise.
15612 * font/manager.c (GRUB_MOD_INIT): Likewise.
15613 * commands/help.c (GRUB_MOD_INIT): Likewise.
15614 (grub_help_init): Likewise.
15615 * normal/command.c (grub_command_init): Likewise.
15616 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
15617 * disk/loopback.c (grub_loop_init): Likewise.
15618 (GRUB_MOD_INIT): Likewise.
15619 * commands/ls.c (grub_ls_init): Likewise.
15620 (GRUB_MOD_INIT): Likewise.
15621 (options): Likewise.
15622 * commands/boot.c (grub_boot_init): Likewise.
15623 (GRUB_MOD_INIT): Likewise.
15624 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
15625 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
15626 (GRUB_MOD_INIT): Likewise.
15627 * commands/cmp.c (grub_cmp_init): Likewise.
15628 (GRUB_MOD_INIT): Likewise.
15629
15630 * normal/arg.c: Use <> instead of "" to include header files.
15631 (SHORT_ARG_HELP): New macro.
15632 (SHORT_ARG_USAGE): Likewise.
15633 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
15634 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
15635 descriptions.
15636 (find_short): Check if C is 'h' or 'u' explicitly.
15637 (grub_arg_show_help): Use space characters instead of tabs. Treat
15638 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
15639 are shown with --help and --usage only if they are not used for
15640 the command itself.
15641 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
15642 'h' and 'u'.
15643
15644 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
15645 const into "longarg". Change the type of "shortarg" to int.
15646
15647 2005-07-17 Yoshinori Okuji <okuji@enbug.org>
15648
15649 * boot/i386/pc/boot.S (boot_drive_check): New label.
15650
15651 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
15652 macro.
15653
15654 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
15655 which do not pass a boot drive correctly. Copied from GRUB Legacy.
15656
15657 2005-07-17 Yoshinori Okuji <okuji@enbug.org>
15658
15659 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
15660 When turning off Gate A20, skip the check and return immediately,
15661 because this is not fatal usually.
15662
15663 2005-07-17 Yoshinori Okuji <okuji@enbug.org>
15664
15665 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
15666 be 0x7C00 instead of 0x8000.
15667
15668 * boot/i386/pc/pxeboot.S: Rewritten.
15669
15670 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
15671 EXT_C.
15672 (gate_a20_check_state): Read a byte from 0x108000. Invert the
15673 result.
15674
15675 2005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
15676
15677 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
15678 robustness. This routine now supports a BIOS call and System
15679 Control Port A to modify the gate A20.
15680
15681 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
15682 Increased to 0x440.
15683
15684 2005-07-12 Hollis Blanchard <hollis@penguinppc.org>
15685
15686 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
15687 device path and resulting ihandle.
15688 (grub_ofdisk_close): dprintf the ihandle being closed.
15689 (grub_ofdisk_read): dprintf function parameters.
15690 * kern/mm.c (grub_mm_init_region): Likewise.
15691 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
15692 (grub_linux_boot): dprintf the Linux entry point, initrd address and
15693 size, and boot arguments.
15694 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
15695 before loading into memory.
15696 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
15697 before loading into memory.
15698
15699 2005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
15700
15701 * kern/mm.c: Added much documentation.
15702 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
15703 8, set to 5 instead of 8.
15704
15705 2005-07-10 Yoshinori Okuji <okuji@enbug.org>
15706
15707 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
15708
15709 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
15710 (grub_mkdevicemap_SOURCES): New variable.
15711
15712 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
15713 lib/device.c of GRUB Legacy.
15714
15715 2005-07-10 Yoshinori Okuji <okuji@enbug.org>
15716
15717 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
15718 instead of PATH is NULL.
15719
15720 2005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
15721
15722 * commands/cmp.c (BUFFER_SIZE): New macro.
15723 (grub_cmd_cmp): Close the right file at the right time. Compare
15724 only data just read. Don't report files of different size as
15725 identical. Dynamically allocate buffers. Move variable
15726 declarations at the beginning of function.
15727
15728 2005-07-09 Yoshinori Okuji <okuji@enbug.org>
15729
15730 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
15731 reverse.
15732
15733 2004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
15734
15735 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
15736 when backspace is pressed at beginning of line.
15737
15738 2005-07-03 Yoshinori Okuji <okuji@enbug.org>
15739
15740 * DISTLIST: Added genfslist.sh.
15741
15742 * normal/main.c (fs_module_list): New variable.
15743 (autoload_fs_module): New function.
15744 (read_fs_list): Likewise.
15745 (grub_normal_execute): Call read_fs_list.
15746
15747 * kern/fs.c (grub_fs_autoload_hook): New variable.
15748 (grub_fs_probe): Added support for auto-loading.
15749
15750 * include/grub/normal.h (struct grub_fs_module_list): New struct.
15751 (grub_fs_module_list_t): New type.
15752
15753 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
15754 (grub_fs_autoload_hook): New prototype.
15755
15756 * genfslist.sh: New file.
15757
15758 * genmk.rb: Added a rule to generate a filesystem list.
15759
15760 2005-06-30 Marco Gerards <metgerards@student.han.nl>
15761
15762 * configure.ac: Fix the test for cross-compiling.
15763
15764 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
15765 define GRUB_UTIL anymore.
15766
15767 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
15768 so this function works on other systems than just big endian.
15769 (load_modules): Likewise.
15770 (add_segments): Likewise.
15771
15772 2005-06-23 Hollis Blanchard <hollis@penguinppc.org>
15773
15774 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
15775 contains `l' modifier, get a long from va_arg().
15776
15777 2005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
15778
15779 * kern/mm.c (grub_free): If the next free block which is being
15780 merged is the first free block, set the first block to the block
15781 being freed.
15782 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
15783
15784 2005-05-08 Hollis Blanchard <hollis@penguinppc.org>
15785
15786 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
15787 `grub_ieee1275_chosen'.
15788
15789 2005-05-08 Hollis Blanchard <hollis@penguinppc.org>
15790
15791 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
15792 (grub_ieee1275_chosen): New variable.
15793 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
15794 `chosen'.
15795 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
15796 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
15797 Rename first argument to `phandle' for consistency.
15798 (grub_ieee1275_get_property_length): Likewise.
15799 (grub_ieee1275_next_property): Likewise. Change type of first argument
15800 to grub_ieee1275_phandle_t.
15801 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
15802 Move export next to declaration.
15803 (grub_ieee1275_chosen): New variable.
15804 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
15805 Correct cosmetic typo.
15806 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
15807 `grub_ieee1275_chosen'.
15808 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
15809 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
15810 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
15811 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
15812 `grub_ieee1275_chosen'.
15813
15814 2005-05-10 Hollis Blanchard <hollis@penguinppc.org>
15815
15816 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
15817 /chosen/bootargs.
15818 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
15819 /chosen/bootargs as "variable=value" pairs.
15820
15821 2005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
15822
15823 * include/grub/misc.h (grub_dprintf): New macro.
15824 (grub_real_dprintf): New prototype.
15825 (grub_strword): Likewise.
15826 (grub_iswordseparator): Likewise.
15827 * kern/misc.c (grub_real_dprintf): New function.
15828 (grub_strword): Likewise.
15829 (grub_iswordseparator): Likewise.
15830
15831 2005-04-30 Hollis Blanchard <hollis@penguinppc.org>
15832
15833 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
15834 (roundup): Remove macro.
15835 (grub_ieee1275_flags): Make static.
15836 (grub_ieee1275_realmode): Remove.
15837 (grub_ieee1275_test_flag): New function.
15838 (grub_ieee1275_set_flag): Likewise.
15839 (find_options): Rename to `grub_ieee1275_find_options'; update
15840 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
15841 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
15842 (cmain): New prototype.
15843 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
15844 `grub_ieee1275_flags' directly.
15845 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
15846 machine/biosdisk.h.
15847 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
15848 Don't include grub/machine/init.h.
15849 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
15850 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
15851 Remove prototype.
15852 (grub_ieee1275_realmode): Likewise.
15853 (grub_ieee1275_flag): New enum.
15854 (grub_ieee1275_test_flag): New prototype.
15855 (grub_ieee1275_set_flag): New prototype.
15856 * include/grub/powerpc/ieee1275/init.h: Remove file.
15857 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
15858 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
15859 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
15860 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
15861 comment.
15862 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
15863 `grub_ieee1275_test_flag'.
15864 (grub_ieee1275_encode_devname): Likewise.
15865
15866 2005-04-21 Hollis Blanchard <hollis@penguinppc.org>
15867
15868 * include/grub/powerpc/ieee1275/ieee1275.h
15869 (grub_ieee1275_encode_devname): New prototype.
15870 (grub_ieee1275_get_filename): Likewise.
15871 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
15872 function.
15873 (grub_set_prefix): Likewise.
15874 (grub_machine_init): Call grub_set_prefix.
15875 * kern/powerpc/ieee1275/openfw.c: Fix typos.
15876 (grub_parse_type): New enum.
15877 (grub_ieee1275_get_devargs): New function.
15878 (grub_ieee1275_get_devname): Likewise.
15879 (grub_ieee1275_parse_args): Likewise.
15880 (grub_ieee1275_get_filename): Likewise.
15881 (grub_ieee1275_encode_devname): Likewise.
15882
15883 2005-03-30 Marco Gerards <metgerards@student.han.nl>
15884
15885 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
15886 `grub_loader_unset'.
15887
15888 2005-03-26 Hollis Blanchard <hollis@penguinppc.org>
15889
15890 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
15891 instead of grub_ieee1275_interpret.
15892 (grub_halt_init): New function.
15893 (grub_halt_fini): Likewise.
15894 (GRUB_MOD_INIT): Correct message grammar.
15895 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
15896 instead of grub_ieee1275_interpret.
15897 (grub_reboot_init): New function.
15898 (grub_reboot_fini): Likewise.
15899 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
15900 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
15901 util/i386/pc/misc.c with commands/ieee1275/halt.c,
15902 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
15903 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
15904 function.
15905 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
15906 Add prototype.
15907 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
15908 prototype.
15909 (grub_halt): Likewise.
15910 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
15911 (cmain): Remove __attribute__((unused)).
15912 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
15913 (grub_heap_len): Likewise.
15914 (grub_machine_fini): New function.
15915 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
15916 (grub_halt): Likewise.
15917 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
15918 function.
15919 * util/powerpc/ieee1275/misc.c: New file.
15920
15921 2005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
15922
15923 * DISTLIST: New file.
15924 * gendistlist.sh: Likewise.
15925
15926 * Makefile.in (COMMON_DISTFILES): Removed.
15927 (BOOT_DISTFILES): Likewise.
15928 (CONF_DISTFILES): Likewise.
15929 (DISK_DISTFILES): Likewise.
15930 (FS_DISTFILES): Likewise.
15931 (INCLUDE_DISTFILES): Likewise.
15932 (KERN_DISTFILES): Likewise.
15933 (LOADER_DISTFILES): Likewise.
15934 (TERM_DISTFILES): Likewise.
15935 (UTIL_DISTFILES): Likewise.
15936 (DISTFILES): Likewise.
15937 (uninstall): Uninstall files in $(pkgdata_DATA).
15938 (DISTLIST): New target.
15939 (distdir): Use the contents of the file DISTLIST to get a list of
15940 distributed files.
15941
15942 2005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
15943
15944 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
15945 descriptor. This is ported from GRUB Legacy.
15946
15947 * gencmdlist.sh: Added an extra semicolon to make it work with
15948 old sed versions. Reported by Robert Bihlmeyer
15949 <robbe@orcus.priv.at>.
15950
15951 2005-03-08 Yoshinori Okuji <okuji@enbug.org>
15952
15953 Automatic loading of commands is supported.
15954
15955 * normal/main.c (read_command_list): New function.
15956 (grub_normal_execute): Call read_command_list.
15957
15958 * normal/command.c (grub_register_command): Return zero or CMD.
15959 Allocate CMD->NAME from the heap.
15960 Initialize CMD->MODULE_NAME to zero.
15961 Find the same name as well. If the same command is found and it is
15962 a dummy command, overwrite members. If it is not a dummy command,
15963 return zero.
15964 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
15965 (grub_command_find): If a dummy command is found, load a module
15966 and retry to find a command only once.
15967
15968 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
15969 make sure that each command is loaded.
15970
15971 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
15972 macro.
15973 (struct grub_command): Remove const from the member `name'.
15974 Add a new member `module_name'.
15975 (grub_register_command): Return grub_command_t.
15976
15977 * commands/help.c (grub_cmd_help): Call grub_command_find to make
15978 sure that each command is loaded.
15979
15980 * genmk.rb (PModule::rule): Specify a module name without the
15981 suffix ".mod" to gencmdlist.sh.
15982
15983 2005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
15984
15985 * gencmdlist.sh: New file.
15986
15987 * genmk.rb (PModule::rule): Generate a rule for a command list.
15988 Clean command.lst.
15989 Generate command.lst from $(COMMANDFILES).
15990
15991 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
15992 (DATA): Added $(pkgdata_DATA).
15993 (install-local): Install files in $(pkgdata_DATA).
15994
15995 2005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
15996
15997 * term/i386/pc/vga.c (debug_command): Removed.
15998 (GRUB_MOD_INIT): Do not register the command "debug".
15999
16000 From Hollis Blanchard:
16001 * commands/configfile.c: New file.
16002 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
16003 commands/configfile.c.
16004 (pkgdata_MODULES): Added configfile.mod.
16005 (configfile_mod_SOURCES): New variable.
16006 (configfile_mod_CFLAGS): Likewise.
16007 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
16008 commands/configfile.c.
16009 (pkgdata_MODULES): Added configfile.mod.
16010 (configfile_mod_SOURCES): New variable.
16011 (configfile_mod_CFLAGS): Likewise.
16012 * util/grub-emu.c (main): Call grub_configfile_init and
16013 grub_configfile_fini.
16014 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
16015 prototype.
16016 [GRUB_UTIL] (grub_configfile_fini): Likewise.
16017
16018 2005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
16019
16020 * normal/arg.c (grub_arg_show_help): Do not show the bug report
16021 address.
16022
16023 * commands/help.c (grub_cmd_help): Do not print newlines after
16024 the last command in print_command_help.
16025
16026 2005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
16027
16028 * commands/default.h: New file.
16029 * commands/timeout.h: Likewise.
16030 * normal/context.c: Likewise.
16031
16032 * util/misc.c: Do not include sys/times.h.
16033 Include sys/time.h and grub/machine/time.h.
16034 (grub_get_rtc): Rewritten with gettimeofday.
16035
16036 * util/grub-emu.c (main): Call grub_default_init and
16037 grub_timeout_init before grub_normal_init, and call
16038 grub_timeout_fini and grub_default_fini after grub_main.
16039
16040 * util/console.c (grub_ncurses_checkkey): Return the read
16041 character or -1.
16042
16043 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
16044 timeouts.
16045
16046 * normal/main.c (read_config_file): Push MENU. If this fails,
16047 print an error and wait for a user input.
16048 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
16049 If a menu is empty or an error occurs, pop MENU.
16050 (grub_normal_execute): Pop and free MENU after grub_menu_run
16051 returns.
16052
16053 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
16054
16055 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
16056 include time.h.
16057 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
16058 without GRUB_UTIL.
16059 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
16060 time.h.
16061 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
16062 without GRUB_UTIL.
16063
16064 * include/grub/normal.h (struct grub_menu_list): New struct.
16065 (grub_menu_list_t): New type.
16066 (struct grub_context): New struct.
16067 (grub_context_t): New type.
16068 (grub_register_command): Got rid of EXPORT_FUNC.
16069 (grub_unregister_command): Likewise.
16070 (grub_context_get): New prototype.
16071 (grub_context_get_current_menu): Likewise.
16072 (grub_context_push_menu): Likewise.
16073 (grub_context_pop_menu): Likewise.
16074 [GRUB_UTIL] (grub_default_init): Likewise.
16075 [GRUB_UTIL] (grub_default_fini): Likewise.
16076 [GRUB_UTIL] (grub_timeout_init): Likewise.
16077 [GRUB_UTIL] (grub_timeout_fini): Likewise.
16078
16079 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
16080 commands/timeout.c and normal/context.c.
16081 (pkgdata_MODULES): Added default.mod and timeout.mod.
16082 (normal_mod_SOURCES): Added normal/context.c.
16083 (default_mod_SOURCES): New variable.
16084 (default_mod_CFLAGS): Likewise.
16085 (timeout_mod_SOURCES): Likewise.
16086 (timeout_mod_CFLAGS): Likewise.
16087 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
16088 conf/i386-pc.rmk.
16089 (pkgdata_MODULES): Added default.mod and timeout.mod.
16090 (normal_mod_SOURCES): Added normal/context.c.
16091 (default_mod_SOURCES): New variable.
16092 (default_mod_CFLAGS): Likewise.
16093 (timeout_mod_SOURCES): Likewise.
16094 (timeout_mod_CFLAGS): Likewise.
16095
16096 * Makefile.in (all-local): Added $(MKFILES).
16097
16098 2005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
16099
16100 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
16101 (grub_emu_SOURCES): Likewise.
16102 (pkgdata_MODULES): Add `sun.mod'.
16103 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
16104 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
16105 `partmap/sun.c'.
16106 (pkgdata_MODULES): Add `sun.mod'.
16107 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
16108 * include/grub/partition.h (grub_sun_partition_map_init): New
16109 prototype.
16110 (grub_sun_partition_map_fini): Likewise.
16111 * partmap/sun.c: New file.
16112 * util/grub-emu.c (main): Initialize and de-initialize the sun
16113 partitionmap support.
16114
16115 2005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
16116
16117 This implements an Emacs-like menu entry editor.
16118
16119 * normal/menu_entry.c: New file.
16120
16121 * util/console.c (grub_ncurses_putchar): Translate some Unicode
16122 characters to ASCII.
16123 (saved_char): New variable.
16124 (grub_ncurses_checkkey): Rewritten completely.
16125 (grub_ncurses_getkey): Likewise.
16126 (grub_ncurses_init): Call raw instead of cbreak.
16127
16128 * normal/menu.c (print_entry): Do not put a space.
16129 (init_page): Renamed to ...
16130 (grub_menu_init_page): ... this. All callers changed.
16131 (edit_menu_entry): Removed.
16132 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
16133
16134 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
16135
16136 * kern/misc.c (grub_vprintf): Call grub_refresh.
16137
16138 * normal/menu.c (DISP_LEFT): Renamed to ...
16139 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
16140 * normal/menu.c (DISP_UP): Renamed to ...
16141 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
16142 * normal/menu.c (DISP_RIGHT): Renamed to ...
16143 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
16144 * normal/menu.c (DISP_DOWN): Renamed to ...
16145 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
16146 * normal/menu.c (DISP_HLINE): Renamed to ...
16147 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
16148 * normal/menu.c (DISP_VLINE): Renamed to ...
16149 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
16150 * normal/menu.c (DISP_UL): Renamed to ...
16151 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
16152 * normal/menu.c (DISP_UR): Renamed to ...
16153 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
16154 * normal/menu.c (DISP_LL): Renamed to ...
16155 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
16156 * normal/menu.c (DISP_LR): Renamed to ...
16157 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
16158 * normal/menu.c (TERM_WIDTH): Renamed to ...
16159 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
16160 * normal/menu.c (TERM_HEIGHT): Renamed to ...
16161 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
16162 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
16163 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
16164 * normal/menu.c (TERM_MARGIN): Renamed to ...
16165 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
16166 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
16167 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
16168 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
16169 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
16170 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
16171 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
16172 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
16173 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
16174 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
16175 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
16176 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
16177 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
16178 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
16179 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
16180 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
16181 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
16182 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
16183 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
16184 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
16185 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
16186 All callers changed.
16187
16188 * include/grub/normal.h: New prototype.
16189
16190 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
16191 normal/menu_entry.c.
16192 (normal_mod_SOURCES): Likewise.
16193 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
16194 (normal_mod_SOURCES): Likewise.
16195
16196 2005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
16197
16198 * include/grub/normal.h (grub_halt_init): New prototype.
16199 (grub_halt_fini): Likewise.
16200 (grub_reboot_init): Likewise.
16201 (grub_reboot_fini): Likewise.
16202
16203 * util/grub-emu.c: Include signal.h.
16204 (main_env): New global variable.
16205 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
16206 catch C-c.
16207 (grub_machine_fini): New function.
16208 (main): Call grub_halt_init and grub_reboot_init before
16209 grub_main, and grub_reboot_fini and grub_halt_fini after it.
16210 Call setjmp with MAIN_ENV to go back afterwards.
16211 Call grub_machine_fini right before return.
16212
16213 * include/grub/util/misc.h: Include setjmp.h.
16214 (main_env): New prototype.
16215
16216 * include/grub/kernel.h (grub_machine_fini): New prototype.
16217 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
16218 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
16219
16220 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
16221 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
16222 * term/i386/pc/console.c (grub_console_fini): Likewise.
16223
16224 * util/i386/pc/misc.c: New file.
16225
16226 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
16227 util/i386/pc/misc.c, commands/i386/pc/halt.c and
16228 commands/i386/pc/reboot.c.
16229
16230 2005-02-14 Guillem Jover <guillem@hadrons.org>
16231
16232 * include/grub/dl.h (grub_dl_check_header): New prototype.
16233 (grub_arch_dl_check_header): Change return type to grub_err_t,
16234 remove size parameter and export function. Update all callers.
16235 * kern/dl.c (grub_dl_check_header): New function.
16236 (grub_dl_load_core): Use `grub_dl_check_header' instead of
16237 `grub_arch_dl_check_header'. Check ELF type. Check if sections
16238 are inside the core.
16239 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
16240 independent ELF header checks.
16241 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
16242 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
16243 `grub_dl_check_header' instead of explicit checks. Check for the
16244 ELF type.
16245 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
16246 `grub_dl_check_header' instead of explicit checks. Remove arch
16247 specific ELF header checks.
16248
16249 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
16250 argument SIZE.
16251
16252 2005-02-13 Hollis Blanchard <hollis@penguinppc.org>
16253
16254 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
16255 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
16256
16257 2005-02-12 Hollis Blanchard <hollis@penguinppc.org>
16258
16259 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
16260 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
16261 (part_map_iterate): Clear `grub_errno' and return 0 if
16262 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
16263 * partmap/amiga.c (amiga_partition_map_iterate): Return
16264 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
16265 * partmap/apple.c (apple_partition_map_iterate): Likewise.
16266
16267 2005-02-01 Guillem Jover <guillem@hadrons.org>
16268
16269 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
16270 help info.
16271
16272 2005-01-31 Marco Gerards <metgerards@student.han.nl>
16273
16274 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
16275 Removed prototype.
16276 (grub_rescue_cmd_linux): New prototype.
16277 (grub_rescue_cmd_initrd): Likewise.
16278 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
16279 `bi_rec'.
16280 (grub_linux_release_mem): Release the memory for the initrd.
16281 (grub_load_linux): Renamed from this...
16282 (grub_rescue_cmd_linux): ...To this. Changed all callers.
16283 Changed `entry' not to be static. Loop over memory regions to
16284 find another one when the default fails.
16285 (grub_rescue_cmd_initrd): New function.
16286 (grub_linux_init): Remove function.
16287 (grub_linux_fini): Likewise.
16288 (GRUB_MOD_INIT): Register `initrd'.
16289 (GRUB_MOD_FINI): Unregister `initrd'.
16290 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
16291 Function removed.
16292 (grub_linux_normal_fini): Likewise.
16293 (GRUB_MOD_INIT): Register `initrd'.
16294 (GRUB_MOD_FINI): Unregister `initrd'.
16295
16296 2005-01-31 Marco Gerards <metgerards@student.han.nl>
16297
16298 * commands/help.c: New file.
16299 * normal/arg.c (show_help): Renamed to...
16300 (grub_arg_show_help): ... this.
16301 * commands/i386/pc/halt.c: New file.
16302 * commands/i386/pc/reboot.c: Likewise.
16303 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
16304 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
16305 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
16306 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
16307 variables.
16308 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
16309 `commands/help.c'.
16310 (pkgdata_MODULES): Add `help.mod'.
16311 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
16312 * grub/i386/pc/init.h (grub_reboot): New prototype.
16313 (grub_halt): Likewise.
16314 * include/grub/normal.h (grub_arg_show_help): New prototype.
16315 (grub_help_init): Likewise.
16316 (grub_help_fini): Likewise.
16317 * util/grub-emu.c (main): Initialize and deinitialize the help
16318 command.
16319
16320 * normal/cmdline.c (grub_cmdline_get): Doc fix.
16321
16322 * normal/command.c (grub_command_init): Fixed the description of
16323 the `set' and `unset' commands.
16324
16325 2005-01-31 Marco Gerards <metgerards@student.han.nl>
16326
16327 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
16328 function.
16329 * commands/ieee1275/halt.c: New file.
16330 * commands/ieee1275/reboot.c: Likewise.
16331 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
16332 `__attribute__ ((unused))'. Some GCS related fixed.
16333 (grub_suspend_init) [GRUB_UTIL]: Function removed.
16334 (grub_suspend_fini): Likewise.
16335 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
16336 and `halt.mod'.
16337 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
16338 (halt_mod_CFLAGS): New variables.
16339 * include/grub/powerpc/ieee1275/ieee1275.h
16340 (grub_ieee1275_interpret): New prototype.
16341
16342 2005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
16343
16344 * include/grub/misc.h (memmove): New prototype.
16345 (memcpy): Likewise.
16346
16347 2005-01-22 Hollis Blanchard <hollis@penguinppc.org>
16348
16349 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
16350 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
16351
16352 2005-01-22 Marco Gerards <metgerards@student.han.nl>
16353
16354 * kern/misc.c (grub_strndup): Function rewritten.
16355
16356 2005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
16357
16358 * normal/menu.c (TERM_WIDTH): Macro redefined.
16359 (TERM_TOP_BORDER_Y): Likewise.
16360 (draw_border): Replaced while-loop by a for-loop. Make the number
16361 of lines consistent with the number of lines displayed in
16362 print_entries. Added a margin below the rectangle.
16363 (print_entry): Make the entry fit in the rectangle.
16364 (print_entries): Display the scroll arrows next to the right
16365 border.
16366
16367 2005-01-21 Marco Gerards <metgerards@student.han.nl>
16368
16369 * fs/minix.c (grub_minix_find_file): Reserve more space for
16370 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
16371 `grub_strncpy' to copy `path' into it.
16372
16373 2005-01-21 Marco Gerards <metgerards@student.han.nl>
16374
16375 Add the loopback device, a device via which files can be accessed
16376 as devices.
16377
16378 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
16379 (pkgdata_MODULES): Add loopback.mod.
16380 (loopback_mod_SOURCES): New variable.
16381 (loopback_mod_CFLAGS): Likewise.
16382 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
16383 `disk/loopback.c'.
16384 (pkgdata_MODULES): Add loopback.mod.
16385 (loopback_mod_SOURCES): New variable.
16386 (loopback_mod_CFLAGS): Likewise.
16387 * disk/loopback.c: new file.
16388 * include/grub/normal.h (grub_loop_init): New prototype.
16389 (grub_loop_fini): New prototype.
16390 * util/grub-emu.c (main): Initialize and de-initialize loopback
16391 support.
16392 * include/grub/disk.h (grub_disk_dev_id): Add
16393 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
16394
16395 2005-01-20 Hollis Blanchard <hollis@penguinppc.org>
16396
16397 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
16398 function.
16399 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
16400 (suspend_mod_SOURCES): New variable.
16401 (suspend_mod_CFLAGS): Likewise.
16402 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
16403 New prototype.
16404 * commands/ieee1275/suspend.c: New file.
16405
16406 2005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
16407
16408 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
16409 ((unused))' to `__attribute__ ((used))'.
16410 (GRUB_MOD_FINI): Likewise.
16411 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
16412 * genmk.rb (PModule): Assign space to common symbols when linking
16413 modules.
16414
16415 2005-01-20 Marco Gerards <metgerards@student.han.nl>
16416
16417 * include/grub/mm.h (grub_mm_init_region): Change the type of the
16418 `unsigned' arguments to `grub_size_t'.
16419 (grub_malloc): Likewise.
16420 (grub_realloc): Likewise.
16421 (grub_memalign): Likewise.
16422 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
16423 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
16424 * util/misc.c (grub_malloc): Likewise.
16425 (grub_realloc): Likewise.
16426 * kern/mm.c (get_header_from_pointer): Change the casts to
16427 `unsigned' into a cast to `grub_size_t'.
16428
16429 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
16430 point to `currnode' when `currnode' is changed.
16431
16432 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
16433 Schottelius <nico-linux@schottelius.org>.
16434
16435 2005-01-09 Hollis Blanchard <hollis@penguinppc.org>
16436
16437 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
16438 (note_path): Remove variable.
16439 (GRUB_IEEE1275_NOTE_NAME): New macro.
16440 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
16441 (grub_ieee1275_note_hdr): New structure.
16442 (grub_ieee1275_note_desc): Likewise.
16443 (grub_ieee1275_note): Likewise.
16444 (load_note): Remove `dir' argument. All callers updated. Remove
16445 `note_img' and `path'. Do not load a file from `note_path'.
16446 Initialize a struct grub_ieee1275_note and write that to `out'.
16447 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
16448
16449 2005-01-05 Marco Gerards <metgerards@student.han.nl>
16450
16451 * util/misc.c (grub_util_read_image): Revert last change. It
16452 called `grub_util_read_at', which seeks from the beginning of the
16453 file.
16454
16455 2005-01-04 Hollis Blanchard <hollis@penguinppc.org>
16456
16457 * TODO: Add note about endianness in grub-mkimage.
16458 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
16459 section.
16460 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
16461 (grub_mkimage_SOURCES): New target.
16462 * include/grub/kernel.h (grub_start_addr): Remove variable.
16463 (grub_end_addr): Likewise.
16464 (grub_total_module_size): Likewise.
16465 (grub_kernel_image_size): Likewise.
16466 (GRUB_MODULE_MAGIC): New constant.
16467 (grub_module_info): New structure.
16468 (grub_arch_modules_addr): New prototype.
16469 (grub_get_end_addr): Remove prototype.
16470 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
16471 * include/grub/powerpc/ieee1275/kernel.h: New file.
16472 * include/grub/util/misc.h (grub_util_get_fp_size): New
16473 prototype.
16474 (grub_util_read_at): Likewise.
16475 (grub_util_write_image_at): Likewise.
16476 * kern/main.c (grub_get_end_addr): Remove function.
16477 (grub_load_modules): Call grub_arch_modules_addr instead of using
16478 grub_end_addr. Look for a grub_module_info struct in memory. Use
16479 the grub_module_info fields instead of calling grub_get_end_addr
16480 as loop conditions. Move grub_add_unused_region code here.
16481 (grub_add_unused_region): Remove function.
16482 * kern/i386/pc/init.c: Include grub/cache.h.
16483 (grub_machine_init): Remove call to grub_get_end_addr. Remove
16484 one call to add_mem_region.
16485 (grub_arch_modules_addr): New function.
16486 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
16487 (grub_total_module_size): Likewise.
16488 Include grub/machine/kernel.h.
16489 (grub_arch_modules_addr): New function.
16490 * util/grub-emu.c (grub_end_addr): Remove variable.
16491 (grub_total_module_size): Likewise.
16492 (grub_arch_modules_addr): New function.
16493 * util/misc.c: Include unistd.h.
16494 (grub_util_get_fp_size): New function.
16495 (grub_util_read_at): Likewise.
16496 (grub_util_write_image_at): Likewise.
16497 (grub_util_read_image): Call grub_util_read_at.
16498 (grub_util_write_image): Call grub_util_write_image_at.
16499 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
16500 additional memory in kernel_img for a struct grub_module_info.
16501 Fill in that grub_module_info.
16502 * util/powerpc/ieee1275/grub-mkimage.c: New file.
16503
16504 2005-01-03 Hollis Blanchard <hollis@penguinppc.org>
16505
16506 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
16507 New function.
16508 * include/grub/powerpc/ieee1275/ieee1275.h
16509 (grub_ieee1275_milliseconds): New prototype.
16510 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
16511 Change to 1000.
16512 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
16513 grub_ieee1275_milliseconds.
16514
16515 2005-01-03 Hollis Blanchard <hollis@penguinppc.org>
16516
16517 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
16518 variable.
16519 (find_options): New function.
16520 (cmain): Call find_options.
16521 * include/grub/powerpc/ieee1275/ieee1275.h
16522 (grub_ieee1275_realmode): New extern variable.
16523 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
16524 grub_map if grub_ieee1275_realmode is false.
16525
16526 2004-12-29 Marco Gerards <metgerards@student.han.nl>
16527
16528 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
16529 lines are inserted and make it work like readline. Reported by
16530 Vincent Pelletier <subdino2004@yahoo.fr>.
16531
16532 2004-12-28 Marco Gerards <metgerards@student.han.nl>
16533
16534 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
16535
16536 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
16537 `kern/powerpc/cache.S'.
16538
16539 2004-12-27 Marco Gerards <metgerards@student.han.nl>
16540
16541 * genmk.rb: Handle the `Program' class in the main loop. Written
16542 by Johan Rydberg <jrydberg@gnu.org>.
16543 (Program): New class.
16544 (programs): New variable.
16545 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
16546 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
16547 instead of "grub/kernel.h". Include <grub/machine/init.h>.
16548 (help_arch): Function removed.
16549 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
16550 `powerpc/libgcc.h' and `loader.h'.
16551 (pkgdata_PROGRAMS): New variable.
16552 (sbin_UTILITIES): Variable removed.
16553 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
16554 (grubof_SOURCES): Variable re-defined so it only includes the
16555 core functionality.
16556 (grubof_CFLAGS): Remove `-DGRUBOF'.
16557 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
16558 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
16559 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
16560 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
16561 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
16562 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
16563 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
16564 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
16565 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
16566 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
16567 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
16568 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
16569 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
16570 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
16571 (pc_mod_CFLAGS): New variables.
16572 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
16573 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
16574 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
16575 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
16576 Moved from here...
16577 * include/grub/i386/pc/init.h (grub_os_area_addr)
16578 (rub_os_area_size): ... to here.
16579 * include/grub/powerpc/ieee1275/ieee1275.h
16580 (grub_ieee1275_entry_fn): Export symbol.
16581 * include/grub/powerpc/ieee1275/init.h: New file.
16582 * include/grub/powerpc/libgcc.h: Likewise.
16583 * include/grub/cache.h: Likewise.
16584 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
16585 <hollis@penguinppc.org>.
16586 * kern/dl.c: Include <grub/cache.h>.
16587 (grub_dl_flush_cache): New function.
16588 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
16589 for this module.
16590 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
16591 (grub_console_init): Removed prototypes.
16592 (grub_machine_init): Don't initialize the modules anymore.
16593 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
16594 static.
16595 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
16596 Macro undef removed.
16597 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
16598 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
16599 relocation `R_PPC_REL32'. Return an error when the relocation is
16600 unknown.
16601 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
16602 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
16603 * util/misc.c (grub_arch_sync_caches): Likewise.
16604
16605 2004-12-19 Marco Gerards <metgerards@student.han.nl>
16606
16607 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
16608 `symlist.c', add `grubof_symlist.c'.
16609 (symlist.c): Variable removed.
16610 (grubof_HEADERS): Variable added.
16611 (grubof_symlist.c): New target.
16612 (kernel_syms.lst): Use `grubof_HEADERS' instead of
16613 `kernel_img_HEADERS'.
16614 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
16615 * kern/powerpc/dl.c: New file.
16616 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
16617 Function removed.
16618 (grub_arch_dl_relocate_symbols): Likewise.
16619 (grub_register_exported_symbols): Likewise.
16620
16621 2004-12-13 Marco Gerards <metgerards@student.han.nl>
16622
16623 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
16624 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
16625 to fail instead. Reported by Vincent Pelletier
16626 <subdino2004@yahoo.fr>.
16627
16628 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
16629 it is not allocated. Reported by Vincent Pelletier
16630 <subdino2004@yahoo.fr>.
16631
16632 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
16633 output so the output looks better.
16634
16635 2004-12-04 Marco Gerards <metgerards@student.han.nl>
16636
16637 Modulize the partition map support and add support for the amiga
16638 partition map.
16639
16640 * commands/ls.c: Include <grub/partition.h> instead of
16641 <grub/machine/partition.h>.
16642 * kern/disk.c: Likewise.
16643 * kern/rescue.c: Likewise.
16644 * loader/i386/pc/chainloader.c: Likewise.
16645 * normal/cmdline.c: Likewise.
16646 * kern/powerpc/ieee1275/init.c: Likewise.
16647 (grub_machine_init): Call `grub_pc_partition_map_init',
16648 `grub_amiga_partition_map_init' and
16649 `grub_apple_partition_map_init'.
16650 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
16651 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
16652 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
16653 `partition.h' and `pc_partition.h'.
16654 (grub_setup_SOURCES): Remove
16655 `disk/i386/pc/partition.c'. Add `kern/partition.c',
16656 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
16657 (grub_emu_SOURCES): Likewise.
16658 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
16659 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
16660 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
16661 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
16662 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
16663 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
16664 (grubof_SOURCES): Likewise.
16665 * disk/i386/pc/partition.c: File removed.
16666 * disk/powerpc/ieee1275/partition.c: Likewise.
16667 * include/grub/powerpc/ieee1275/partition.h: Likewise.
16668 * include/grub/i386/pc/partition.h: Likewise.
16669 * kern/partition.c: New file.
16670 * partmap/amiga.c: Likewise.
16671 * partmap/apple.c: Likewise.
16672 * partmap/pc.c: Likewise.
16673 * include/grub/partition.h: Likewise..
16674 * include/grub/pc_partition.h: Likewise.
16675 * util/grub-emu.c: Include <grub/partition.h> instead of
16676 <grub/machine/partition.h>.
16677 (main): Call `grub_pc_partition_map_init',
16678 `grub_amiga_partition_map_init' and
16679 `grub_apple_partition_map_init' and deinitialize afterwards.
16680 * util/i386/pc/biosdisk.c: Include `#include
16681 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
16682 `<grub/machine/partition.h>'.
16683 * util/i386/pc/grub-setup.c: Likewise.
16684 * util/i386/pc/biosdisk.c: Likewise.
16685 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
16686 partition information in case of a PC partition.
16687 * util/i386/pc/grub-setup.c: Include `#include
16688 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
16689 `<grub/machine/partition.h>'.
16690 (setup): Only access the PC specific partition information in case
16691 of a PC partition.
16692
16693 2004-11-17 Hollis Blanchard <hollis@penguinppc.org>
16694
16695 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
16696 (grub_longjmp): Likewise.
16697 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
16698 20.
16699 * normal/powerpc/setjmp.S: New file.
16700 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
16701 `normal/powerpc/setjmp.S'.
16702 (grubof_CFLAGS): Add `-DGRUBOF'.
16703 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
16704 [GRUB_UTIL && !GRUBOF].
16705
16706 2004-11-16 Marco Gerards <metgerards@student.han.nl>
16707
16708 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
16709 property named `name'. Correctly handle the error returned by
16710 `grub_ieee1275_finddevice' if a device can not be opened.
16711
16712 2004-11-02 Hollis Blanchard <hollis@penguinppc.org>
16713
16714 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
16715 `actual' for negativity.
16716 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
16717 kern/fshelp.c.
16718
16719 2004-11-01 Marco Gerards <metgerards@student.han.nl>
16720
16721 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
16722 (PAGE_OFFSET): New macro.
16723 (CRTC_ADDR_PORT): Likewise.
16724 (CRTC_DATA_PORT): Likewise.
16725 (START_ADDR_HIGH_REGISTER): Likewise.
16726 (START_ADDR_LOW_REGISTER): Likewise.
16727 (GRAPHICS_ADDR_PORT): Likewise.
16728 (GRAPHICS_DATA_PORT): Likewise.
16729 (READ_MAP_REGISTER): Likewise.
16730 (INPUT_STATUS1_REGISTER): Likewise.
16731 (INPUT_STATUS1_VERTR_BIT): Likewise.
16732 (page): New variable.
16733 (wait_vretrace): New function.
16734 (set_read_map): Likewise.
16735 (set_start_address): Likewise.
16736 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
16737 the right page.
16738 (check_vga_mem): Take the page into account.
16739 (write_char): Likewise.
16740 (write_cursor): Likewise.
16741 (scroll_up): Likewise. Copy the page to the page that is not
16742 shown and switch between both pages.
16743 (grub_vga_putchar): Fix off by one error.
16744 (grub_vga_cls): Wait for the vertical retrace. Take the page into
16745 account.
16746
16747 2004-11-01 Marco Gerards <metgerards@student.han.nl>
16748
16749 Add support for iso9660 (including rockridge).
16750
16751 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
16752 (iso9660_mod_SOURCES): New variable.
16753 (iso9660_mod_CFLAGS): Likewise.
16754 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
16755 * include/grub/fs.h (grub_iso9660_init): New prototype.
16756 * util/grub-emu.c (main): Call `grub_iso9660_init'.
16757 * fs/iso9660.c: New file.
16758
16759 * include/grub/misc.h (grub_strncat): New prototype.
16760 * kern/misc.c (grub_strncat): New function.
16761
16762 * fs/hfs.c (grub_hfs_mount): Translate the error
16763 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
16764 * fs/jfs.c (grub_jfs_mount): Likewise.
16765 * fs/ufs.c (grub_ufs_mount): Likewise.
16766
16767 2004-10-28 Hollis Blanchard <hollis@penguinppc.org>
16768
16769 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
16770 which initialized BAT registers.
16771 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
16772 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
16773 Move from here...
16774 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
16775 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
16776 ... to here.
16777 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
16778 (grub_mapclaim): Likewise.
16779 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
16780 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
16781 hand.
16782
16783 2004-10-19 Hollis Blanchard <hollis@penguinppc.org>
16784
16785 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
16786 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
16787 -ffreestanding and -msoft-float.
16788
16789 2004-10-15 Hollis Blanchard <hollis@penguinppc.org>
16790
16791 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
16792 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
16793 set in grub_ieee1275_flags.
16794
16795 2004-10-14 Hollis Blanchard <hollis@penguinppc.org>
16796
16797 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
16798 prototype.
16799 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
16800 grub_console_init first.
16801 Change the memory range used for grub_ieee1275_claim and
16802 grub_mm_init_region.
16803 Print an error message if the claim fails.
16804 Include <grub/misc.h>.
16805
16806 2004-10-13 Hollis Blanchard <hollis@penguinppc.org>
16807
16808 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
16809 Call grub_children_iterate for device nodes of type `scsi',
16810 `ide', or `ata'.
16811 (grub_ofdisk_open): Remove manual device alias resolution.
16812 Fix memory leak when device cannot be opened.
16813 * include/grub/powerpc/ieee1275/ieee1275.h
16814 (grub_children_iterate): New prototype.
16815 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
16816 New function.
16817 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
16818 Return -1 if args.size was -1.
16819
16820 2004-10-11 Hollis Blanchard <hollis@penguinppc.org>
16821
16822 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
16823 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
16824 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
16825 Open Firmware's memory for it; claim memory from _start to _end.
16826 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
16827 (_end): New extern.
16828 (_start): Zero BSS from __bss_start to _end.
16829 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
16830 New extern.
16831 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
16832
16833 2004-10-11 Hollis Blanchard <hollis@penguinppc.org>
16834
16835 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
16836 -1 if args.base was -1.
16837
16838 2004-10-08 Hollis Blanchard <hollis@penguinppc.org>
16839
16840 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
16841 escape sequence instead of a literal ^L. Also call
16842 grub_ofconsole_gotoxy.
16843
16844 2004-10-03 Hollis Blanchard <hollis@penguinppc.org>
16845
16846 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
16847 void * arguments to grub_addr_t. All callers updated. Also make
16848 the `result' argument optional.
16849 (grub_ieee1275_release): change void * arguments to grub_addr_t.
16850 All callers updated.
16851
16852 2004-09-22 Hollis Blanchard <hollis@penguinppc.org>
16853
16854 * commands/ls.c (grub_ls_list_files): Use the string following the
16855 initial ')', if present, as the filesystem path.
16856 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
16857
16858 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
16859
16860 2004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
16861
16862 Make the source code of the menu interface more readable.
16863
16864 * normal/menu.c: Include grub/mm.h.
16865 (TERM_WIDTH): New macro.
16866 (TERM_HEIGHT): Likewise.
16867 (TERM_INFO_HEIGHT): Likewise.
16868 (TERM_MARGIN): Likewise.
16869 (TERM_SCROLL_WIDTH): Likewise.
16870 (TERM_TOP_BORDER_Y): Likewise.
16871 (TERM_LEFT_BORDER_X): Likewise.
16872 (TERM_BORDER_WIDTH): Likewise.
16873 (TERM_MESSAGE_HEIGHT): Likewise.
16874 (TERM_BORDER_HEIGHT): Likewise.
16875 (TERM_NUM_ENTRIES): Likewise.
16876 (TERM_FIRST_ENTRY_Y): Likewise.
16877 (TERM_ENTRY_WIDTH): Likewise.
16878 (TERM_CURSOR_X): Likewise.
16879 (draw_border): Use macros instead of magic numbers.
16880 (print_entry): Likewise.
16881 (print_entries): Likewise.
16882 (run_menu): Likewise. Also, handle the key 'e'.
16883 (run_menu_entry): Ignore empty command lines.
16884 (print_message): Added a new argument EDIT. If EDIT is true,
16885 print a different message.
16886 (init_page): Likewise.
16887 (edit_menu_entry): New function. Not implemented yet.
16888
16889 2004-09-17 Marco Gerards <metgerards@student.han.nl>
16890
16891 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
16892 can be loaded from normal mode.
16893
16894 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
16895 `multiboot.mod'.
16896 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
16897 (multiboot_mod_CFLAGS): New variables.
16898 * loader/i386/pc/linux_normal.c: New file.
16899 * loader/i386/pc/multiboot_normal.c: Likewise.
16900
16901 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
16902 attribute `unused'.
16903
16904 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
16905 `fdiro' to read the mode information from instead of `diro'.
16906
16907 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
16908 looking up a symlink.
16909
16910 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
16911 macro.
16912 * normal/command.c (grub_command_execute): Don't parse the
16913 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
16914 flags of the command.
16915
16916 * normal/menu.c (grub_menu_run): Fix typo.
16917
16918 2004-09-14 Hollis Blanchard <hollis@penguinppc.org>
16919
16920 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
16921
16922 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
16923 `y + 1' instead of `y - 1'.
16924
16925 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
16926
16927 2004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
16928
16929 From Hollis Blanchard <hollis@penguinppc.org>:
16930 * kern/misc.c (memmove): New alias for grub_memmove.
16931 (memcmp): New alias for grub_memcmp.
16932 (memset): New alias for grub_memset.
16933 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
16934 Change "int handle" to "grub_ieee1275_phandle_t handle".
16935 * include/grub/powerpc/ieee1275/ieee1275.h
16936 (grub_ieee1275_get_property): Likewise.
16937
16938 2004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
16939
16940 Added normal mode command `chainloader' as module chain.mod, which
16941 depends on normal.mod and _chain.mod.
16942
16943 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
16944 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
16945 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
16946 Deleted prototype.
16947 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
16948 but arguments parsing moved to ...
16949 (grub_chainloader_cmd): ... here. New function.
16950 * include/grub/i386/pc/chainloader.h: New file.
16951 * loader/i386/pc/chainloader_normal.c: Likewise.
16952
16953 2004-09-11 Marco Gerards <metgerards@student.han.nl>
16954
16955 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
16956 (grub_mkimage_LDFLAGS): Likewise.
16957 (grub_emu_SOURCES): Likewise.
16958 (kernel_img_HEADERS): Added fshelp.h.
16959 * fs/ext2.c: Include <grub/fshelp.h>.
16960 (FILETYPE_REG): New macro.
16961 (FILETYPE_INO_REG): Likewise.
16962 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
16963 Changed all users.
16964 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
16965 all users.
16966 (grub_fshelp_node): New struct.
16967 (grub_ext2_data): Added member `diropen'. Changed member `inode'
16968 to a pointer.
16969 (grub_ext2_get_file_block): Removed function.
16970 (grub_ext2_read_block): New function.
16971 (grub_ext2_read_file): Replaced parameter `data' by `node'.
16972 This function was written.
16973 (grub_ext2_mount): Read the root inode. Create a diropen struct.
16974 (grub_ext2_find_file): Removed function.
16975 (grub_ext2_read_symlink): New function.
16976 (grub_ext2_iterate_dir): Likewise.
16977 (grub_ext2_open): Rewritten.
16978 (grub_ext2_dir): Rewritten.
16979 * include/grub/fshelp.h: New file.
16980 * fs/fshelp.c: Likewise.
16981
16982 2004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
16983
16984 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
16985 (print_message): Add a missing newline.
16986 (run_menu): Added timeout support.
16987 (run_menu_entry): New local function.
16988 (grub_menu_run): Added support for booting.
16989
16990 * kern/loader.c (grub_loader_is_loaded): New function.
16991
16992 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
16993 (grub_get_rtc): Exported.
16994
16995 * include/grub/i386/pc/time.h: Include grub/symbol.h.
16996 (grub_get_rtc): Exported.
16997
16998 * include/grub/normal.h (struct grub_command_list): Remove
16999 constant from the member `command'.
17000
17001 * include/grub/loader.h (grub_loader_is_loaded): Declared.
17002
17003 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
17004
17005 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
17006
17007 2004-08-28 Marco Gerards <metgerards@student.han.nl>
17008
17009 Add support for the JFS filesystem.
17010
17011 * fs/jfs.c: New file.
17012 * include/grub/fs.h (grub_jfs_init): New prototype.
17013 (grub_jfs_fini): New prototype.
17014 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
17015 (grub_emu_SOURCES): Likewise.
17016 (pkgdata_MODULES): Add jfs.mod.
17017 (jfs_mod_SOURCES): New variable.
17018 (jfs_mod_CFLAGS): Likewise.
17019 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
17020 (grubof_SOURCES): Likewise.
17021 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
17022
17023 * fs/fat.c (grub_fat_find_dir): Convert the filename little
17024 endian to the host endian.
17025 (grub_fat_utf16_to_utf8): Move function from there...
17026 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
17027 the endianness of the source string anymore.
17028 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
17029
17030 2004-08-24 Marco Gerards <metgerards@student.han.nl>
17031
17032 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
17033 (grub_boot_fini) [GRUB_UTIL]: Likewise.
17034 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
17035 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
17036
17037 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
17038 (grub_hfs_iterate_dir): Make the function static. Add prototypes
17039 for `node_found' and `it_dir'.
17040 (grub_hfs_dir): Add prototype for `dir_hook'.
17041
17042 * fs/minix.c (grub_minix_get_file_block): Add prototype for
17043 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
17044 and `indir32' to silence a gcc warning.
17045
17046 * include/grub/fs.h (grub_hfs_init): New prototype.
17047 (grub_hfs_fini): Likewise.
17048
17049
17050 2004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
17051
17052 Each disk device has its own id now. This is useful to make use
17053 of multiple disk devices.
17054
17055 * include/grub/disk.h (grub_disk_dev_id): New enum.
17056 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
17057 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
17058
17059 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
17060 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
17061
17062 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
17063 GRUB_DISK_DEVICE_OFDISK_ID as an id.
17064
17065 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
17066 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
17067
17068 * include/grub/disk.h (struct grub_disk_dev): Added a new member
17069 "id" which is used by the cache manager.
17070
17071 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
17072 of just "GRUB".
17073
17074 2004-08-18 Marco Gerards <metgerards@student.han.nl>
17075
17076 * fs/hfs.c: New file.
17077 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
17078 (grub_emu_SOURCES): Likewise.
17079 (pkgdata_MODULES): Add hfs.mod.
17080 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
17081 (grubof_SOURCES): Likewise.
17082 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
17083
17084 * include/grub/misc.h (grub_strncasecmp): Add prototype.
17085 * kern/misc.c (grub_strncasecmp): Add function.
17086
17087 2004-08-14 Marco Gerards <metgerards@student.han.nl>
17088
17089 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
17090 with parentheses.
17091
17092 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
17093 (grub_ext2_dir): In case the directory entry type is unknown, read
17094 it from the inode.
17095
17096 2004-08-02 Peter Bruin <pjbruin@dds.nl>
17097
17098 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
17099 grub_load_linux instead of grub_rescue_cmd_linux as second
17100 argument of grub_rescue_register_command.
17101
17102 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
17103
17104 2004-07-27 Marco Gerards <metgerards@student.han.nl>
17105
17106 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
17107 function.
17108 * commands/boot.c: Remove the check for `GRUB_UTIL'.
17109 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
17110 `loader/powerpc/ieee1275/linux.c',
17111 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
17112 * include/grub/powerpc/ieee1275/ieee1275.h
17113 (grub_ieee1275_release): New prototype.
17114 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
17115 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
17116 normal, boot, linux and linux_normal.
17117 * loader/powerpc/ieee1275/linux.c: New file.
17118 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
17119
17120 2004-07-12 Marco Gerards <metgerards@student.han.nl>
17121
17122 * normal/arg.c (grub_arg_parse): Correct error handling after
17123 reallocating the argumentlist (check if `argl' is not null instead
17124 of checking if `args' is not null).
17125 * kern/mm.c (grub_realloc): Return the same pointer when using the
17126 same region, instead of returning the header address.
17127
17128 2004-07-11 Marco Gerards <metgerards@student.han.nl>
17129
17130 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
17131 one block instead of two when looking for the initial partition.
17132 (grub_partition_probe): Initialize the local variable `p' with 0.
17133 Use base 10 for the grub_strtoul call.
17134 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
17135 need for one local variable.
17136 (grub_strtoul): Don't add the new value to `num', instead of that
17137 just assign it.
17138
17139 2004-07-11 Marco Gerards <metgerards@student.han.nl>
17140
17141 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
17142 (pxeboot_img_SOURCES): New variable.
17143 (pxeboot_img_ASFLAGS): Likewise.
17144 (pxeboot_img_LDFLAGS): Likewise.
17145 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
17146 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
17147 <lode_leroy@hotmail.com>.
17148
17149 2004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
17150
17151 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
17152 there was no input.
17153
17154 2004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
17155
17156 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
17157 the history buffer logic.
17158
17159 2004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
17160
17161 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
17162 (FILETYPE_INO_SYMLINK): New macros.
17163 (grub_ext2_find_file): Check if the node is a directory using the
17164 inode stat information instead of using the filetype in the
17165 dirent. Exclude the first character of an absolute symlink.
17166 (grub_ext2_dir): Mask out the filetype part of the mode member of
17167 the inode.
17168
17169 2004-05-24 Marco Gerards <metgerards@student.han.nl>
17170
17171 Add support for UFS version 1 and 2. Add support for the minix
17172 filesystem version 1 and 2, both the variants with 14 and 30 long
17173 filenames.
17174
17175 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
17176 fs/minix.c.
17177 (grub_emu_SOURCES): Likewise.
17178 (pkgdata_MODULES): Add ufs.mod and minix.mod.
17179 (ufs_mod_SOURCES): New variable.
17180 (ufs_mod_CFLAGS): Likewise.
17181 (minix_mod_SOURCES): Likewise.
17182 (minix_mod_CFLAGS): Likewise.
17183 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
17184 fs/minix.c.
17185 (grubof_SOURCES): Likewise.
17186 * fs/ufs.c: New file.
17187 * fs/minix.c: New file.
17188 * include/grub/fs.h (grub_ufs_init): New prototype.
17189 (grub_ufs_fini): Likewise.
17190 (grub_minix_init): Likewise.
17191 (grub_minix_fini): Likewise.
17192 * util/grub-emu.c (main): Initialize and deinitialize UFS and
17193 minix fs.
17194
17195 2004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
17196
17197 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
17198 commands/ls.c, commands/terminal.c, commands/boot.c,
17199 commands/cmp.c and commands/cat.c.
17200 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
17201
17202 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
17203 "env.h"
17204
17205 2004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
17206
17207 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
17208 and grub_, respectively. Because the conversion is trivial and
17209 mechanical, I omit the details here. Please refer to the CVS
17210 if you need more information.
17211
17212 2004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
17213
17214 * include/pupa: Renamed to ...
17215 * include/grub: ... this.
17216 * util/i386/pc/pupa-mkimage.c: Renamed to ...
17217 * util/i386/pc/grub-mkimage.c: ... this.
17218 * util/i386/pc/pupa-setup.c: Renamed to ...
17219 * util/i386/pc/grub-setup.c: ... this.
17220 * util/pupa-emu.c: Renamed to ...
17221 * util/grub-emu.c: ... this.
17222
17223 2004-03-29 Marco Gerards <metgerards@student.han.nl>
17224
17225 Add support for the newworld apple macintosh (PPC). This has been
17226 tested on the powerbook 2000 only. It only adds support for
17227 generic ieee1275 functions, console and disk support. This should
17228 be easy to port to other architectures with support for Open
17229 Firmware.
17230
17231 * configure.ac: Accept the powerpc as host_cpu. In the case of
17232 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
17233 specific tests are only executed while building for the i386.
17234 Inverse test for crosscompile.
17235 * genmk.rb (Utility): Allow assembler files.
17236 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
17237 * conf/powerpc-ieee1275.rmk: New file.
17238 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
17239 * disk/powerpc/ieee1275/partition.c: Likewise.
17240 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
17241 * include/pupa/powerpc/ieee1275/console.h: Likewise.
17242 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
17243 * include/pupa/powerpc/ieee1275/time.h: Likewise.
17244 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
17245 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
17246 * include/pupa/powerpc/ieee1275/loader.h
17247 * include/pupa/powerpc/setjmp.h: Likewise.
17248 * include/pupa/powerpc/types.h: Likewise.
17249 * kern/powerpc/ieee1275/init.c: Likewise.
17250 * kern/powerpc/ieee1275/openfw.c: Likewise.
17251 * term/powerpc/ieee1275/ofconsole.c: Likewise.
17252
17253 These files were written by Johan Rydberg
17254 (jrydberg@night.trouble.net) and I only modified them slightly.
17255
17256 * boot/powerpc/ieee1275/cmain.c: New file.
17257 * boot/powerpc/ieee1275/crt0.S: Likewise.
17258 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
17259 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
17260
17261 2004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
17262
17263 * Makefile.in: Update copyright.
17264 * genmodsrc.sh: Likewise.
17265 * gensymlist.sh: Likewise.
17266 * term/i386/pc/vga.c: Indent correctly.
17267
17268 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
17269 bugreporting address.
17270 * util/i386/pc/pupa-setup.c (usage): Likewise,
17271 (main): Call pupa_ext2_init and pupa_ext2_fini.
17272
17273 * fs/fat.c (log2): Renamed to ...
17274 (fat_log2): ... this.
17275 All callers changed.
17276 * kern/misc.c (memcpy): Alias to pupa_memmove.
17277 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
17278 lvalue cast.
17279 * util/console.c (pupa_ncurses_fini): Return 0.
17280
17281 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
17282 Move fail label here.
17283 [__GNU__]: Don't warn when using stat.
17284 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
17285 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
17286 long int. Use strtol instead of strtoul.
17287
17288 2004-03-14 Marco Gerards <metgerards@student.han.nl>
17289
17290 * commands/boot.c: New file.
17291 * commands/cat.c: Likewise.
17292 * commands/cmp.c: Likewise.
17293 * commands/ls.c: Likewise.
17294 * commands/terminal.c: Likewise.
17295 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
17296 (pupa_register_command): Changed interface to match the new
17297 argument parser.
17298 (pupa_command_execute): Changed (almost rewritten) so it uses
17299 pupa_split_command. Added support for setting variables using the
17300 syntax `foo=bar'.
17301 (rescue_command): Changed to work with the new argument parser.
17302 (terminal_command): Moved from here to commands/terminal.c.
17303 (set_command): New function.
17304 (unset_command): New function.
17305 (insmod_command): New function.
17306 (rmmod_command): New function.
17307 (lsmod_command): New function.
17308 (pupa_command_init): Don't initialize the command terminal
17309 anymore. Initialize the commands set, unset, insmod, rmmod and
17310 lsmod.
17311 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
17312 (kernel_img_HEADERS): Add arg.h and env.h.
17313 (pupa_mkimage_LDFLAGS): Add kern/env.c.
17314 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
17315 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
17316 normal/arg.c.
17317 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
17318 terminal.mod.
17319 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
17320 (boot_mod_SOURCES): New variable.
17321 (terminal_mod_SOURCES): Likewise.
17322 (ls_mod_SOURCES): Likewise.
17323 (cmp_mod_SOURCES): Likewise.
17324 (cat_mod_SOURCES): Likewise.
17325
17326 * normal/arg.c: New file.
17327 * kern/env.c: Likewise.
17328 * include/pupa/arg.h: Likewise.
17329 * include/pupa/env.h: Likewise.
17330 * font/manager.c (font_command): Changed to match argument parsing
17331 interface changes.
17332 (PUPA_MOD_INIT): Likewise.
17333 * hello/hello.c (pupa_cmd_hello): Likewise.
17334 (PUPA_MOD_INIT): Likewise.
17335 * include/pupa/disk.h: Include <pupa/device.h>.
17336 (pupa_print_partinfo): New prototype.
17337 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
17338 (pupa_dl_get_prefix): Likewise.
17339 * include/pupa/misc.h: Include <pupa/err.h>.
17340 (pupa_isgraph): New prototype.
17341 (pupa_isdigit): Likewise.
17342 (pupa_split_cmdline): Likewise.
17343 * include/pupa/normal.h: Include <pupa/arg.h>.
17344 (pupa_command): Changed the prototype of the member `func' to
17345 match the argument parsing interface. Added member `options'.
17346 (pupa_register_command): Updated to match function.
17347 (pupa_arg_parse): New prototype.
17348 (pupa_hello_init) [PUPA_UTIL]: New prototype.
17349 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
17350 (pupa_ls_init) [PUPA_UTIL]: Likewise.
17351 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
17352 (pupa_cat_init) [PUPA_UTIL]: Likewise.
17353 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
17354 (pupa_boot_init) [PUPA_UTIL]: Likewise.
17355 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
17356 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
17357 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
17358 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
17359 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
17360 * kern/disk.c: Include <pupa/file.h>.
17361 (pupa_print_partinfo): New function.
17362 * kern/dl.c: Include <pupa/env.h>.
17363 (pupa_dl_dir): Variable removed.
17364 (pupa_dl_load): Use the environment variable `prefix' instead of
17365 the variable pupa_dl_dir.
17366 (pupa_dl_set_prefix): Function removed.
17367 (pupa_dl_get_prefix): Likewise.
17368 * kern/i386/pc/init.c: Include <pupa/env.h>.
17369 (pupa_machine_init): Use the environment variable `prefix' instead of
17370 using pupa_dl_set_prefix to set the prefix.
17371 * kern/main.c: Include <pupa/env.h>.
17372 (pupa_set_root_dev): Use the environment variable `prefix' instead of
17373 using pupa_dl_get_prefix to get the prefix.
17374 * kern/misc.c: Include <pupa/env.h>.
17375 (pupa_isdigit): New function.
17376 (pupa_isgraph): Likewise.
17377 (pupa_ftoa): Likewise.
17378 (pupa_vsprintf): Added support for printing values of the type
17379 `double'. Make it possible to format variable output when using
17380 formatting like `%1.2%f'.
17381 (pupa_split_cmdline): New function.
17382 * kern/rescue.c: Include <pupa/env.h>.
17383 (next_word): Removed function.
17384 (pupa_rescue_cmd_prefix): Likewise.
17385 (pupa_rescue_cmd_set): New function.
17386 (pupa_rescue_cmd_unset): New function.
17387 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
17388 split the command line instead of splitting it here. Added
17389 support for setting variables using the syntax `foo=bar'. Don't
17390 initialize the prefix command anymore. Initialized the set and
17391 unset commands.
17392 * normal/cmdline.c: Include <pupa/env.h>.
17393 (pupa_tab_complete): Added prototypes for print_simple_completion,
17394 print_partition_completion, add_completion, iterate_commands,
17395 iterate_dev, iterate_part and iterate_dir. Moved code to print
17396 partition information from here to kern/disk.c.
17397 (pupa_cmdline_run): Don't check if the function exists anymore.
17398 * normal/main.c: Include <pupa/env.h>.
17399 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
17400 instead of using pupa_dl_get_prefix to get the prefix.
17401 * term/i386/pc/vga.c: Include <pupa/arg.h>.
17402 (check_vga_mem): Cast pointers to `void *' to silence a gcc
17403 warning.
17404 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
17405 (pupa_vga_setcolor): Declare unused variables with `__attribute__
17406 ((unused))' to silence a gcc warning.
17407 (pupa_vga_setcolor): Likewise.
17408 (debug_command): Changed to match argument parsing
17409 interface changes.
17410 * util/pupa-emu.c: Include <pupa/env.h>.
17411 (options): Added 0's for unused fields to silence a gcc warning.
17412 (argp): Likewise.
17413 (main): Use the environment variable `prefix' instead of using
17414 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
17415 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
17416 and terminal.
17417
17418 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
17419 * util/misc.c: Include <malloc.h>.
17420 (pupa_malloc): Rewritten so errors are correctly reported.
17421 (pupa_realloc): Likewise.
17422 (pupa_memalign): Likewise.
17423 (pupa_mm_init_region): Declare unused variables with
17424 `__attribute__ ((unused))' to silence a gcc warning.
17425 * normal/i386/setjmp.S: Remove tab at the end of the file to
17426 silence a gcc warning.
17427 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
17428 variables with `__attribute__ ((unused))' to silence a gcc
17429 warning.
17430 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
17431 local variable i unsigned to silence a gcc warning.
17432
17433 * kern/term.c: Include <pupa/misc.h>.
17434 (pupa_more_lines): New variable.
17435 (pupa_more): Likewise.
17436 (pupa_putcode): When the pager is active pause at the end of every
17437 screen.
17438 (pupa_set_more): New function.
17439 * include/pupa/term.h (pupa_set_more): New prototype.
17440
17441
17442 2004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
17443
17444 Now this project is GRUB 2 rather than PUPA. The location of
17445 the CVS repository was moved to GRUB's.
17446
17447 * configure.ac: Use bug-grub as the reporting address.
17448 Use GRUB instead of PUPA.
17449 Change the version number to 1.90.
17450
17451 2004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
17452
17453 * genkernsyms.sh: Updated copyright information.
17454 * genmk.rb: Likewise.
17455 * genmodsrc.sh: Likewise.
17456 * gensymlist.sh: Likewise.
17457 * boot/i386/pc/boot.S: Likewise.
17458 * boot/i386/pc/diskboot.S: Likewise.
17459 * disk/i386/pc/biosdisk.c: Likewise.
17460 * disk/i386/pc/partition.c: Likewise.
17461 * font/manager.c: Likewise.
17462 * fs/ext2.c: Likewise.
17463 * fs/fat.c: Likewise.
17464 * include/pupa/boot.h: Likewise.
17465 * include/pupa/device.h: Likewise.
17466 * include/pupa/disk.h: Likewise.
17467 * include/pupa/dl.h: Likewise.
17468 * include/pupa/elf.h: Likewise.
17469 * include/pupa/err.h: Likewise.
17470 * include/pupa/file.h: Likewise.
17471 * include/pupa/font.h: Likewise.
17472 * include/pupa/fs.h: Likewise.
17473 * include/pupa/kernel.h: Likewise.
17474 * include/pupa/loader.h: Likewise.
17475 * include/pupa/misc.h: Likewise.
17476 * include/pupa/mm.h: Likewise.
17477 * include/pupa/net.h: Likewise.
17478 * include/pupa/normal.h: Likewise.
17479 * include/pupa/rescue.h: Likewise.
17480 * include/pupa/setjmp.h: Likewise.
17481 * include/pupa/symbol.h: Likewise.
17482 * include/pupa/term.h: Likewise.
17483 * include/pupa/types.h: Likewise.
17484 * include/pupa/i386/setjmp.h: Likewise.
17485 * include/pupa/i386/types.h: Likewise.
17486 * include/pupa/i386/pc/biosdisk.h: Likewise.
17487 * include/pupa/i386/pc/boot.h: Likewise.
17488 * include/pupa/i386/pc/console.h: Likewise.
17489 * include/pupa/i386/pc/init.h: Likewise.
17490 * include/pupa/i386/pc/kernel.h: Likewise.
17491 * include/pupa/i386/pc/linux.h: Likewise.
17492 * include/pupa/i386/pc/loader.h: Likewise.
17493 * include/pupa/i386/pc/memory.h: Likewise.
17494 * include/pupa/i386/pc/multiboot.h: Likewise.
17495 * include/pupa/i386/pc/partition.h: Likewise.
17496 * include/pupa/i386/pc/time.h: Likewise.
17497 * include/pupa/i386/pc/vga.h: Likewise.
17498 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
17499 * include/pupa/util/getroot.h: Likewise.
17500 * include/pupa/util/misc.h: Likewise.
17501 * include/pupa/util/resolve.h: Likewise.
17502 * kern/device.c: Likewise.
17503 * kern/disk.c: Likewise.
17504 * kern/dl.c: Likewise.
17505 * kern/err.c: Likewise.
17506 * kern/file.c: Likewise.
17507 * kern/fs.c: Likewise.
17508 * kern/loader.c: Likewise.
17509 * kern/main.c: Likewise.
17510 * kern/misc.c: Likewise.
17511 * kern/mm.c: Likewise.
17512 * kern/rescue.c: Likewise.
17513 * kern/term.c: Likewise.
17514 * kern/i386/dl.c: Likewise.
17515 * kern/i386/pc/init.c: Likewise.
17516 * kern/i386/pc/lzo1x.S: Likewise.
17517 * kern/i386/pc/startup.S: Likewise.
17518 * loader/i386/pc/chainloader.c: Likewise.
17519 * loader/i386/pc/linux.c: Likewise.
17520 * loader/i386/pc/multiboot.c: Likewise.
17521 * normal/cmdline.c: Likewise.
17522 * normal/command.c: Likewise.
17523 * normal/main.c: Likewise.
17524 * normal/menu.c: Likewise.
17525 * normal/i386/setjmp.S: Likewise.
17526 * term/i386/pc/console.c: Likewise.
17527 * term/i386/pc/vga.c: Likewise.
17528 * util/console.c: Likewise.
17529 * util/genmoddep.c: Likewise.
17530 * util/misc.c: Likewise.
17531 * util/pupa-emu.c: Likewise.
17532 * util/resolve.c: Likewise.
17533 * util/unifont2pff.rb: Likewise.
17534 * util/i386/pc/biosdisk.c: Likewise.
17535 * util/i386/pc/getroot.c: Likewise.
17536 * util/i386/pc/pupa-mkimage.c: Likewise.
17537 * util/i386/pc/pupa-setup.c: Likewise.
17538
17539 2004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
17540
17541 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
17542 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
17543 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
17544 reading and reset it after reading.
17545 (pupa_ext2_close): Return PUPA_ERR_NONE.
17546
17547 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
17548 Correct value.
17549 (struct linux_kernel_header): Add kernel_version and
17550 initrd_addr_max.
17551 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
17552 pupa_file_read succeeds.
17553 (pupa_rescue_cmd_initrd): Implement.
17554
17555 2003-12-03 Marco Gerards <metgerards@student.han.nl>
17556
17557 * fs/ext2.c (pupa_ext2_label): New function.
17558 (pupa_ext2_fs): Added label.
17559 * fs/fat.c (pupa_fat_label): New function.
17560 (pupa_fat_fs): Added label.
17561 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
17562
17563 * kern/misc.c (pupa_strndup): New function.
17564 * include/pupa/misc.h (pupa_strndup): New prototype.
17565
17566 * include/pupa/normal.h: Include <pupa/err.h>.
17567 (pupa_set_history): New prototype.
17568 (pupa_iterate_commands): New prototype.
17569 * normal/cmdline.c: Include <pupa/machine/partition.h>,
17570 <pupa/disk.h>, <pupa/file.h>.
17571 (hist_size): New variable.
17572 (hist_lines): Likewise.
17573 (hist_end): Likewise.
17574 (hist_used): Likewise.
17575 (pupa_set_history): New function.
17576 (pupa_history_get): Likewise.
17577 (pupa_history_add): Likewise.
17578 (pupa_history_replace): Likewise.
17579 (pupa_tab_complete): Likewise.
17580 (pupa_cmdline_run): Added tab completion and history buffer. Tab
17581 completion shows partitionnames while completing partitions, this
17582 feature was suggested by Jeff Bailey.
17583 * normal/command.c (pupa_iterate_commands): New function.
17584 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
17585 (pupa_normal_init): Initialize history buffer.
17586 (PUPA_MOD_INIT): Likewise.
17587 (pupa_normal_fini): Free the history buffer.
17588 (PUPA_MOD_FINI): Likewise.
17589
17590 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
17591 key.
17592
17593 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
17594 * configure.ac [i386]: Check for regparam bug.
17595 (NESTED_FUNC_ATTR) [! i386]: Defined.
17596
17597 2003-11-17 Marco Gerards <metgerards@student.han.nl>
17598
17599 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
17600 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
17601 (pupa_emu_SOURCES): New variable.
17602 (pupa_emu_LDFLAGS): Likewise.
17603 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
17604 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
17605 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
17606 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
17607 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
17608 (pupa_jmp_buf): New typedef.
17609 (pupa_setjmp) [PUPA_UTIL]: New macro.
17610 (pupa_longjmp) [PUPA_UTIL]: Likewise.
17611 * include/pupa/term.h (struct pupa_term): New member `refresh'.
17612 (pupa_refresh): New prototype.
17613 * include/pupa/util/getroot.h: New file.
17614 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
17615 it.
17616 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
17617 (pupa_rescue_cmd_cat): Likewise.
17618 (pupa_rescue_cmd_ls): Likewise.
17619 (pupa_rescue_cmd_testload): Likewise.
17620 (pupa_rescue_cmd_lsmod): Likewise.
17621 * normal/cmdline.c (pupa_cmdline_get): Likewise.
17622 * normal/menu.c (run_menu): Likewise.
17623 * kern/term.c (pupa_cls): Likewise.
17624 (pupa_refresh): New function.
17625 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
17626 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
17627 * util/console.c: New file.
17628
17629 * util/i386/pc/getroot.c: New file.
17630 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
17631 (pupa_putchar): New function.
17632 (pupa_refresh): Likewise.
17633 (xgetcwd): Function moved to ...
17634 (strip_extra_slashes): Likewise.
17635 (get_prefix): Likewise.
17636 * util/i386/pc/getroot.c: ... here.
17637 (find_root_device): Function moved and renamed to...
17638 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
17639 Changed all callers.
17640 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
17641 and renamed to...
17642 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
17643 Changed all callers.
17644 * util/misc.c (pupa_memalign): New function.
17645 (pupa_mm_init_region): Likewise.
17646 (pupa_register_exported_symbols): Likewise.
17647 (pupa_putchar): Function removed.
17648 * util/pupa-emu.c: New file.
17649
17650 2003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
17651
17652 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
17653 (_multiboot_mod_SOURCES): New variable.
17654 (_multiboot_mod_CFLAGS): Likewise.
17655 * loader/i386/pc/multiboot.c: New file.
17656 * include/pupa/i386/pc/multiboot.h: Likewise.
17657 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
17658 (pupa_multiboot_real_boot): New function.
17659 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
17660 (pupa_multiboot_real_boot): New prototype.
17661 (pupa_rescue_cmd_multiboot): Likewise
17662 (pupa_rescue_cmd_module): Likewise.
17663
17664 * kern/loader.c (pupa_loader_set): Continue when
17665 pupa_loader_unload_func() fails.
17666 (pupa_loader_unset): New function.
17667 * include/pupa/loader.h (pupa_loader_unset): New prototype.
17668
17669 * kern/misc.c (pupa_stpcpy): New function.
17670 * include/pupa/misc.h (pupa_stpcpy): New prototype.
17671
17672 2003-11-12 Marco Gerards <metgerards@student.han.nl>
17673
17674 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
17675 for available extensions.
17676
17677 * include/pupa/i386/pc/time.h: New file.
17678 * kern/disk.c: Include <pupa/machine/time.h>.
17679 (PUPA_CACHE_TIMEOUT): New macro.
17680 (pupa_last_time): New variable.
17681 (pupa_disk_open): Flush the cache when there was a timeout.
17682 (pupa_disk_close): Reset the timer.
17683 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
17684 pupa_currticks.
17685 * util/misc.c: Include <sys/times.h>
17686 (pupa_get_rtc): New function.
17687
17688 2003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
17689
17690 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
17691 as blocks.
17692 (pupa_ext2_get_file_block): Use blocks member.
17693
17694 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
17695 first block. Return -1 instead of pupa_errno on error.
17696
17697 2003-10-27 Marco Gerards <metgerards@student.han.nl>
17698
17699 * README: In the pupa-mkimage example use _chain instead of chain
17700 and ext2 instead of fat.
17701 * TODO: Replace ext2fs with jfs as an example. Add an item for
17702 adding journal playback for ext2fs.
17703 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
17704 (pkgdata_MODULES): Added ext2.mod.
17705 (ext2_mod_SOURCES): New variable.
17706 (ext2_mod_CFLAGS): Likewise.
17707 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
17708 * include/pupa/misc.h (pupa_strncpy): New prototype.
17709 (pupa_strcat): Likewise.
17710 (pupa_strncmp): Likewise.
17711 * kern/misc.c (pupa_strcat): Enable function.
17712 (pupa_strncpy): New function.
17713 (pupa_strncmp): Likewise.
17714 * fs/ext2.c: New file.
17715
17716 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
17717 when the read failed before retrying.
17718 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
17719 (_FILE_OFFSET_BITS): Likewise.
17720 * configure.ac: Added AC_SYS_LARGEFILE.
17721
17722 2003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
17723
17724 * genmk.rb (PModule#rule): Make sure to get only symbol names
17725 from the output of nm.
17726 Reported by Robert Millan <zeratul2@wanadoo.es>.
17727
17728 2003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
17729
17730 I forgot to check in these changes for a long time. This adds
17731 incomplete support for VGA console, and this is still very
17732 buggy. Also, a lot of consideration is required for I18N,
17733 UNICODE, and VGA font issues. Therefore, assume that this is
17734 such that "better than nothing".
17735
17736 * font/manager.c: New file.
17737 * include/pupa/font.h: Likewise.
17738 * include/pupa/i386/pc/vga.h: Likewise.
17739 * term/i386/pc/vga.c: Likewise.
17740 * util/unifont2pff.rb: Likewise.
17741
17742 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
17743 (pkgdata_MODULES): Added vga.mod and font.mod.
17744 (vga_mod_SOURCES): New variables.
17745 (vga_mod_CFLAGS): Likewise.
17746 (font_mod_SOURCES): Likewise.
17747 (font_mod_CFLAGS): Likewise.
17748
17749 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
17750
17751 * include/pupa/term.h: Include pupa/err.h.
17752 (struct pupa_term): Added init and fini.
17753 Changed the argument of putchar to pupa_uint32_t.
17754
17755 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
17756 (pupa_console_real_putchar): New prototype.
17757 (pupa_console_putchar): Removed.
17758 (pupa_console_checkkey): Exported.
17759 (pupa_console_getkey): Likewise.
17760
17761 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
17762 characters.
17763
17764 * kern/term.c (pupa_term_set_current): Rewritten.
17765 (pupa_putchar): Likewise.
17766 (pupa_putcode): New function.
17767
17768 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
17769 (pupa_console_real_putchar): ... this.
17770 (pupa_vga_set_mode): New function.
17771 (pupa_vga_get_font): Likewise.
17772
17773 * normal/command.c: Include pupa/term.h.
17774 (terminal_command): New function.
17775 (pupa_command_init): Register the command "terminal".
17776
17777 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
17778 (DISP_UP): Likewise.
17779 (DISP_RIGHT): Likewise.
17780 (DISP_DOWN): Likewise.
17781 (DISP_HLINE): Likewise.
17782 (DISP_VLINE): Likewise.
17783 (DISP_UL): Likewise.
17784 (DISP_UR): Likewise.
17785 (DISP_LL): Likewise.
17786 (DISP_LR): Likewise.
17787
17788 * term/i386/pc/console.c (pupa_console_putchar): New function.
17789
17790 2003-02-08 NIIBE Yutaka <gniibe@m17n.org>
17791
17792 * util/resolve.c (pupa_util_resolve_dependencies): BUG
17793 FIX. Reverse the path_list.
17794
17795 * include/pupa/normal.h: Export pupa_register_command and
17796 pupa_unregister_command.
17797
17798 * hello/hello.c (pupa_cmd_hello): New module.
17799 * conf/i386-pc.rmk: Added hello.mod.
17800
17801 2003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
17802
17803 * kern/i386/pc/lzo1x.S: New file.
17804
17805 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
17806 (compress_kernel): New variable.
17807 (generate_image): Heavily modified to support compressing a
17808 large part of the core image.
17809
17810 * util/misc.c (pupa_util_read_image): Fix a file descriptor
17811 leak.
17812 (pupa_util_load_image): New function.
17813
17814 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
17815 (pupa_compressed_size): New variable.
17816 (codestart): Enable Gate A20 here.
17817 Decompress the compressed part of the core image.
17818 Rearrange the code to put functions and variables which are
17819 required for initialization in the non-compressed part.
17820 Include lzo1x.S.
17821
17822 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
17823 here.
17824
17825 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
17826
17827 * include/pupa/i386/pc/kernel.h
17828 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
17829 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
17830 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
17831 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
17832 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
17833
17834 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
17835
17836 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
17837 (Utility#rule): Likewise.
17838
17839 * configure.ac: Check if LZO is available.
17840
17841 2003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
17842
17843 * include/pupa/normal.h: New file.
17844 * include/pupa/setjmp.h: Likewise.
17845 * include/pupa/i386/setjmp.h: Likewise.
17846 * normal/cmdline.c: Likewise.
17847 * normal/command.c: Likewise.
17848 * normal/main.c: Likewise.
17849 * normal/menu.c: Likewise.
17850 * normal/i386/setjmp.S: Likewise.
17851
17852 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
17853 (pupa_rescue_cmd_initrd): Likewise.
17854
17855 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
17856 Likewise.
17857
17858 * kern/i386/pc/startup.S (translation_table): New variable.
17859 (translate_keycode): New function.
17860 (pupa_console_getkey): Call translate_keycode.
17861
17862 * kern/rescue.c (attempt_normal_mode): New function.
17863 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
17864 it failed, print a message.
17865
17866 * kern/mm.c (pupa_real_malloc): Print more information when a
17867 free magic is broken.
17868 (pupa_free): If the first free header is not free actually, set
17869 it to P.
17870
17871 * kern/main.c (pupa_load_normal_mode): Just load the module
17872 "normal".
17873 (pupa_main): Don't print the message
17874 "Entering into rescue mode..." here.
17875
17876 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
17877 Declared.
17878 (pupa_rescue_cmd_initrd): Likewise.
17879 (pupa_rescue_cmd_initrd): Likewise.
17880
17881 * include/pupa/symbol.h (FUNCTION): Specify the type.
17882 (VARIABLE): Likewise.
17883
17884 * include/pupa/err.h (pupa_err_t): Added
17885 PUPA_ERR_UNKNOWN_COMMAND.
17886
17887 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
17888 (pupa_dl_get_prefix): Likewise.
17889
17890 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
17891 Added _chain.mod and _linux.mod instead of chain.mod and
17892 linux.mod.
17893 (chain_mod_SOURCES): Renamed to ...
17894 (_chain_mod_SOURCES): ... this.
17895 (chain_mod_CFLAGS): Renamed to ...
17896 (_chain_mod_CFLAGS): ... this.
17897 (linux_mod_SOURCES): Renamed to ...
17898 (_linux_mod_SOURCES): ... this.
17899 (linux_mod_CFLAGS): Renamed to ...
17900 (_linux_mod_CFLAGS): ... this.
17901 (normal_mod_SOURCES): New variable.
17902 (normal_mod_CFLAGS): Likewise.
17903 (normal_mod_ASFLAGS): Likewise.
17904
17905 2003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
17906
17907 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
17908 possible.
17909
17910 * kern/dl.c (pupa_dl_ref): Refer depending modules
17911 recursively.
17912 (pupa_dl_unref): Unrefer depending modules recursively.
17913 Don't call pupa_dl_unload implicitly, because PUPA can crash if
17914 a module is unloaded before one depending on that module is
17915 unloaded.
17916 (pupa_dl_unload): Unload depending modules explicitly,
17917 if possible.
17918
17919 2003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
17920
17921 * include/pupa/i386/pc/linux.h: New file.
17922 * loader/i386/pc/linux.c: Likewise.
17923
17924 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
17925 Removed.
17926 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
17927 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
17928 of PUPA_CHAINLOADER_BOOT_SECTOR.
17929
17930 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
17931 (pupa_linux_prot_size): New variable.
17932 (pupa_linux_tmp_addr): Likewise.
17933 (pupa_linux_real_addr): Likewise.
17934 (pupa_linux_boot_zimage): New function.
17935 (pupa_linux_boot_bzimage): Likewise.
17936
17937 * kern/i386/pc/init.c (struct mem_region): New structure.
17938 (MAX_REGIONS): New macro.
17939 (mem_regions): New variable.
17940 (num_regions): Likewise.
17941 (pupa_os_area_addr): Likewise.
17942 (pupa_os_area_size): Likewise.
17943 (pupa_lower_mem): Likewise.
17944 (pupa_upper_mem): Likewise.
17945 (add_mem_region): New function.
17946 (compact_mem_regions): Likewise.
17947 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
17948 the size of the conventional memory and that of so-called upper
17949 memory (before the first memory hole).
17950 Instead of adding each found region to free memory, use
17951 add_mem_region and add them after removing overlaps.
17952 Also, add only 1/4 of the upper memory to free memory. The rest
17953 is used for loading OS images. Maybe this is ad hoc, but this
17954 makes it much easier to relocate OS images when booting.
17955
17956 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
17957 (pupa_enter_rescue_mode): Don't register initrd and module.
17958
17959 * kern/mm.c: Include pupa/dl.h.
17960
17961 * kern/main.c: Include pupa/file.h and pupa/device.h.
17962
17963 * kern/loader.c (pupa_loader_load_module_func): Removed.
17964 (pupa_loader_load_module): Likewise.
17965
17966 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
17967 ``.o''.
17968
17969 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
17970 (pupa_linux_tmp_addr): Likewise.
17971 (pupa_linux_real_addr): Likewise.
17972 (pupa_linux_boot_zimage): Likewise.
17973 (pupa_linux_boot_bzimage): Likewise.
17974
17975 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
17976 (pupa_upper_mem): Likewise.
17977 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
17978 module is too dangerous.
17979
17980 * include/pupa/loader.h (pupa_os_area_addr): Declared.
17981 (pupa_os_area_size): Likewise.
17982 (pupa_loader_set): Remove the first argument. Loader doesn't
17983 manage modules or initrd any longer.
17984 (pupa_loader_load_module): Removed.
17985
17986 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
17987 (linux_mod_SOURCES): New variable.
17988 (linux_mod_CFLAGS): Likewise.
17989
17990 2003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
17991
17992 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
17993 the length of a blocklist correctly.
17994
17995 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
17996 Use ioctl only if the OS file is a block device.
17997 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
17998 not very useful for normal files.
17999
18000 * kern/main.c (pupa_set_root_dev): New function.
18001 (pupa_load_normal_mode): Likewise.
18002 (pupa_main): Call those above.
18003
18004 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
18005 pupa_uint16_t.
18006
18007 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
18008
18009 2003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
18010
18011 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
18012 (setup): Configure the installed partition information and the
18013 dl prefix.
18014
18015 * loader/i386/pc/chainloader.c (my_mod): New variable.
18016 (pupa_chainloader_unload): New function.
18017 (pupa_rescue_cmd_chainloader): Refer itself.
18018 (PUPA_MOD_INIT): Save its own module in MY_MOD.
18019
18020 * kern/i386/pc/startup.S (install_partition): Removed.
18021 (version_string): Likewise.
18022 (config_file): Likewise.
18023 (pupa_install_dos_part): New variable.
18024 (pupa_install_bsd_part): Likewise.
18025 (pupa_prefix): Likewise.
18026 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
18027
18028 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
18029 and pupa/misc.h.
18030 (make_install_device): New function.
18031 (pupa_machine_init): Set the dl prefix.
18032
18033 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
18034 (buf): Renamed to ...
18035 (linebuf): ... this.
18036 (pupa_rescue_cmd_prefix): New function.
18037 (pupa_rescue_cmd_insmod): Likewise.
18038 (pupa_rescue_cmd_rmmod): Likewise.
18039 (pupa_rescue_cmd_lsmod): Likewise.
18040 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
18041 rmmod and lsmod.
18042
18043 * kern/mm.c (pupa_memalign): If failed even after invalidating
18044 disk caches, unload unneeded modules and retry.
18045
18046 * kern/misc.c (pupa_memmove): New function.
18047 (pupa_memcpy): Removed.
18048 (pupa_strcpy): New function.
18049 (pupa_itoa): Made static.
18050
18051 * kern/dl.c (pupa_dl_iterate): New function.
18052 (pupa_dl_ref): Likewise.
18053 (pupa_dl_unref): Likewise.
18054 (pupa_dl_unload): Return if succeeded or not.
18055 (pupa_dl_unload_unneeded): New function.
18056 (pupa_dl_unload_all): Likewise.
18057 (pupa_dl_init): Renamed to ...
18058 (pupa_dl_set_prefix): ... this.
18059 (pupa_dl_get_prefix): New function.
18060
18061 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
18062 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
18063 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
18064 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
18065 (pupa_install_dos_part): Declared.
18066 (pupa_install_bsd_part): Likewise.
18067 (pupa_prefix): Likewise.
18068 (pupa_boot_drive): Likewise.
18069
18070 * include/pupa/types.h: Fix a typo.
18071
18072 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
18073 pupa_memmove.
18074 (pupa_memmove): Declared.
18075 (pupa_strcpy): Likewise.
18076
18077 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
18078 pupa_mod_init takes one argument, its own module.
18079 (pupa_dl_unload_unneeded): Declared.
18080 (pupa_dl_unload_all): Likewise.
18081 (pupa_dl_ref): Likewise.
18082 (pupa_dl_unref): Likewise.
18083 (pupa_dl_iterate): Likewise.
18084 (pupa_dl_init): Renamed to ...
18085 (pupa_dl_set_prefix): ... this.
18086 (pupa_dl_get_prefix): Declared.
18087
18088 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
18089 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
18090 unloaded.
18091 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
18092 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
18093
18094 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
18095 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
18096
18097 2003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
18098
18099 * util/i386/pc/pupa-setup.c (setup): Define the internal
18100 function find_first_partition_start at the top level, because GCC
18101 3.0.x cannot compile internal functions in deeper scopes
18102 correctly.
18103 (find_root_device): Use lstat instead of stat.
18104 Don't follow symbolic links.
18105 Fix the path-constructing code.
18106
18107 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
18108 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
18109 by a BLKGETSIZE ioctl first, because block devices don't fill
18110 the member st_mode of the structure stat on Linux.
18111 [__linux__] (linux_find_partition): Use a temporary buffer
18112 REAL_DEV for the working space. Copy it to DEV before returning.
18113 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
18114 buffer cache consistent.
18115 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
18116 strncmp. The previous value was merely wrong.
18117 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
18118
18119 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
18120 FAT size is 12. The previous value was merely wrong.
18121
18122 * kern/main.c (pupa_main): Don't split the starting message from
18123 newlines.
18124
18125 * kern/term.c (pupa_putchar): Put CR after LF instead of before
18126 LF, because BIOS goes crazy about character attributes in this
18127 case.
18128
18129 2003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
18130
18131 * include/i386/pc/util/biosdisk.h: New file.
18132 * util/i386/pc/biosdisk.c: Likewise.
18133 * util/i386/pc/pupa-setup.c: Likewise.
18134
18135 * Makefile.in (INCLUDE_DISTFILES): Added
18136 include/pupa/i386/pc/util/biosdisk.h.
18137 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
18138 directory util/i386/pc.
18139 (install-local): Added a rule for sbin_UTILITIES.
18140 (uninstall): Likewise.
18141
18142 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
18143
18144 * util/misc.c (xrealloc): New function.
18145 (pupa_malloc): Likewise.
18146 (pupa_free): Likewise.
18147 (pupa_realloc): Likewise.
18148 (pupa_stop): Likewise.
18149 (pupa_putchar): Likewise.
18150
18151 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
18152
18153 * include/pupa/util/misc.h (xrealloc): Declared.
18154
18155 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
18156 macro.
18157 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
18158 (PUPA_BOOT_MACHINE_BPB_END): ... this.
18159
18160 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
18161 [PUPA_UTIL] (pupa_fat_fini): Likewise.
18162
18163 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
18164 way should be implemented.
18165 [PUPA_UTIL] (pupa_fat_fini): Likewise.
18166
18167 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
18168 the size of NAME for safety.
18169 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
18170 0x88.
18171
18172 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
18173 (pupa_setup_SOURCES): Likewise.
18174
18175 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
18176
18177 2002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
18178
18179 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
18180 bunch of pushl's from pusha, because this destroys the return
18181 value.
18182
18183 2002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
18184
18185 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
18186 This means that any missing prototypes could be fatal. Also, you
18187 must take care when writing assembly code. See the comments at
18188 the beginning of startup.S, for more details.
18189
18190 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
18191 compilation mechanism.
18192 (pupa_chainloader_real_boot): Likewise.
18193 (pupa_biosdisk_rw_int13_extensions): Likewise.
18194 (pupa_biosdisk_rw_standard): Likewise.
18195 (pupa_biosdisk_check_int13_extensions): Likewise.
18196 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
18197 (pupa_biosdisk_get_diskinfo_standard): Likewise.
18198 (pupa_get_memsize): Likewise.
18199 (pupa_get_mmap_entry): Likewise.
18200 (pupa_console_putchar): Likewise.
18201 (pupa_console_setcursor): Likewise.
18202 (pupa_getrtsecs): Use pushl instead of push.
18203
18204 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
18205 memory instead of the stack for a mmap entry, because some
18206 BIOSes may ignore the maximum size and overflow.
18207
18208 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
18209
18210 * genmk.rb (PModule#rule): Compile automatically generated
18211 sources with module-specific CFLAGS as well as other sources.
18212
18213 2002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
18214
18215 * configure.ac: Check ld.
18216 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
18217 respectively, before checking endianness and sizes.
18218
18219 * Makefile.in (LD): New variable.
18220
18221 2002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
18222
18223 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
18224
18225 2002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
18226
18227 * Changelog: New file.
18228