]> git.proxmox.com Git - grub2.git/blame - ChangeLog
2009-06-17 Colin Watson <cjwatson@ubuntu.com>
[grub2.git] / ChangeLog
CommitLineData
1bd265f3 12009-06-17 Colin Watson <cjwatson@ubuntu.com>
2
3 * util/elf/grub-mkimage.c (usage): Prefix each option line with two
4 spaces, for the benefit of help2man.
5 * util/i386/efi/grub-mkimage.c (usage): Likewise.
6
a2d08c06 72009-06-16 Pavel Roskin <proski@gnu.org>
8
9 * kern/i386/halt.c: Include grub/machine/init.h.
10 * kern/i386/reboot.c: Include grub/cpu/reboot.h.
11
b97bcb19 122009-06-16 Felix Zielcke <fzielcke@z-51.de>
13
14 * util/grub.d/30_os-prober.in: Use ${root} in the generated
15 drivemap menuentry.
16
0644f96c 172009-06-16 James Jarvis <James.Jarvis@ed.ac.uk>
18
19 * commands/help.c GRUB_MOD_INIT(echo): Fix the help output of
20 `echo' command.
21
3ef17a2e 222009-06-16 Pavel Roskin <proski@gnu.org>
23
24 * boot/i386/pc/boot.S: Remove root_drive. Assert offset of
25 boot_drive_check by using GRUB_BOOT_MACHINE_DRIVE_CHECK. Don't
26 save %dx, we only need %dl and we never change it.
27 * boot/i386/pc/cdboot.S: Don't set the root drive.
28 * boot/i386/pc/pxeboot.S: Likewise.
29 * include/grub/i386/pc/boot.h: Remove
30 GRUB_BOOT_MACHINE_ROOT_DRIVE, adjust
31 GRUB_BOOT_MACHINE_DRIVE_CHECK.
32 * include/grub/i386/pc/kernel.h: Remove grub_root_drive.
33 * kern/i386/pc/init.c (make_install_device): Remove references
34 to grub_root_drive.
35 * kern/i386/pc/startup.S: Likewise.
36 * util/i386/pc/grub-setup.c (setup): Don't set root_drive.
37
693fe637 382009-06-16 Vladimir Serbinenko <phcoder@gmail.com>
39
40 xnu_uuid command
41
42 * commands/xnu_uuid.c: new file
43 * conf/common.rmk (pkglib_MODULES): add xnu_uuid.mod
44 (xnu_uuid_mod_SOURCES): new variable
45 (xnu_uuid_mod_CFLAGS): likewise
46 (xnu_uuid_mod_LDFLAGS): likewise
47 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/probe.c
48 * conf/i386-ieee1275.rmk: likewise
49 * conf/i386-pc.rmk: likewise
50 * conf/powerpc-ieee1275.rmk: likewise
51 * conf/sparc64-ieee1275.rmk: likewise
52 * util/grub.d/30_os-prober.in: use UUID for Mac OS X/Darwin
53
c9da87d0 542009-06-16 Pavel Roskin <proski@gnu.org>
55
56 * configure.ac: Avoid '==' in test command, it's not portable.
57
9c6f4596 582009-06-16 Vladimir Serbinenko <phcoder@gmail.com>
59
60 Probe command
61
62 * commands/probe.c: new file
63 * conf/common.rmk (pkglib_MODULES): add probe.mod
64 (probe_mod_SOURCES): new variable
65 (probe_mod_CFLAGS): likewise
66 (probe_mod_LDFLAGS): likewise
67 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/probe.c
68 * conf/i386-ieee1275.rmk: likewise
69 * conf/i386-pc.rmk: likewise
70 * conf/powerpc-ieee1275.rmk: likewise
71 * conf/sparc64-ieee1275.rmk: likewise
72
70b7f9fd 732009-06-15 Vladimir Serbinenko <phcoder@gmail.com>
74
75 Fix handling of string like \"hello\" and "a
76 b"
77
78 * script/sh/lexer.c (check_textstate): accept GRUB_PARSER_STATE_ESC
79 (grub_script_yylex): fix parsing of quoting, escaping and newline
80
71c79a6b 812009-06-13 Vladimir Serbinenko <phcoder@gmail.com>
82
83 * loader/i386/multiboot.c (grub_multiboot_get_bootdev): fix partition
84 handling
85
0644f96c 862009-06-13 Jun Inoue <jun.lambda@gmail.com>
880fc3c4 87
88 * util/grub-mkconfig.in: Fix parsing of --output option.
89
e40893c3 902009-06-12 Pavel Roskin <proski@gnu.org>
91
92 * Makefile.in (pkgdata_SRCDIR): Remove. genmodsrc.sh and
93 genmk.rb don't need to be generated or installed.
94
3a1acfe2 952009-06-12 Vladimir Serbinenko <phcoder@gmail.com>
96
97 * commands/i386/pc/drivemap_int13h.S: add more comments
98
3a4575d4 992009-06-11 Pavel Roskin <proski@gnu.org>
100
0658e928 101 * Makefile.in (uninstall): Uninstall manuals.
102
ca0388f0 103 * Makefile.in: Rename lib_DATA to lib_SCRIPTS, move it from
104 PKGLIB to SCRIPTS. This fixes installation of grub-mkconfig_lib
105 and update-grub_lib in two places.
106 * conf/common.rmk: Rename lib_DATA to lib_SCRIPTS.
107
e3b27c39 108 * disk/usbms.c (grub_usbms_transfer): Initialize `err' to fix
109 a compiler warning.
110
3a4575d4 111 * loader/i386/bsd.c (grub_freebsd_boot): Rename `entry' to
112 `entry_lo' to fix variable shadowing.
113
af1f4f55 1142009-06-11 Christian Franke <franke@computer.org>
115
116 * kern/misc.c (__enable_execute_stack): Add missing return type
117 to prevent gcc warning.
118
5225e649 1192009-06-11 Felix Zielcke <fzielcke@z-51.de>
120
121 * conf/i386-ieee1275.rmk (COMMON_LDFLAGS): Remove `-static -lgcc'.
122
7d83bd47 1232009-06-11 Pavel Roskin <proski@gnu.org>
124
c1cb63ba 125 * Makefile.in: Don't rely on any scripts being executable.
126 Always use $(SHELL) to run shell scripts.
127
7d83bd47 128 * configure.ac: Always define ___main if using -nostdlib. This
129 fixes tests on Cygwin.
130
948f48e7 1312009-06-11 Giuseppe Caizzone <acaizzo@gmail.com>
132
133 UDF fix
134
7d83bd47 135 * fs/udf.c (grub_udf_read_block): handle the fact that ad->length
948f48e7 136 is in bytes and not in blocks
7d83bd47 137
8ada9bc1 1382009-06-11 Pavel Roskin <proski@gnu.org>
139
140 * kern/i386/halt.c (grub_halt): Make `i' unsigned to fix a
141 warning.
142
25ad2323 1432009-06-11 Felix Zielcke <fzielcke@z-51.de>
144
145 * util/grub.d/30_os-prober.in: Fix a comment. Source
146 ${libdir}/grub/grub-mkconfig_lib. Use prepare_grub_to_access_device
147 to set the root device. Place drivemap command in the generated
148 chain entry.
149
e65acb0c 1502009-06-11 Pavel Roskin <proski@gnu.org>
151
152 * configure.ac: Remove host_m32. Issues with 64-bit utilities
153 have long been resolved.
154
f285fe2d 1552009-06-11 Colin Watson <cjwatson@ubuntu.com>
156
bd47b0b5 157 * util/grub.d/10_linux.in: Capitalise "Linux".
158
f285fe2d 159 * util/grub-pe2elf.c (usage): Fix references to grub-editenv.
160
a0c62e4e 1612009-06-11 Pavel Roskin <proski@gnu.org>
162
b6783cb2 163 * kern/efi/efi.c (grub_exit): Add infinite loop at the end to
164 fix a gcc warning and ensure that the function won't ever exit.
165
dde032e8 166 * kern/i386/ieee1275/init.c: Add missing prototype for
167 grub_stop_floppy().
168
22cd079d 169 * loader/ieee1275/multiboot2.c [__i386__]: Include
170 grub/cpu/multiboot.h.
171
a0c62e4e 172 * term/i386/pc/serial.c (serial_translate_key_sequence): Avoid
173 casts to short - they are not portable and cause warnings. Fix
174 use of uninitialized values in input_buf. Use ARRAY_SIZE.
175
63963d17 1762009-06-11 Vladimir Serbinenko <phcoder@gmail.com>
177
178 Drivemap fixes
179
180 * commands/i386/pc/drivemap.c (grub_get_root_biosnumber_drivemap):
181 new function
182 (grub_get_root_biosnumber_saved): new variable
183 (GRUB_MOD_INIT): register grub_get_root_biosnumber_drivemap
184 (GRUB_MOD_FINI): unregister grub_get_root_biosnumber_drivemap
775dbc4d 185 * commands/i386/pc/drivemap_int13h.S (grub_drivemap_handler): restore
63963d17 186 %dx after the call if necessary
187 * conf/common.rmk (pkglib_MODULES): remove boot.mod
188 (boot_mod_SOURCES): remove
189 (boot_mod_CFLAGS): remove
190 (boot_mod_LDFLAGS): remove
191 * conf/i386-coreboot.rmk (pkglib_MODULES): add boot.mod
192 (boot_mod_SOURCES): new variable
193 (boot_mod_CFLAGS): likewise
194 (boot_mod_LDFLAGS): likewise
195 * conf/i386-efi.rmk: likewise
196 * conf/i386-ieee1275.rmk: likewise
197 * conf/i386-pc.rmk: likewise
198 * conf/powerpc-ieee1275.rmk: likewise
199 * conf/sparc64-ieee1275.rmk: likewise
200 * conf/x86_64-efi.rmk: likewise
201 * include/grub/i386/pc/biosnum.h: new file
202 * lib/i386/pc/biosnum.c: likewise
203 * loader/i386/bsd.c (grub_bsd_get_device): use grub_get_root_biosnumber
204 * loader/i386/multiboot.c (grub_multiboot_get_bootdev): likewise
205 * loader/i386/pc/chainloader.c (grub_chainloader_cmd): likewise
775dbc4d 206
33abf7ae 2072009-06-10 Pavel Roskin <proski@gnu.org>
208
5ac35b35 209 * io/gzio.c (test_header): Don't reuse one buffer for all data.
210 Use separate variables. Read only the file size at the end, but
211 not the checksum that we don't use.
212
5c5215d5 213 * kern/file.c (grub_file_read): Use void pointer for the buffer.
214 Adjust all callers.
215
27d5fef7 216 * kern/ieee1275/openfw.c: Remove libc includes.
217 * kern/ieee1275/cmain.c: Likewise.
218 * include/grub/ieee1275/ieee1275.h: Likewise.
219
33abf7ae 220 * kern/i386/coreboot/init.c: Include grub/cpu/tsc.h to fix
221 compiler warnings.
222
d2d49665 2232009-06-10 Felix Zielcke <fzielcke@z-51.de>
224
225 * gendistlist.sh (EXTRA_DISTFILES): Add `genhandlerlist.sh' and
226 `genparttoollist.sh'.
227 (DISTDIRS): Add `efiemu', `mmap', `parttool' and `script'.
228 Add `*.sh' to the list find searches for and change `mdate.sh'
229 to `mdate-sh'.
230
fe052e37 2312009-06-10 Pavel Roskin <proski@gnu.org>
232
2763ac18 233 * include/grub/multiboot2.h: Provide compatibility defines for
234 multiboot2.h.
235 * include/multiboot2.h: Include stdint.h only if needed, using
236 angle brackets.
237 * loader/i386/pc/multiboot2.c: Include multiboot2.h after
238 grub/multiboot2.h.
239 * loader/ieee1275/multiboot2.c: Likewise.
240 * loader/multiboot2.c: Likewise.
241 * loader/multiboot_loader.c: Likewise.
242
437e6adc 243 * configure.ac: Use -nostdlib when probing for the target. It
244 should not be required to have libc for the target.
245
06a6836c 246 * configure.ac: Remove checks for __bswapsi2 and __bswapdi2,
247 they fail without libc headers for the target.
248 * include/grub/powerpc/libgcc.h: Use weak attribute for all
249 exports.
250 * include/grub/sparc64/libgcc.h: Likewise. Don't use
251 preprocessor conditionals.
252
fe052e37 253 * conf/common.rmk: Compile tar.mod from tar.c, not cpio.c. The
254 build system doesn't need to be aware of the tar.c internals.
255
afd22553 2562009-06-09 Michel Hermier <michel.hermier@gmail.com>
87b8f28c 257
afd22553 258 * fs/i386/pc/pxe.c (grub_pxefs_read): Fix returned values.
8ec4a6d0 259
6b787c4f 2602009-06-09 Robert Millan <rmh.grub@aybabtu.com>
261
262 * util/deviceiter.c (grub_util_iterate_devices): Increase number of
263 disk limit to 26 for IDE, Virtio, Xen and SCSI.
264
2652009-06-09 Felix Zielcke <fzielcke@z-51.de>
266
267 * util/i386/pc/grub-install.in: Change the error message if UUIDs
473d1e45 268 aren't available if ata.mod gets used.
6b787c4f 269
473d1e45 2702009-06-09 Oliver Henshaw <oliver.henshaw@gmail.com>
e23721e8 271
473d1e45 272 * bus/usb/ohci.c (grub_ohci_pci_iter): Link struct only after
e23721e8 273 initialising controller.
473d1e45 274 * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
e23721e8 275
255a27d4 2762009-06-08 Felix Zielcke <fzielcke@z-51.de>
277
278 * util/i386/pc/grub-install.in: Add a parameter --disk-module
279 to choose between ata and biosdisk module on i386-pc.
280
473d1e45 2812009-06-08 Oliver Henshaw <oliver.henshaw@gmail.com>
69da8877 282
d55842d8 283 * bus/usb/ohci.c (grub_ohci_pci_iter): Define the Class,
284 Subclass and Programming Interface fields in terms of the 3 byte
285 Class Code register.
286 * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
287
fa5db0b1 288 * bus/usb/ohci.c (grub_ohci_pci_iter): Check that programming
289 interface is OHCI. Add grub_dprintf for symmetry with
290 bus/usb/uhci.c.
291 * bus/usb/uhci.c (grub_uhci_pci_iter): Check that programming
292 interface is UHCI. Add interf variable for programming
293 interface. Print interface with class/subclass.
294
c0947beb 295 * bus/usb/ohci.c: Set interf with correct field.
296
69da8877 297 * bus/usb/uhci.c: Remove unneeded doubled lines.
298 * bus/usb/ohci.c: Likewise. Change interf to grub_uint32_t.
299 Remove whitespace inside comment.
300
9e172e30 3012009-06-08 Robert Millan <rmh.grub@aybabtu.com>
302
303 * loader/i386/linux.c (grub_cmd_linux): When processing `vga=', use
304 as fallback an equivalent option without depth.
305
de65ee2b 3062009-06-08 Vladimir Serbinenko <phcoder@gmail.com>
307
308 Not fail if unable to retrieve C/H/S on LBA disks
309
473d1e45 310 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): behave gracefully
de65ee2b 311 if unable to retrieve C/H/S on LBA disks
312
b57ea2c9 3132009-06-08 Pavel Roskin <proski@gnu.org>
314
315 * fs/hfs.c (grub_hfs_find_dir): Use union to avoid a warning
316 about aliasing.
317
af361263 3182009-06-08 Felix Zielcke <fzielcke@z-51.de>
319
320 * Makefile.in (uninstall): Remove all $lib_DATA files.
321
4c9ec6b3 3222009-06-08 Vladimir Serbinenko <phcoder@gmail.com>
323
324 Bugfix: install on partitionless device
325
326 * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): check if os_dev
327 is a whole disk
328
e76fc924 3292009-06-08 Felix Zielcke <fzielcke@z-51.de>
330
331 * Makefile.in (uninstall): Remove all $include_DATA files.
332
ba5a0d05 3332009-06-08 Felix Zielcke <fzielcke@z-51.de>
334
335 * commands/true.c: New file. Implement the true and false commands.
336 * conf/common.rmk.c (pkglib_MODULES): Add `true.mod'.
337 (true_mod_SOURCES): New variable.
338 (true_mod_CFLAGS): Likewise.
339 (true_mod_LDFLAGS): Likewise.
340
c8048e32 3412009-06-05 Colin D Bennett <colin@gibibit.com>
342
343 Optimized font character lookup using binary search instead of linear
344 search. Fonts now are required to have the character index ordered by
345 code point.
346
347 * font/font.c (load_font_index): Verify that fonts have ordered
348 character indices.
349 (find_glyph): Use binary search instead of linear search to find a
350 character in a font.
351
408305be 3522009-06-05 Michael Scherer <misc@mandriva.org>
353
354 * fs/hfsplus.c (grub_hfsplus_mount): Determine if the filesystem
355 uses case sensitive btree.
356 (grub_hfsplus_iterate_dir): Use GRUB_FSHELP_CASE_INSENSITIVE
357 only for case insensitive filesystems.
358
8ee1e0d9 3592009-06-05 Vladimir Serbinenko <phcoder@gmail.com>
360
361 * conf/i386-pc.rmk (efiemu_mod_CFLAGS): remove -Werror -Wall
362 * conf/common.rmk (search_mod_CFLAGS): likewise
363
a9966eb1 3642009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
365
473d1e45 366 * kern/i386/pc/startup.S [APPLE_CC]: block of nops to
a9966eb1 367 compensate a compiler bug
368
9e7100fb 3692009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
370
473d1e45 371 * include/grub/term.h (GRUB_TERM_BACKSPACE): explicitly define as 8
9e7100fb 372 instead of '\b'
473d1e45 373
ede21d71 3742009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
375
376 Definitions for creating asm symbols with Apple's CC
377
378 * include/grub/symbol.h [APPLE_CC] (FUNCTION): new macro
379 [APPLE_CC] (VARIABLE): likewise
380
9dbf7653 3812009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
382
383 Disable lnxboot.img when compiled
384 with Apple's CC
385
386 * conf/i386-pc.rmk (pkglib_IMAGES): remove lnxboot.img
387 pkglib_IMAGES [! TARGET_APPLE_CC] (pkglib_IMAGES): add lnxboot.img
388 * boot/i386/pc/lnxboot.S [APPLE_CC]: define an #error
389 [! APPLE_CC] (CODE_LENG): skip
390 [! APPLE_CC] (setup_sects): likewise
391 [! APPLE_CC]: skip filling
473d1e45 392
e93cdc3d 3932009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
394
395 Address in trampolines based on 32-bit registers when compiled
396 with Apple's CC
397
473d1e45 398 * loader/i386/xnu_helper.S [APPLE_CC]: use 32-bit registers
e93cdc3d 399 for addresses
400 * loader/i386/linux_trampoline.S [APPLE_CC]: likewise
401
6c688477 4022009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
403
404 Avoid aliases when compiling with Apple's CC for PCBIOS machine
405
406 * kern/misc.c [APPLE_CC] (memcpy): new function
407 [APPLE_CC] (memmove): likewise
408 [APPLE_CC && !GRUB_UTIL] (grub_err_printf): likewise
473d1e45 409 (memcpy): define alias conditionally on !APPLE_CC
6c688477 410 (memset): likewise
411 (abort): likewise
412 * include/grub/misc.h (memove): don't define when both GRUB_UTIL and
413 APPLE_CC are defined
414 * include/grub/list.h [APPLE_CC] (grub_assert_fail): new function
415 (grub_assert_fail): make prototype conditional
416
e37ffc5c 4172009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
418
419 Use grub-macho2img when compiling with Apple's CC for PCBIOS machine
420
473d1e45 421 * conf/common.rmk (bin_UTILITIES): add (on false on condition)
422 grub-macho2img
e37ffc5c 423 (CLEANFILES): add grub-macho2img
424 (grub_macho2img_SOURCES): new variable
425 * kern/i386/pc/startup.S (bss_start): new variable
426 (bss_end): likewise
427 * genmk.rb: use grub-macho2img for *.img when compiled with Apple's CC
428 * util/grub-macho2img.c: new file
429
cf00df31 4302009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
431
432 Use objconv when compiling with Apple's CC
433
434 * conf/i386-pc.rmk (efiemu32.o): use OBJCONV if defined
435 (efiemu64.o): likewise
436 (efiemu64_c.o): omit -mcmodel=large and add -DAPPLE_CC=1
437 when compiling with Apple's CC
438 (efiemu64_s.o): likewise
439 * configure.ac: check for objconv when compiling with Apple's CC
440 * genmk.rb: use objconv for modules when compiled with Apple's CC
473d1e45 441
d119a20c 4422009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
443
444 Define segment as well as section when compiling with
445 Apple's CC
446
447 * efiemu/runtime/efiemu.c (PHYSICAL_ATTRIBUTE): new definition
448 (efiemu_set_virtual_address_map): declare with PHYSICAL_ATTRIBUTE
449 (efiemu_convert_pointer): likewise
450 (efiemu_set_virtual_address_map): likewise
451 (efiemu_convert_pointer): likewise
452 (efiemu_getcrc32): likewise
453 (init_crc32_table): likewise
454 (reflect): likewise
455 * include/grub/dl.h (GRUB_MOD_NAME): define segment with Apple's CC
456 (GRUB_MOD_DEP): likewise
473d1e45 457
c8600122 4582009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
459
460 Allow a compilation without -mcmodel=large
461
462 * kern/efi/mm.c (grub_efi_allocate_pages): don't allocate >4GiB
463 when compiled without -mcmodel=large
473d1e45 464 (filter_memory_map): remove memory post 4 GiB when compiled
c8600122 465 without -mcmodel=large
473d1e45 466 * configure.ac: fail gracefully and add -DMCMODEL_SMALL=1 to
c8600122 467 TARGET_CFLAGS when -mcmodel=large isn't supported
473d1e45 468
e8df1d4e 4692009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
470
471 Remove nested functions in efiemu core
472
473 * efiemu/runtime/efiemu.c (reflect): make static instead of nested
473d1e45 474
cc6c3ac1 4752009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
476
477 Avoid clobbering %ebx/%rbx in inline assembly with Apple's CC
478
479 * efiemu/runtime/efiemu.c (write_cmos): use %cl instead of %bl as
480 temporary storage
473d1e45 481 * include/grub/i386/tsc.h (grub_get_tsc): restore %rbx/%ebx when
482 using Apple's CC
cc6c3ac1 483 (grub_cpu_is_tsc_supported): likewise
484 * loader/i386/xnu.c (guessfsb): restore %rbx/%ebx in inline assembly
473d1e45 485
3e325901 4862009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
487
488 Absolute addressing through constant with Apple's cc
489
490 * kern/i386/pc/startup.S: Define necessary constants
491 and address through it when using ABS with Apple's CC
492 * boot/i386/pc/diskboot.S: likewise
493 * boot/i386/pc/boot.S: likewise
494 * boot/i386/pc/lnxboot.S: likewise
495 * boot/i386/pc/cdboot.S: likewise
496 * mmap/i386/pc/mmap_helper.S: likewise
497 * commands/i386/pc/drivemap_int13h.S: likewise
498
2b167a72 4992009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
500
501 Check if compiler is apple cc
502
503 * Makefile.in (ASFLAGS): new variable
504 (TARGET_ASFLAGS): likewise
505 (TARGET_MODULE_FORMAT): likewise
506 (TARGET_APPLE_CC): likewise
507 (OBJCONV): likewise
508 (TARGET_IMG_CFLAGS): likewise
509 (TARGET_CPPFLAGS): add includedir
510 * configure.ac: call grub_apple_cc and grub_apple_target_cc
511 (TARGET_IMG_LDFLAGS): Add -Wl,-Ttext,. All users updated
512 Check for linker script only if compiler isn't Apple's CC
513 (TARGET_MODULE_FORMAT): set
514 (TARGET_APPLE_CC): likewise
515 (TARGET_ASFLAGS): likewise
516 (ASFLAGS): likewise
517 Check for objcopy only if compiler isn't Apple's CC
518 Check for BSS symbol only if compiler isn't Apple's CC
519 * genmk.rb: adapt nm options if we use Apple's utils
520 * aclocal.m4 (grub_apple_cc): new test
521 (grub_apple_target_cc): likewise
473d1e45 522
fb14123e 5232009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
524
525 Simplify sed expressions and improve awk
526
527 * Makefile.in (install-local): simplify sed expression
528 * gencmdlist.sh: likewise
529 * genmoddep.awk: avoid adding module as a dependency of itself
530
5b889789 5312009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
532
533 Add missing start symbols
534
535 * boot/i386/pc/boot.S: add start
fb14123e 536 * boot/i386/pc/pxeboot.S: likewise
473d1e45 537
fd2bf2e3 5382009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
539
540 Fix wrong assumptions with grub-mkimage on EFI
473d1e45 541
542 * i386/efi/grub-mkimage.c (read_kernel_module): don't write prefix here
fd2bf2e3 543 (relocate_addresses): consider both r_addend and value at offset
544 (make_mods_section): zerofill modinfo and header
545 (convert_elf): write prefix here
473d1e45 546
5389763d 5472009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
548
549 Use .asciz instead of .string
550
551 * i386/pc/diskboot.S: use .asciz instead of .string
552 * i386/pc/boot.S: likewise
553 * include/grub/dl.h (GRUB_MOD_DEP): likewise
554 (GRUB_MOD_NAME): likewise
473d1e45 555
3eb5ed4e 5562009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
557
558 gfxpayload support
559
560 * commands/videotest.c (grub_cmd_videotest): use grub_video_set_mode
561 * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_PURE_TEXT): new definition
562 (grub_video_setup): remove
563 (grub_video_set_mode): new prototype
564 * loader/i386/linux.c (DEFAULT_VIDEO_MODE): new definition
565 (vid_mode): remove
566 (linux_vesafb_res): compile only on PCBIOS
567 (grub_linux_boot): support gfxpayload
568 * loader/i386/pc/xnu.c (video_hook): new function
569 (grub_xnu_set_video): support gfxpayload
570 * term/gfxterm.c (DEFAULT_VIDEO_WIDTH): removed
571 (DEFAULT_VIDEO_HEIGHT): likewise
572 (DEFAULT_VIDEO_FLAGS): likewise
573 (DEFAULT_VIDEO_MODE): new definition
574 (video_hook): new function
575 (grub_gfxterm_init): use grub_video_set_mode
473d1e45 576 * util/grub.d/30_os-prober.in: remove explicit modesetting before
3eb5ed4e 577 loading xnu
578 * video/video.c (grub_video_setup): removed
473d1e45 579 (grub_video_set_mode): new function based on grub_gfxterm_init and
3eb5ed4e 580 grub_video_setup
581
4b0e1143 5822009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
583
584 Avoid calling biosdisk in drivemap
585
586 * commands/i386/pc/drivemap.c (parse_biosdisk): remove
587 (revparse_biosdisk): likewise
588 (list_mappings): derive name from id directly
589 (grub_cmd_drivemap): use tryparse_diskstring
473d1e45 590
fda6cb98 5912009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
592
593 Script fixes
594
595 * include/grub/script_sh.h (grub_script_cmdline): remove cmdline
596 (grub_lexer_param): add tokenonhold
597 (grub_script_create_cmdline): remove cmdline. All callers updated
598 (grub_script_function_create): make functionname
599 grub_script_arg. All callers updated
600 (grub_script_execute_argument_to_string): new prototype
601 * kern/parser.c (state_transitions): reorder
602 (grub_parser_cmdline_state): fix a bug and make more compact
473d1e45 603 * script/sh/execute.c (grub_script_execute_argument_to_string):
fda6cb98 604 make global
605 (grub_script_execute_cmdline): use new format
606 * script/sh/function.c (grub_script_function_create): make functionname
607 grub_script_arg. All callers updated
473d1e45 608 * script/sh/lexer.c (grub_script_lexer_init): initialize tokenonhold
fda6cb98 609 (grub_script_yylex): remove
610 (grub_script_yylex2): renamed to ...
611 (grub_script_yylex): ...renamed
612 parse the expressions like a${b}c
613 * script/sh/parser.y (GRUB_PARSER_TOKEN_ARG): new typed terminal
614 (GRUB_PARSER_TOKEN_VAR): remove
615 (GRUB_PARSER_TOKEN_NAME): likewise
616 ("if"): declare as typeless
617 ("while"): likewise
618 ("function"): likewise
619 ("else"): likewise
620 ("then"): likewise
621 ("fi"): likewise
622 (text): remove
623 (argument): likewise
624 (script): accept empty scripts and make exit on error
625 (arguments): use GRUB_PARSER_TOKEN_ARG
626 (function): likewise
627 (command): move error handling to script
628 (menuentry): move grub_script_lexer_ref before
473d1e45 629 * script/sh/script.c (grub_script_create_cmdline): remove cmdline
fda6cb98 630 argument. All callers updated
631
f4448a07 6322009-06-04 Robert Millan <rmh.grub@aybabtu.com>
633
634 Prevent GRUB from probing floppies during boot.
635
636 * conf/common.rmk (search_mod_CFLAGS): Use `-Werror -Wall'.
637 * commands/search.c (options): Add --no-floppy.
638 (search_fs, search_file, grub_cmd_search): Support --no-floppy.
639 * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Use
640 --no-floppy when searching for UUIDs.
641
2bf5885a 6422009-06-04 Robert Millan <rmh.grub@aybabtu.com>
643
644 Simplify the code duplication in commands/search.c.
645
646 * commands/search.c (search_label, search_fs_uuid): Merge into ...
647 (search_fs): ... this. Update all users.
648
f6fd460a 6492009-06-03 Felix Zielcke <fzielcke@z-51.de>
650
651 * util/grub-mkconfig.in (update_grub_dir): Rename to grub_mkconfig_dir.
652
cbb3c83e 6532009-05-28 Pavel Roskin <proski@gnu.org>
654
57788cfd 655 * Makefile.in: Don't use "cp -d", it doesn't work on FreeBSD.
656 Remove the original symlink explicitly.
657
cbb3c83e 658 * fs/hfs.c (grub_hfs_find_dir): Skip sequences of slashes, not
659 just one slash. That's how grub_fshelp_find_file() does it.
660
cd0d5e30 6612009-05-26 Pavel Roskin <proski@gnu.org>
662
f0f8bbe2 663 * genmk.rb: Avoid shadowing variable `s', rename the outer `s'
664 to `str'.
665
cd0d5e30 666 * util/getroot.c (grub_util_get_dev_abstraction): Mark os_dev as
667 possibly unused.
668
8c2cab51 6692009-05-25 Christian Franke <franke@computer.org>
670
671 * disk/ata.c (grub_ata_wait_not_busy): Add debug output of status
672 register.
673 (grub_atapi_identify): Add wait after drive select.
674 (grub_ata_identify): Do more strict status register check before
675 calling grub_atapi_identify (). Suppress error message if status
676 register is 0x00 after command failure. Add status register
677 check after PIO read to avoid bogus identify due to stuck DRQ.
678 Thanks to Pavel Roskin for testing.
679 (grub_device_initialize): Remove unsafe status register check.
680 Thanks to 'phcoder' for problem report and patch.
681 Prevent sign extension in debug message.
682
230c0ad6 6832009-05-23 Colin D Bennett <colin@gibibit.com>
684
685 Cleaned up `include/grub/normal.h'. Grouped prototypes by
686 definition file, and functions defined in `normal/menu.c' have had
687 their prototypes moved to `include/grub/menu.h' for consistency.
688
689 * include/grub/menu.h (grub_menu_execute_callback): Added; moved
690 from normal.h.
691 (grub_menu_get_entry): Likewise.
692 (grub_menu_get_timeout): Likewise.
693 (grub_menu_set_timeout): Likewise.
694 (grub_menu_execute_entry): Likewise.
695 (grub_menu_execute_with_fallback): Likewise.
696 (grub_menu_entry_run): Likewise.
697
698 * include/grub/normal.h: Re-ordered and grouped function
699 prototypes by file that the function is defined in.
700 (grub_menu_execute_callback): Removed; moved to menu.h.
701 (grub_menu_get_entry): Likewise.
702 (grub_menu_get_timeout): Likewise.
703 (grub_menu_set_timeout): Likewise.
704 (grub_menu_execute_entry): Likewise.
705 (grub_menu_execute_with_fallback): Likewise.
706 (grub_menu_entry_run): Likewise.
707 (grub_menu_addentry): Renamed from this ...
708 (grub_normal_add_menu_entry): ... to this.
709
710 * normal/main.c (grub_menu_addentry): Renamed from this ...
711 (grub_normal_add_menu_entry): ... to this.
712
713 * script/sh/execute.c (grub_script_execute_menuentry): Update
714 reference to renamed grub_menu_addentry function.
715
861f03a5 7162009-05-23 Felix Zielcke <fzielcke@z-51.de>
717
718 * commands/i386/pc/drivemap.c (MODNAME): Remove. Update all users.
719
96b1619a 7202009-05-22 Pavel Roskin <proski@gnu.org>
721
bf6a5fb2 722 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Remove.
723 * configure.ac: Don't call grub_I386_CHECK_REGPARM_BUG. Define
724 NESTED_FUNC_ATTR using AH_BOTTOM. Use regparm(1) only when
725 compiling for the i386 targets, but not for the utilities.
726
96b1619a 727 * include/grub/i386/pc/kernel.h (grub_boot_drive): Change type
728 to grub_uint8_t.
729 (grub_root_drive): Likewise.
730 * kern/i386/pc/startup.S (grub_boot_drive): Change size to byte,
731 remove alignment.
732 (grub_root_drive): Change size to byte.
733 (grub_start_addr): Remove.
734 (grub_end_addr): Likewise.
735 (grub_apm_bios_info): Likewise.
736
b729776b 7372009-05-21 Felix Zielcke <fzielcke@z-51.de>
738
739 * normal/i386: Remove.
740 * normal/powerpc: Likewise.
741 * normal/sparc64: Likewise.
742 * normal/x86_64: Likewise.
743
0a15ce80 7442009-05-19 Vladimir Serbinenko <phcoder@gmail.com>
745
746 * conf/x86_64-efi.rmk (linux_mod_ASFLAGS): Add missing variable
473d1e45 747 * loader/i386/linux_trampoline.S: Fix indentation
0a15ce80 748 * loader/i386/xnu_helper.S: Likewise
d6da58e6 749
33db9015 7502009-05-18 Colin D Bennett <colin@gibibit.com>
751
d6da58e6 752 Display error messages when parsing a Lua statement fails.
753 Previously, executing a syntactically invalid statement like
754 ")foo" or "bar;" would silently fail.
33db9015 755
756 * script/lua/grub_main.c (handle_lua_error): New function.
d6da58e6 757 (grub_lua_parse_line): Improved reporting of Lua parser and
758 execution errors.
33db9015 759
46422c89 7602009-05-17 Vladimir Serbinenko <phcoder@gmail.com>
761
762 Remove -Werror which causes build to fail on some systems
763
764 * conf/i386-pc.rmk (xnu_mod_CFLAGS): Remove -Werror -Wall
765 * conf/i386-efi.rmk (xnu_mod_CFLAGS): Likewise
766 * conf/x86_64-efi.rmk (xnu_mod_CFLAGS): Likewise
18f547ad 767
22f53a96 7682009-05-17 Vladimir Serbinenko <phcoder@gmail.com>
769
770 trampoline for linux on 64-bit platform
771
18f547ad 772 * conf/x86_64-efi.rmk (linux_mod_SOURCES): added
773 loader/i386/efi/linux_trampoline.S
774 * include/grub/x86_64/efi/loader.h (grub_linux_real_boot): removed
473d1e45 775 declaration
d6da58e6 776 * kern/x86_64/efi/startup.S (grub_linux_real_boot): moved from
777 here
22f53a96 778 * loader/i386/linux_trampoline.S: moved here
d6da58e6 779 * loader/i386/efi/linux.c (allocate_pages): reserve space for
780 trampoline
22f53a96 781 (jumpvector): removed
782 (grub_linux_trampoline_start): new declaration
783 (grub_linux_trampoline_end): likewise
784 (grub_linux_boot): use trampoline when on 64-bit platform
785 * loader/i386/linux.c: likewise
786
cb5a0f40 7872009-05-16 Pavel Roskin <proski@gnu.org>
788
789 * script/lua/grub_lib.c (grub_lua_getenv): Make name and value
790 const to avoid a warning.
791 (grub_lua_setenv): Likewise.
792 * script/lua/grub_main.c (grub_lua_parse_line): Use size_t for
793 lmsg to fix a warning.
794
334f2c28 7952009-05-16 Felix Zielcke <fzielcke@z-51.de>
796
797 * conf/i386.rmk (setjmp_mod_CFLAGS): Rename to ...
7dd10fce 798 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
799 * conf/x86_64-efi.rmk (setjmp_mod_CFLAGS): Rename to ...
800 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
801 * conf/powerpc-ieee1275.rmk (setjmp_mod_CFLAGS): Rename to ...
802 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
803 * conf/sparc64-ieee1275.rmk (setjmp_mod_CFLAGS): Rename to ...
804 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
334f2c28 805
59e5d3ec 8062009-05-16 Felix Zielcke <fzielcke@z-51.de>
807
808 * util/grub-mkconfig.in: Export GRUB_TERMINAL_INPUT.
809
9d87a1ba 8102009-05-16 Bean <bean123ch@gmail.com>
811
812 * conf/common.rmk (pkglib_MODULES): Add lua.mod.
813 (lua_mod_SOURCES): New variable.
814 (lua_mod_CFLAGS): Likewise.
815 (lua_mod_LDFLAGS): Likewise.
816
817 * conf/i386.rmk (pkglib_MODULES): Add setjmp.mod.
818 (setjmp_mod_SOURCES): New variable.
819 (setjmp_mod_CFLAGS): Likewise.
820 (setjmp_LDFLAGS): Likewise.
821
822 * conf/x86_64-efi.rmk (pkglib_MODULES): Add setjmp.mod.
823 (setjmp_mod_SOURCES): New variable.
824 (setjmp_mod_CFLAGS): Likewise.
825 (setjmp_LDFLAGS): Likewise.
826
827 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add setjmp.mod.
828 (setjmp_mod_SOURCES): New variable.
829 (setjmp_mod_CFLAGS): Likewise.
830 (setjmp_LDFLAGS): Likewise.
831
832 * conf/sparc64-ieee1275.rmk (pkglib_MODULES): Add setjmp.mod.
833 (setjmp_mod_SOURCES): New variable.
834 (setjmp_mod_CFLAGS): Likewise.
835 (setjmp_LDFLAGS): Likewise.
836
837 * normal/i386/setjmp.S: Moved from here ...
838 * lib/i386/setjmp.S: ... Moved here
839 * normal/x86_64/setjmp.S: Moved from here ...
840 * lib/x86_64/setjmp.S: ... Moved here
841 * normal/powerpc/setjmp.S: Moved from here ...
842 * lib/powerpc/setjmp.S: ... Moved here
843 * normal/sparc64/setjmp.S: Moved from here ...
844 * lib/sparc64/setjmp.S: ... Moved here
845
846 * include/grub/i386/setjmp.h (grub_setjmp): Don't use attribute
847 returns_twice in mingw.
848
849 * script/lua/grub_lib.c: New file.
850 * script/lua/grub_lib.h: Likewise.
851 * script/lua/grub_lua.h: Likewise.
852 * script/lua/grub_main.c: Likewise.
853 * script/lua/lapi.c: Likewise.
854 * script/lua/lapi.h: Likewise.
855 * script/lua/lauxlib.c: Likewise.
856 * script/lua/lauxlib.h: Likewise.
857 * script/lua/lbaselib.c: Likewise.
858 * script/lua/lcode.c: Likewise.
859 * script/lua/lcode.h: Likewise.
860 * script/lua/ldblib.c: Likewise.
861 * script/lua/ldebug.c: Likewise.
862 * script/lua/ldebug.h: Likewise.
863 * script/lua/ldo.c: Likewise.
864 * script/lua/ldo.h: Likewise.
865 * script/lua/ldump.c: Likewise.
866 * script/lua/lfunc.c: Likewise.
867 * script/lua/lfunc.h: Likewise.
868 * script/lua/lgc.c: Likewise.
869 * script/lua/lgc.h: Likewise.
870 * script/lua/linit.c: Likewise.
871 * script/lua/liolib.c: Likewise.
872 * script/lua/llex.c: Likewise.
873 * script/lua/llex.h: Likewise.
874 * script/lua/llimits.h: Likewise.
875 * script/lua/lmathlib.c: Likewise.
876 * script/lua/lmem.c: Likewise.
877 * script/lua/lmem.h: Likewise.
878 * script/lua/loadlib.c: Likewise.
879 * script/lua/lobject.c: Likewise.
880 * script/lua/lobject.h: Likewise.
881 * script/lua/lopcodes.c: Likewise.
882 * script/lua/lopcodes.h: Likewise.
883 * script/lua/loslib.c: Likewise.
884 * script/lua/lparser.c: Likewise.
885 * script/lua/lparser.h: Likewise.
886 * script/lua/lstate.c: Likewise.
887 * script/lua/lstate.h: Likewise.
888 * script/lua/lstring.c: Likewise.
889 * script/lua/lstring.h: Likewise.
890 * script/lua/lstrlib.c: Likewise.
891 * script/lua/ltable.c: Likewise.
892 * script/lua/ltable.h: Likewise.
893 * script/lua/ltablib.c: Likewise.
894 * script/lua/ltm.c: Likewise.
895 * script/lua/ltm.h: Likewise.
896 * script/lua/lua.h: Likewise.
897 * script/lua/luaconf.h: Likewise.
898 * script/lua/lualib.h: Likewise.
899 * script/lua/lundump.c: Likewise.
900 * script/lua/lundump.h: Likewise.
901 * script/lua/lvm.c: Likewise.
902 * script/lua/lvm.h: Likewise.
903 * script/lua/lzio.c: Likewise.
904 * script/lua/lzio.h: Likewise.
905
5e898c9d 9062009-05-16 Bean <bean123ch@gmail.com>
907
908 * include/grub/kernel.h (grub_module_header_types): Add type
909 OBJ_TYPE_CONFIG.
910
911 * kern/main.c (grub_load_config): New function.
912 (grub_main): Call grub_load_config to read boot config.
913
914 * grub-mkimage (generate_image): New parameter config_path.
915 (options): New option --config.
916 (main): Parse --config option, and pass it to generate_image.
917
cf353a47 9182009-05-14 Christian Franke <franke@computer.org>
919
920 * commands/i386/pc/drivemap_int13h.S: Add missing EXT_C for symbols.
921 This fixes build on Cygwin.
922
3834887f 9232009-05-14 Pavel Roskin <proski@gnu.org>
924
925 * commands/i386/pc/drivemap_int13h.S: Eliminate unconditional
926 jump. This saves two bytes, so the typical case of 2 swapped
927 drives would fit 32 bytes.
928
8090fc01 9292009-05-13 Pavel Roskin <proski@gnu.org>
930
ac963883 931 * loader/i386/multiboot.c (grub_multiboot): Cast mmap_addr to
932 grub_uint32_t to avoid a warning.
933
8090fc01 934 * loader/i386/linux.c (allocate_pages): When assigning
935 real_mode_mem, cast through grub_size_t to fix a warning. The
936 code already makes sure that the value would fit a pointer.
937 (grub_linux_setup_video): Cast render_target->data to
938 grub_size_t to fix a warning.
939
18f547ad 9402009-05-13 Javier Martín <lordhabbit@gmail.com>
4246b8a9 941
942 * commands/i386/pc/drivemap.c: New file - implement drivemap
943 command.
944 * commands/i386/pc/drivemap_int13h.S: New file - int13 handler.
945 * conf/i386-pc.rmk: Add drivemap.c and drivemap_int13h.S.
946
6f6a8b28 9472009-05-13 Pavel Roskin <proski@gnu.org>
948
949 * util/i386/pc/grub-setup.c (setup): Remove unused variable
950 embedding_area_exists.
951
15fbf4c4 9522009-05-13 Robert Millan <rmh.grub@aybabtu.com>
953
954 * util/i386/pc/grub-setup.c (setup): Restructure code flow to make
955 it easier to understand / work with.
59978c8a 956 Improve warning messages for cases where there's no embedding area,
957 or when it is too small (or core.img too large).
15fbf4c4 958
238e871f 9592009-05-13 Pavel Roskin <proski@gnu.org>
960
0ab3a9a4 961 * loader/i386/pc/multiboot2.c: Add necessary includes for
962 grub_multiboot2_real_boot().
963
a2c8c5f8 964 * fs/iso9660.c (grub_iso9660_iterate_dir): The file mode in the
965 PX record is always little-endian. We only need the lower 2
966 bytes of the mode.
967
faec96af 968 * fs/cpio.c: Use the same name "struct head" for tar and cpio to
969 facilitate code reuse.
970 (grub_cpio_mount): Use "struct head", not a char buffer. This
971 fixes a warning reported by gcc 4.4.
972
238e871f 973 * kernel/disk.c (grub_disk_read): Use void pointer for the
974 buffer.
975 (grub_disk_write): Use const void pointer for the buffer.
976 Adjust all callers. Remove unnecessary casts.
977
901d2f0c 9782009-05-10 Robert Millan <rmh.grub@aybabtu.com>
979
980 * util/i386/pc/grub-install.in: Update copyright year.
981
18f547ad 9822009-05-09 Vladimir Serbinenko <phcoder@gmail.com>
2eac4c16 983
984 gptsync
985
986 * commands/gptsync.c: new file
987 * conf/common.rmk (pkglib_MODULES): add gptsync.mod
988 (gptsync_mod_SOURCES): new variable
989 (gptsync_mod_CFLAGS): likewise
990 (gptsync_mod_LDFLAGS): likewise
18f547ad 991 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_NTFS):
2eac4c16 992 new definition
993 (GRUB_PC_PARTITION_TYPE_HFS): likewise
994 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/gptsync.c
995 * conf/i386-ieee1275.rmk: likewise
996 * conf/i386-pc.rmk: likewise
997 * conf/powerpc-ieee1275.rmk: likewise
998
b4ba690a 9992009-05-09 Vladimir Serbinenko <phcoder@gmail.com>
1000
1001 Fixed grub-emu
1002
1003 * kern/dl.c (grub_dl_ref): omit when compiling grub-emu
1004 (grub_dl_ref): likewise
1005
317e1a44 10062009-05-08 Robert Millan <rmh.grub@aybabtu.com>
1007
1008 * util/i386/pc/grub-setup.c (setup): Factorize find_usable_region(),
1009 split in two functions (one for msdos and one for gpt).
1010
041b8094 10112009-05-08 Pavel Roskin <proski@gnu.org>
1012
752473c2 1013 * disk/raid.c (grub_raid_block_xor): Make buf2 constant, it's
1014 not modified.
1015
041b8094 1016 * disk/raid6_recover.c (grub_raid6_recover): Fix warnings about
1017 uninitialized err[0] and err[1]. Rename them to bad1 and bad2.
1018 Initialize them with -1. Add sanity check for bad1. Eliminate
1019 nerr variable.
1020
172800ce 10212009-05-08 David S. Miller <davem@davemloft.net>
1022
1023 * util/sparc64/ieee1275/grub-ofpathname.c (main): Set progname.
1024
29aa5e81 10252009-05-06 Robert Millan <rmh.grub@aybabtu.com>
1026
1027 * util/i386/pc/grub-setup.c (setup): Fix check for embed region
473d1e45 1028 existence.
29aa5e81 1029
96613b62 10302009-05-05 Felix Zielcke <fzielcke@z-51.de>
1031
1032 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
1905c57b 1033 `kern/rescue_reader.c', `kern/rescue_parser.c' and `normal/autofs.c'.
96613b62 1034
eef73c8a 10352009-05-05 David S. Miller <davem@davemloft.net>
1036
1037 * util/sparc64/ieee1275/grub-install.in: Fix sed arg quoting.
1038
119494b5 10392009-05-05 Pavel Roskin <proski@gnu.org>
1040
1041 * include/grub/dl.h [GRUB_UTIL]: Provide inline implementations
1042 of grub_dl_ref() and grub_dl_unref().
1043 * commands/parttool.c: Remove preprocessor conditionals around
1044 grub_dl_ref() and grub_dl_unref().
1045 * fs/affs.c: Likewise.
1046 * fs/afs.c: Likewise.
1047 * fs/cpio.c: Likewise.
1048 * fs/ext2.c: Likewise.
1049 * fs/fat.c: Likewise.
1050 * fs/hfs.c: Likewise.
1051 * fs/hfsplus.c: Likewise.
1052 * fs/iso9660.c: Likewise.
1053 * fs/jfs.c: Likewise.
1054 * fs/minix.c: Likewise.
1055 * fs/ntfs.c: Likewise.
1056 * fs/reiserfs.c: Likewise.
1057 * fs/sfs.c: Likewise.
1058 * fs/udf.c: Likewise.
1059 * fs/ufs.c: Likewise.
1060 * fs/xfs.c: Likewise.
1061 * include/grub/dl.h: Likewise.
1062 * loader/xnu.c: Likewise.
1063
de5fd76e 10642009-05-04 Pavel Roskin <proski@gnu.org>
1065
1066 * commands/acpi.c: Remove unused variable my_mod.
1067 * partmap/amiga.c: Likewise.
1068 * partmap/apple.c: Likewise.
1069 * partmap/gpt.c: Likewise.
1070 * partmap/pc.c: Likewise.
1071 * partmap/sun.c: Likewise.
1072 * term/gfxterm.c: Likewise.
1073 * term/i386/pc/vesafb.c: Likewise.
1074 * term/i386/pc/vga.c: Likewise.
1075
983598ad 10762009-05-04 David S. Miller <davem@davemloft.net>
1077
1078 * kern/ieee1275/openfw.c (grub_children_iterate): Fix string
1079 pointer args to grub_ieee1275_get_property().
1080
8aadec43 1081 * conf/sparc64-ieee1275.rmk: Fix build due to missing '\'.
1082
9554b15e 1083 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Bypass cdrom
1084 devices, and do not traverse down under controller nodes.
1085
67e23c90 1086 * disk/ieee1275/ofdisk.c (compute_dev_path): New.
1087 (grub_ofdisk_open): Use it to un-escape "," characters.
1088 * kern/disk.c (find_part_sep): New.
1089 (grub_disk_open): Use it to find the first non-escaped ','
1090 character in the disk name.
1091 * util/ieee1275/devicemap.c (escape_of_path): New.
1092 (grub_util_emit_devicemap_entry): Use it.
1093 * util/sparc64/ieee1275/grub-install.in: Update script to
1094 strip partition specifiers properly by not triggering on
1095 '\' escaped ',' characters.
1096
74bfdd2f 10972009-05-04 Robert Millan <rmh.grub@aybabtu.com>
1098
1099 * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START): Set
1100 to 0x300.
1101 * loader/i386/linux.c (vga_modes, linux_vesafb_res): Add a few
1102 resolutions.
1103 (linux_vesafb_modes): Add a lot of additional modes to the list (based
1104 on documentation from Wikipedia).
1105
4241d2b1 11062009-05-04 Pavel Roskin <proski@gnu.org>
1107
1108 * disk/ata.c: Spelling fixes.
1109 * disk/raid.c: Likewise.
1110 * disk/usbms.c: Likewise.
1111 * disk/dmraid_nvidia.c: Likewise.
1112 * kern/ieee1275/openfw.c: Likewise.
1113 * kern/ieee1275/init.c: Likewise.
1114 * kern/ieee1275/cmain.c: Likewise.
1115 * boot/i386/pc/cdboot.S: Likewise.
1116 * video/readers/png.c: Likewise.
1117 * video/i386/pc/vbe.c: Likewise.
1118 * fs/udf.c: Likewise.
1119 * fs/hfs.c: Likewise.
1120 * fs/reiserfs.c: Likewise.
1121 * efiemu/runtime/efiemu.c: Likewise.
1122 * efiemu/main.c: Likewise.
1123 * efiemu/mm.c: Likewise.
1124 * include/grub/elf.h: Likewise.
1125 * include/grub/xnu.h: Likewise.
1126 * include/grub/usbdesc.h: Likewise.
1127 * include/grub/usb.h: Likewise.
1128 * include/grub/script_sh.h: Likewise.
1129 * include/grub/lib/LzmaEnc.h: Likewise.
1130 * include/grub/efiemu/efiemu.h: Likewise.
1131 * include/grub/command.h: Likewise.
1132 * normal/menu.c: Likewise.
1133 * normal/main.c: Likewise.
1134 * normal/datetime.c: Likewise.
1135 * bus/usb/uhci.c: Likewise.
1136 * mmap/i386/uppermem.c: Likewise.
1137 * mmap/mmap.c: Likewise.
1138 * commands/acpi.c: Likewise.
1139 * commands/test.c: Likewise.
1140 * partmap/apple.c: Likewise.
1141 * font/font.c: Likewise.
1142 * loader/sparc64/ieee1275/linux.c: Likewise.
1143 * loader/macho.c: Likewise.
1144 * loader/i386/bsd_trampoline.S: Likewise.
1145 * loader/i386/bsd.c: Likewise.
1146 * loader/xnu.c: Likewise.
1147 * term/i386/pc/vesafb.c: Likewise.
1148 * term/usb_keyboard.c: Likewise.
1149 * util/resolve.c: Likewise.
1150 * util/getroot.c: Likewise.
1151
0cfc0083 11522009-05-04 Felix Zielcke <fzielcke@z-51.de>
1153
1154 * conf/i386-pc.rmk (libpkg_DATA): Rename to pkglib_DATA.
1155
7c1d00cd 11562009-05-04 Robert Millan <rmh.grub@aybabtu.com>
1157
1158 * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (grub_cmd_linux): Fix
1159 build error.
1160
b01f0548 11612009-05-04 Robert Millan <rmh.grub@aybabtu.com>
1162
1163 * loader/i386/linux.c (grub_cmd_linux): Make "vga=" compatibility
1164 parameter only available on BIOS.
1165
ecc3eb22 11662009-05-04 Vladimir Serbinenko <phcoder@gmail.com>
1167
1168 Removed wrong semicolon in declaration
1169
1170 * grub/misc.h (grub_dprintf): remove semicolon
1171
112972a9 11722009-05-04 Robert Millan <rmh.grub@aybabtu.com>
1173
1174 * loader/i386/linux.c (GRUB_ASSUME_LINUX_HAS_FB_SUPPORT): New macro.
1175 (grub_linux_boot): Don't check for `linux_vesafb_modes' bounds (this
1176 is done by grub_cmd_linux() now).
1177 [! GRUB_ASSUME_LINUX_HAS_FB_SUPPORT]: If "vga=" parameter wasn't set,
1178 restore video to text mode.
1179 (grub_cmd_linux): Default `vid_mode' initialization to 0, which
1180 indicates lack of "vga=" parameter. "vga=0" is mapped to
1181 `GRUB_LINUX_VID_MODE_NORMAL'.
1182
afd5c115 11832009-05-04 Felix Zielcke <fzielcke@z-51.de>
1184
1185 * conf/i386-efi.rmk (grub_emu_SOURCES): Remove `normal/execute.c',
1186 `normal/lexer.c', `kern/rescue.c', `normal/function.c', `normal/misc.c'
1187 and `normal/script.c'. Add `kern/rescue_reader.c',
18f547ad 1188 `kern/rescue_parser.c', `script/sh/main.c', `script/sh/execute.c',
afd5c115 1189 `script/sh/function.c', `script/sh/lexer.c', `script/sh/script.c' and
1190 `grub_script.tab.c'.
1191
1192 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1193 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1194 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1195 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
1196 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1197
faa517ce 1198 * Makefile.in: Remove duplicated 2008 in Copyright line.
1199
ae0c0bdc 12002009-05-04 Robert Millan <rmh.grub@aybabtu.com>
1201
473d1e45 1202 * util/misc.c (grub_util_warn): New function. Emits a warning
ae0c0bdc 1203 unconditionally.
1204 * include/grub/util/misc.h (grub_util_warn): New declaration.
1205
1206 * util/i386/pc/grub-install.in: Understand --force and pass it down
1207 to grub-setup.
1208
1209 * util/i386/pc/grub-setup.c (main): Understand --force and pass it
1210 down to setup().
1211 (setup): Improve error messages and add warnings when requested to
1212 install in odd layouts. Refuse to install using blocklists unless
1213 --force was set.
1214
18f547ad 12152009-05-04 martin f. krafft <madduck@madduck.net>
c149b500 1216
1217 * disk/raid.c (grub_raid_scan_device): Improve debug message.
1218
6d260daa 12192009-05-04 Vladimir Serbinenko <phcoder@gmail.com>
1220
1221 Updated copyright year
1222
1223 * fs/hfsplus.c: updated copyright year
18f547ad 1224
69f853f8 12252009-05-04 Vladimir Serbinenko <phcoder@gmail.com>
1226
1227 HFS+ UUID
1228
18f547ad 1229 * fs/hfsplus.c (grub_hfsplus_volheader): added num_serial field
69f853f8 1230 in the space previously used by unused3
1231 (grub_hfsplus_uuid): new function
1232 (grub_hfsplus_fs): added uuid field
1233
4c402e73 12342009-05-03 Pavel Roskin <proski@gnu.org>
1235
1236 * disk/ata.c: Don't cast mod to void in GRUB_MOD_INIT to
1237 suppress warnings. It's no longer needed.
1238 * disk/host.c: Likewise.
1239 * disk/ata_pthru.c: Likewise.
1240 * disk/loopback.c: Likewise.
1241 * hook/datehook.c: Likewise.
1242 * parttool/pcpart.c: Likewise.
1243 * fs/i386/pc/pxe.c: Likewise.
1244 * fs/ntfscomp.c: Likewise.
1245 * efiemu/main.c: Likewise.
1246 * mmap/mmap.c: Likewise.
1247 * commands/crc.c: Likewise.
1248 * commands/hexdump.c: Likewise.
1249 * commands/hdparm.c: Likewise.
1250 * commands/acpi.c: Likewise.
1251 * commands/echo.c: Likewise.
1252 * commands/minicmd.c: Likewise.
1253 * commands/blocklist.c: Likewise.
1254 * commands/memrw.c: Likewise.
1255 * commands/loadenv.c: Likewise.
1256 * commands/usbtest.c: Likewise.
1257 * commands/lsmmap.c: Likewise.
1258 * commands/boot.c: Likewise.
1259 * commands/parttool.c: Likewise.
1260 * commands/configfile.c: Likewise.
1261 * commands/search.c: Likewise.
1262 * commands/ieee1275/suspend.c: Likewise.
1263 * commands/cat.c: Likewise.
1264 * commands/i386/pc/pxecmd.c: Likewise.
1265 * commands/i386/pc/play.c: Likewise.
1266 * commands/i386/pc/halt.c: Likewise.
1267 * commands/i386/pc/vbeinfo.c: Likewise.
1268 * commands/i386/pc/vbetest.c: Likewise.
1269 * commands/lspci.c: Likewise.
1270 * commands/date.c: Likewise.
1271 * commands/handler.c: Likewise.
1272 * commands/ls.c: Likewise.
1273 * commands/test.c: Likewise.
1274 * commands/cmp.c: Likewise.
1275 * commands/efi/loadbios.c: Likewise.
1276 * commands/efi/fixvideo.c: Likewise.
1277 * commands/halt.c: Likewise.
1278 * commands/help.c: Likewise.
1279 * commands/reboot.c: Likewise.
1280 * hello/hello.c: Likewise.
1281 * script/sh/main.c: Likewise.
1282 * loader/xnu.c: Likewise.
1283 * term/terminfo.c: Likewise.
1284 * term/i386/pc/serial.c: Likewise.
1285 * term/usb_keyboard.c: Likewise.
1286
515b5079 12872009-05-03 David S. Miller <davem@davemloft.net>
1288
1289 * normal/menu.c: Include grub/parser.h
1290
dfc31a22 12912009-05-03 Pavel Roskin <proski@gnu.org>
1292
2fee74f1 1293 * mmap/efi/mmap.c (grub_mmap_malign_and_register): Return void*,
1294 not char*.
1295 * mmap/i386/mmap.c (grub_mmap_malign_and_register): Likewise.
1296 Suggested by Javier Martín <lordhabbit@gmail.com>
1297
dfc31a22 1298 * util/i386/pc/grub-mkrescue.in: Allow for the case when
1299 efiemu??.o doesn't exist.
1300 * util/i386/pc/grub-install.in: Likewise. Use "cp -f" for
1301 copying.
1302
18f547ad 13032009-05-03 Bean <bean123ch@gmail.com> Vladimir Serbinenko <phcoder@gmail.com>
cef17233 1304
1305 FreeBSD 64-bit support
1306
18f547ad 1307 * conf/i386-pc.rmk (bsd_mod_SOURCES): add loader/i386/bsd_helper.S
cef17233 1308 and loader/i386/bsd_trampoline.S
1309 (bsd_mod_ASFLAGS): new variable
1310 * include/grub/i386/bsd.h (FREEBSD_MODINFOMD_SMAP): new definition
1311 (FREEBSD_MODTYPE_KERNEL64): likewise
1312 (grub_bsd64_trampoline_start): likewise
1313 (grub_bsd64_trampoline_end): likewise
1314 (grub_bsd64_trampoline_selfjump): likewise
1315 (grub_bsd64_trampoline_gdt): likewise
1316 * include/grub/i386/loader.h (grub_unix_real_boot): moved from here ...
1317 * include/grub/i386/bsd.h (grub_unix_real_boot): ... moved here
1318 * kern/i386/loader.S (grub_unix_real_boot): moved from here ...
1319 * loader/i386/bsd_helper.S (grub_unix_real_boot): moved here
18f547ad 1320 * include/grub/gpt_partition.h (grub_gpt_partentry): Corrected the type
cef17233 1321 of "attrib" member
1322 * loader/i386/bsd_pagetable.c: new file
1323 * loader/i386/bsd_trampoline.S: likewise
1324 * loader/i386/bsd.c (ALIGN_QWORD): new macro
1325 (ALIGN_VAR): likewise
1326 (entry_hi): new variable
1327 (kern_end_mdofs): likewise
1328 (is_64bit): likewise
1329 (grub_freebsd_add_meta): use ALIGN_VAR
1330 (grub_e820_mmap): new declaration
1331 (grub_freebsd_add_mmap): new function
1332 (grub_freebsd_add_meta_module): support 64 bit kernels
1333 (grub_freebsd_list_modules): use ALIGN_VAR
1334 (gdt_descriptor): new declaration
1335 (grub_freebsd_boot): support 64 bit kernels
1336 (grub_bsd_elf64_hook): new function
1337 (grub_bsd_load_elf): support elf64
1338
038c5720 13392009-05-03 Bean <bean123ch@gmail.com>
1340
1341 * script/sh/execute.c (grub_script_execute_cmdif): Reset grub_errno
1342 after we get the result of if statement.
1343
fc45fb58 13442009-05-03 Bean <bean123ch@gmail.com>
1345
1346 * Makefile.in (enable_efiemu): New variable.
1347
1348 * conf/i386-pc.rmk: Only compile efiemu runtimes when enable_efiemu is
1349 set.
1350 (efiemu32.o): Use macro $< for source file, add $(srcdir) to include
1351 path.
1352 (efi64_c.o): Use macro $< for source file, add $(srcdir) to include
1353 path, add -mno-red-zone option.
1354 (efiemu64_s.o): Likewise.
1355 (efiemu64.o): Use macro $^ for source file.
1356
1357 * configure.ac (--enable-efiemu): New option.
1358
bbee0f2b 13592009-05-03 Vladimir Serbinenko <phcoder@gmail.com>
1360
1361 xnu support
1362
1363 * conf/i386-efi.rmk (kernel_mod_HEADERS): added i386/pit.h
1364 (pkglib_MODULES): add xnu.mod
1365 (xnu_mod_SOURCES): new variable
1366 (xnu_mod_CFLAGS): likewise
1367 (xnu_mod_LDFLAGS): likewise
1368 (xnu_mod_ASFLAGS): likewise
1369 * conf/i386-pc.rmk: likewise
1370 * conf/x86_64-efi.rmk: likewise
7dd4a573 1371 * include/grub/efi/efi.h (grub_efi_finish_boot_services):
bbee0f2b 1372 new declaration
1373 * include/grub/i386/macho.h: new file
1374 * include/grub/i386/xnu.h: likewise
1375 * include/grub/macho.h: likewise
1376 * include/grub/machoload.h: likewise
1377 * include/grub/x86_64/macho.h: likewise
1378 * include/grub/x86_64/xnu.h: likewise
1379 * include/grub/xnu.h: likewise
1380 * kern/efi/efi.c (grub_efi_finish_boot_services): new function
1381 * kern/efi/mm.c (MAX_HEAP_SIZE): increase
1382 * loader/i386/efi/xnu.c: new file
1383 * loader/i386/pc/xnu.c: likewise
1384 * loader/i386/xnu.c: likewise
1385 * loader/i386/xnu_helper.S: likewise
1386 * loader/macho.c: likewise
1387 * loader/xnu.c: likewise
1388 * loader/xnu_resume.c: likewise
1389 * util/grub-dumpdevtree: likewise
1390 * include/grub/i386/pit.h: include grub/err.h
1391 (grub_pit_wait): export
1392 * util/grub.d/30_os-prober.in: support Darwin/Mac OS X
7dd4a573 1393
5caf964d 13942009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
1395
1396 Efiemu
7dd4a573 1397
5caf964d 1398 * conf/i386-pc.rmk: new modules efiemu, efiemu_acpi, efiemu_pnvram,
7dd4a573 1399 _linux_efi, linux_efi.
1400 new files in grub-emu
5caf964d 1401 new targets efiemu32.o and efiemu64.o
1402 * loader/linux_normal_efiemu.c: likewise
1403 * loader/i386/efi/linux.c: added preliminary efiemu support
7dd4a573 1404 * util/i386/pc/grub-install.in: add efiemu??.o to the list of
5caf964d 1405 files to copy
1406 * include/grub/autoefi.h: new file
7dd4a573 1407 * include/grub/i386/efiemu.h: likewise
5caf964d 1408 * include/grub/i386/pc/efiemu.h: likewise
1409 * include/grub/efi/api.h: add LL suffix when necessary
1410 new definitions relating to tables
1411 * include/grub/efiemu/efiemu.h: new file
1412 * include/grub/efiemu/runtime.h: likewise
1413 * efiemu/prepare.c: likewise
1414 * efiemu/loadcore_common.c: likewise
1415 * efiemu/loadcore64.c: likewise
1416 * efiemu/runtime/efiemu.sh: likewise
1417 * efiemu/runtime/efiemu.S: likewise
1418 * efiemu/runtime/efiemu.c: likewise
1419 * efiemu/runtime/config.h: likewise
1420 * efiemu/prepare32.c: likewise
1421 * efiemu/main.c: likewise
1422 * efiemu/modules/pnvram.c: likewise
1423 * efiemu/modules/i386: likewise
1424 * efiemu/modules/i386/pc: likewise
1425 * efiemu/modules/acpi.c: likewise
1426 * efiemu/i386/pc/cfgtables.c: likewise
1427 * efiemu/i386/loadcore64.c: likewise
1428 * efiemu/i386/loadcore32.c: likewise
1429 * efiemu/prepare64.c: likewise
1430 * efiemu/loadcore.c: likewise
1431 * efiemu/symbols.c: likewise
1432 * efiemu/mm.c: likewise
1433 * efiemu/loadcore32.c: likewise
7dd4a573 1434
14352009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
f8efe3ad 1436
1437 ACPI spoofing
1438
1439 * commands/acpi.c: new file
1440 * commands/i386/pc/acpi.c: likewise
1441 * commands/efi/acpi.c: likewise
1442 * include/grub/acpi.h: likewise
1443 * conf/i386-pc.rmk (pkglib_MODULES): added acpi.mod
1444 (acpi_mod_SOURCES): new variable
1445 (acpi_mod_CFLAGS): likewise
1446 (acpi_mod_LDFLAGS): likewise
1447 * conf/i386-efi.rmk: likewise
1448 * conf/x86_64-efi.rmk: likewise
1449
7dd4a573 14502009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
28a85665 1451
1452 Missing part from mmap patch
1453
1454 * mmap/efi/mmap.c (grub_machine_mmap_unregister): renamed to
1455 (grub_mmap_unregister)
1456 (grub_mmap_free_and_unregister): use grub_mmap_register
1457
7dd4a573 14582009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
09d842b9 1459
1460 Mmap services
1461
1462 * loader/i386/efi/linux.c (grub_linux_boot): use grub_mmap_iterate
1463 * loader/i386/linux.c (find_mmap_size): likewise
1464 (allocate_pages): likewise
1465 * loader/i386/multiboot.c (grub_get_multiboot_mmap_len): likewise
1466 (grub_fill_multiboot_mmap): likewise
1467 (grub_multiboot): use grub_mmap_get_lower and grub_mmap_get_upper
1468 * loader/i386/pc/linux.c (grub_cmd_linux): use grub_mmap_get_lower
1469 * include/grub/i386/bsd.h (OPENBSD_MMAP_AVAILABLE): new definition
1470 (OPENBSD_MMAP_RESERVED): likewise
1471 * include/grub/i386/pc/memory.h: include grub/memory.h
1472 (grub_lower_mem): removed
1473 (grub_upper_mem): likewise
1474 (GRUB_MACHINE_MEMORY_ACPI): new definition
1475 (GRUB_MACHINE_MEMORY_NVS): likewise
1476 (GRUB_MACHINE_MEMORY_MAX_TYPE): likewise
1477 (GRUB_MACHINE_MEMORY_HOLE): likewise
1478 (grub_machine_mmap_register): likewise
1479 (grub_machine_mmap_unregister): likewise
1480 (grub_machine_get_upper): likewise
1481 (grub_machine_get_lower): likewise
1482 (grub_machine_get_post64): likewise
1483 * include/grub/i386/efi/memory.h: new file
1484 * include/grub/x86_64/efi/memory.h: likewise
1485 * include/grub/efi/memory.h: likewise
1486 * conf/i386-pc.rmk (pkglib_MODULES): added mmap.mod
1487 (mmap_mod_SOURCES): new variable
1488 (mmap_mod_LDFLAGS): likewise
1489 (mmap_mod_ASFLAGS): likewise
1490 * conf/i386-coreboot.rmk: likewise
1491 * conf/i386-ieee1275.rmk: likewise
1492 * conf/i386-efi.rmk: likewise
1493 * conf/x86_64-efi.rmk: likewise
1494 * include/grub/types.h (UINT_TO_PTR): new macro
1495 (PTR_TO_UINT32): likewise
1496 (PTR_TO_UINT64): likewise
1497 * include/grub/memory.h: new file
1498 * mmap/i386/pc/mmap.c: likewise
1499 * mmap/i386/pc/mmap_helper.S: likewise
1500 * mmap/i386/uppermem.c: likewise
1501 * mmap/mmap.c: likewise
1502 * mmap/efi/mmap.c: likewise
7dd4a573 1503 * kern/i386/coreboot/init.c (grub_machine_init): don't use
09d842b9 1504 grub_upper_mem
1505 * kern/i386/pc/init.c (grub_lower_mem): removed variable
1506 (grub_upper_mem): likewise
1507 (grub_machine_init): don't use grub_upper_mem,
1508 make grub_lower_mem local
1509 * loader/i386/bsd.c (grub_openbsd_boot): use grub_mmap_get_lower,
1510 grub_mmap_iterate and grub_mmap_get_upper
1511 (grub_netbsd_boot): use grub_mmap_get_lower and grub_mmap_get_upper
1512
d558e6b5 15132009-05-02 Bean <bean123ch@gmail.com>
1514
1515 * conf/common.rmk (grub_script.tab.c): Change normal/parser.y to
1516 script/sh/parser.y.
1517 (pkglib_MODULES): Add normal.mod and sh.mod.
1518 (normal_SOURCES): New variable.
1519 (normal_mod_CFLAGS): Likewise.
1520 (normal_mod_LDFLAGS): Likewise.
1521 (sh_mod_SOURCES): Likewise.
1522 (sh_mod_CFLAGS): Likewise.
1523 (sh_mod_LDFLAGS): Likewise.
1524
1525 * conf/i386-pc.rmk (normal/lexer.c_DEPENDENCIES): Changed to
1526 script/sh/lexer.c_DEPENDENCIES.
1527 (kernel_img_SOURCES): Remove kern/rescue.c, and kern/reader.c,
1528 kern/rescue_reader.c and kern/rescue_parser.c.
1529 (kernel_img_HEADERS): Remove rescue.h, add reader.h.
1530 (grub_emu_SOURCES): Change source files.
1531 (pkglib_MODULES): Remove normal.mod.
1532 (normal_SOURCES): Removed.
1533 (normal_mod_CFLAGS): Likewise.
1534 (normal_mod_LDFLAGS): Likewise.
1535 * conf/i386-coreboot.rmk: Likewise.
1536 * conf/i386-efi.rmk: Likewise.
1537 * conf/i386-ieee1276.rmk: Likewise.
1538 * conf/powerpc-ieee1275.rmk: Likewise.
1539 * conf/sparc64-ieee1275.rmk: Likewise.
1540 * conf/x86_64-efi.rmk: Likewise.
1541
1542 * include/grub/command.h (grub_command_execute): New inline function.
1543
1544 * include/grub/menu.h (grub_menu_entry): Removed commands field.
1545
1546 * include/grub/normal.h: Remove <grub/setjmp.h>.
1547 (grub_fs_module_list): Moved to normal/autofs.c.
1548 (grub_exit_env): Removed.
1549 (grub_command_execute): Likewise.
1550 (grub_normal_menu_addentry): Renamed to grub_menu_addentry, removed
1551 parameter script.
1552 (read_command_list): New function declaration.
1553 (read_fs_list): Likewise.
1554
1555 * include/parser.h: Include <grub/reader.h>.
1556 (grub_parser_split_cmdline): Change type of getline parameter.
1557 (grub_parser): New structure.
1558 (grub_parser_class): New variable.
1559 (grub_parser_execute): New function declaration.
1560 (grub_register_rescue_parser): Likewise.
1561 (grub_parser_register): New inline function.
1562 (grub_parser_unregister): Likewise.
1563 (grub_parser_get_current): Likewise.
1564 (grub_parser_set_current): Likewise.
1565
1566 * include/grub/reader.h: New file.
1567 * kern/reader.c: Likewise.
1568 * kern/rescue_parser.c: Likewise.
1569 * kern/rescue_reader.c: Likewise.
1570 * normal/autofs.c: Likewise.
1571 * normal/dyncmd.c: Likewise.
1572
1573 * include/grub/rescue.h: Removed.
1574 * normal/command.h: Likewise.
1575
1576 * include/grub/script.h: Moved to ...
1577 * include/grub/script_sh.h: ... Moved here.
1578 * normal/execute.c: Moved to ...
1579 * script/sh/execute.c: ... Moved here.
1580 * normal/function.c: Moved to ...
1581 * script/sh/function.c: ... Moved here.
1582 * normal/lexer.c: Moved to ...
1583 * script/sh/lexer.c: ... Moved here.
1584 * normal/parser.y: Moved to ...
1585 * script/sh/parser.y: ... Moved here.
1586 * normal/script.c: Moved to ...
1587 * script/sh/script.c: ... Moved here.
1588
1589 * normal/main.c: Remove <grub/rescue.h> and <grub/script.h>, include
1590 <grub/reader.h>.
1591 (grub_exit_env): Removed.
1592 (fs_module_list): Moved to normal/autofs.c.
1593 (grub_file_getline): Don't handle comment here.
1594 (free_menu): Skip removed field entry->commands.
1595 (grub_normal_menu_addentry): Removed as grub_menu_entry, removed
1596 script parameter.
1597 (read_config_file): Removed nested parameter, change getline function.
1598 (grub_enter_normal_mode): Removed.
1599 (grub_dyncmd_dispatcher): Moved to normal/dyncmd.c.
1600 (read_command_list): Likewise.
1601 (autoload_fs_module): Moved to normal/autofs.c.
1602 (read_fs_list): Likewise.
1603 (reader_nested): New variable.
1604 (grub_normal_execute): Run parser.sh to switch to sh parser.
1605 (grub_cmd_rescue): Removed.
1606 (cmd_normal): Removed.
1607 (grub_cmd_normal): Unregister itself at the beginning. Don't register
1608 rescue command.
1609 (grub_cmdline_run): New function.
1610 (grub_normal_reader_init): Likewise.
1611 (grub_normal_read_line): Likewise.
1612 (grub_env_write_pager): Likewise.
1613 (cmdline): New variable.
1614 (grub_normal_reader): Likewise.
1615 (GRUB_MOD_INIT): Register normal reader and set as current, register
1616 pager hook, register normal command with grub_register_command_prio,
1617 so that it won't show up in command.lst.
1618 (GRUB_MOD_FINI): Unregister normal reader, unhook pager, clear
1619 grub_fs_autoload_hook.
1620
1621 * normal/menu.c: Remove <grub/script.h>, add <grub/command.h>.
1622 (grub_menu_execute_entry): Replace grub_script_execute with
1623 grub_parser_execute, change parameter to grub_command_execute.
1624
1625 * normal/menu_text.c: Remove <grub/script.h>.
1626
1627 * normal/menu_entry.c: Remove <grub/script.h>, add <grub/command.h>
1628 and <grub/parser.h>.
1629 (run): Change editor_getline to use new parser interface. Change
1630 parameter to grub_command_execute.
1631
1632 * kern/main.c: Remove <grub/rescue.h>, include <grub/command.h>,
1633 <grub/reader.h> and <grub/parser.h>.
1634 (grub_load_normal_mode): Execute normal command.
1635 (grub_main): Call grub_register_core_commands,
1636 grub_register_rescue_parser and grub_register_rescue_reader, use
1637 grub_reader_loop to enter input loop.
1638
7dd4a573 1639 * kern/parser.c (grub_parser_split_cmdline): Change type of
1640 getline parameter.
d558e6b5 1641 (grub_parser_class): New variable.
1642 (grub_parser_execute): New function.
1643
1644 * loader/i386/multiboot.c: Remove <grub/rescue.h>.
1645 * loader/multiboot2.c: Likewise.
1646 * loader/sparc64/ieee1275/linux.c: Likewise.
1647
1648 * util/grub-emu.c (read_command_list): New dummy function.
1649
18db813d 16502009-05-02 Robert Millan <rmh.grub@aybabtu.com>
1651
1652 * util/deviceiter.c (grub_util_iterate_devices): Increase max drive
1653 count to 16 for CCISS and IDA.
1654
6c67de15 16552009-05-02 Robert Millan <rmh.grub@aybabtu.com>
1656
1657 * normal/menu_text.c (grub_wait_after_message): Print a newline
1658 after waiting for user input.
1659
1660 * loader/i386/linux.c: Include `<grub/normal.h>'.
1661 (grub_cmd_linux): Improve the error message about `ask' mode, by
1662 waiting for user input so it's not missed (we can do this, since
1663 user requested interaction).
1664
d9dc87b0 16652009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
1666
1667 Added missing lst to grub-mkrescue
1668
1669 * util/i386/pc/grub-mkrescue.in: added ${input_dir}/handler.lst
1670 and ${input_dir}/parttool.lst
1671
ac8a2baa 16722009-04-30 David S. Miller <davem@davemloft.net>
1673
ad22a610 1674 * util/hostdisk.c (device_is_wholedisk): New function.
1675 (grub_util_biosdisk_get_grub_dev): Shortcut when hdg.start is
1676 zero only if device_is_wholedisk() returns true.
1677
6966215d 1678 * util/hostdisk.c (convert_system_partition_to_system_disk):
1679 Handle virtual disk devices named /dev/vdiskX as found on sparc
1680 and powerpc.
1681
ac8a2baa 1682 * kern/sparc64/ieee1275/init.c (grub_machine_set_prefix): If
1683 lettered partition specifier is found, convert to numbered.
1684
979b4fb4 16852009-04-29 David S. Miller <davem@davemloft.net>
1686
e2bf39b2 1687 * include/grub/powerpc/ieee1275/memory.h: Include ieee1275.h.
1688 * include/grub/sparc64/ieee1275/memory.h: Likewise.
1689
3c64e104 1690 * normal/command.c: Add missing newline at end of file.
1691
979b4fb4 1692 * commands/lsmmap.c (grub_cmd_lsmmap): Add casts to avoid printf
1693 warnings.
1694 * kern/ieee1275/openfw.c (grub_claimmap): Likewise.
1695 * disk/ieee1275/ofdisk.c (grub_ofdisk_open, grub_ofdisk_close,
1696 grub_ofdisk_read): Likewise, and deal similarly with the fact that
1697 ihandles have a 32-bit type but need to be stored in a "void *".
1698
136d9f82 16992009-04-28 Pavel Roskin <proski@gnu.org>
1700
9459c306 1701 * disk/fs_uuid.c (grub_fs_uuid_open): Use parent->data for dev,
1702 not disk. Adjust all dependencies.
2e08a26a 1703 (grub_fs_uuid_close): Use grub_device_close(), not
9459c306 1704 grub_disk_close().
1705
136d9f82 1706 * disk/fs_uuid.c (grub_fs_uuid_open): Allocate memory to copy
1707 parent's partition, don't copy it by reference, as it gets freed
1708 on close.
1709
7dd4a573 17102009-04-27 Vladimir Serbinenko <phcoder@gmail.com>
75a807cf 1711
1712 Preboot hooks support
1713
1714 * commands/boot.c (struct grub_preboot_t): new declaration
1715 (preboots_head): new variable
1716 (preboots_tail): likewise
1717 (grub_loader_register_preboot_hook): new function
1718 (grub_loader_unregister_preboot_hook): likewise
1719 (grub_loader_set): launch preboot hooks
1720 * include/grub/loader.h (grub_loader_preboot_hook_prio_t): new type
1721 (grub_loader_register_preboot_hook): new declaration
1722 (grub_loader_unregister_preboot_hook): likewise
1723
5af922b5 17242009-04-27 Vladimir Serbinenko <phcoder@gmail.com>
1725
1726 Warning fix
1727
7dd4a573 1728 * disk/scsi.c (grub_scsi_open): added missing cast when
5af922b5 1729 calling grub_dprintf
1730
a5562c30 17312009-04-26 Vladimir Serbinenko <phcoder@gmail.com>
1732
1733 Bug and warning fixes
1734
7dd4a573 1735 * include/grub/i386/pc/init.h (grub_stop_floppy): added missing
a5562c30 1736 declaration
1737 * commands/test.c (test_parse): fixed bug with file tests and corrected
1738 declaration of find_file
1739
4006f85c 17402009-04-26 Pavel Roskin <proski@gnu.org>
1741
1742 * Makefile.in: Don't install empty manual pages if help2man is
1743 missing. Use help2man option for output, not shell redirection.
1744
5c77c3de 17452009-04-26 David S. Miller <davem@davemloft.net>
1746
1747 * util/grub-mkdevicemap.c (make_device_map): Add missing
1748 NESTED_FUNC_ATTR to process_device().
1749
033b10a8 17502009-04-25 Vladimir Serbinenko <phcoder@gmail.com>
1751
1752 Test command
1753
1754 * commands/test.c: rewritten to use bash-like test
1755
e4343593 17562009-04-25 Vladimir Serbinenko <phcoder@gmail.com>
1757
1758 Parttool autoloading and improvements
1759
7dd4a573 1760 * Makefile.in (pkglib_DATA): add parttool.lst
e4343593 1761 (parttool.lst): new target
1762 * genmk.rb: generate parttool-*
1763 (CLEANFILES): add #{parttool}
1764 (PARTTOOLFILES): new variable
1765 * genparttoollist.sh: new file
7dd4a573 1766 * parttool/pcpart.c (grub_pcpart_boot): more feedback
e4343593 1767 (grub_pcpart_type): likewise
1768 * commands/parttool.c (helpmsg): new variable
1769 (grub_cmd_parttool): output help if not enough arguments are supplied
1770 autoload modules
1771 (GRUB_MOD_INIT(parttool)): use helpmsg
1772
0d312500 17732009-04-24 David S. Miller <davem@davemloft.net>
1774
7dd4a573 1775 Avoiding opening same device multiple times in device iterator.
0d312500 1776
1777 * kern/device.c: (grub_device_iterate): Define struct part_ent,
7dd4a573 1778 and use it to build a list of partitions in iterate_disk() and
0d312500 1779 iterate_partition().
1780
ac20caff 1781 * disk/fs_uuid.c (grub_fs_uuid_close): Call grub_disk_close()
1782 on disk->data.
1783
0dcf7495 1784 * disk/ieee1275/nand.c (grub_nand_iterate): Return
1785 grub_devalias_iterate() result instead of unconditional 0.
1786 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Likewise.
1787 Also, capture hook return value, either directly or via
1788 grub_children_iterate(), and propagate to caller.
1789 * include/grub/ieee1275/ieee1275.h (grub_devalias_iterate,
1790 grub_children_iterate): Return value is now 'int' instead of
1791 'grub_err_t'.
1792 * kern/ieee1275/openfw.c (grub_children_iterate): Fix to behave
1793 like a proper iterator, stopping when hooks return non-zero.
1794 (grub_devalias_iterate): Likewise.
1795
c8c08833 17962009-04-23 David S. Miller <davem@davemloft.net>
1797
1798 * kern/sparc64/ieee1275/openfw.c: Unused, delete.
1799
f01005a8 18002009-04-22 David S. Miller <davem@davemloft.net>
1801
1802 * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): If size_cells
1803 is larger than address_cells, use that value for address_cells too.
1804
4e8269da 1805 * include/grub/ieee1275/ieee1275.h (IEEE1275_MAX_PROP_LEN,
1806 IEEE1275_MAX_PATH_LEN): Define.
1807 * kern/ieee1275/openfw.c (grub_children_iterate): Dynamically
1808 allocate 'childtype', 'childpath', 'childname', and 'fullname'.
1809 (grub_devalias_iterate): Dynamically allocate 'aliasname' and
1810 'devtype'. Explicitly NULL terminate devalias expansion.
1811
a1447506 1812 * util/sparc64/ieee1275/misc.c: New file.
1813 * util/sparc64/ieee1275/grub-setup.c: New file.
1814 * util/sparc64/ieee1275/grub-ofpathname.c: New file.
1815 * util/sparc64/ieee1275/grub-mkimage.c: New file.
1816 * util/sparc64/ieee1275/grub-install.in: New file.
1817 * util/ieee1275/ofpath.c: New file.
1818 * util/ieee1275/devicemap.c: New file.
1819 * util/devicemap.c: New file.
1820 * util/deviceiter.c: New file.
1821 * kern/sparc64/ieee1275/init.c: New file.
1822 * include/grub/util/ofpath.h: New file.
1823 * include/grub/util/deviceiter.h: New file.
1824 * util/grub-mkdevicemap.c: Include deviceiter.h.
1825 Implement using grub_util_emit_devicemap_entry and
1826 grub_util_iterate_devices.
1827 * conf/i386-corebook.rmk: Build util/deviceiter.c and
1828 util/devicemap.c into grub-mkdevicemap
1829 * conf/i386-efi.rmk: Likewise.
1830 * conf/i386-ieee1275.rmk: Likewise.
1831 * conf/i386-pc.rmk: Likewise.
1832 * conf/powerpc-ieee1275.rmk: Likewise.
1833 * conf/sparc64-ieee1275.rmk: Add rules to build boot block
1834 images and installation utilities. Build kernel as image
1835 instead of as elf binary. Use common rules as much as possible.
1836
7dd4a573 18372009-04-19 Vladimir Serbinenko <phcoder@gmail.com>
0aefc632 1838
1839 Correct GPT definition
1840
7dd4a573 1841 * include/grub/gpt_partition.h (grub_gpt_partentry): Corrected the type
0aefc632 1842 of "attrib" member
1843
c6c5219f 18442009-04-19 Felix Zielcke <fzielcke@z-51.de>
1845
1846 * INSTALL: Replace `autogen.sh' with `./autogen.sh'.
1847
0552ff9f 18482009-04-19 David S. Miller <davem@davemloft.net>
1849
1850 * loader/sparc64/ieee1275/linux.c: Include grub/command.h
1851 (grub_rescue_cmd_linux): Rename to...
1852 (grub_cmd_linux): and fix prototype.
1853 (grub_rescue_cmd_initrd): Rename to...
1854 (grub_cmd_initrd): and fix prototype.
1855 (cmd_linux, cmd_initrd): New.
1856 (GRUB_MOD_INIT(linux)): Use grub_register_command().
1857 (GRUB_MOD_FINI(linux): Use grub_unregister_command().
1858
d1a282fc 18592009-04-17 Pavel Roskin <proski@gnu.org>
1860
07c5039f 1861 * bus/usb/ohci.c (grub_ohci_transaction): Fix incorrect printf
1862 format.
1863 (grub_ohci_transfer): Likewise.
1864
b012002d 1865 * bus/usb/usbtrans.c (grub_usb_control_msg): Warning fix.
1866
1bc09c35 1867 * loader/multiboot_loader.c (grub_cmd_multiboot_loader): Fix
1868 return without a value. Fix inconsistent indentation.
1869
e0ff9126 1870 * fs/i386/pc/pxe.c (grub_pxefs_dir): Fix function prototype to
1871 match struct grub_fs.
1872
d1a282fc 1873 * disk/ata.c (grub_ata_pciinit): Use NESTED_FUNC_ATTR.
1874 * bus/usb/ohci.c (grub_ohci_pci_iter): Likewise.
1875 * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
1876 * commands/lspci.c (grub_lspci_iter): Likewise.
1877
a96df3f2 18782009-04-16 Bean <bean123ch@gmail.com>
1879
1880 * commands/efi/loadbios.c (grub_cmd_fakebios): Add missing return
1881 value.
1882
41bb0fe9 18832009-04-15 Pavel Roskin <proski@gnu.org>
1884
1885 * include/grub/types.h: Rename ULONG_MAX to GRUB_ULONG_MAX and
1886 LONG_MAX to GRUB_LONG_MAX. Introduce GRUB_LONG_MIN. Update all
1887 users of ULONG_MAX, LONG_MAX and LONG_MIN to use the new
1888 definitions.
1889
596c6970 18902009-04-15 Felix Zielcke <fzielcke@z-51.de>
1891
1892 * disk/lvm.c (grub_lvm_scan_device): Add `LVM' to the error messages,
7dd4a573 1893 that no multiple data or metadata areas are supported and `Unknown
596c6970 1894 metadata header'.
1895
7dd4a573 18962009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
0d5d5653 1897
1898 Move loader out of the kernel
1899
1900 * kern/loader.c: moved to ...
1901 * commands/boot.c: ... moved here
1902 * commands/minicmd.c (grub_mini_cmd_boot): moved to ...
1903 * commands/boot.c (grub_cmd_boot): moved here. All users updated
1904 * include/grub/kernel.h (grub_machine_fini): export
1905 * include/grub/loader.h (grub_loader_is_loaded): update declaration
1906 (grub_loader_set): likewise
1907 (grub_loader_unset): likewise
1908 (grub_loader_boot): likewise
1909 * conf/common.rmk: new module boot.mod
1910 (pkglib_MODULES): add boot.mod
1911 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): remove kern/loader.c
1912 (grub_emu_SOURCES): likewise
1913 * conf/i386-efi.rmk (kernel_elf_SOURCES): likewise
1914 (grub_emu_SOURCES): likewise
1915 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): likewise
1916 (grub_emu_SOURCES): likewise
1917 * conf/i386-pc.rmk (kernel_elf_SOURCES): likewise
1918 (grub_emu_SOURCES): likewise
1919 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): likewise
1920 (grub_emu_SOURCES): likewise
7dd4a573 1921 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): likewise
1922 (grub_emu_SOURCES): likewise
0d5d5653 1923 * conf/x86_64-efi.rmk (kernel_elf_SOURCES): likewise
7dd4a573 1924 (grub_emu_SOURCES): likewise
0d5d5653 1925
7dd4a573 19262009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
5999d619 1927
1928 use grub_lltoa instead of grub_itoa and grub_ltoa for all purposes
7dd4a573 1929
5999d619 1930 * kern/misc.c (grub_itoa): Removed function
1931 (grub_ltoa): likewise
1932 (grub_vsprintf): use grub_lltoa
1933
7dd4a573 19342009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
13c00781 1935
1936 Restore grub-emu
1937
1938 * conf/i386-pc.rmk (grub_emu_SOURCES): add normal/handler.c
1939 * conf/i386-coreboot.rmk: likewise
1940 * conf/i386-ieee1275.rmk: likewise
1941 * conf/powerpc-ieee1275.rmk: likewise
7dd4a573 1942
20318222 19432009-04-15 Felix Zielcke <fzielcke@z-51.de>
1944
1945 * INSTALL: Add that `./autogen.sh' needs to be run before
1946 `./configure.'.
1947
d05f0df3 19482009-04-14 Bean <bean123ch@gmail.com>
1949
1950 * Makefile.in (pkglib_DATA): Add handler.lst.
1951 (handler.lst): New rule.
1952
1953 * conf/i386-pc.rmk (normal_mod_SOURCES): Add normal/handler.c.
1954 * conf/i386-coreboot.rmk: Likewise.
1955 * conf/i386-ieee1275.rmk: Likewise.
1956 * conf/i386-efi.rmk: Likewise.
1957 * conf/x86_64-efi.rmk: Likewise.
1958 * conf/powerpc-ieee1275.rmk: Likewise.
1959 * conf/sparc64-ieee1275.rmk: Likewise.
1960
1961 * genhandlerlist.sh: New file.
1962
1963 * genmk.rb: Add rules to generate handler.lst.
1964
1965 * include/grub/normal.h (grub_file_getline): New function definition.
1966 (read_handler_list): Likewise.
1967 (free_handler_list): Likewise.
1968
1969 * include/grub/term.h (grub_term_register_input): Add name parameter
1970 for auto generation of handler.lst.
1971 (grub_term_register_output): Likewise.
1972
1973 * normal/handler.c: New file.
1974
1975 * normal/main.c (get_line): Renamed to grub_file_getline.
1976 (read_config_file): Use the newly renamed grub_file_getline.
1977 (read_command_list): Likewise.
1978 (read_fs_list): Likewise.
1979 (grub_normal_execute): Call read_handler_list to parse handler.lst.
1980 (GRUB_MOD_FINI): Call free_handler_list to free handler list.
1981
1982 * term/efi/console.c (grub_console_init): Add name parameter for auto
1983 generation of handler.lst.
1984 * term/gfxterm.c: Likewise.
1985 * term/i386/pc/at_keyboard.c: Likewise.
1986 * term/i386/pc/console.c: Likewise.
1987 * term/i386/pc/serial.c: Likewise.
1988 * term/i386/pc/vesafb.c: Likewise.
1989 * term/i386/pc/vga.c: Likewise.
1990 * term/i386/pc/vga_text.c: Likewise.
1991 * term/ieee1275/ofconsole.c: Likewise.
1992 * term/usb_keyboard.c: Likewise.
1993
33c846be 19942009-04-14 Bean <bean123ch@gmail.com>
1995
1996 * util/grub-pe2elf.c (write_symbol_table): Terminate short name symbol
1997 properly with null character.
1998
4484e01e 19992009-04-14 Felix Zielcke <fzielcke@z-51.de>
2000
2001 * configure: Remove.
2002 * config.h.in: Likewise.
f93d668e 2003 * stamp-h.in: Likewise.
4484e01e 2004 * DISTLIST: Likewise.
2005 * conf/common.mk: Likewise.
2006 * conf/i386-coreboot.mk: Likewise.
2007 * conf/i386-efi.mk: Likewise.
2008 * conf/i386-ieee1275.mk: Likewise.
2009 * conf/i386.mk: Likewise.
2010 * conf/i386-pc.mk: Likewise.
2011 * conf/powerpc-ieee1275.mk: Likewise.
2012 * conf/sparc64-ieee1275.mk: Likewise.
2013 * conf/x86_64-efi.mk: Likewise.
2014
2015 * INSTALL: Remove the sentence that Ruby and autoconf are only required if you
2016 develop on GRUB.
2017
7dd4a573 20182009-04-14 John Stanley <jpsinthemix@verizon.net>
5c5bf96a 2019 David S. Miller <davem@davemloft.net>
2020
2021 * util/hostdisk.c (make_device_name): Fix buffer length
2022 calculations.
2023
e25b5a8c 20242009-04-14 Felix Zielcke <fzielcke@z-51.de>
2025
2026 * util/hostdisk.c [__FreeBSD__ || __FreeBSD_kernel__]: Include
2027 <sys/param.h> and <sys/sysctl.h>.
2028 (open_device) [__FreeBSD__ || __FreeBSD_kernel_]: Use sysctlgetbyname()
2029 to add 0x10 to `kern.geom.debugflags' if it's not already set, before
2030 opening the device and reset them afterwards.
2031
1f1f580c 20322009-04-13 Pavel Roskin <proski@gnu.org>
2033
2034 * conf/common.rmk (grub_fstest_SOURCES): Add normal/datetime.c.
2035 Reported by John Stanley <jpsinthemix@verizon.net>
2036
7ebc2d6b 20372009-04-13 Robert Millan <rmh@aybabtu.com>
2038
2039 * util/grub.d/10_freebsd.in: Detect Debian GNU/kFreeBSD and use
7dd4a573 2040 that name for menuentries when appropriate.
7ebc2d6b 2041
d8ba3667 20422009-04-13 Felix Zielcke <fzielcke@z-51.de>
2043
2044 * util/grub.d/10_freebsd.in: Add a missing `fi'.
2045
cba416eb 20462009-04-13 Robert Millan <rmh@aybabtu.com>
2047
2048 * loader/i386/linux.c (grub_cmd_linux): Don't pass `vga=ask' parameter
2049 to Linux, simply abort telling the user it's no longer supported.
2050
a547a745 20512009-04-13 Felix Zielcke <fzielcke@z-51.de>
2052
2053 * util/grub.d/10_freebsd.in: Don't exit if /boot/devices.hints
7dd4a573 2054 doesn't exist. Check also for /boot/kernel/kernel.gz. Print
a547a745 2055 `freebsd_loadenv' only when devices.hints exist.
2056
232a769c 20572009-04-13 Pavel Roskin <proski@gnu.org>
2058
2059 * term/usb_keyboard.c (grub_usb_keyboard_getkey): Warning fixes.
2060
c3012039 20612009-04-13 Felix Zielcke <fzielcke@z-51.de>
2062
2063 * util/i386/pc/grub-install.in (install_drive): Remove the BSD
2064 partition number.
2065 (grub_drive): Likewise.
2066
234022fe 20672009-04-13 David S. Miller <davem@davemloft.net>
2068
2069 * kern/sparc64/ieee1275/ieee1275.c: New file.
2070 * include/grub/sparc64/ieee1275/ieee1275.h (IEEE1275_MAP_WRITE,
2071 IEEE1275_MAP_READ, IEEE1275_MAP_EXEC, IEEE1275_MAP_LOCKED,
2072 IEEE1275_MAP_CACHED, IEEE1275_MAP_SE, IEEE1275_MAP_GLOBAL,
2073 IEEE1275_MAP_IE, IEEE1275_MAP_DEFAULT): Define.
2074 (grub_ieee1275_map_physical, grub_ieee1275_claim_vaddr,
2075 grub_ieee1275_alloc_physmem): Declare new exported functions.
2076
d8e1836c 2077 * include/grub/sparc64/ieee1275/loader.h: New file.
2078 * include/grub/sparc64/ieee1275/memory.h: Likewise.
2079 * include/grub/sparc64/kernel.h: Likewise.
2080 * loader/sparc64/ieee1275/linux.c: Likewise.
2081
96bd81ec 2082 * conf/common.rmk (grub_probe_SOURCES): Add Sun partition module.
2083 (grub_fstest_SOURCES): Likewise.
2084
6a4737e5 2085 * util/hostdisk.c (make_device_name): Do not make any assumptions
2086 about the length of drive names.
2087
1d7a72fd 2088 * kern/dl.c (grub_dl_load_file): Close file immediately when
2089 we are done using it.
2090
56bc2471 20912009-04-12 David S. Miller <davem@davemloft.net>
2092
2093 * kern/misc.c (grub_ltoa): Fix cast when handling negative
2094 values. Noticed by Pavel Roskin.
2095
df38d0bb 2096 * configure.ac: Check for __bswapsi2 and__bswapdi2 using
2097 target compiler.
7dd4a573 2098
e382e93a 2099 * genmk.rb: Add more flexible image type specification, also
2100 pass --strip-unneeded to objcopy.
2101 * conf/i386-pc.rmk: Use *_FORMAT.
2102 * conf/i386-pc.mk: Rebuilt.
2103
f5dbbca9 2104 * disk/ieee1275/ofdisk.c (struct ofdisk_hash_ent): New struct.
2105 (OFDISK_HASH_SZ): Define.
2106 (ofdisk_hash): New hash table.
2107 (ofdisk_hash_fn, ofdisk_hash_find, ofdisk_hash_add): New functions.
2108 (grub_ofdisk_open): Use ofdisk_hash_ent address as disk->id
2109 instead of device phandle which is not unique.
2110
91c88b12 2111 * kern/sparc64/ieee1275/init.c: Delete, replace with...
2112 * kern/sparc64/ieee1275/crt0.S: assembler implementation.
2113 * include/grub/sparc64/ieee1275/kernel.h: Declare grub_prefix[].
2114 (GRUB_MOD_ALIGN, GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_TOTAL_MODULE_SIZE,
2115 GRUB_KERNEL_MACHINE_KERNEL_IMAGE_SIZE,
2116 GRUB_KERNEL_MACHINE_COMPRESSED_SIZE, GRUB_KERNEL_MACHINE_PREFIX,
2117 GRUB_KERNEL_MACHINE_DATA_END): Define.
2118 (grub_kernel_image_size, grub_total_module_size): Declare.
2119
5b5d4aa5 21202009-04-12 Pavel Roskin <proski@gnu.org>
2121
7dd4a573 2122 * configure.ac: Change the logic when we check for target tools.
2123 Do it when the target is specified and it's different from the
2124 specified value of the host.
5b5d4aa5 2125
c91e1793 21262009-04-11 Felix Zielcke <fzielcke@z-51.de>
2127
2128 * util/hostdisk.c [__FreeBSD_kernel__]: Include sys/disk.h.
2129 (grub_util_biosdisk_open) [__FreeBSD_kernel__]: Add support for
2130 GNU/kFreeBSD. Check if a device is a character device. Use
2131 DIOCGMEDIASIZE to get the size.
2132 (convert_system_partition_to_system_disk) [__FreeBSD_kernel__]: Add
2133 support for GNU/kFreeBSD.
2134 (grub_util_biosdisk_get_grub_dev) [__FreeBSD_kernel__]: Check if OS_DEV
2135 is a character device instead of a block device. Add support for
2136 FreeBSD device names.
2137
2138 * util/getroot.c (find_root_device) [__FreeBSD_kernel__]: Check if ENT
2139 is a character device instead of a block device.
2140
2141 * util/grub-probe.c (probe) [__FreeBSD_kernel__]: Check if DEVICE_NAME
2142 is a character device instead of a block device.
2143
b1ac8644 21442009-04-11 Andrey Shuvikov <mr_hyro@yahoo.com>
2145
2146 * util/hostdisk.c [__FreeBSD__]: Include sys/disk.h.
2147 (grub_util_biosdisk_open) [__FreeBSD__]: Add support for
2148 FreeBSD. Check if a device is a character device. Use
2149 DIOCGMEDIASIZE to get the size.
2150 (convert_system_partition_to_system_disk) [__FreeBSD__]: Add
2151 support for FreeBSD.
2152 (grub_util_biosdisk_get_grub_dev) [__FreeBSD__]: Check if OS_DEV
2153 is a character device instead of a block device. Add support for
2154 FreeBSD device names.
2155
2156 * util/getroot.c (find_root_device) [__FreeBSD__]: Check if ENT is
2157 a character device instead of a block device.
2158 (grub_util_check_char_device): New function.
2159
2160 * util/grub-probe.c (probe) [__FreeBSD__]: Check if DEVICE_NAME is
2161 a character device instead of a block device.
2162
2163 * include/grub/util/getroot.h (grub_util_check_char_device): New
2164 prototype.
2165
a3f7515a 21662009-04-11 David S. Miller <davem@davemloft.net>
2167
2168 * conf/sparc64-ieee1275.rmk (kernel_img_LDFLAGS): Link with
2169 static libgcc.
2170 * configure.ac: Check for __bswapsi2 and __bswapdi2 presence.
2171 * include/grub/sparc64/libgcc.h (__bswapsi2): Export libgcc
2172 function, if present.
2173 (__bswapdi2): Likewise.
2174
0d44993d 2175 * include/grub/sparc64/ieee1275/boot.h: New file.
2176 * boot/sparc64/ieee1275/boot.S: Likewise.
2177 * boot/sparc64/ieee1275/diskboot.S: Likewise.
2178
ed3d2bc2 2179 * kern/misc.c (grub_ltoa): New function.
2180 (grub_vsprintf): Use it to format 'long' integers.
2181
d3bfb59c 21822009-04-10 David S. Miller <davem@davemloft.net>
2183
2184 * disk/ieee1275/nand.c (grub_nand_open): All ieee1275 call arg
2185 slots are of type grub_ieee1275_cell_t.
2186 (grub_nand_read): Likewise.
2187 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_INVALID,
2188 IEEE1275_IHANDLE_INVALID): Use grub_ieee1275_cell_t since these
2189 macros are used to compare values in arg/ret block of the call.
2190 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
2191 grub_ieee1275_next_property, grub_ieee1275_get_property_length,
2192 grub_ieee1275_instance_to_package, grub_ieee1275_package_to_path,
2193 grub_ieee1275_instance_to_path, grub_ieee1275_write,
2194 grub_ieee1275_read, grub_ieee1275_seek, grub_ieee1275_peer,
2195 grub_ieee1275_child, grub_ieee1275_parent, grub_ieee1275_open,
2196 grub_ieee1275_close, grub_ieee1275_set_property,
2197 grub_ieee1275_set_color): All ieee1275 call arg slots are of type
2198 grub_ieee1275_cell_t.
2199 * kern/ieee1275/openfw.c (grub_map): Likewise.
2200 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_ihandle_t,
2201 grub_ieee1275_phandle_t): Define as grub_unit32_t type.
2202
450e2238 2203 * kern/ieee1275/init.c (grub_machine_init): Make 'actual' grub_ssize_t.
2204 * kern/ieee1275/openfw.c (grub_children_iterate): Likewise.
2205 (grub_devalias_iterate): Likewise.
2206
7dd4a573 22072009-04-10 Vladimir Serbinenko <phcoder@gmail.com>
6df8cc76 2208
2209 UFS improvements
2210
2211 * fs/ufs.c (INODE_NBLOCKS): new definition
2212 (struct grub_ufs_dirent): added fields for non-BSD dirents
2213 (grub_ufs_get_file_block): fixed double indirect handling
2214 (grub_ufs_lookup_symlink): use more robust way to determine whether
2215 symlink is inline
2216 (grub_ufs_find_file): support for non-BSD dirents
2217 (grub_ufs_dir): support for non-BSD dirents
2218
e7e6862a 22192009-04-10 Bean <bean123ch@gnail.com>
2220
2221 * include/grub/efi/api.h (grub_efi_configuration_table): Add packed
2222 attribute, otherwise the size would be wrong for i386 platform.
2223
2224 * include/grub/pci.h (grub_pci_read_word): New inline function.
2225 (grub_pci_read_byte): Likewise.
2226 (grub_pci_write): Likewise.
2227 (grub_pci_write_word): Likewise.
2228 (grub_pci_write_byte): Likewise.
2229
2230 * include/grub/pci.h (grub_pci_iteratefunc_t): Add NESTED_FUNC_ATTR.
2231
2232 * loader/i386/efi/linux.c (fake_bios_data): Moved to loadbios module.
2233 (find_framebuf): Scan pci to locate the frame buffer address.
2234
2235 * commands/efi/fixvideo.c: New file.
2236
2237 * commands/efi/loadbios.c: Likewise.
2238
2239 * commands/memrw.c: Likewise.
2240
2241 * util/grub-dumpbios.in: Likewise.
2242
2243 * conf/common.rmk (grub-dumpbios): New utility.
2244 (pkglib_MODULES): New module memrw.mod.
2245 (memrw_mod_SOURCE): New macro.
2246 (memrw_mod_CFLAGS): Likewise.
2247 (memrw_mod_LDFLAGS): Likewise.
2248
7dd4a573 2249 * conf/i386-efi.rmk (pkglib_MODULES): New module loadbios.mod and
e7e6862a 2250 fixvideo.mod.
2251 (loadbios_mod_SOURCE): New macro.
2252 (loadbios_mod_CFLAGS): Likewise.
2253 (loadbios_mod_LDFLAGS): Likewise.
2254 (fixvideo_mod_SOURCE): Likewise.
2255 (fixvideo_mod_CFLAGS): Likewise.
2256 (fixvideo_mod_LDFLAGS): Likewise.
2257
7dd4a573 2258 * conf/x86_64.rmk (pkglib_MODULES): New module loadbios.mod and
e7e6862a 2259 fixvideo.mod.
2260 (loadbios_mod_SOURCE): New macro.
2261 (loadbios_mod_CFLAGS): Likewise.
2262 (loadbios_mod_LDFLAGS): Likewise.
2263 (fixvideo_mod_SOURCE): Likewise.
2264 (fixvideo_mod_CFLAGS): Likewise.
2265 (fixvideo_mod_LDFLAGS): Likewise.
2266
af63ada2 22672009-04-08 Felix Zielcke <fzielcke@z-51.de>
2268
2269 * disk/lvm.c (grub_lvm_scan_device): Add a missing NULL check.
2270
c2cdde70 22712009-04-07 David S. Miller <davem@davemloft.net>
2272
2273 * kern/sparc64/dl.c (grub_arch_dl_relocate_symbols): Add
2274 support for R_SPARC_OLO10 relocations. Fix compile warning for
2275 R_SPARC_WDISP30 case.
ea3f72cf 2276 * kern/sparc64/cache.S: Fix grub_arch_sync_caches implementation.
c2cdde70 2277
761319cf 22782009-04-06 Pavel Roskin <proski@gnu.org>
2279
1007d1f5 2280 * include/grub/misc.h (ARRAY_SIZE): New macro.
2281 * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START):
2282 New macro.
2283 * loader/i386/linux.c (allocate_pages): Use free_pages().
2284 (grub_linux_unload): Don't use free_pages().
2285 (grub_linux_boot): Prevent accessing linux_vesafb_modes with a
2286 wrong index. Treat all other modes as text modes.
2287 (grub_cmd_linux): Initialize vid_mode unconditionally to
2288 GRUB_LINUX_VID_MODE_NORMAL. Recognize and support "vga=ask".
2289
761319cf 2290 * commands/help.c (print_command_help): Use cmd->prio, not
2291 cmd->flags to check for GRUB_PRIO_LIST_FLAG_ACTIVE.
2292
ea761d40 22932009-04-06 Vladimir Serbinenko <phcoder@gmail.com>
7dd4a573 2294
ea761d40 2295 Parttool
2296
2297 * parttool/pcpart.c: new file
2298 * commands/parttool.c: likewise
2299 * conf/common.rmk (pkglib_MODULES): Added parttool.mod and pcpart.mod
2300 (parttool_mod_SOURCES): new variable
2301 (parttool_mod_CFLAGS): likewise
2302 (parttool_mod_LDFLAGS): likewise
2303 (pcpart_mod_SOURCES): likewise
2304 (pcpart_mod_CFLAGS): likewise
2305 (pcpart_mod_LDFLAGS): likewise
7dd4a573 2306 * conf/i386-coreboot.rmk (grub_emu_SOURCES): added commands/parttool.c
ea761d40 2307 and parttool/pcpart.c
2308 * conf/i386-efi.rmk: likewise
2309 * conf/i386-ieee1275.rmk: likewise
2310 * conf/i386-pc.rmk: likewise
2311 * conf/powerpc-ieee1275.rmk: likewise
2312 * conf/sparc64-ieee1275.rmk: likewise
2313 * conf/x86_64-ieee1275.rmk: likewise
2314
05aaebfb 23152009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
2316
2317 Support for mtime and further expandability of dir command
2318
2319 * include/grub/lib/datetime.h: moved to ...
7dd4a573 2320 * include/grub/datetime.h: ... moved here and added
05aaebfb 2321 declaration of grub_unixtime2datetime. All users updated
7dd4a573 2322 * include/grub/fs.h: new syntax for dir and mtime functions in
2323 struct grub_fs
05aaebfb 2324 * include/grub/fshelp.h: new declarations of GRUB_FSHELP_TYPE_MASK
2325 and GRUB_FSHELP_FLAGS_MASK
2326 * commands/ls.c (grub_ls_list_files): Write mtime in long format
2327 * fs/ext2.c (grub_ext2_dir): use new dir syntax and supply mtime
2328 (grub_ext2_mtime): new function
2329 * fs/hfsplus.c (grub_hfsplus_dir): use new dir syntax and supply mtime
2330 (grub_hfsplus_mtime): new function
2331 * fs/ufs.c (GRUB_UFS_ATTR_TYPE): new definition
2332 (GRUB_UFS_ATTR_FILE): likewise
2333 (GRUB_UFS_ATTR_LNK): likewise
2334 (struct grub_ufs_sblock): new fields mtime
2335 (grub_ufs_read_inode): new parameter to read inode to a separate buffer
2336 all users updated
2337 (grub_ufs_dir): mtime support
2338 (grub_ufs_mtime): new function
2339 * fs/affs.c (grub_affs_dir): use new dir syntax
2340 * fs/afs.c (grub_afs_dir): likewise
2341 * fs/cpio.c (grub_cpio_dir): likewise
2342 * fs/fat.c (grub_fat_find_dir): likewise
2343 * fs/hfs.c (grub_hfs_dir): likewise
2344 * fs/iso9660.c (grub_iso9660_dir): likewise
2345 * fs/jfs.c (grub_jfs_dir): likewise
2346 * fs/minix.c (grub_minix_dir): likewise
2347 * fs/ntfs.c (grub_ntfs_dir): likewise
2348 * fs/reiserfs.c (grub_reiserfs_dir): likewise
2349 * fs/sfs.c (grub_sfs_dir): likewise
2350 * fs/xfs.c (grub_xfs_dir): likewise
2351 * util/hostfs.c (grub_hostfs_dir): likewise
2352 * lib/datetime.c: moved to ...
2353 * normal/datetime.c: ... moved here
2354 (grub_unixtime2datetime): new function
2355 * kern/rescue.c (grub_rescue_print_files): use new dir syntax
7dd4a573 2356 * normal/completion.c (iterate_dir): use new dir syntax
2357 * normal/misc.c (grub_normal_print_device_info): tell the
05aaebfb 2358 last modification time of a volume
7dd4a573 2359 * kern/fs.c (grub_fs_probe): updated dummy function to use new syntax
05aaebfb 2360 * conf/common.rmk: added lib/datetime.c to ls.mod
7dd4a573 2361 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add normal/datetime.c
05aaebfb 2362 (normal_mod_SOURCES): likewise
2363 (datetime_mod_SOURCES): Removed lib/datetime.c
2364 * conf/i386-efi.rmk: likewise
7dd4a573 2365 * conf/i386-ieee1275.rmk: likewise
05aaebfb 2366 * conf/i386-pc.rmk: likewise
2367 * conf/powerpc-ieee1275.rmk: likewise
7dd4a573 2368 * conf/sparc64-ieee1275.rmk: likewise
2369 * conf/x86_64-efi.rmk: likewise
05aaebfb 2370
8a7e1a14 23712009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
2372
2373 Trim trailing spaces in FAT label and support mtools-like labels
7dd4a573 2374
2375 * fs/fat.c (grub_fat_iterate_dir): New function based
8a7e1a14 2376 on grub_fat_find_dir
2377 (grub_fat_find_dir): use grub_fat_iterate_dir
2378 (grub_fat_label): likewise
2379
04186a9c 23802009-04-04 Vladimir Serbinenko <phcoder@gmail.com>
2381
7dd4a573 2382 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): add list.h
04186a9c 2383 and command.h
2384 remove extraneous kernel_elf_HEADERS
2385
da4c0bb6 23862009-04-04 Bean <bean123ch@gnail.com>
2387
2388 * include/grub/util/misc.h: Add dummy function fsync for mingw.
2389
2390 * util/misc.c: Likewise.
2391
54ad9555 23922009-04-04 Yoshinori K. Okuji <okuji@enbug.org>
2393
2394 * loader/i386/efi/linux.c (fake_bios_data): Use grub_dprintf
2395 instead of grub_printf.
2396
7a6bf9f2 23972009-04-03 Robert Millan <rmh@aybabtu.com>
2398
2399 * loader/i386/linux.c (grub_linux_setup_video): Fill
2400 `params->{red,green,blue,reserved}_{mask_size,field_pos}' with
2401 values from `mode info' structure instead of hardcoded
2402 values.
2403
3fcc2083 24042009-04-01 Pavel Roskin <proski@gnu.org>
2405
2406 * Makefile.in: Remove all references to MODULE_LDFLAGS, it's
2407 unused now.
2408 * genmk.rb: Likewise.
2409 * configure.ac: Likewise.
2410
5ec9740b 24112009-04-01 Manoel Abranches <mrabran@linux.vnet.ibm.com>
2412
2413 * aclocal.m4: Move --build-id=none from MODULE_LDFLAGS to
2414 TARGET_LDFLAGS. This corrects a problem with grub-mkelfimage.
2415
5270cec8 24162009-04-01 David S. Miller <davem@davemloft.net>
2417
2418 * normal/sparc64/setjmp.S: Fix setjmp implementation.
7dd4a573 2419 * include/grub/sparc64/setjmp.h (grub_jmp_buf): Update.
5270cec8 2420 (grub_setjmp): Mark with 'returns_twice' attribute.
2421 * include/grub/i386/setjmp.h (grub_setjmp): Likewise
2422 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise.
2423 * include/grub/x86_64/setjmp.h (grub_setjmp): Likewise.
2424
9c3dd854 24252009-04-01 Robert Millan <rmh@aybabtu.com>
2426
2427 Reapply fix from 2008-07-28 which was accidentally reverted; also
2428 perform the same fix to a similar check in same function.
2429
2430 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
2431 with the same number are found, just use issue a warning with
2432 grub_dprintf(), as this error has been reported to be non-fatal.
2433
0d818b7e 24342009-03-31 Pavel Roskin <proski@gnu.org>
2435
2436 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Provide safe default
2437 for cross-compilation.
2438
95646d92 24392009-03-30 Robert Millan <rmh@aybabtu.com>
2440
2441 Fix i386-ieee1275 build.
2442
2443 * include/grub/i386/ieee1275/loader.h (grub_multiboot2_real_boot):
2444 Remove declaration.
2445
6a003ed1 24462009-03-30 Pavel Roskin <proski@gnu.org>
2447
2448 * fs/hfs.c (grub_hfs_strncasecmp): Integrate into ...
2449 (grub_hfs_cmp_catkeys): ... this. Don't assume strings to be
2450 zero-terminated, rely only on the strlen value. Fix comparison
2451 of strings differing in length.
2452
92f33540 24532009-03-30 Robert Millan <rmh@aybabtu.com>
2454
2455 * loader/i386/linux.c (grub_cmd_linux): Check for zImage before
2456 checking for abi version. Improve error messages on BIOS to notify
2457 user about `linux16' command.
2458
a8c48fd5 24592009-03-29 Vladimir Serbinenko <phcoder@gmail.com>
2460
f968172e 2461 Leak fixes
a8c48fd5 2462
f968172e 2463 * kern/disk.c (grub_disk_cache_store): Invalidate previous cache
2464 in case of collision
2465 * disk/scsi.c (grub_scsi_open): free scsi in case of error
a8c48fd5 2466
9c323f09 24672009-03-29 Robert Millan <rmh@aybabtu.com>
2468
2469 * loader/i386/linux.c (grub_cmd_linux): Parse "vga=" parameter and
2470 set `vid_mode' accordingly.
2471 (grub_linux_boot): Process `vid_mode' and set video mode.
2472
ae68f423 24732009-03-29 Robert Millan <rmh@aybabtu.com>
2474
2475 * util/grub.d/10_linux.in (linux_entry): New function.
2476 Factorize generation of Linux boot entries.
2477
5709cfc4 24782009-03-29 Yoshinori K. Okuji <okuji@enbug.org>
2479
2480 Make the format of Environment Block plain text. The boot loader
2481 part is not tested well yet.
7dd4a573 2482
5709cfc4 2483 * util/grub-editenv.c (DEFAULT_ENVBLK_SIZE): New macro.
2484 (buffer): Removed.
2485 (envblk): Likewise.
2486 (usage): Remove "info" and "clear". Add "unset". Update the
2487 description of "set", as this does not delete variables any
2488 longer.
2489 (create_envblk_file): Complete rewrite.
2490 (open_envblk_file): Likewise.
2491 (cmd_info): Removed.
2492 (cmd_list): Likewise.
2493 (cmd_set): Likewise.
2494 (cmd_clear): Likewise.
2495 (list_variables): New function.
2496 (write_envblk): Likewise.
2497 (set_variables): Likewise.
2498 (unset_variables): Likewise.
2499 (main): Complete rewrite.
2500
2501 * commands/loadenv.c (buffer): Removed.
2502 (envblk): Likewise.
2503 (open_envblk_file): New function.
2504 (read_envblk_file): Complete rewrite.
2505 (grub_cmd_load_env): Likewise.
2506 (grub_cmd_list_env): Likewise.
2507 (struct blocklist): New struct.
2508 (free_blocklists): New function.
2509 (check_blocklists): Likewise.
2510 (write_blocklists): Likewise.
2511 (grub_cmd_save_env): Complete rewrite.
2512
2513 * include/grub/lib/envblk.h (GRUB_ENVBLK_SIGNATURE): Replaced with
2514 a plain text signature.
2515 (GRUB_ENVBLK_MAXLEN): Removed.
2516 (struct grub_envblk): Complete rewrite.
2517 (grub_envblk_find): Removed.
2518 (grub_envblk_insert): Likewise.
2519 (grub_envblk_open): New prototype.
2520 (grub_envblk_set): Likewise.
2521 (grub_envblk_delete): Put const to VALUE.
2522 (grub_envblk_iterate): Put const to NAME and VALUE.
2523 (grub_envblk_close): New prototype.
2524 (grub_envblk_buffer): New inline function.
2525 (grub_envblk_size): Likewise.
2526
2527 * lib/envblk.c: Include grub/mm.h.
2528 (grub_env_find): Removed.
2529 (grub_envblk_open): New function.
2530 (grub_envblk_close): Likewise.
2531 (escaped_value_len): Likewise.
2532 (find_next_line): Likewise.
2533 (grub_envblk_insert): Removed.
2534 (grub_envblk_set): New function.
2535 (grub_envblk_delete): Complete rewrite.
2536 (grub_envblk_iterate): Likewise.
2537
a9368fd3 25382009-03-28 Robert Millan <rmh@aybabtu.com>
2539
2540 * conf/i386-pc.rmk (pkglib_MODULES): Add `linux16.mod'.
2541 (linux16_mod_SOURCES, linux16_mod_CFLAGS, linux16_mod_LDFLAGS): New
2542 variables. Use 16-bit loader.
2543 (linux_mod_SOURCES, linux_mod_CFLAGS, linux_mod_LDFLAGS): Use 32-bit
2544 loader.
2545 * kern/i386/loader.S (grub_linux_boot): Rename to ...
2546 (grub_linux16_boot): ... this. Update all users.
2547 * loader/i386/linux.c (grub_linux32_boot): Rename to ...
2548 (grub_linux_boot): ... this. Update all users.
2549
2550 * loader/i386/pc/linux.c (GRUB_MOD_INIT(linux)): Rename to ...
2551 (GRUB_MOD_INIT(linux16)): ... this. Rename `linux' and `initrd'
2552 commands to `linux16' and `initrd16'.
2553 (GRUB_MOD_FINI(linux)): Rename to ...
2554 (GRUB_MOD_FINI(linux16)): ... this.
2555
e4dd5a7e 25562009-03-24 Pavel Roskin <proski@gnu.org>
2557
2558 * genmk.rb: Define ASM_FILE for *.S files for *.lst generation,
2559 not just for compilation.
2560
c04d6e05 25612009-03-22 Vladimir Serbinenko <phcoder@gmail.com>
2562
2563 Move multiboot helper out of kernel
2564
2565 * conf/i386-pc.rmk (multiboot_mod_SOURCES): Add
2566 `loader/i386/multiboot_helper.S'.
2567 * conf/i386-coreboot.rmk: Likewise
2568 * conf/i386-ieee1275.rmk: Likewise
2569
2570 * kern/i386/loader.S: Move multiboot helpers from here...
2571 * loader/i386/multiboot_helper.S: ...moved here
2572 * include/grub/i386/loader.h: Move declarations of multiboot
2573 helpers from here...
2574 * include/grub/i386/multiboot.h: ...moved here
2575 * loader/i386/multiboot.c: Added include of grub/cpu/multiboot.h
2576
42a5b3fc 25772009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
2578
2579 * kern/env.c (grub_env_context_open): Added an argument to specify
2580 whether a new context inherits exported variables from current
2581 one. This is useful when making a sandbox to interpret a config
2582 file.
2583 All callers updated.
2584
2585 * include/grub/env.h (grub_env_context_open): Updated the prototype.
2586
b28bbc4e 25872009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
2588
2589 * kern/env.c (grub_env_context_close): Fix memory leaks.
2590
f04f02e4 25912009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
2592
2593 * normal/main.c (grub_normal_execute): Added an argument
2594 BATCH to specify if an interactive interface should be provided
2595 after reading a config file.
2596 All callers updated.
2597 (read_command_list): Prevent being executed twice.
2598 (read_fs_list): Likewise.
2599
42a5b3fc 2600 * include/grub/normal.h (grub_normal_execute): Updated the
2601 prototype.
f04f02e4 2602
41473ac2 26032009-03-22 Pavel Roskin <proski@gno.org>
2604
fbc00b0c 2605 * kern/powerpc/ieee1275/startup.S: Replace EXT_C(start) with
2606 _start.
2607 * kern/i386/pc/startup.S: Likewise.
2608 * kern/i386/efi/startup.S: Likewise.
2609 * kern/i386/ieee1275/startup.S: Likewise.
2610 * kern/i386/coreboot/startup.S: Likewise.
2611 * kern/x86_64/efi/startup.S: Likewise.
2612
41473ac2 2613 * aclocal.m4 (grub_CHECK_START_SYMBOL): Remove.
2614 * configure.ac: Don't call grub_CHECK_START_SYMBOL.
2615 * kern/i386/pc/startup.S: Use _start instead of START_SYMBOL.
2616
2274cc8f 26172009-03-21 Vladimir Serbinenko <phcoder@gmail.com>
2618
2619 Bugfixes in multiboot for bugs uncovered by solaris kernel.
2620
2621 * loader/i386/multiboot_elfxx.c (grub_multiboot_load_elf): Corrected
2622 limit detection.
2623 Use vaddr of correct segment for entry_point.
2624
b1b797cb 26252009-03-21 Bean <bean123ch@gmail.com>
2626
2627 * commands/blocklist.c: Add include file <grub/command.h>, remove
2628 <grub/normal.h> and <grub/arg.h>.
2629 (grub_cmd_blocklist): Use the new command interface.
2630 (GRUB_MOD_INIT): Likewise.
2631 (GRUB_MOD_FINI): Likewise.
2632 * commands/boot.c: Likewise.
2633 * commands/cat.c: Likewise.
2634 * commands/cmp.c: Likewise.
2635 * commands/configfile.c: Likewise.
2636 * commands/crc.c: Likewise.
2637 * commands/echo.c: Likewise.
2638 * commands/halt.c: Likewise.
2639 * commands/handler.c: Likewise.
2640 * commands/hdparm.c: Likewise.
2641 * commands/help.c: Likewise.
2642 * commands/hexdump.c: Likewise.
2643 * commands/loadenv.c: Likewise.
2644 * commands/ls.c: Likewise.
2645 * commands/lsmmap.c: Likewise.
2646 * commands/lspci.c: Likewise.
2647 * commands/loadenv.c: Likewise.
2648 * commands/read.c: Likewise.
2649 * commands/reboot.c: Likewise.
2650 * commands/search.c: Likewise.
2651 * commands/sleep.c: Likewise.
2652 * commands/test.c: Likewise.
2653 * commands/usbtest.c: Likewise.
2654 * commands/videotest.c: Likewise.
2655 * commands/i386/cpuid.c: Likewise.
2656 * commands/i386/pc/halt.c: Likewise.
2657 * commands/i386/pc/play.c: Likewise.
2658 * commands/i386/pc/pxecmd.c: Likewise.
2659 * commands/i386/pc/vbeinfo.c: Likewise.
2660 * commands/i386/pc/vbetest.c: Likewise.
2661 * commands/ieee1275/suspend.c: Likewise.
2662 * disk/loopback.c: Likewise.
2663 * font/font_cmd.c: Likewise.
2664 * hello/hello.c: Likewise.
2665 * loader/efi/appleloader.c: Likewise.
2666 * loader/efi/chainloader.c: Likewise.
2667 * loader/i386/bsd.c: Likewise.
2668 * loader/i386/efi/linux.c: Likewise.
2669 * loader/i386/ieee1275/linux.c: Likewise.
2670 * loader/i386/linux.c: Likewise.
2671 * loader/i386/pc/chainloader.c: Likewise.
2672 * loader/i386/pc/linux.c: Likewise.
2673 * loader/powerpc/ieee1275/linux.c: Likewise.
2674 * loader/multiboot_loader.c: Likewise.
2675 * term/gfxterm.c: Likewise.
2676 * term/i386/pc/serial.c: Likewise.
2677 * term/terminfo.c: Likewise.
2678
2679 * term/i386/pc/vesafb.c: Removed <grub/arg.h>.
2680 * term/i386/pc/vga.c: Likewise.
2681 * video/readers/jpeg.c: Likewise.
2682 * video/readers/png.c: Likewise.
2683 * video/readers/tga.c: Likewise.
2684
2685 * util/grub-fstest (cmd_loopback): Removed.
2686 (cmd_blocklist): Likewise.
2687 (cmd_ls): Likewise.
2688 (grub_register_command): Likewise.
2689 (grub_unregister_command): Likewise.
2690 (execute_command): Use grub_command_find to locate command and execute
2691 it.
2692
2693 * include/grub/efi/chainloader.h: Removed.
2694 * loader/efi/chainloader_normal.c: Likewise.
2695 * loader/i386/bsd_normal.c: Likewise.
2696 * loader/i386/pc/chainloader_normal.c: Likewise.
2697 * loader/i386/pc/multiboot_normal.c: Likewise.
2698 * loader/linux_normal.c: Likewise.
2699 * loader/multiboot_loader_normal.c: Likewise.
2700 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
2701
2702 * gencmdlist.sh: Scan new registration command grub_register_extcmd
2703 and grub_register_command_p1.
2704
2705 * conf/common.rmk (grub_fstest_SOURCES): Add kern/list.c,
2706 kern/command.c, lib/arg.c and commands/extcmd.c.
2707 (pkglib_MODULES): Remove boot.mod, and minicmd.mod and extcmd.mod.
2708 (minicmd_mod_SOURCES): New variable.
2709 (minicmd_mod_CFLAGS): Likewise.
2710 (minicmd_mod_LDFLAGS): Likewise.
2711 (extcmd_mod_SOURCES): Likewise.
2712 (extcmd_mod_CFLAGS): Likewise.
2713 (extcmd_mod_LDFLAGS): Likewise.
2714 (boot_mod_SOURCES): Removed.
2715 (boot_mod_CFLAGS): Likewise.
2716 (boot_mod_LDFLAGS): Likewise.
2717
2718 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/command.c and
2719 kern/corecmd.c.
2720 (kernel_img_HEADERS): Add command.h.
2721 (grub_emu_SOURCES): Remove commands/boot.c and normal/arg.c, add
2722 commands/minicmd.c, kern/command.c, kern/corecmd.c, commands/extcmd.c
2723 and lib/arg.c.
2724 (pkglib_MODULES): Change _linux.mod, _chain.mod, _bsd.mod and
2725 _multiboot.mod as linux.mod, chain.mod, bsd.mod and multiboot.mod,
2726 remove the corresponding normal mode command.
2727 (normal_mod_SOURCES): Remove normal/arg.c.
2728 * conf/i386-coreboot.rmk: Likewise.
2729 * conf/i386-efi.rmk: Likewise.
2730 * conf/i386-ieee1275.rmk: Likewise.
2731 * conf/powerpc-ieee1275.rmk: Likewise.
2732 * conf/x86_64-efi.rmk: Likewise.
2733
2734 * include/grub/arg.h: Move from here ...
2735 * include/grub/lib/arg.h: ... to here.
2736
2737 * normal/arg.c: Move from here ...
2738 * lib/arg.c: ... to here.
2739
2740 * commands/extcmd.c: New file.
2741 * commands/minicmd.c: Likewise.
2742 * include/grub/command.h: Likewise.
2743 * include/grub/extcmd.h: Likewise.
2744 * kern/command.c: Likewise.
2745 * kern/corecmd.c: Likewise.
2746
2747 * kern/list.c (grub_list_iterate): Return int instead of void.
2748 (grub_list_insert): New function.
2749 (grub_prio_list_insert): Likewise.
2750
2751 * kern/rescue.c (grub_rescue_command): Removed.
2752 (grub_rescue_command_list): Likewise.
2753 (grub_rescue_register_command): Likewise.
2754 (grub_rescue_unregister_command): Likewise.
2755 (grub_rescue_cmd_boot): Move to minicmd.c
2756 (grub_rescue_cmd_help): Likewise.
2757 (grub_rescue_cmd_info): Likewise.
2758 (grub_rescue_cmd_boot): Likewise.
2759 (grub_rescue_cmd_testload): Likewise.
2760 (grub_rescue_cmd_dump): Likewise.
2761 (grub_rescue_cmd_rmmod): Likewise.
2762 (grub_rescue_cmd_lsmod): Likewise.
2763 (grub_rescue_cmd_exit): Likewise.
2764 (grub_rescue_print_devices): Moved to corecmd.c.
2765 (grub_rescue_print_files): Likewise.
2766 (grub_rescue_cmd_ls): Likewise.
2767 (grub_rescue_cmd_insmod): Likewise.
2768 (grub_rescue_cmd_set): Likewise.
2769 (grub_rescue_cmd_unset): Likewise.
7d074e3c 2770 (attempt_normal_mode): Use grub_command_find to get normal module.
b1b797cb 2771 (grub_enter_rescue_mode): Use grub_register_core_commands to register
7d074e3c 2772 commands, remove grub_rescue_register_command calls.
b1b797cb 2773
7d074e3c 2774 * normal/command.c (grub_register_command): Removed.
b1b797cb 2775 (grub_unregister_command): Likewise.
2776 (grub_command_find): Likewise.
2777 (grub_iterate_commands): Likewise.
2778 (rescue_command): Likewise.
2779 (export_command): Moved to corecmd.c.
2780 (set_command): Removed.
2781 (unset_command): Likewise.
2782 (insmod_command): Likewise.
2783 (rmmod_command): Likewise.
2784 (lsmod_command): Likewise.
2785 (grub_command_init): Likewise.
2786
2787 * normal/completion.c (iterate_command): Use cmd->prio to check for
2788 active command.
2789 (complete_arguments): Use grub_extcmd_t structure to find options.
2790 (grub_normal_do_completion): Change function grub_iterate_commands to
2791 grub_command_iterate.
2792
2793 * normal/execute.c (grub_script_execute_cmd): No need to parse
2794 argument here.
2795
2796 * normal/main.c (grub_dyncmd_dispatcher): New function.
2797 (read_command_list): Register unload commands as dyncmd.
2798 (grub_cmd_normal): Use new command interface, register rescue,
2799 unregister normal at entry, register normal, unregister rescue at exit.
2800
2801 * include/grub/list.h (grub_list_test_t): New type.
2802 (grub_list_iterate): Return int instead of void.
2803 (grub_list_insert): New function.
2804 (GRUB_AS_NAMED_LIST_P): New macro.
2805 (GRUB_AS_PRIO_LIST): Likewise.
2806 (GRUB_AS_PRIO_LIST_P): Likewise.
2807 (GRUB_PRIO_LIST_PRIO_MASK): New constant.
2808 (GRUB_PRIO_LIST_FLAG_ACTIVE): Likewise.
2809 (grub_prio_list): New structure.
2810 (grub_prio_list_insert): New function.
2811 (grub_prio_list_remove): New inline function.
2812
2813 * include/grub/normal.h: Remove <grub/arg.h>, add <grub/command.h>.
2814 (GRUB_COMMAND_FLAG_CMDLINE): Moved to command.h.
2815 (GRUB_COMMAND_FLAG_MENU): Likewise.
2816 (GRUB_COMMAND_FLAG_BOTH): Likewise.
2817 (GRUB_COMMAND_FLAG_TITLE): Likewise.
2818 (GRUB_COMMAND_FLAG_NO_ECHO): Likewise.
2819 (GRUB_COMMAND_FLAG_NO_ARG_PARSE): Removed.
2820 (GRUB_COMMAND_FLAG_NOT_LOADED): Likewise.
2821 (grub_command): Likewise.
2822 (grub_register_command): Likewise.
2823 (grub_command_find): Likewise.
2824 (grub_iterate_commands): Likewise.
2825 (grub_command_init): Likewise.
2826 (grub_arg_parse): Likewise.
2827 (grub_arg_show_help): Likewise.
2828
2829 * include/grub/rescue.h (grub_rescue_register_command): Removed.
2830 (grub_rescue_unregister_command): Likewise.
2831
2832 * include/grub/i386/bsd.h: Remove grub_rescue_cmd_freebsd,
2833 grub_rescue_cmd_openbsd, grub_rescue_cmd_netbsd,
2834 grub_rescue_cmd_freebsd_loadenv and grub_rescue_cmd_freebsd_module.
2835
2836 * include/grub/i386/efi/loader.h: Remove grub_rescue_cmd_linux and
2837 grub_rescue_cmd_initrd.
2838 * include/grub/i386/loader.h: Likewise.
2839 * include/grub/x86_64/loader.h: Likewise.
2840
2841 * include/grub/i386/pc/chainloader.h: Remove grub_chainloader_cmd.
2842
1f4147aa 28432009-03-21 Bean <bean123ch@gmail.com>
2844
2845 * util/hostdisk.c (read_device_map): Use grub_util_get_disk_size
2846 instead of stat in mingw environment.
2847
2848 * util/misc.c (grub_millisleep): Use Sleep in mingw environment.
2849
2850 * aclocal.m4 (grub_CHECK_LINK_DIR): New function.
2851
2852 * configure.ac: Use grub_CHECK_LINK_DIR to determine whether to use
2853 AC_CONFIG_LINKS.
2854
2156d5ba 28552009-03-21 Bean <bean123ch@gmail.com>
2856
2857 * fs/ext2.c (grub_ext2_mount): Change errno to GRUB_ERR_BAD_FS for
2858 out of range error.
2859
177b82ca 28602009-03-18 Michel Dänzer <michel@daenzer.net>
2861
2862 * fs/ext2.c (grub_ext2_read_block): Take endianness into account when
2863 checking inode flags for EXT4_EXTENTS_FLAG.
2864
14aad807 28652009-03-18 Robert Millan <rmh@aybabtu.com>
2866
2867 * loader/i386/linux.c: Include `<grub/video.h>' and
2868 `<grub/i386/pc/vbe.h>'..
2869 (grub_linux_setup_video): New function. Loosely based on the EFI one.
2870 (grub_linux32_boot): Attempt to configure video settings with
2871 grub_linux_setup_video().
2872 (grub_rescue_cmd_linux): Set noreturn=0 in grub_loader_set, in order
2873 to avoid grub_console_fini() which would step out of graphical mode
2874 unconditionally.
2875
8cf83a27 28762009-03-14 Robert Millan <rmh@aybabtu.com>
2877
2878 Fix build on powerpc.
2879 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Add `handler.h'.
2880
40164e75 28812009-03-12 Vladimir Serbinenko <phcoder@gmail.com>
2882
2883 * term/gfxterm.c (GRUB_MOD_FINI(term_gfxterm)): Correct name of
2884 background image command.
2885
c58bc32a 28862009-03-12 Colin D Bennett <colin@gibibit.com>
2887
2888 * term/gfxterm.c (draw_cursor): Ensure character is redrawn.
2889 (grub_gfxterm_putchar): Extract pairs of identical calls to
2890 draw_cursor out of conditional blocks.
2891
5415144a 28922009-03-11 Pavel Roskin <proski@gnu.org>
2893
2894 * fs/hfs.c (grub_hfs_strncasecmp): New function.
2895 (grub_hfs_cmp_catkeys): Use HFS specific string comparison.
2896
6394042e 28972009-03-11 Robert Millan <rmh@aybabtu.com>
2898
2899 * loader/i386/multiboot_elfxx.c
2900 (CONCAT(grub_multiboot_load_elf, XX)): Do not reject ET_DYN files.
2901
b7b50e5f 29022009-03-11 Felix Zielcke <fzielcke@z-51.de>
2903
2904 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add `kern/list.c' and
2905 `kern/handler.c'.
2906
1ca7fc96 29072009-03-11 Robert Millan <rmh@aybabtu.com>
2908
2909 * loader/i386/multiboot.c (code_size): New variable.
2910 (grub_multiboot): Define offsets by adding to `code_size' rather
7d074e3c 2911 than subtracting from `grub_multiboot_payload_size'. Provide
1ca7fc96 2912 4-byte alignment to MBI and others by increasing
7d074e3c 2913 `boot_loader_name_length' appropriately.
1ca7fc96 2914
2915 * loader/i386/multiboot_elfxx.c
2916 (CONCAT(grub_multiboot_load_elf, XX)): Initialize `code_size'.
2917
a83ea1d2 29182009-03-09 Felix Zielcke <fzielcke@z-51.de>
2919
2920 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove duplicated
2921 `fs/ext2.c'.
2922
aa9f3bff 29232009-03-08 Robert Millan <rmh@aybabtu.com>
2924
2925 Make loader/i386/linux.c usable on i386-pc again.
2926
2927 * kern/i386/pc/init.c (grub_machine_init): Disable addition of low
2928 memory to heap.
2929 * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (allocate_pages): Remove
2930 `#error' stanza.
2931
d8b3b60e 29322009-03-07 Bean <bean123ch@gmail.com>
2933
2934 * loader/i386/efi/linux.c (grub_rescue_cmd_initrd): Fix a bug in initrd
2935 allocation.
2936
b362c9e9 29372009-03-06 Robert Millan <rmh@aybabtu.com>
2938
2939 Fix display issue on terminals with screen size other than 80x25
2940 (e.g. gfxterm with resolution higher than 640x480).
2941
2942 * normal/main.c (grub_normal_init_page): Display title text in a
7d074e3c 2943 position relative to the center of the terminal instead of relying
b362c9e9 2944 on a hardcoded offset.
2945
9304eef1 29462009-03-04 Robert Millan <rmh@aybabtu.com>
2947
2948 Filter /etc/grub.d/10_* so that only add-ons for native kernels are
2949 installed.
2950
2951 * Makefile.in (host_kernel): New variable.
2952 * conf/common.rmk (grub-mkconfig_SCRIPTS): Conditionalize all 10_*.in
2953 scripts instead of just the windows one.
2954 * configure.ac: Initialize and AC_SUBST `host_kernel'.
2955
eabc95fb 29562009-03-04 Felix Zielcke <fzielcke@z-51.de>
2ba60b62 2957
2958 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `kern/list.c' and
2959 `kern/handler.c'.
2960 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
2961 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
2962 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
2963 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2964 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2965 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2966
ceb1223c 29672009-03-04 Felix Zielcke <fzielcke@z-51.de>
2968
2969 * partmap/pc.c (pc_partition_map_iterate): Skip over invalid BSD partitions
2970 or if there's no space for the disk label and print the partition number on a
2971 invalid magic.
2972
4910684a 29732009-03-04 Felix Zielcke <fzielcke@z-51.de>
2974
2975 * util/misc.c: Include <time.h>.
2976 (grub_millisleep): New function.
2977
7e9ca17a 29782009-03-04 Bean <bean123ch@gmail.com>
2979
2980 * configure.ac: Only test -mcmodel=large option in x86_64-efi, also add
2981 another option -mno-red-zone.
2982
2983 * commands/handler.c: Change module description.
2984
2985 * kern/handler.c: Add missing space at the end of description line.
2986
2987 * kern/list.c: Likewise.
2988
f501677c 29892009-03-03 Robert Millan <rmh@aybabtu.com>
2990
2991 Move more components to the relocation area, and fix mbi pointer
2992 handling to use the destination rather than the origin (thanks to
2993 Vladimir Serbinenko for spotting).
2994
2995 * loader/i386/multiboot.c (mbi_dest): New variable.
2996 (grub_multiboot_boot): Use `mbi_dest' instead of `mbi'.
2997 (grub_multiboot): Put cmdline, boot_loader_name and mbi in the
2998 relocation area.
2999
9902d047 30002009-03-01 Bean <bean123ch@gmail.com>
3001
50fb7002 3002 * include/grub/efi/api.h (GRUB_EFI_MPS_TABLE_GUID): New constant.
9902d047 3003 (GRUB_EFI_ACPI_TABLE_GUID): Likewise.
3004 (GRUB_EFI_ACPI_20_TABLE_GUID): Likewise.
3005 (GRUB_EFI_SMBIOS_TABLE_GUID): Likewise.
3006
3007 * loader/i386/efi/linux.c (acpi_guid): New variable.
3008 (acpi_guid): Likewise.
3009 (EBDA_SEG_ADDR): New constant.
3010 (LOW_MEM_ADDR): Likewise.
3011 (FAKE_EBDA_SEG): Likewise.
3012 (fake_bios_data): New function.
3013 (grub_linux_boot): Call fake_bios_data.
3014
71b9f361 30152009-03-01 Bean <bean123ch@gmail.com>
3016
3017 * commands/terminal.c: Removed.
3018
3019 * commands/handler.c: New file.
3020
3021 * include/grub/list.h: Likewise.
3022
3023 * include/grub/handler.h: Likewise.
3024
3025 * kern/list.c: Likewise.
3026
3027 * kern/handler.c: Likewise.
3028
3029 * kern/term.h: Include header file <grub/handler.h>.
3030 (grub_term_input): Move next field to the beginning.
3031 (grub_term_output): Likewise.
3032 (grub_term_input_class): New variable.
3033 (grub_term_output_class): Likewise.
3034 (grub_term_register_input): Changed to inline function.
3035 (grub_term_register_output): Likewise.
3036 (grub_term_unregister_input): Likewise.
3037 (grub_term_unregister_output): Likewise.
3038 (grub_term_set_current_input): Likewise.
3039 (grub_term_set_current_output): Likewise.
3040 (grub_term_get_current_input): Likewise.
3041 (grub_term_get_current_output): Likewise.
3042 (grub_term_iterate_input): Removed.
3043 (grub_term_iterate_output): Likewise.
3044
3045 * kern/term.c (grub_term_list_input): Removed.
3046 (grub_term_list_output): Likewise.
3047 (grub_term_input_class): New variable.
3048 (grub_term_output_class): Likewise.
50fb7002 3049 (grub_cur_term_input): Change variable as macro.
71b9f361 3050 (grub_cur_term_output): Likewise.
3051 (grub_term_register_input): Removed.
3052 (grub_term_register_output): Likewise.
3053 (grub_term_unregister_input): Likewise.
3054 (grub_term_unregister_output): Likewise.
3055 (grub_term_set_current_input): Likewise.
3056 (grub_term_set_current_output): Likewise.
3057 (grub_term_iterate_input): Likewise.
3058 (grub_term_iterate_output): Likewise.
3059 (grub_term_get_current_input): Likewise.
3060 (grub_term_get_current_output): Likewise.
3061
3062 * util/grub-editenv.c: Include header file <grub/handler.h>.
3063 (grub_term_get_current_input): Removed.
3064 (grub_term_get_current_output): Likewise.
3065 (grub_term_input_class): New variable.
50fb7002 3066 (grub_term_output_class): Likewise.
71b9f361 3067
3068 * util/grub-fstest.c (grub_term_get_current_input): Removed.
3069 (grub_term_get_current_output): Likewise.
3070 (grub_term_input_class): New variable.
50fb7002 3071 (grub_term_output_class): Likewise.
71b9f361 3072
3073 * util/grub-probe.c (grub_term_get_current_input): Removed.
3074 (grub_term_get_current_output): Likewise.
3075 (grub_term_input_class): New variable.
50fb7002 3076 (grub_term_output_class): Likewise.
71b9f361 3077
3078 * util/i386/pc/grub-setup.c (grub_term_get_current_input): Removed.
3079 (grub_term_get_current_output): Likewise.
3080 (grub_term_input_class): New variable.
50fb7002 3081 (grub_term_output_class): Likewise.
71b9f361 3082
3083 * conf/common.rmk (pkglib_MODULES): Replace terminal with handler.
3084 (terminal_mod_SOURCES): Likewise.
3085 (terminal_mod_CFLAGS): Likewise.
3086 (terminal_mod_LDFLAGS): Likewise.
3087
3088 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace terminal.c with
3089 handler.c.
3090 (kernel_img_SOURCES): Add list.c and handler.c.
3091 (kernel_img_HEADERS): Add list.h and handler.h.
3092
3093 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
3094 handler.c.
3095 (kernel_mod_SOURCES): Add list.c and handler.c.
3096 (kernel_mod_HEADERS): Add list.h and handler.h.
3097
3098 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Replace terminal.c with
3099 handler.c.
3100 (kernel_elf_SOURCES): Add list.c and handler.c.
3101 (kernel_elf_HEADERS): Add list.h and handler.h.
3102
3103 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
3104 handler.c.
3105 (kernel_elf_SOURCES): Add list.c and handler.c.
3106 (kernel_elf_HEADERS): Add list.h and handler.h.
3107
3108 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
3109 handler.c.
3110 (kernel_mod_SOURCES): Add list.c and handler.c.
3111 (kernel_mod_HEADERS): Add list.h and handler.h.
3112
3113 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
3114 handler.c.
3115 (kernel_elf_SOURCES): Add list.c and handler.c.
3116 (kernel_elf_HEADERS): Add list.h and handler.h.
3117
8a31787f 31182009-02-27 Robert Millan <rmh@aybabtu.com>
3119
3120 Factorize elf32 / elf64 code in Multiboot loader. This will
3121 prevent it from getting out of sync again.
3122
3123 * loader/i386/multiboot.c (grub_multiboot_is_elf32,
3124 grub_multiboot_load_elf32, grub_multiboot_is_elf64,
3125 grub_multiboot_load_elf64): Move from here ...
3126 * loader/i386/multiboot_elfxx.c (grub_multiboot_is_elf,
3127 grub_multiboot_load_elf): ... to here (new file).
3128
51cd3dfc 31292009-02-27 Robert Millan <rmh@aybabtu.com>
3130
3131 * util/grub.d/10_linux.in: Rename "single-user mode" to
3132 "recovery mode".
3133
6e8c9c3a 31342009-02-27 Vladimir Serbinenko <phcoder@gmail.com>
3135
3136 Don't leak in SCSI code.
3137 * disk/scsi.c (grub_scsi_close): free `scsi'.
3138
4b6bf4f9 31392009-02-27 Robert Millan <rmh@aybabtu.com>
3140
3141 * loader/i386/pc/multiboot.c: Move from here ...
3142 * loader/i386/multiboot.c: ... to here. Update all users.
3143
b9413424 31442009-02-27 Robert Millan <rmh@aybabtu.com>
3145
3146 Patch from Alexandre Bique <bique.alexandre@gmail.com>
3147 * util/i386/pc/grub-setup.c (setup): Fix directory path.
3148
50fb7002 31492009-02-27 Krzysztof Smiechowicz <deadwood@wp.pl>
34519c3f 3150
3151 * fs/sfs.c (grub_sfs_read_extent): Correction to traversing extent
3152 b-tree.
3153
8cc50345 31542009-02-27 Robert Millan <rmh@aybabtu.com>
3155
3156 * kern/misc.c (grub_strtoull): Fix bug (it mistakenly parsed the
3157 `0x' qualifier as 0 when base is specified as parameter).
3158
6e09b8b7 31592009-02-24 Bean <bean123ch@gmail.com>
3160
3161 * configure.ac: Check for -mcmodel=large in x86_64 target.
3162
3163 * include/grub/efi/api.h (efi_call_10): New macro.
3164 (efi_wrap_10): New function.
3165
3166 * include/grub/efi/pe32.h (GRUB_PE32_REL_BASE_HIGH): New macro.
3167 (GRUB_PE32_REL_BASED_HIGH): Likewise.
3168 (GRUB_PE32_REL_BASED_LOW): Likewise.
3169 (GRUB_PE32_REL_BASED_HIGHLOW): Likewise.
3170 (GRUB_PE32_REL_BASED_HIGHADJ): Likewise.
3171 (GRUB_PE32_REL_BASED_MIPS_JMPADDR): Likewise.
3172 (GRUB_PE32_REL_BASED_SECTION): Likewise.
3173 (GRUB_PE32_REL_BASED_REL): Likewise.
3174 (GRUB_PE32_REL_BASED_IA64_IMM64): Likewise.
3175 (GRUB_PE32_REL_BASED_DIR64): Likewise.
3176 (GRUB_PE32_REL_BASED_HIGH3ADJ): Likewise.
3177
3178 * kern/x86_64/dl.c (grub_arch_dl_relocate_symbols): Fixed relocation
3179 issue.
3180
3181 * kern/x86_64/efi/callwrap.S (efi_wrap_6): Bug fix.
3182 (efi_wrap_10): New function.
3183
3184 * kern/x86_64/efi/startup.S (codestart): Use relative addressing.
3185
3186 * loader/efi/appleloader.c (devpath_5): Add support for late 2008
3187 MB/MBP model (NV chipset).
3188 (devdata_devs): Add devpath_5 to the list.
3189
3190 * load/i386/efi/linux.c (video_base): Remove variable.
3191 (RGB_MASK): New macro.
3192 (RGB_MAGIC): Likewise.
3193 (LINE_MIN): Likewise.
3194 (LINE_MAX): Likewise.
3195 (FBTEST_STEP): Likewise.
3196 (FBTEST_COUNT): Likewise.
3197 (fb_list): New variable.
3198 (grub_find_video_card): Remove function.
3199 (find_framebuf): New function.
3200 (grub_linux_setup_video): Use find_framebuf to get frame buffer and
3201 line length.
3202
3203 * util/i386/efi/grub-mkimage.c (grub_reloc_section): Fix relocation
3204 problem for x86_64.
3205
74b21bee 32062009-02-22 Vesa Jääskeläinen <chaac@nic.fi>
3207
3208 Patch #25624 by Kevin Lacquement <kevin@lacqui>.
3209
3210 * util/grub-mkconfig.in: Use ${grub_mkdevicemap} instead of hard
3211 coding tool name.
3212
a455f472 32132009-02-22 Robert Millan <rmh@aybabtu.com>
3214
3215 * include/multiboot.h (MULTIBOOT_INFO_ALIGN): New macro.
3216 * loader/i386/pc/multiboot.c (grub_multiboot): Include the MBI
3217 in our relocation, instead of using it directly from heap. Also
3218 use `MULTIBOOT_INFO_ALIGN' to ensure it is aligned.
3219
6374daf3 32202009-02-21 Robert Millan <rmh@aybabtu.com>
3221
3222 Implement USB keyboard support (based on patch by Marco Gerards)
3223
3224 * conf/i386-pc.rmk (pkglib_MODULES): Add `usb_keyboard.mod'.
3225 (usb_keyboard_mod_SOURCES, usb_keyboard_mod_CFLAGS)
3226 (usb_keyboard_mod_LDFLAGS): New variables.
3227
3228 * term/usb_keyboard.c: New file.
3229
8fa4ea70 32302009-02-14 Vladimir Serbinenko <phcoder@gmail.com>
3231
3232 Corrected wrong declaration
3233
3234 * kern/disk.c: corrected declaration of grub_disk_ata_pass_through.
3235
353976ac 32362009-02-14 Christian Franke <franke@computer.org>
3237
3238 * commands/lspci.c (grub_pci_classes): Add `SATA Controller'.
3239 (grub_lspci_iter): Print class code and programming interface byte.
3240
6aa1169b 32412009-02-14 Christian Franke <franke@computer.org>
3242
3243 * gendistlist.sh: Ignore `.svn' directories.
3244
265372ca 32452009-02-14 Felix Zielcke <fzielcke@z-51.de>
3246
3247 * fs/fat.c: Add 2009 to Copyright line.
3248
9ff516f3 32492009-02-14 Christian Franke <franke@computer.org>
3250
3251 * commands/hdparm.c: New file. Provides `hdparm' command
3252 which sends ATA commands via grub_disk_ata_pass_through ().
3253
3254 * conf/i386-pc.rmk: Add ata_pthru.mod and hdparm.mod.
3255
3256 * disk/ata.c: Include <grub/ata.h>. Move <grub/misc.h>
3257 and <grub/cpu/io.h> to include/grub/ata.h.
3258 (enum grub_ata_addressing_t): Move to include/grub/ata.h.
3259 (GRUB_CDROM_SECTOR_SIZE): Remove.
3260 (GRUB_ATA_*): Move to include/grub/ata.h.
3261 (GRUB_ATAPI_*): Likewise.
3262 (enum grub_ata_commands): Likewise.
3263 (enum grub_ata_timeout_milliseconds): Likewise.
3264 (struct grub_ata_device): Likewise.
3265 (grub_ata_regset): Likewise.
3266 (grub_ata_regget): Likewise.
3267 (grub_ata_regset2): Likewise.
3268 (grub_ata_regget2): Likewise.
3269 (grub_ata_check_ready): Likewise.
3270 (grub_ata_wait_not_busy): Remove static, exported in
3271 include/grub/ata.h.
3272 (grub_ata_wait_drq): Likewise.
3273 (grub_ata_pio_read): Likewise.
3274
3275 * disk/ata_pthru.c: New file. Provides grub_ata_pass_through ()
3276 function for hdparm.mod.
3277
3278 * include/grub/ata.h: New file, contains declarations from
3279 disk/ata.c.
3280 (enum grub_ata_commands): Add new commands for commands/hdparm.c.
3281
3282 * include/grub/disk.h (grub_disk_ata_pass_through_parms): New struct.
3283 (grub_disk_ata_pass_through): New exported variable.
3284
3285 * kern/disk.c (grub_disk_ata_pass_through): New variable.
3286
772e23da 32872009-02-13 Colin D Bennett <colin@gibibit.com>
3288
3289 Support multiple fallback entries, and provide an API to support
3290 executing default+fallback menu entries. Renamed the `terminal' menu
3291 viewer to `text'.
3292
3293 * include/grub/normal.h (grub_normal_text_menu_viewer): New global
3294 variable declaration.
3295 (grub_menu_execute_callback): New structure declaration.
3296 (grub_menu_execute_callback_t): New typedef.
3297 (grub_menu_execute_with_fallback): New function declaration.
3298 (grub_menu_get_entry): Likewise.
3299 (grub_menu_get_timeout): Likewise.
3300 (grub_menu_set_timeout): Likewise.
3301
3302 * normal/main.c (GRUB_MOD_INIT(normal)): Refer to new variable name.
3303
3304 * normal/menu.c (grub_wait_after_message): Moved to
3305 `normal/menu_text.c'.
3306 (draw_border): Likewise.
3307 (print_message): Likewise.
3308 (print_entry): Likewise.
3309 (print_entries): Likewise.
3310 (grub_menu_init_page): Likewise.
3311 (get_entry_number): Likewise.
3312 (print_timeout): Likewise.
3313 (run_menu): Likewise.
3314 (grub_menu_execute_entry): Likewise.
3315 (show_text_menu): Likewise.
3316 (get_and_remove_first_entry_number): New function.
3317 (grub_menu_execute_with_fallback): Likewise.
3318 (get_entry): Renamed to ...
3319 (grub_menu_get_entry): .. this and made it global.
3320 (get_timeout): Renamed to ...
3321 (grub_menu_get_timeout): ... this and made it global.
3322 (set_timeout): Renamed to ...
3323 (grub_menu_set_timeout): ... this and made it global.
3324 (grub_normal_terminal_menu_viewer): Renamed to ...
3325 (grub_normal_text_menu_viewer): ... this.
3326
3327 * normal/menu_text.c: New file. Extracted text-menu-specific code
3328 from normal/menu.c.
3329
3330 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add `normal/menu_text.c'.
3331 (normal_mod_SOURCES): Likewise.
3332
3333 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
3334 (normal_mod_SOURCES): Likewise.
3335
3336 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3337 (normal_mod_SOURCES): Likewise.
3338
3339 * conf/i386-pc.rmk, (grub_emu_SOURCES): Likewise.
3340 (normal_mod_SOURCES): Likewise.
3341
3342 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3343 (normal_mod_SOURCES): Likewise.
3344
3345 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3346 (normal_mod_SOURCES): Likewise.
3347
3348 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
3349 (normal_mod_SOURCES): Likewise.
3350
16ac430e 33512009-02-11 Robert Millan <rmh@aybabtu.com>
3352
3353 * util/grub.d/00_header.in: Update old reference to `font' command.
3354
06ff20fc 33552009-02-10 Felix Zielcke <fzielcke@z-51.de>
3356
3357 * fs/fat.c (grub_fat_mount): Fix wrong comparison.
3358
3359 Based on patch from Javier Martín.
3360
96da9407 33612009-02-09 Felix Zielcke <fzielcke@z-51.de>
3362
3363 * conf/common.rmk (grub_probe_SOURCES): Move fs/ext2.c before fs/fat.c
50fb7002 3364 to avoid false positives with FAT.
96da9407 3365 (grub_fstest_SOURCES): Likewise.
3366 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
3367 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
3368 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3369 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
3370 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3371 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3372
6dca6fe4 33732009-02-09 Felix Zielcke <fzielcke@z-51.de>
3374
06ff20fc 3375 * fs/fat.c (grub_fat_mount): Try to avoid false positives by checking
6dca6fe4 3376 bpb.version_specific.fat12_or_fat16.fstype and
3377 bpb.version_specific.fat32.fstype.
3378
2550c62f 33792009-02-08 Robert Millan <rmh@aybabtu.com>
3380
be110b30 3381 * fs/tar.c: Replace "fs/cpio.c" with "cpio.c".
2550c62f 3382
56978920 33832009-02-08 Robert Millan <rmh@aybabtu.com>
3384
3385 * Makefile.in (host_os, host_cpu): New variables.
3386 (target_os): Remove. Update all users.
3387
d64399b5 33882009-02-08 Marco Gerards <marco@gnu.org>
3389
3390 * Makefile.in (enable_grub_emu_usb): New variable.
3391 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/scsi.c'.
3392 (grub_emu_SOURCES) [grub_emu_SOURCES]: Add `disk/usbms.c',
3393 `util/usb.c', `bus/usb/usb.c' and `commands/usbtest.c'.
3394 (grub_emu_LDFLAGS): Add `$(LIBUSB)'.
3395 (pkglib_MODULES): Add `usb.mod', `uhci.mod', `ohci.mod',
3396 `usbtest.mod' and `usbms.mod'.
3397 (usb_mod_SOURCES, usb_mod_CFLAGS, usb_mod_LDFLAGS)
3398 (usbtest_mod_SOURCES, usbtest_mod_CFLAGS, usbtest_mod_LDFLAGS)
3399 (uhci_mod_SOURCES, uhci_mod_CFLAGS, uhci_mod_LDFLAGS,
3400 (ohci_mod_SOURCES, ohci_mod_CFLAGS, ohci_mod_LDFLAGS)
3401 (usbms_mod_SOURCES, usbms_mod_CFLAGS, usbms_mod_LDFLAGS): New
3402 variables.
3403
3404 * disk/usbms.c: New file.
3405
3406 * include/grub/usb.h: Likewise.
3407
3408 * include/grub/usbtrans.h: Likewise.
3409
3410 * include/grub/usbdesc.h: Likewise.
3411
3412 * bus/usb/usbtrans.c: Likewise.
3413
3414 * bus/usb/ohci.c: Likewise.
3415
3416 * bus/usb/uhci.c: Likewise.
3417
3418 * bus/usb/usbhub.c: Likewise.
3419
3420 * bus/usb/usb.c: Likewise.
3421
3422 * commands/usbtest.c: Likewise.
3423
3424 * util/usb.c: Likewise.
50fb7002 3425
d64399b5 3426 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_IO'.
3427
3428 * configure.ac: Test for libusb presence.
50fb7002 3429
d64399b5 3430 * util/grub-emu.c (main) [HAVE_LIBUSB_H]: Call `grub_libusb_init'.
3431
2b40d6bb 34322009-02-08 Vesa Jääskeläinen <chaac@nic.fi>
3433
3434 * kern/mm.c: Add more comments.
3435
73a4ce81 34362009-02-08 Robert Millan <rmh@aybabtu.com>
3437
3438 Patch from Javier Martín.
3439 * fs/ext2.c (EXT2_DRIVER_SUPPORTED_INCOMPAT): Add
3440 `EXT4_FEATURE_INCOMPAT_FLEX_BG'.
3441
f821ce59 34422009-02-08 Robert Millan <rmh@aybabtu.com>
3443
3444 * fs/cpio.c: Split tar functionality to ...
3445 * fs/tar.c: ... here (new file). Update all users.
3446
aebfc4b0 34472009-02-07 Robert Millan <rmh@aybabtu.com>
3448
3449 * fs/ext2.c (grub_ext2_mount): Avoid mounting filesystems with
3450 backward-incompatible features.
3451
3452 Based on patch from Javier Martín, with some adjustments.
3453
50fb7002 34542009-02-07 Michael Scherer <misc@mandriva.org>
cea15bca 3455
3456 * fs/hfs.c (grub_hfsplus_iterate_dir): Treat hfs+ as case insensitive.
3457
0bb5115e 34582009-02-07 Robert Millan <rmh@aybabtu.com>
3459
3460 * conf/common.rmk (grub_probe_SOURCES, grub_fstest_SOURCES): Move
3461 position of `disk/lvm.c' to ensure grub_init_all() always picks it
3462 after the RAID stuff.
3463
38a0f8e7 34642009-02-05 Vesa Jääskeläinen <chaac@nic.fi>
3465
50fb7002 3466 Fixes problem when running vbetest command as reported by
38a0f8e7 3467 Vladimir Serbinenko <phcoder@gmail.com>.
3468
3469 * (grub_vbe_set_video_mode): Fixed problem with text modes.
3470
3143cc1c 34712009-02-04 Felix Zielcke <fzielcke@z-51.de>
3472
3473 util/getroot.c (grub_util_get_grub_dev): Add support for /dev/mdNpN and
3474 /dev/md/NpN style mdraid devices.
3475
9cba6fce 34762009-02-03 Felix Zielcke <fzielcke@z-51.de>
3477
3478 * util/unifont2pff.rb: Remove.
3479
e507a2c1 34802009-02-03 Felix Zielcke <fzielcke@z-51.de>
3481
3482 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add a missing trailing
3483 `#'.
3484
d2c2b4cd 34852009-02-03 Felix Zielcke <fzielcke@z-51.de>
3486
3487 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/menu_viewer.c'.
3488 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
3489 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
3490 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
3491 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3492 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3493 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3494
b4315fb0 34952009-02-02 Christian Franke <franke@computer.org>
3496
3497 * lib/hexdump.c (hexdump): Print at most 3 lines if data is identical.
3498
de3aa260 34992009-02-01 Felix Zielcke <fzielcke@z-51.de>
3500
7c3ff286 3501 * INSTALL: Note that we now require at least autoconf 2.59 and
3502 that LZO is optional.
de3aa260 3503
825a182b 35042009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
3505
3506 Base on patch on bug #24154 created by Tomas Tintera
3507 <trosos@seznam.cz>.
3508
3509 * video/i386/pc/vbe.c (grub_video_vbe_scroll): Fix downward scrolling.
3510
a69ef770 35112009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
3512
7c3ff286 3513 Based on patch on bug #25318 created by Bernhard Rosenkraenzer
a69ef770 3514 <bero@arklinux.org>.
3515
3516 * normal/parser.y (script_init): Add missing semicolon.
3517
6fa42fa6 35182009-01-31 Colin D Bennett <colin@gibibit.com>
3519
7c3ff286 3520 * normal/main.c: Add include to grub/menu_viewer.h.
6fa42fa6 3521 (free_menu_entry_classes): Added.
3522 (grub_normal_menu_addentry): Added class property handling.
3523 (grub_normal_execute): Changed to use new menu viewer for menu viewing.
3524 (GRUB_MOD_INIT(normal)): Added register for text based menu viewer.
3525
3526 * normal/menu_viewer.c: New file.
3527
3528 * normal/menu.c (run_menu_entry): Renamed to ...
3529 (grub_menu_execute_entry): ... this and made it as global.
3530 (grub_menu_run): Renamed to ...
3531 (show_text_menu): ... this and made it local.
3532 (show_text_menu): Adapt to new function names.
3533 (grub_normal_terminal_menu_viewer): New global variable.
3534
3535 * include/grub/menu.h: New file.
3536
3537 * include/grub/menu_viewer.h: New file.
3538
3539 * include/grub/normal.h: Added include to grub/menu.h.
3540 (grub_menu_entry): Moved to include/grub/menu.h.
3541 (grub_menu_entry_t): Likewise.
3542 (grub_menu): Likewise.
3543 (grub_menu_t): Likewise.
3544 (grub_normal_terminal_menu_viewer): Added.
3545 (grub_menu_execute_entry): Likewise.
3546 (grub_menu_run): Removed.
3547
3548 * DISTLIST: Added include/grub/menu.h.
3549 Added include/grub/menu_viewer.h.
3550 Added normal/menu_viewer.c.
3551
35522009-01-31 Vesa Jääskeläinen <chaac@nic.fi>
3553
3554 * normal/execute.c (grub_script_execute_menuentry): Changed to use
3555 arglist for menutitle arguments.
3556
3557 * normal/main.c (grub_normal_menu_addentry): Likewise.
3558
3559 * normal/parser.y (menuentry): Likewise.
3560
3561 * normal/script.c (grub_script_create_cmdmenu): Likewise.
3562
3563 * include/grub/script.h (grub_script_cmd_menuentry): Likewise.
3564 (grub_script_create_cmdmenu): Likewise.
3565
3566 * include/grub/normal.h (grub_normal_menu_addentry): Likewise.
3567
3568 * conf/i386-pc.rmk (normal_mod_SOURCES): Adapt Colin D Bennett's
3569 changes.
3570
3571 * conf/x86_64-efi.rmk (normal_mod_SOURCES): Likewise.
3572
3573 * conf/i386-coreboot.rmk (normal_mod_SOURCES): Likewise.
3574
3575 * conf/i386-efi.rmk (normal_mod_SOURCES): Likewise.
3576
3577 * conf/i386-ieee1275.rmk (normal_mod_SOURCES): Likewise.
3578
3579 * conf/powerpc-ieee1275.rmk (normal_mod_SOURCES): Likewise.
3580
3581 * conf/sparc64-ieee1275.rmk (normal_mod_SOURCES): Likewise.
3582
56192c23 35832009-01-30 Christian Franke <franke@computer.org>
3584
3585 * normal/arg.c (grub_arg_show_help): Add indentation if '\n' appears
3586 in option help text.
3587
d72521b3 35882009-01-27 Pavel Roskin <proski@gnu.org>
3589
3590 * disk/fs_uuid.c (search_fs_uuid): Ignore case of the UUID.
3591
994b5e84 35922009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
3593
3594 * commands/lsmmap.c: Add include to grub/machine/memory.h.
3595
3596 * fs/i386/pc/pxe.c (grub_pxefs_open): Fix sign problem.
3597
3598 * term/i386/pc/at_keyboard.c (GRUB_MOD_FINI(at_keyboard)): Use proper
3599 unregister function.
3600
6a7eab2c 36012009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
3602
3603 * disk/scsi.c (grub_scsi_read): Fix sign problem.
3604
3605 * term/i386/pc/vga_text.c (grub_vga_text_init_fini). Fix declaration.
3606
3607 * util/grub-mkfont.c (usage): Fix typo.
3608
3609 * util/elf/grub-mkimage.c (load_modules): Fix warning.
3610
1806b56e 36112009-01-26 Daniel Mierswa <impulze@impulze.org>
3612
3fb18f09 3613 * fs/fat.c (grub_fat_uuid): Fix shift of the first two bytes.
3614
336e1fb9 3615 * commands/search.c (search_fs_uuid): Ignore case of the UUID.
3616
1806b56e 3617 * kern/misc.c (grub_strcasecmp): New function.
3618 (grub_strcasecmp): Use grub_size_t instead of int for length.
3619 Fix return value.
3620 * include/grub/misc.h: Update function prototypes.
3621
580b2a0f 36222009-01-26 Robert Millan <rmh@aybabtu.com>
3623
3624 * configure.ac: Fix cross-compilation check.
ef257b36 3625
d31c24f1 36262009-01-22 Christian Franke <franke@computer.org>
3627
3628 * kern/misc.c (grub_vsprintf): Fix size and termination of `format2'
3629 (precision) digit string. Allow `.format2' without `format1' (width).
3630 Limit input chars for `%s' output to `format2' if specified. This is
3631 compatible with standard printf ().
3632
3138b44c 36332009-01-22 Christian Franke <franke@computer.org>
3634
3635 * disk/ata.c (grub_ata_wait_status): Replace by ...
3636 (grub_ata_wait_not_busy): ... this function. Checks only BSY bit,
3637 other status bits may be invalid while BSY is asserted.
3638 (grub_ata_check_ready): New function.
3639 (grub_ata_cmd): Removed.
3640 (grub_ata_wait_drq): New function.
3641 (grub_ata_strncpy): Remove inline.
3642 (grub_ata_pio_read): Reduce to actual block transfer. BSY wait
3643 and error check now done by grub_ata_wait_drq ().
3644 (grub_ata_pio_write): Likewise.
3645 (grub_atapi_identify): Set DEV before check for !BSY. Use
3646 grub_ata_wait_drq () to wait for data.
3647 (grub_ata_device_initialize): Add status register check to
3648 detect missing SATA slave devices. Add debug messages.
3649 (grub_atapi_wait_drq): Use grub_ata_wait_not_busy ().
3650 (grub_atapi_packet): Set DEV before check for !BSY. Replace
3651 transfer loop by grub_ata_pio_write ().
3652 (grub_ata_identify): Set DEV before check for !BSY. Use
3653 grub_ata_wait_drq () to wait for data.
ef257b36 3654 (grub_ata_setaddress): Set DEV before check for !BSY.
3138b44c 3655 (grub_ata_readwrite): Remove duplicate code, handle batch/rest and
3656 read/write in one loop. Fix invalid command on write. Fix incomplete
3657 command on (size % batch) == 0. Add missing error check after write of
3658 last block. Add debug messages.
3659 (grub_atapi_read): Replace transfer loop by grub_ata_pio_read ().
3660
59a64ef6 36612009-01-19 Christian Franke <franke@computer.org>
3662
3663 * disk/ata.c (GRUB_ATAPI_REG_*): New defines.
3664 (GRUB_ATAPI_IREASON_*): Likewise.
3665 (grub_ata_pio_write): Fix timeout error return.
3666 (grub_atapi_identify): Add grub_ata_wait () after cmd.
3667 (grub_atapi_wait_drq): New function.
3668 (grub_atapi_packet): New parameter `size'.
3669 Use grub_atapi_wait_drq () and direct write instead of
3670 grub_ata_pio_write ().
3671 (grub_atapi_read): Replace grub_ata_pio_read () by a loop which
3672 reads the number of bytes requested by the device for each DRQ
3673 assertion.
3674 (grub_atapi_write): Remove old implementation, return not
3675 implemented instead.
3676
1cfe20b3 36772009-01-19 Christian Franke <franke@computer.org>
3678
3679 * disk/scsi.c (grub_scsi_read10): Use scsi->blocksize instead
3680 of 512 to calculate data size.
3681 (grub_scsi_read12): Likewise.
3682 (grub_scsi_write10): Likewise.
3683 (grub_scsi_write12): Likewise.
3684 (grub_scsi_read): Adjust size according to blocksize.
3685 Add checks for invalid blocksize and unaligned transfer.
3686
bee5fe5d 36872009-01-19 Vesa Jääskeläinen <chaac@nic.fi>
3688
3689 * font/font.c (grub_font_loader_init): Re-position unknown glyph.
3690
ef257b36 3691 * term/gfxterm.c (write_char): Fix background rendering for wide
bee5fe5d 3692 width glyphs.
3693
3e643f8c 36942009-01-19 Robert Millan <rmh@aybabtu.com>
3695
3696 * config.guess: Update to latest version from config git.
3697 * config.sub: Likewise.
3698
4fa80998 36992009-01-17 Felix Zielcke <fzielcke@z-51.de>
3700
3701 * Makefile.in: Change font compilation to use new grub-mkfont instead
3702 of java version.
3703
3704 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: Remove.
3705 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
3706 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
3707 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
3708 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
3709 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
3710 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
3711 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
3712 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
3713
7086085b 37142009-01-16 Christian Franke <franke@computer.org>
3715
3716 * disk/ata.c (enum grub_ata_commands): Remove EXEC_DEV_DIAGNOSTICS.
3717 (enum grub_ata_timeout_milliseconds): New enum.
3718 (grub_ata_wait_status): Add parameter milliseconds.
3719 (grub_ata_cmd): Remove variable `err'. Remove wait for !DRQ to allow
3720 recovery from timed-out commands.
3721 (grub_ata_pio_read): Add parameter milliseconds. Fix error return,
3722 return grub_errno instead of REG_ERROR.
3723 (grub_ata_pio_write): Add parameter milliseconds.
3724 (grub_atapi_identify): Fix size of ATAPI IDENTIFY sector.
3725 Pass milliseconds to grub_ata_wait_status () and
3726 grub_ata_pio_read ().
3727 (grub_atapi_packet): Pass milliseconds to grub_ata_pio_write ().
3728 (grub_ata_identify): Remove variable `ataerr'. Pass milliseconds to
3729 grub_ata_wait_status (). Fix IDENTIFY timeout check.
3730 (grub_ata_device_initialize): Remove EXECUTE DEVICE DIAGNOSTICS.
3731 It is not suitable for device detection, because DEV bit is ignored,
3732 the command may run too long, and not all devices set the signature
3733 properly.
3734 (grub_ata_pciinit): Clear grub_errno before grub_ata_device_initialize ().
3735 (grub_ata_setaddress): Pass milliseconds to grub_ata_wait_status ().
3736 Fix device selection, DEV bit must be set first to address the registers
3737 of the correct device.
3738 (grub_ata_readwrite): Pass milliseconds to grub_ata_wait_status () and
3739 grub_ata_pio_read/write ().
3740 (grub_atapi_read): Pass milliseconds to grub_ata_pio_read ().
3741 (grub_atapi_write): Pass milliseconds to grub_ata_pio_write ().
3742
4a412913 37432009-01-13 Carles Pina i Estany <carles@pina.cat>
3744
3745 * util/grub-editenv.c (main): Use fseeko(), not fseek().
3746
7795c55e 37472009-01-13 Bean <bean123ch@gmail.com>
d913988c 3748
3749 * util/grub-mkfont.c (write_font): forget to remove some debug code.
3750
7795c55e 37512009-01-13 Bean <bean123ch@gmail.com>
e52db1f7 3752
3753 * Makefile.in: (enable_grub_mkfont): New variable.
3754 (freetype_cflags): Likewise.
3755 (freetype_libs): Likewise.
3756
3757 * common.rmk (bin_UTILITIES): Add `grub-mkfont' if requested.
3758 (grub_mkfont_SOURCES): New variable.
3759 (grub_mkfont_CFLAGS): Likewise.
3760 (grub_mkfont_LDFLAGS): Likewise.
3761
3762 * configure.ac (--enable-grub-mkfont): New option. Check for freetype2
3763 library if `--enable-grub-mkfont' is requested.
3764 (enable_grub_mkfont): New variable.
3765 (freetype_cflags): Likewise.
3766 (freetype_libs): Likewise.
3767
3768 * util/grub-mkfont.c: New file.
3769
093af1fe 37702009-01-12 Christian Franke <franke@computer.org>
3771
3772 * disk/ata.c (grub_ata_pciinit): Fix bit numbers of compatibility
3773 mode check. Fix setting of compat_use[].
3774
f36cc108 37752009-01-10 Robert Millan <rmh@aybabtu.com>
3776
3777 Update a few copyright years which we forgot to do in 2008 (only for
3778 files whose changes made in 2008 were copyright-significant)
3779
3780 * Makefile.in: Add 2008 to Copyright line.
3781 * disk/ieee1275/ofdisk.c: Likewise.
3782 * disk/efi/efidisk.c: Likewise.
3783 * kern/dl.c: Likewise.
3784 * kern/sparc64/ieee1275/init.c: Likewise.
3785 * kern/mm.c: Likewise.
3786 * kern/efi/mm.c: Likewise.
3787 * boot/i386/pc/boot.S: Likewise.
3788 * genfslist.sh: Likewise.
3789 * fs/iso9660.c: Likewise.
3790 * fs/hfs.c: Likewise.
3791 * fs/jfs.c: Likewise.
3792 * fs/minix.c: Likewise.
3793 * fs/ufs.c: Likewise.
3794 * gensymlist.sh.in: Likewise.
3795 * genkernsyms.sh.in: Likewise.
3796 * include/grub/misc.h: Likewise.
3797 * include/grub/types.h: Likewise.
3798 * include/grub/symbol.h: Likewise.
3799 * include/grub/elf.h: Likewise.
3800 * include/grub/kernel.h: Likewise.
3801 * include/grub/disk.h: Likewise.
3802 * include/grub/dl.h: Likewise.
3803 * include/grub/i386/linux.h: Likewise.
3804 * include/grub/i386/pc/biosdisk.h: Likewise.
3805 * include/grub/efi/api.h: Likewise.
3806 * include/grub/efi/pe32.h: Likewise.
3807 * include/grub/util/misc.h: Likewise.
3808 * normal/execute.c: Likewise.
3809 * normal/arg.c: Likewise.
3810 * normal/completion.c: Likewise.
3811 * normal/lexer.c: Likewise.
3812 * normal/parser.y: Likewise.
3813 * normal/misc.c: Likewise.
3814 * commands/i386/pc/vbeinfo.c: Likewise.
3815 * commands/hexdump.c: Likewise.
3816 * commands/terminal.c: Likewise.
3817 * commands/ls.c: Likewise.
3818 * commands/help.c: Likewise.
3819 * partmap/pc.c: Likewise.
3820 * loader/efi/chainloader.c: Likewise.
3821 * loader/multiboot_loader.c: Likewise.
3822 * loader/i386/pc/multiboot2.c: Likewise.
3823 * term/efi/console.c: Likewise.
3824 * term/i386/pc/serial.c: Likewise.
3825 * util/lvm.c: Likewise.
3826 * util/console.c: Likewise.
3827 * util/i386/efi/grub-mkimage.c: Likewise.
3828 * util/raid.c: Likewise.
3829
7f02114b 38302009-01-06 Vesa Jääskeläinen <chaac@nic.fi>
3831
3832 * commands/videotest.c: Removed include to grub/machine/memory.h.
3833
3834 * conf/i386-pc.rmk (pkglib_MODULES): Removed video.mod, gfxterm.mod,
3835 videotest.mod, bitmap.mod, tga.mod, jpeg.mod, png.mod.
3836 (video_mod_SOURCES): Removed.
3837 (video_mod_CFLAGS): Likewise.
3838 (video_mod_LDFLAGS): Likewise.
3839 (gfxterm_mod_SOURCES): Likewise.
3840 (gfxterm_mod_CFLAGS): Likewise.
3841 (gfxterm_mod_LDFLAGS): Likewise.
3842 (videotest_mod_SOURCES): Likewise.
3843 (videotest_mod_CFLAGS): Likewise.
3844 (videotest_mod_LDFLAGS): Likewise.
3845 (bitmap_mod_SOURCES): Likewise.
3846 (bitmap_mod_CFLAGS): Likewise.
3847 (bitmap_mod_LDFLAGS): Likewise.
3848 (tga_mod_SOURCES): Likewise.
3849 (tga_mod_CFLAGS): Likewise.
3850 (tga_mod_LDFLAGS): Likewise.
3851 (jpeg_mod_SOURCES): Likewise.
3852 (jpeg_mod_CFLAGS): Likewise.
3853 (jpeg_mod_LDFLAGS): Likewise.
3854 (png_mod_SOURCES): Likewise.
3855 (png_mod_CFLAGS): Likewise.
3856 (png_mod_LDFLAGS): Likewise.
3857
3858 * conf/common.rmk (pkglib_MODULES): Added video.mod, videotest.mod,
3859 bitmap.mod, tga.mod, jpeg.mod, png.mod, font.mod, gfxterm.mod
3860 (video_mod_SOURCES): Added.
3861 (video_mod_CFLAGS): Likewise.
3862 (video_mod_LDFLAGS): Likewise.
3863 (videotest_mod_SOURCES): Likewise.
3864 (videotest_mod_CFLAGS): Likewise.
3865 (videotest_mod_LDFLAGS): Likewise.
3866 (bitmap_mod_SOURCES): Likewise.
3867 (bitmap_mod_CFLAGS): Likewise.
3868 (bitmap_mod_LDFLAGS): Likewise.
3869 (tga_mod_SOURCES): Likewise.
3870 (tga_mod_CFLAGS): Likewise.
3871 (tga_mod_LDFLAGS): Likewise.
3872 (jpeg_mod_SOURCES): Likewise.
3873 (jpeg_mod_CFLAGS): Likewise.
3874 (jpeg_mod_LDFLAGS): Likewise.
3875 (png_mod_SOURCES): Likewise.
3876 (png_mod_CFLAGS): Likewise.
3877 (png_mod_LDFLAGS): Likewise.
3878 (gfxterm_mod_SOURCES): Likewise.
3879 (gfxterm_mod_CFLAGS): Likewise.
7795c55e 3880 (gfxterm_mod_LDFLAGS): Likewise.
7f02114b 3881
3882 * term/gfxterm.c: Removed include to grub/machine/memory.h,
3883 grub/machine/console.h.
3884
644fff97 38852009-01-04 Jerone Young <jerone@gmail.com>
3886
3887 Make on screen instructions clearer
3888
3889 Based on patch created by Jidanni <jidanni@jidanni.org>
3890
3891 * normal/menu.c: print clearer instructions on the screen
3892
1e901a75 38932009-01-02 Colin D Bennett <colin@gibibit.com>
3894
3895 New font engine.
34c44600 3896
1e901a75 3897 Additional changes by Vesa Jääskeläinen <chaac@nic.fi> to adapt to
3898 build system and fixed gfxterm.c to work with different sized fonts.
3899
3900 * configure.ac: Changed UNIFONT_HEX to UNIFONT_BDF.
34c44600 3901
1e901a75 3902 * configure: Re-generated.
34c44600 3903
1e901a75 3904 * DISTLIST: Removed font/manager.c.
3905 Added font/font.c.
3906 Added font/font_cmd.c.
34c44600 3907
1e901a75 3908 * Makefile.in: Changed UNIFONT_HEX to UNIFONT_BDF. Added Font tool
3909 compilation.
34c44600 3910
1e901a75 3911 * include/grub/misc.h (grub_utf8_to_ucs4): Changed prototype. Changed users.
34c44600 3912
3913 * kern/misc.c (grub_utf8_to_ucs4): Changed prototype.
1e901a75 3914
3915 * kern/term.c: Changed users of grub_utf8_to_ucs4.
34c44600 3916
1e901a75 3917 * normal/menu.c: Likewise.
34c44600 3918
1e901a75 3919 * conf/common.rmk (font_mod_SOURCES): Removed font/manager.c.
3920 (font_mod_SOURCES): Added font/font_cmd.c, font/font.c.
34c44600 3921
1e901a75 3922 * include/grub/font.h: Replaced with new file.
34c44600 3923
1e901a75 3924 * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_ALPHA): Changed value.
3925 (GRUB_VIDEO_MODE_TYPE_DOUBLE_BUFFERED): Likewise.
3926 (GRUB_VIDEO_MODE_TYPE_COLOR_MASK): Likewise.
3927 (GRUB_VIDEO_MODE_TYPE_1BIT_BITMAP): Added.
3928 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED.
34c44600 3929 (grub_video_mode_info): Added bg_red, bg_green, bg_blue, bg_alpha,
1e901a75 3930 fg_red, fg_green, fg_blue, fg_alpha.
3931 (grub_video_adapter): Removed blit_glyph.
34c44600 3932 (grub_video_blit_glyph): Removed.
3933
1e901a75 3934 * font/manager.c: Removed file.
34c44600 3935
3936 * font/font.c: New file.
3937
1e901a75 3938 * font/font_cmd.c: Likewise.
34c44600 3939
1e901a75 3940 * video/video.c (grub_video_blit_glyph): Removed.
34c44600 3941
1e901a75 3942 * video/i386/pc/vbe.c (grub_video_vbe_map_rgb): Added 1-bit support.
3943 (grub_video_vbe_map_rgba): Likewise.
3944 (grub_video_vbe_unmap_color_int): Likewise.
3945 (grub_video_vbe_blit_glyph): Removed.
3946 (grub_video_vbe_adapter): Removed blit_glyph.
34c44600 3947
1e901a75 3948 * video/i386/pc/vbeutil.c (get_data_ptr): Added 1-bit support.
3949 (get_pixel): Likewise.
34c44600 3950 (set_pixel): Likewise.
3951
1e901a75 3952 * commands/videotest.c (grub_cmd_videotest): Added more tests for fonts.
34c44600 3953
1e901a75 3954 * term/gfxterm.c: Adapted to new font engine.
34c44600 3955
1e901a75 3956 * term/i386/pc/vesafb.c: Marked as deprecated. Made it compile.
34c44600 3957
1e901a75 3958 * term/i386/pc/vga.c: Likewise.
34c44600 3959
1e901a75 3960 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: New file.
34c44600 3961
1e901a75 3962 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
34c44600 3963
1e901a75 3964 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
34c44600 3965
1e901a75 3966 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
34c44600 3967
1e901a75 3968 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
34c44600 3969
1e901a75 3970 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
34c44600 3971
1e901a75 3972 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
34c44600 3973
1e901a75 3974 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
34c44600 3975
1e901a75 3976 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
3977
3978 * util/grub.d/00_header.in: Changed to use new loadfont command.
34c44600 3979
1e901a75 3980 * util/grub-mkconfig_lib.in: Changed font extension.
3981
278922e8 39822008-12-28 Felix Zielcke <fzielcke@z-51.de>
3983
3984 * util/getroot.c (grub_util_get_grub_dev): Add support for
3985 /dev/md/dNNpNN style partitionable mdraid devices.
3986
3ced05cf 39872008-12-12 Alex Smith <alex@alex-smith.me.uk>
3988
3989 * fs/i386/pc/pxe.c (grub_pxefs_open): Handle the one open connection
3990 at a time limit of the PXE TFTP API correctly.
3991 (grub_pxefs_close): Likewise.
3992
7fd0ee30 39932008-11-29 Robert Millan <rmh@aybabtu.com>
3994
34c44600 3995 * disk/ata.c (grub_ata_pciinit): Handle errors raised by
7fd0ee30 3996 grub_ata_device_initialize() calls.
3997
34c44600 39982008-11-28 Krzysztof Smiechowicz <deadwood@wp.pl>
0c5e79ab 3999
4000 * fs/affs.c (grub_affs_iterate_dir): Return failure when directory
4001 iteration failed.
4002 * fs/sfs.c (grub_sfs_iterate_dir): Likewise.
4003
89313780 40042008-11-28 Robert Millan <rmh@aybabtu.com>
4005
4006 Fix build on powerpc-ieee1275. Based on patch created by
4007 Manoel Abranches <mrabran@linux.vnet.ibm.com>.
4008 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
4009 `kern/ieee1275/mmap.c'.
4010 * include/grub/powerpc/ieee1275/memory.h: New file.
4011
15257703 4012 Provide grub-install on coreboot.
4013 * conf/i386-coreboot.rmk (sbin_SCRIPTS): Add `grub-install'.
4014 (grub_install_SOURCES): New variable.
4015 * util/i386/pc/grub-install.in: Add a few condition checks to make it
4016 usable on coreboot.
4017
9fc5388a 40182008-11-25 Felix Zielcke <fzielcke@z-51.de>
4019
4020 * util/grub-fstest.c (grub_term_get_current_input): Change return type
4021 to `grub_term_input_t'.
4022 (grub_term_get_current_output): Change return type to
4023 `grub_term_output_t'.
4024
bc3a2f31 40252008-11-22 Robert Millan <rmh@aybabtu.com>
4026
34c44600 4027 Fix breakage on coreboot due to declaration mismatch.
bc3a2f31 4028 * term/i386/pc/vga_text.c (grub_vga_text_init_fini): New function.
4029 (grub_vga_text_term): Use grub_vga_text_init_fini() instead of
4030 grub_vga_text_cls().
4031
80fc88f2 4032 * kern/i386/loader.S (grub_multiboot_backward_relocator): Improve
34c44600 4033 comments. Avoid copying one more byte than necessary (just in case).
80fc88f2 4034
cbf36fd3 4035 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Change link address
4036 to 0x200000 (avoids trouble with some OFW implementations, and matches
4037 with the one in Yaboot).
4038 Reported by Manoel Abranches
4039
73e8e268 40402008-11-20 Robert Millan <rmh@aybabtu.com>
3cf6ac19 4041
4042 * kern/i386/coreboot/init.c (grub_time_tics): Remove variable.
4043 (grub_get_rtc, grub_exit): Abort with grub_fatal() if called.
4044
73e8e268 4045 * util/grub-mkconfig_lib.in (grub_warn): New function.
4046 (convert_system_path_to_grub_path): Use grub_warn() when issuing
4047 warnings, to obtain consistent formatting.
4048 * util/grub.d/00_header.in: Likewise.
4049 * util/update-grub_lib.in: Likewise.
4050
e94045a1 4051 * loader/i386/linux.c (allocate_pages): Fix a warning.
40f9faa4 4052 Move comment text to `#error' stanza.
e94045a1 4053
79d29fd7 4054 Harmonize ieee1275's grub_available_iterate() with the generic
4055 grub_machine_mmap_iterate() interface (fixes a recently-introduced
4056 build problem on i386-ieee1275):
4057 * kern/ieee1275/openfw.c (grub_available_iterate): Moved from here ...
4058 * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): ... here. Add third
4059 parameter `type'. Update all users of this function.
4060 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
4061 `kern/ieee1275/mmap.c'.
4062 * kern/ieee1275/init.c
4063 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): Replace
4064 with ...
4065 (grub_machine_mmap_iterate): ... this.
4066 * include/grub/i386/pc/memory.h (grub_machine_mmap_iterate): Change
4067 return type to `grub_err_t'. Update all implementations of this
4068 function prototype.
4069 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_iterate):
4070 Likewise.
4071
60d6b16e 4072 Add `lsmmap' command (lists firmware-provided memory map):
4073 * commands/lsmmap.c: New file.
4074 * conf/i386-pc.rmk (pkglib_MODULES): Add `lsmmap.mod'.
4075 (lsmmap_mod_SOURCES, lsmmap_mod_CFLAGS, lsmmap_mod_LDFLAGS): New
4076 variables.
4077 * conf/powerpc-ieee1275.rmk: Likewise.
4078 * conf/i386-coreboot.rmk: Likewise.
4079 * conf/i386-ieee1275.rmk: Likewise.
4080
ebaaf49b 40812008-11-19 Robert Millan <rmh@aybabtu.com>
4082
4083 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Fix a typo.
92907110 4084 * loader/i386/linux.c (grub_rescue_cmd_initrd): Implement a few needed
4085 constraints to initrd allocation (based on code from
4086 loader/i386/pc/linux.c). Without them, initrd was allocated too high
4087 for Linux to find it.
ebaaf49b 4088
dfab719f 40892008-11-14 Robert Millan <rmh@aybabtu.com>
4090
4091 * fs/cpio.c (grub_cpio_open): Compare `name' and `fn' by hand in
4092 order to cope with duplicate slashes.
4093
10fc3eb9 40942008-11-14 Robert Millan <rmh@aybabtu.com>
4095
4096 * include/grub/i386/coreboot/memory.h (GRUB_MEMORY_MACHINE_LOWER_SIZE):
4097 Redefine to match with GRUB_MEMORY_MACHINE_UPPER_START (0x100000). We
4098 don't want to mess with lower memory, because it is used in the Linux
4099 loader.
4100
4101 * loader/i386/linux.c (allocate_pages): Allocate `real_mode_mem' in
34c44600 4102 an appropriate place in lower memory, between 0x10000 and 0x90000,
10fc3eb9 4103 like loader/i386/efi/linux.c does. Linux often panics if real_mode_mem
4104 is in our heap (probably as a result of it being corrupted during
2f2a3442 4105 decompression). Add #error instance with comment to explain why this
4106 loader isn't currently usable on PC/BIOS.
10fc3eb9 4107
e2e07847 41082008-11-14 Robert Millan <rmh@aybabtu.com>
4109
4110 * term/i386/pc/serial.c [! GRUB_MACHINE_PCBIOS]
34c44600 4111 (GRUB_SERIAL_PORT_NUM): Fix miscalculation.
e2e07847 4112
fe8e8d69 41132008-11-12 Robert Millan <rmh@aybabtu.com>
4114
4115 Make loader/i386/linux.c buildable on i386-pc (although disabled).
4116
4117 * include/grub/i386/pc/init.h: Include `<grub/machine/memory.h>'.
4118 (struct grub_machine_mmap_entry, grub_machine_mmap_iterate): Move
4119 from here ...
4120 * include/grub/i386/pc/memory.h: ... to here.
4121
976b07d0 41222008-11-12 Robert Millan <rmh@aybabtu.com>
4123
4124 Fix build problems on i386-ieee1275 and *-efi (introduced by vga_text
4125 split).
4126
4127 * include/grub/i386/pc/console.h: Include `<grub/i386/vga_common.h>'.
4128 (grub_console_cur_color, grub_console_real_putchar)
4129 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
4130 (grub_console_setcolorstate, grub_console_setcolor)
4131 (grub_console_getcolor): Move from here ...
4132 * include/grub/i386/vga_common.h: ... to here (new file).
4133
4134 * term/i386/pc/vga_text.c: Replace `<grub/machine/console.h>' with
4135 `<grub/i386/vga_common.h>' and `<grub/cpu/io.h>' with
4136 `<grub/i386/io.h>'.
4137 * term/i386/vga_common.c: Replace `<grub/machine/console.h>' with
4138 `<grub/i386/vga_common.h>'.
4139
76679cd3 41402008-11-12 Robert Millan <rmh@aybabtu.com>
4141
4142 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `term/i386/vga_common.c'.
4143 * conf/i386.rmk (pkglib_MODULES): Add `vga_text.mod'.
4144 (vga_text_mod_SOURCES, vga_text_mod_CFLAGS, vga_text_mod_LDFLAGS): New
4145 variables.
4146 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
4147 `term/i386/pc/console.c' with `term/i386/vga_common.c'.
4148
4149 * kern/i386/coreboot/init.c (grub_machine_init): Replace call to
4150 grub_console_init() with call to grub_vga_text_init().
4151 (grub_machine_fini): Replace call to
4152 grub_console_fini() with call to grub_vga_text_fini() and
4153 grub_at_keyboard_fini().
4154
4155 * include/grub/i386/pc/console.h: Include `<grub/term.h>'.
4156 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
4157 (grub_console_setcolorstate, grub_console_setcolor)
4158 (grub_console_getcolor): New function prototypes.
4159
4160 * term/i386/pc/vga_text.c: Include `<grub/dl.h>'.
4161 (grub_vga_text_getxy, grub_vga_text_gotoxy, grub_vga_text_cls)
4162 (grub_vga_text_setcursor): Static-ize.
4163 (grub_vga_text_term): New structure.
4164 (GRUB_MOD_INIT(vga_text), GRUB_MOD_FINI(vga_text)): New functions.
4165
4166 * term/i386/pc/console.c: Remove `<grub/machine/machine.h>'.
4167 (grub_console_cur_color, grub_console_standard_color)
4168 (grub_console_normal_color, grub_console_highlight_color)
4169 (map_char, grub_console_putchar, grub_console_getcharwidth)
4170 (grub_console_getwh, grub_console_setcolorstate, grub_console_setcolor)
4171 (grub_console_getcolor): Move from here ...
4172 * term/i386/vga_common.c: ... to here (same function names).
4173
95b841d3 41742008-11-12 Robert Millan <rmh@aybabtu.com>
4175
4176 Use newly-added Multiboot support in coreboot.
4177
4178 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
4179 `kern/i386/coreboot/mmap.c' with `kern/i386/multiboot_mmap.c'.
4180
4181 * kern/i386/coreboot/startup.S: Enable Multiboot header, fix its
4182 alignment, set `MULTIBOOT_MEMORY_INFO' flag.
4183 (codestart): Store the MBI in `startup_multiboot_info' when we're
4184 being loaded using Multiboot.
4185
4186 * kern/i386/coreboot/init.c (grub_machine_init): Move
4187 grub_at_keyboard_init() call to beginning of function (useful for
4188 debugging). Call grub_machine_mmap_init() before attempting to use
4189 grub_machine_mmap_iterate().
4190 (grub_lower_mem, grub_upper_mem): Move from here ...
4191 * kern/i386/multiboot_mmap.c (grub_lower_mem, grub_upper_mem): ... to
4192 here (new file).
4193
4194 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_init): New
4195 function prototype.
4196
761ca975 41972008-11-12 Robert Millan <rmh@aybabtu.com>
4198
4199 Fix a regression introduced by the at_keyboard.mod split. Because
4200 some terminals are default on some platforms and non-default on
4201 others, the first terminal being registered determines which is
4202 going to be default.
4203
4204 * kern/term.c (grub_term_register_input): If this is the first
4205 terminal being registered, set it as the current one.
4206 (grub_term_register_output): Likewise.
4207
4208 * term/efi/console.c (grub_console_init): Do not call
4209 grub_term_set_current_output() or grub_term_set_current_input().
4210 * term/ieee1275/ofconsole.c (grub_console_init): Likewise.
4211 * term/i386/pc/console.c (grub_console_init): Likewise.
4212 (grub_console_fini): Do not call grub_term_set_current_input()
4213 (but leave grub_term_set_current_output() to restore text mode).
4214
6c529df7 42152008-11-10 Robert Millan <rmh@aybabtu.com>
4216
4217 * util/grub.d/00_header.in: Add backward compatibility check for
4218 versions of terminal.mod that don't understand `terminal_input' or
4219 `terminal_output'.
4220
132e4113 42212008-11-09 Robert Millan <rmh@aybabtu.com>
4222
4223 * commands/terminal.c (GRUB_MOD_FINI(terminal)): Unregister
4224 `terminal_input' / `terminal_output', not `terminal'.
4225
ac293d50 42262008-11-08 Robert Millan <rmh@aybabtu.com>
4227
4228 * Makefile.in (include_DATA): Fix srcdir=. assumption.
2a9c5940 4229 (DISTCLEANFILES): Add `build_env.mk'.
ac293d50 4230
0025933a 42312008-11-08 Robert Millan <rmh@aybabtu.com>
4232
4233 * term/i386/pc/vesafb.c (grub_vesafb_term): Change type to
dba3f844 4234 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
0025933a 4235 members. Update all users.
4236 * util/console.c (grub_ncurses_term): Split in ...
4237 (grub_ncurses_term_input): ... this, and ...
4238 (grub_ncurses_term_output): ... this. Update all users.
dcb6fa0a 4239 * term/ieee1275/ofconsole.c: Remove stale `#endif'.
0025933a 4240
37c86336 42412008-11-08 Robert Millan <rmh@aybabtu.com>
4242
4243 * Makefile.in (PKGLIB): Add $(pkglib_BUILDDIR).
4244 (PKGDATA): Add $(pkgdata_SRCDIR).
4245 (pkglib_BUILDDIR): New variable.
4246 (pkgdata_SRCDIR): New variable.
4247 (build_env.mk): New target.
4248 (include_DATA): New variable.
4249 (install-local): Install $(include_DATA) files in $(includedir).
4250
b6c15a2d 42512008-11-07 Pavel Roskin <proski@gnu.org>
4252
d99d46f1 4253 * gendistlist.sh: Use C locale for sorting to ensure consistent
4254 output on all systems.
4255
b6c15a2d 4256 * util/grub.d/00_header.in: Remove incorrect space before
4257 "serial".
4258
c32ee8c9 42592008-11-07 Robert Millan <rmh@aybabtu.com>
4260
4261 * include/multiboot2.h (struct multiboot_header): Add `flags' member as
4262 per specification.
4263 * loader/multiboot2.c (grub_multiboot2): Fix Multiboot2 header check.
4264 * loader/multiboot_loader.c (find_multi_boot2_header): New function
4265 (based on find_multi_boot1_header).
4266 (grub_rescue_cmd_multiboot_loader): Check for Multiboot2 header,
4267 using find_multi_boot2_header(), and abort if neither Multiboot or
4268 Multiboot headers were found.
4269
651c29b7 42702008-11-07 Robert Millan <rmh@aybabtu.com>
4271
4272 Modularize at_keyboard.mod:
4273
4274 * conf/i386.rmk (pkglib_MODULES): Add `at_keyboard.mod'.
4275 (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS)
4276 (at_keyboard_mod_LDFLAGS): New variables.
4277
4278 Actual terminal split:
4279
4280 * include/grub/term.h (struct grub_term): Split in ...
4281 (struct grub_term_input): ... this, and ...
4282 (struct grub_term_output): ... this. Update all users.
4283 (grub_term_set_current): Split in ...
4284 (grub_term_set_current_input): ... this, and ...
4285 (grub_term_set_current_output): ... this.
4286 (grub_term_get_current): Split in ...
4287 (grub_term_get_current_input): ... this, and ...
4288 (grub_term_get_current_output): ... this.
4289 (grub_term_register): Split in ...
4290 (grub_term_register_input): ... this, and ...
4291 (grub_term_register_output): ... this.
4292 (grub_term_unregister): Split in ...
4293 (grub_term_unregister_input): ... this, and ...
4294 (grub_term_unregister_output): ... this.
4295 (grub_term_iterate): Split in ...
4296 (grub_term_iterate_input): ... this, and ...
4297 (grub_term_iterate_output): ... this.
4298
4299 * kern/term.c (grub_term_list): Split in ...
4300 (grub_term_list_input): ... this, and ...
4301 (grub_term_list_output): ... this. Update all users.
4302 (grub_cur_term): Split in ...
4303 (grub_cur_term_input): ... this, and ...
4304 (grub_cur_term_output): ... this. Update all users.
4305 (grub_term_set_current): Split in ...
4306 (grub_term_set_current_input): ... this, and ...
4307 (grub_term_set_current_output): ... this.
4308 (grub_term_get_current): Split in ...
4309 (grub_term_get_current_input): ... this, and ...
4310 (grub_term_get_current_output): ... this.
4311 (grub_term_register): Split in ...
4312 (grub_term_register_input): ... this, and ...
4313 (grub_term_register_output): ... this.
4314 (grub_term_unregister): Split in ...
4315 (grub_term_unregister_input): ... this, and ...
4316 (grub_term_unregister_output): ... this.
4317 (grub_term_iterate): Split in ...
4318 (grub_term_iterate_input): ... this, and ...
4319 (grub_term_iterate_output): ... this.
4320
4321 * kern/misc.c (grub_abort): Split use of grub_term_get_current() into
4322 a check for input and one for output (and only attempt to get keys
4323 from user when input works).
4324
4325 * util/grub-probe.c (grub_term_get_current): Split in ...
4326 (grub_term_get_current_input): ... this, and ...
4327 (grub_term_get_current_output): ... this.
4328 * util/grub-fstest.c: Likewise.
4329 * util/i386/pc/grub-setup.c: Likewise.
4330 * util/grub-editenv.c: Likewise.
4331
4332 Portability adjustments:
4333
4334 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Remove
4335 `term/i386/pc/at_keyboard.c'.
4336 * kern/ieee1275/init.c [__i386__] (grub_machine_init): Remove call to
4337 grub_keyboard_controller_init() (now handled by terminal .init).
4338 * kern/i386/coreboot/init.c (grub_machine_init): Add call to
4339 grub_at_keyboard_init().
4340 * include/grub/i386/ieee1275/console.h (grub_keyboard_controller_init)
4341 (grub_console_checkkey, grub_console_getkey): Remove (now provided by
4342 at_keyboard.mod via input terminal interface).
4343 * include/grub/i386/coreboot/console.h: Convert into a stub for
4344 `<grub/i386/pc/console.h>'.
4345
4346 Migrate full terminals to new API:
4347
4348 * term/efi/console.c (grub_console_term): Split into ...
4349 (grub_console_term_input): ... this, and ...
4350 (grub_console_term_output): ... this. Update all users.
4351 * term/ieee1275/ofconsole.c: Remove __i386__ hack.
4352 (grub_ofconsole_init): Split into ...
4353 (grub_ofconsole_init_input): ... this, and ...
4354 (grub_ofconsole_init_output): ... this.
4355 (grub_ofconsole_term): Split into ...
4356 (grub_ofconsole_term_input): ... this, and ...
4357 (grub_ofconsole_term_output): ... this. Update all users.
4358 * term/i386/pc/serial.c (grub_serial_term): Split into ...
4359 (grub_serial_term_input): ... this, and ...
4360 (grub_serial_term_output): ... this. Update all users.
4361 * term/i386/pc/console.c (grub_console_term): Split into ...
4362 (grub_console_term_input): ... this, and ...
4363 (grub_console_term_output): ... this. Update all users.
4364 (grub_console_term_input): Only enable it on PC/BIOS platform.
4365 (grub_console_init): Remove grub_keyboard_controller_init() call.
4366
4367 Migrate input terminals to new API:
4368
4369 * term/i386/pc/at_keyboard.c: Replace `cpu' and `machine' with
4370 `i386' and `i386/pc' to enable build on x86_64 (this driver is
4371 i386-specific anyway).
4372 (grub_console_checkkey): Rename to ...
4373 (grub_at_keyboard_checkkey): ... this. Static-ize. Update all
4374 users.
4375 (grub_keyboard_controller_orig): New variable.
4376 (grub_console_getkey): Rename to ...
4377 (grub_at_keyboard_getkey): ... this. Static-ize. Update all
4378 users.
4379 (grub_keyboard_controller_init): Static-ize. Save original
4380 controller value so that it can be restored ...
4381 (grub_keyboard_controller_fini): ... here (new function).
4382 (grub_at_keyboard_term): New structure.
4383 (GRUB_MOD_INIT(at_keyboard), GRUB_MOD_FINI(at_keyboard)): New
4384 functions.
4385
4386 Migrate output terminals to new API:
4387
4388 * term/i386/pc/vga.c (grub_vga_term): Change type to
4389 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
4390 members. Update all users.
4391 * term/gfxterm.c (grub_video_term): Change type to
4392 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
4393 members. Update all users.
4394 * include/grub/i386/pc/console.h (grub_console_checkkey)
4395 (grub_console_getkey): Do not export (no longer needed by gfxterm,
4396 etc).
4397
4398 Migrate `terminal' command and userland tools to new API:
4399
4400 * commands/terminal.c (grub_cmd_terminal): Split into ...
4401 (grub_cmd_terminal_input): ... this, and ...
4402 (grub_cmd_terminal_output): ... this.
4403 (GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands:
4404 `terminal_input' and `terminal_output'.
4405 * util/grub.d/00_header.in: Adjust `terminal' calls to new
4406 `terminal_input' / `terminal_output' API.
4407 * util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and
4408 ${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user
4409 provided ${GRUB_TERMINAL}, convert it).
4410
96e5d876 44112008-11-04 Robert Millan <rmh@aybabtu.com>
4412
4413 * util/grub.d/10_freebsd.in: New file. Generate grub configuration
4414 for FreeBSD.
4415 * conf/common.rmk (grub-mkconfig_SCRIPTS): Add 10_freebsd.
4416
556f3775 44172008-11-03 Bean <bean123ch@gmail.com>
4418
4419 * kern/elf.c (grub_elf32_load): Revert to previous code.
4420 (grub_elf64_load): Likewise.
4421
4422 * loader/i386/bsd.c (grub_bsd_elf32_hook): Change return address.
4423
926b9823 44242008-11-01 Robert Millan <rmh@aybabtu.com>
4425
4426 * Makefile.in (CPPFLAGS): Fix builddir=. assumption.
4427 (TARGET_CPPFLAGS): Likewise.
4428 * genmk.rb (mod_src): Fix builddir=. and srcdir=. assumptions.
4429
1432e958 44302008-11-01 Carles Pina i Estany <carles@pina.cat>
4431
4432 * normal/menu.c (run_menu): Add Previous and Next Page keys in menu.
4433
dba3f844 44342008-10-29 Guillem Jover <guillem.jover@nokia.com>
de4fa71c 4435
4436 * disk/lvm.c (grub_lvm_scan_device): Fix error recovery by delaying the
4437 addition of objects until the code is not going to be able to fail.
4438
dba3f844 44392008-10-29 Guillem Jover <guillem.jover@nokia.com>
b7279447 4440
4441 * disk/lvm.c (grub_lvm_scan_device): Fix possible NULL value handling
4442 (add a missing NULL check, and correct them by moving the pointer
4443 operations after the actual check).
4444
7ab28c21 44452008-10-29 Robert Millan <rmh@aybabtu.com>
4446
4447 * util/i386/pc/grub-install.in: Handle empty string as output from
4448 make_system_path_relative_to_its_root().
4449
1b7748eb 44502008-10-05 Hans Lambermont <hans@lambermont.dyndns.org>
4451
4452 * disk/lvm.c (grub_lvm_scan_device): Allocate buffer space for the
4453 circular metadata worst case scenario. If the metadata is circular
4454 then copy the wrap in place.
4455 * include/grub/lvm.h: Add GRUB_LVM_MDA_HEADER_SIZE, from the LVM2
4456 project lib/format_text/layout.h
4457 Circular metadata bug found and patch debugged by Jan Derk Gerlings.
4458
c9618ab2 44592008-10-03 Felix Zielcke <fzielcke@z-51.de>
4460
7a36edca 4461 * util/i386/pc/grub-install.in: Source grub-mkconfig_lib instead of update-grub_lib.
c9618ab2 4462
bf981c62 44632008-10-03 Felix Zielcke <fzielcke@z-51.de>
4464
4465 * util/update-grub_lib.in: Mention filename in warning message.
4466
6d994591 44672008-09-29 Felix Zielcke <fzielcke@z-51.de>
4468
4469 * NEWS: Update for rename of update-grub to grub-mkconfig.
4470
18ade780 44712008-09-29 Felix Zielcke <fzielcke@z-51.de>
4472
4473 * util/update-grub_lib.in: Copy to ...
4474 * util/grub-mkconfig_lib.in: ... this. Update all users.
7c3ff286 4475 * util/update-grub_lib.in: Make it a stub to `grub-mkconfig_lib.in'.
18ade780 4476 * util/update-grub.in: Rename to ...
4477 * util/grub-mkconfig.in: ... this. Update all users. Remove `-y'
4478 option. Add `--output' option to allow users to specify the generated
4479 configuration file. Default to stdout.
4480 (update_grub_dir): Rename to ...
4481 (grub_mkconfig_dir): ... this.
4482 (grub_cfg): Default to an empty string.
4483 * conf/common.rmk (update-grub): Rename to ...
4484 (grub-mkconfig): ... this.
4485 (update-grub_lib): Copy to ...
4486 (grub-mkconfig_lib): ... this.
4487 (update-grub_SCRIPTS): Copy to ...
4488 (grub-mkconfig_SCRIPTS): ... this. Update all users.
4489 (update-grub_DATA): Rename to ...
4490 (grub-mkconfig_DATA): ... this.
4491
556ce6ac 44922008-09-28 Robert Millan <rmh@aybabtu.com>
4493
4494 * fs/iso9660.c (struct grub_iso9660_primary_voldesc): Rename `created'
4495 to `modified'. Add the real `created' field.
4496 (grub_iso9660_uuid): Use `modified' rather than `created' for
4497 constructing the UUID.
4498
44992008-09-28 Felix Zielcke <fzielcke@z-51.de>
eb079ba9 4500
4501 fs/jfs.c (grub_jfs_find_file): Treat multiple slashes like one.
4502 Based on code from Tomas Ebenlendr <ebik@ucw.cz>.
4503
92274e85 45042008-09-28 Bean <bean123ch@gmail.com>
4505
4506 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a bug in the previous patch.
4507 Thanks to Christian Franke for finding this bug.
4508
add6f17a 45092008-09-25 Robert Millan <rmh@aybabtu.com>
4510
4511 * util/grub-mkdevicemap.c (make_device_map): Actually replace all
4512 instances of grub_util_get_disk_name() (see previous commit).
4513
d2a367b8 45142008-09-25 Robert Millan <rmh@aybabtu.com>
4515
4516 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Remove
4517 `util/i386/get_disk_name.c'.
4518 * conf/i386-efi.rmk: Likewise.
4519 * conf/x86_64-efi.rmk: Likewise.
4520 * conf/i386-coreboot.rmk: Likewise.
4521 * conf/i386-ieee1275.rmk: Likewise.
4522 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Remove
4523 `util/ieee1275/get_disk_name.c'.
4524 * include/grub/util/misc.h (grub_util_get_disk_name): Remove.
4525 * util/ieee1275/get_disk_name.c: Remove file.
4526 * util/i386/get_disk_name.c: Remove file.
4527 * util/grub-mkdevicemap.c (make_device_map): Back to hardcoding
4528 "hd%d" for device.map entries, rather than using
4529 grub_util_get_disk_name().
4530
81a06771 45312008-09-24 Carles Pina i Estany <carles@pina.cat>
b0c301f7 4532
4533 * disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Fix `unused parameter'
4534 warning.
4535 * commands/i386/pc/pxecmd.c (dmraid_nvidia): Likewise.
4536
5a004279 45372008-09-24 Carles Pina i Estany <carles@pina.cat>
4538
4539 * include/grub/i386/pc/console.h (GRUB_TERM_NPAGE):
4540 Changed to 0x5100.
4541 (GRUB_TERM_PPAGE): Changed to 0x4900.
4542
397093d3 45432008-09-24 Robert Millan <rmh@aybabtu.com>
4544
4545 * include/grub/powerpc/ieee1275/console.h (GRUB_CONSOLE_KEY_*): Remove
4546 macros (they were i386-pc specific).
4547 * include/grub/sparc64/ieee1275/console.h: Likewise.
4548 * include/grub/efi/console.h: Likewise.
4549
a91b6c7c 45502008-09-22 Bean <bean123ch@gmail.com>
4551
4552 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a rare case where $BITMAP is
4553 resident and in attribute list.
4554
4555 * include/grub/ntfs.h (BMP_LEN): Removed.
4556
c40fd116 45572008-09-22 Bean <bean123ch@gmail.com>
4558
81a06771 4559 * disk/ata.c (grub_atapi_open): Initialize devfnd, no need to set
c40fd116 4560 scsi->name and scsi->luns, as they will be set in grub_scsi_open.
4561
4562 * disk/scsi.c (grub_scsi_open): Don't call p->close (scsi) here when
4563 error occurs, as grub_disk_open will call grub_disk_close, which will
4564 call p->close (scsi).
4565
81a06771 45662008-09-21 Felix Zielcke <fzielcke@z-51.de>
eb73121d 4567
4568 * configure.ac (AC_INIT): Quote `GRUB' string and version number.
4569 (AC_PREREQ): Bumped to 2.59.
4570 (AC_TRY_COMPILE): Replace obsolete macro with ...
4571 (AC_COMPILE_IFELSE): ... this.
4572 * aclocal.m4 (AC_TRY_LINK): Replace obsolete macro with ...
4573 (AC_LINK_IFELSE): ... this.
4574
5dc43410 45752008-09-21 Felix Zielcke <fzielcke@z-51.de>
4576
4577 * autogen.sh: Add a call to `gendistlist.sh'.
4578
9035dce4 45792008-09-19 Christian Franke <franke@computer.org>
4580
4581 * aclocal.m4 (grub_CHECK_ENABLE_EXECUTE_STACK): New function.
4582 * configure.ac: Call grub_CHECK_ENABLE_EXECUTE_STACK.
4583 * include/grub/misc.h [NEED_ENABLE_EXECUTE_STACK]:
4584 Export __enable_execute_stack() to modules.
4585 * kern/misc.c [NEED_ENABLE_EXECUTE_STACK] (__enable_execute_stack):
4586 New function.
4587
7fd75377 45882008-09-09 Felix Zielcke <fzielcke@z-51.de>
4589
040030b3 4590 * Makefile.in (RMKFILES): Add `i386.rmk' and `x86_64-efi.rmk'.
4591 Sort the list.
4592
45932008-09-09 Felix Zielcke <fzielcke@z-51.de>
4594
4595 * util/hostdisk.c: Replace #include <grub/util/biosdisk.h> with
7fd75377 4596 #include <grub/util/hostdisk.h>.
4597
89d5ffcf 45982008-09-08 Robert Millan <rmh@aybabtu.com>
4599
4600 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Skip
4601 segments when their filesz is zero (grub_file_read() interprets
81a06771 4602 zero-size as "read until EOF", which results in memory corruption).
89d5ffcf 4603 Use `lowest_segment' rather than 0 for calculating the current
4604 segment load address.
4605
40da438f 46062008-09-08 Robert Millan <rmh@aybabtu.com>
4607
4608 * util/hostdisk.c (open_device): Replace a grub_util_info() call
4609 with grub_dprintf("hostdisk", ...), as it was so verbose that it
4610 clobbered useful information.
4611
ddbf5556 46122008-09-08 Robert Millan <rmh@aybabtu.com>
4613
4614 * include/grub/util/biosdisk.h: Move to ...
4615 * include/grub/util/hostdisk.h: ... here. Update all users.
4616 * util/biosdisk.c: Move to ...
4617 * util/hostdisk.c: ... here. Update all users.
4618
783d0f48 46192008-09-07 Robert Millan <rmh@aybabtu.com>
4620
4621 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): Remove
4622 variables.
4623 (grub_multiboot): Move `mbi' allocation upwards, so that mmap address
4624 and length can be stored directly in the `mbi->mmap_addr' and
4625 `mbi->mmap_length' struct fields.
4626
548e2ea5 46272008-09-07 Robert Millan <rmh@aybabtu.com>
4628
4629 * conf/i386.rmk: New file. Provides declaration for building
4630 `cpuid.mod'.
4631 * conf/i386-pc.rmk (pkglib_MODULES): Remove `cpuid.mod'.
4632 (cpuid_mod_SOURCES, cpuid_mod_CFLAGS, cpuid_mod_LDFLAGS): Remove
4633 variables.
4634 Include `conf/i386.mk'.
4635 * conf/i386-efi.rmk: Likewise.
4636 * conf/x86_64-efi.rmk: Likewise.
4637 * conf/i386-coreboot.rmk: Likewise.
4638 * conf/i386-ieee1275.rmk: Likewise.
4639
0ea85a37 46402008-09-07 Vesa Jääskeläinen <chaac@nic.fi>
4641
4642 Based on patch created by Colin D Bennett <colin@gibibit.com>.
4643 Adds optimization support for BGR based modes.
4644
4645 * include/grub/i386/pc/vbeblit.h (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8) Removed.
4646 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
4647 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
4648 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
4649 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
4650 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
4651 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
4652 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
4653 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
4654 (grub_video_i386_vbeblit_index_index): Likewise.
4655 (grub_video_i386_vbeblit_replace_directN): Added.
4656 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
4657 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
4658 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
4659 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
4660 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
4661 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
81a06771 4662 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
0ea85a37 4663 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
4664 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
4665 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
4666 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
4667 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
4668 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
4669
4670 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8) Removed.
4671 (grub_video_i386_vbefill_R8G8B8): Likewise.
4672 (grub_video_i386_vbefill_index): Likewise.
4673 (grub_video_i386_vbefill_direct32): Added.
4674 (grub_video_i386_vbefill_direct24): Likewise.
4675 (grub_video_i386_vbefill_direct16): Likewise.
4676 (grub_video_i386_vbefill_direct8): Likewise.
4677
81a06771 4678 * include/grub/video.h (grub_video_blit_format): Removed
0ea85a37 4679 GRUB_VIDEO_BLIT_FORMAT_R8G8B8A8, GRUB_VIDEO_BLIT_FORMAT_R8G8B8.
4680 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_RGBA_8888,
4681 GRUB_VIDEO_BLIT_FORMAT_BGRA_8888, GRUB_VIDEO_BLIT_FORMAT_RGB_888,
4682 GRUB_VIDEO_BLIT_FORMAT_BGR_888, GRUB_VIDEO_BLIT_FORMAT_RGB_565,
4683 GRUB_VIDEO_BLIT_FORMAT_BGR_565.
81a06771 4684
0ea85a37 4685 * video/video.c (grub_video_get_blit_format): Updated to use new
4686 blit formats. Added handling for 16 bit color modes.
81a06771 4687
4688 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Updated to use new
0ea85a37 4689 fillers.
4690 (common_blitter): Updated to use new blitters.
4691
4692 * video/i386/pc/vbeblit.c (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8):
4693 Removed.
4694 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
4695 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
4696 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
4697 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
4698 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
4699 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
4700 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
4701 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
4702 (grub_video_i386_vbeblit_index_index): Likewise.
4703 (grub_video_i386_vbeblit_replace_directN): Added.
4704 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
4705 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
4706 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
4707 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
4708 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
4709 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
4710 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
4711 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
4712 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
4713 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
4714 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
4715 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
4716 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
81a06771 4717
0ea85a37 4718 * video/i386/pc/vbefill.c (grub_video_i386_vbefill_R8G8B8A8): Removed.
4719 (grub_video_i386_vbefill_R8G8B8): Likewise.
4720 (grub_video_i386_vbefill_index): Likewise.
4721 (grub_video_i386_vbefill_direct32): Added.
4722 (grub_video_i386_vbefill_direct24): Likewise.
4723 (grub_video_i386_vbefill_direct16): Likewise.
4724 (grub_video_i386_vbefill_direct8): Likewise.
81a06771 4725
0ea85a37 4726 * video/readers/jpeg.c (grub_jpeg_decode_sos): Adapt to new blitter
4727 types.
81a06771 4728
0ea85a37 4729 * video/readers/tga.c (grub_video_reader_tga): Adapt to new blitter
4730 types.
81a06771 4731
0ea85a37 4732 * video/readers/png.c (grub_png_decode_image_header): Adapt to new
4733 blitter types.
81a06771 4734
0ea85a37 4735 * video/bitmap.c (grub_video_bitmap_create): Adapt to new blitter
4736 types.
4737
e8a83df6 47382008-09-06 Felix Zielcke <fzielcke@z-51.de>
4739
4740 * disk/raid.c (insert_array): Set `array->chunk_size' to 64 for
4741 RAID level 1.
4742
6bcd8ee5 47432008-09-06 Felix Zielcke <fzielcke@z-51.de>
c375ae58 4744
6bcd8ee5 4745 * fs/iso9660.c (grub_iso9660_date): New structure.
4746 (grub_iso9660_primary_voldesc): Add `grub_iso9660_date' member.
4747 (grub_iso9660_uuid): New function.
c375ae58 4748
59261157 47492008-09-05 Bean <bean123ch@gmail.com>
4750
4751 * fs/fshelp.c (grub_fshelp_find_file): Handle case insensitive names.
4752
4753 * fs/ntfs.c (list_file): Ignore names in DOS namespace, set the case
4754 insensitive bit for names in Win32 and Win32 & DOS namespace.
4755
4756 * include/grub/fshelp.h (GRUB_FSHELP_CASE_INSENSITIVE): New macro.
4757
4758 * include/grub/types.h (LONG_MAX): Likewise.
4759
58b6645a 47602008-09-04 Felix Zielcke <fzielcke@z-51.de>
4761
4ee55921 4762 * util/getroot.c: Include <config.h>.
4763 (grub_util_get_grub_dev): Rewrite to use asprintf for mdraid devices,
4764 add support for /dev/md/N devices and handle LVM double dash escaping.
4765
47662008-09-04 Felix Zielcke <fzielcke@z-51.de>
4767
4768 * config.guess: Update to latest version from config git.
4769 * config.sub: Likewise.
58b6645a 4770
9124f65d 47712008-09-03 Robert Millan <rmh@aybabtu.com>
4772
4773 * disk/scsi.c (grub_scsi_open): Remove size limit when printing
4774 `disk->total_sectors'.
4775
81a06771 47762008-09-01 Colin D Bennett <colin@gibibit.com>
a0224a4e 4777
4778 * include/grub/normal.h: Fixed incorrect comment for
4779 GRUB_COMMAND_FLAG_NO_ARG_PARSE.
4780
81a06771 47812008-09-01 Colin D Bennett <colin@gibibit.com>
f0619958 4782
4783 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Replaced constant
4784 values with defines.
4785
4786 * include/grub/i386/pc/vbe.h (GRUB_VBE_MODEATTR_SUPPORTED): Added.
4787 (GRUB_VBE_MODEATTR_RESERVED_1): Likewise.
4788 (GRUB_VBE_MODEATTR_BIOS_TTY_OUTPUT_SUPPORT): Likewise.
4789 (GRUB_VBE_MODEATTR_COLOR): Likewise.
4790 (GRUB_VBE_MODEATTR_GRAPHICS): Likewise.
4791 (GRUB_VBE_MODEATTR_VGA_COMPATIBLE): Likewise.
4792 (GRUB_VBE_MODEATTR_VGA_WINDOWED_AVAIL): Likewise.
4793 (GRUB_VBE_MODEATTR_LFB_AVAIL): Likewise.
4794 (GRUB_VBE_MODEATTR_DOUBLE_SCAN_AVAIL): Likewise.
4795 (GRUB_VBE_MODEATTR_INTERLACED_AVAIL): Likewise.
4796 (GRUB_VBE_MODEATTR_TRIPLE_BUF_AVAIL): Likewise.
4797 (GRUB_VBE_MODEATTR_STEREO_AVAIL): Likewise.
4798 (GRUB_VBE_MODEATTR_DUAL_DISPLAY_START): Likewise.
4799 (GRUB_VBE_MEMORY_MODEL_TEXT): Likewise.
4800 (GRUB_VBE_MEMORY_MODEL_CGA): Likewise.
4801 (GRUB_VBE_MEMORY_MODEL_HERCULES): Likewise.
4802 (GRUB_VBE_MEMORY_MODEL_PLANAR): Likewise.
4803 (GRUB_VBE_MEMORY_MODEL_NONCHAIN4_256): Likewise.
4804 (GRUB_VBE_MEMORY_MODEL_YUV): Likewise.
4805
93d5cbf8 48062008-08-31 Robert Millan <rmh@aybabtu.com>
4807
4808 * loader/i386/pc/multiboot.c (grub_get_multiboot_mmap_len): Fix
4809 declaration.
4810 (grub_multiboot): Fix a few warnings.
4811
21751d50 48122008-08-31 Robert Millan <rmh@aybabtu.com>
4813
4814 * loader/i386/pc/multiboot.c: Update comment not to say that
4815 boot_device support is unimplemented.
4816
e27a75c5 48172008-08-31 Robert Millan <rmh@aybabtu.com>
4818
4819 * loader/i386/pc/multiboot.c: Update comment not to say that a.out
4820 or memory map support are unimplemented.
4821
81a06771 48222008-08-31 Colin D Bennett <colin@gibibit.com>
64d2d53c 4823
4824 * util/i386/pc/grub-mkrescue.in: Support multiple overlay directories.
4825
81a06771 48262008-08-31 Colin D Bennett <colin@gibibit.com>
c08a6c18 4827
4828 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Show VBE version and
4829 total video memory in 'vbeinfo' output; show color format details for
4830 each video mode.
4831
7c5d8d95 48322008-08-30 Pavel Roskin <proski@gnu.org>
4833
4834 * util/genmoddep.c: Remove for real this time.
4835 * DISTLIST: Remove util/genmoddep.c.
4836
4cebd25a 48372008-08-30 Robert Millan <rmh@aybabtu.com>
4838
4839 * kern/i386/pc/startup.S (multiboot_header): Force 4-byte alignment
4840 as required by Multiboot spec (it was already 4-byte aligned, but
4841 only by chance).
4842
b497a269 48432008-08-29 Pavel Roskin <proski@gnu.org>
4844
e3925185 4845 * kern/powerpc/ieee1275/crt0.S: Rename to ...
4846 * kern/powerpc/ieee1275/startup.S: ... this.
4847 * conf/powerpc-ieee1275.rmk: Adjust for the above.
4848 * DISTLIST: Likewise.
4849
b497a269 4850 * kern/powerpc/ieee1275/crt0.S: Include grub/symbol.h and
4851 grub/cpu/kernel.h. Add start label for consistency with other
4852 platforms. Add grub_prefix immediately after start. Add jump
4853 to the code after grub_prefix.
4854 * include/grub/powerpc/kernel.h: Provide valid values for
4855 GRUB_KERNEL_CPU_PREFIX and GRUB_KERNEL_CPU_DATA_END.
4856
6e5a42fe 48572008-08-29 Bean <bean123ch@gmail.com>
4858
4859 * configure.ac: Change host_os to cygwin for mingw.
4860 (asprintf): New check for function.
4861
4862 * include/grub/symbol.h: Replace #ifndef __CYGWIN__ with
4863 #if ! defined (__CYGWIN__) && ! defined (__MINGW32__).
4864
4865 * include/grub/util/misc.h: #include <config.h> and <grub/types.h>,
81a06771 4866 declare asprintf if HAVE_ASPRINTF is not set, declare fseeko, ftello,
6e5a42fe 4867 sync, sleep and grub_util_get_disk_size for mingw.
4868
4869 * util/biosdisk.c (grub_util_biosdisk_open): Use grub_util_get_disk_size
4870 to get size in mingw.
4871 (open_device): Use flag O_BINARY if it's defined.
4872 (find_root_device): Add dummy code for mingw.
4873
4874 * util/grub-mkdevicemap.c (get_floppy_disk_name): Return 0 for mingw.
4875 (get_ide_disk_name): Return //./PHYSICALDRIVE%d for mingw.
4876 (get_scsi_disk_name): Return 0 for mingw.
4877
4878 * util/hostfs.c: #include <grub/util/misc.h>.
4879 (grub_hostfs_open): Use "rb" flag to open file, use
4880 grub_util_get_disk_size to get disk size for mingw.
4881
4882 * util/misc.c: #include <windows.h> and <winioctl.h> in mingw.
4883 (asprintf): New function if HAVE_ASPRINTF is not set.
4884 (sync): New function for mingw.
4885 (sleep): Likewise.
4886 (grub_util_get_disk_size): Likewise.
4887
ab3f2673 48882008-08-28 Pavel Roskin <proski@gnu.org>
4889
4890 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
4891 kern/time.c.
4892
1c282483 48932008-08-28 Robert Millan <rmh@aybabtu.com>
4894
4895 * util/biosdisk.c (find_grub_drive): Declare missing `i' variable.
4896
678e849c 48972008-08-28 Robert Millan <rmh@aybabtu.com>
4898
4899 Change find_grub_drive() syntax so it doesn't prevent it from
4900 detecting NULL names as errors.
4901
4902 * util/biosdisk.c (find_grub_drive): Move free slot search code
4903 from here ...
4904 (find_free_slot): ... to here.
4905 (read_device_map): Use find_free_slot() to search for free slots.
4906
965c75ca 49072008-08-27 Marco Gerards <marco@gnu.org>
4908
4909 * conf/common.rmk (pkglib_MODULES): Add scsi.mod.
4910 (scsi_mod_SOURCES): New variable.
4911 (scsi_mod_CFLAGS): Likewise
4912 (scsi_mod_LDFLAGS): Likewise.
4913
4914 * disk/scsi.c: New file.
4915
4916 * include/grub/scsi.h: Likewise.
4917
4918 * include/grub/scsicmd.h: Likewise.
4919
4920 * disk/ata.c: Include <grub/scsi.h>.
4921 (grub_atapi_packet): Do not use grub_ata_cmd, use registers
4922 instead.
4923 (grub_ata_iterate): Skip ATAPI devices.
4924 (grub_ata_open): Only handle ATAPI devices.
4925 (struct grub_atapi_read): Removed.
4926 (grub_atapi_readsector): Likewise.
4927 (grub_ata_read): No longer handle ATAPI devices.
4928 (grub_ata_write): Likewise.
4929 (grub_atapi_iterate): New function.
4930 (grub_atapi_read): Likewise.
4931 (grub_atapi_write): Likewise.
4932 (grub_atapi_open): Likewise.
4933 (grub_atapi_close): Likewise.
4934 (grub_atapi_dev): New variable.
4935 (GRUB_MOD_INIT(ata)): Register ATAPI as SCSI device.
4936 (GRUB_MOD_FINI(ata)): Unregister ATAPI.
4937
4938 * include/grub/disk.h (enum grub_disk_dev_id): Add
4939 `GRUB_DISK_DEVICE_SCSI_ID'.
4940
c07ae501 49412008-08-26 Robert Millan <rmh@aybabtu.com>
4942
4943 * util/biosdisk.c (grub_util_biosdisk_open, open_device)
4944 (grub_util_biosdisk_get_grub_dev): Make error messages a bit more
4945 descriptive.
4946
5ed20adc 49472008-08-23 Bean <bean123ch@gmail.com>
4948
4949 * conf/common.rmk (grub_probe_SOURCES): Add disk/mdraid_linux.c.
4950 (grub_fstest_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
4951 disk/mdraid_linux.c and disk/dmraid_nvidia.c and lib/crc.c.
4952 (pkglib_MODULES): Add raid5rec.mod, raid6rec.mod, mdraid.mod and
4953 dm_nv.mod.
4954 (raid5rec_mod_SOURCES): New macro.
4955 (raid5rec_mod_CFLAGS): Likewise.
4956 (raid5rec_mod_LDFLAGS): Likewise.
4957 (raid6rec_mod_SOURCES): Likewise.
4958 (raid6rec_mod_CFLAGS): Likewise.
4959 (raid6rec_mod_LDFLAGS): Likewise.
4960 (mdraid_mod_SOURCES): Likewise.
4961 (mdraid_mod_CFLAGS): Likewise.
4962 (mdraid_mod_LDFLAGS): Likewise.
4963 (dm_nv_mod_SOURCES): Likewise.
4964 (dm_nv_mod_CFLAGS): Likewise.
4965 (dm_nv_mod_LDFLAGS): Likewise.
4966
4967 * conf/i386-pc.rmk (grub_setup_SOURCES): Add disk/mdraid_linux.c.
4968 (grub_emu_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
4969 disk/mdraid_linux.c and disk/dmraid_nvidia.c.
4970
4971 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add disk/raid5_recover.c,
4972 disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c.
4973
4974 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
4975
4976 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
4977
4978 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4979
4980 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4981
4982 * disk/raid5_recover.c: New file.
4983
4984 * disk/raid6_recover.c: Likewise.
4985
4986 * disk/mdraid_linux.c: Likewise.
4987
4988 * disk/dmraid_nvidia.c: Likewise.
4989
4990 * disk/i386/pc/biosdisk.c: Set total_sectors of cdrom device to
4991 ULONG_MAX.
4992
4993 * disk/raid.c (grub_raid_open): Use the size of the smallest disk to
4994 calculate the size of raid device.
4995 (grub_raid_read): Simplify raid0 code. Support raid4, raid6 and four
4996 different layout of raid5.
4997 (grub_raid_scan_device): Remove code specific to mdraid.
4998 (grub_raid_list): New variable.
4999 (free_array): New function.
5000 (grub_raid_register): Likewise.
5001 (grub_raid_unregister): Likewise.
5002 (grub_raid_rescan): Likewise.
5003 (GRUB_MOD_INIT): Don't iterate device here.
5004 (GRUB_MOD_FINI): Use free_array to release resource.
5005
5006 * include/grub/raid.h: Remove macro and structure specific to mdraid.
5007 (grub_raid5_recover_func_t): New function variable type.
5008 (grub_raid6_recover_func_t): Likewise.
5009 (grub_raid5_recover_func): New variable.
5010 (grub_raid6_recover_func): Likewise.
5011 (grub_raid_register): New function.
5012 (grub_raid_unregister): Likewise.
5013 (grub_raid_rescan): Likewise.
5014 (grub_raid_block_xor): Likewise.
5015
5016 * util/grub-fstest.c: Add #include <grub/raid.h> and <grub/lib/crc.h>.
5017 (CMD_CRC): New macro.
5018 (part): Removed.
5019 (read_file): Handle device as well as file.
5020 (cmd_crc): New function.
5021 (fstest): Handle multiple disks.
5022 (options): Remove part, raw and long, add root and diskcount.
5023 (usage): Add crc, remove -p, -r, -l, add -r and -c.
dba3f844 5024 (main): Find the first non option entry and ignore subsequent options,
5ed20adc 5025 add handling for the new options, support multiple disks.
5026
5027 * util/grub-probe.c (probe): Add mdraid to abstraction_name.
5028
29c18915 50292008-08-23 Bean <bean123ch@gmail.com>
5030
5031 * normal/x86_64/setjmp.S (grub_longjmp): Return 1 when val = 0.
5032
5033 * genfslist.sh: Ignore kernel.mod.
5034
5035 * genpartmaplist.sh: Likewise.
5036
8415f261 50372008-08-23 Robert Millan <rmh@aybabtu.com>
5038
5039 * util/getroot.c (find_root_device): Skip anything that starts with
5040 a dot, not just directories. This avoids things like /dev/.tmp.md0.
5041
d5a7dc5b 50422008-08-22 Felix Zielcke <fzielcke@z-51.de>
81a06771 5043
d5a7dc5b 5044 * util/update-grub.in (GRUB_GFXMODE): Export variable.
5045 * util/grub.d/00_header.in: Allow the administrator to change default
5046 gfxmode via ${GRUB_GFXMODE}.
5047
380cfbb4 50482008-08-21 Felix Zielcke <fzielcke@z-51.de>
5049
5050 * fs/ntfs.c (grub_ntfs_mount): Fix a memory leak.
5051
c9baafe7 50522008-08-21 Robert Millan <rmh@aybabtu.com>
5053
5054 * loader/i386/linux.c: New file. Implements generic 32-bit Linux
5055 loader.
5056 * conf/i386-coreboot.rmk (_linux_mod_SOURCES): Replace
5057 `loader/i386/pc/linux.c' with `loader/i386/linux.c'.
5058
e290bef2 50592008-08-20 Carles Pina i Estany <carles@pina.cat>
5060
5061 * menu/normal.c (run_menu): Replace hardcoded numbers with macros
5062 (16 for GRUB_TERM_UP and 14 for GRUB_TERM_DOWN)
5063
f9dbfc96 50642008-08-19 Robert Millan <rmh@aybabtu.com>
5065
5066 * term/gfxterm.c (DEFAULT_CURSOR_COLOR): Remove.
5067 (struct grub_virtual_screen): Remove `cursor_color'.
5068 (grub_virtual_screen_setup): Remove `virtual_screen.cursor_color'
5069 initialization.
5070 (write_cursor): Use `virtual_screen.fg_color' to draw cursor.
5071
dd6bd6ab 50722008-08-18 Robert Millan <rmh@aybabtu.com>
5073
5074 Unify (identical) linux_normal.c files.
5075 * loader/i386/efi/linux_normal.c: Move from here ...
5076 * loader/linux_normal.c: ... to here. Update all users.
5077 * loader/i386/pc/linux_normal.c: Delete. Update all users.
5078 * loader/i386/ieee1275/linux_normal.c: Likewise.
5079
7f42f83e 50802008-08-18 Robert Millan <rmh@aybabtu.com>
5081
5082 * include/grub/i386/linux.h (LINUX_LOADER_ID_LILO)
5083 (LINUX_LOADER_ID_LOADLIN, LINUX_LOADER_ID_BOOTSECT)
5084 (LINUX_LOADER_ID_SYSLINUX, LINUX_LOADER_ID_ETHERBOOT)
5085 (LINUX_LOADER_ID_ELILO, LINUX_LOADER_ID_GRUB, LINUX_LOADER_ID_UBOOT)
5086 (LINUX_LOADER_ID_XEN, LINUX_LOADER_ID_GUJIN, LINUX_LOADER_ID_QEMU):
5087 New macros.
5088 (GRUB_LINUX_CL_OFFSET, GRUB_LINUX_CL_END_OFFSET): Move from here ...
5089 * loader/i386/pc/linux.c (GRUB_LINUX_CL_OFFSET)
5090 (GRUB_LINUX_CL_END_OFFSET): ... to here.
5091 * loader/i386/efi/linux.c (GRUB_EFI_CL_OFFSET): Rename to ...
5092 (GRUB_LINUX_CL_OFFSET): ... this. Update all users.
5093 (GRUB_EFI_CL_END_OFFSET): Rename to ...
5094 (GRUB_LINUX_CL_END_OFFSET): ... this. Update all users.
5095 (grub_rescue_cmd_linux): Macroify `type_of_loader' initialization.
5096 Initialize `params->video_cursor_x' and `params->video_cursor_y'
5097 portably using grub_getxy().
5098 Replace `-EFI' with `-bzImage' in boot message.
5099
38487ddb 51002008-08-17 Robert Millan <rmh@aybabtu.com>
5101
5102 * include/grub/x86_64/kernel.h: New file (<grub/i386/kernel.h> stub).
5103
deceb3ec 51042008-08-17 Robert Millan <rmh@aybabtu.com>
5105
5106 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pc/mmap.c'.
5107
5108 * include/grub/i386/pc/init.h (GRUB_MACHINE_MEMORY_AVAILABLE)
5109 (GRUB_MACHINE_MEMORY_RESERVED): New macros.
5110 (grub_machine_mmap_iterate): New function declaration.
5111 * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): New
5112 structure.
5113 (GRUB_MMAP_MEMORY_AVAILABLE, GRUB_MMAP_MEMORY_RESERVED): New
5114 macros.
5115
5116 * kern/i386/pc/init.c (grub_machine_init): Replace hardcoded region
5117 type check value with `GRUB_MACHINE_MEMORY_AVAILABLE'.
5118 Move e820 parsing from here ...
5119 * kern/i386/pc/mmap.c: New file.
5120 (grub_machine_mmap_iterate): ... to here.
5121
5122 * include/grub/i386/coreboot/memory.h: Remove `<grub/err.h>'.
5123 (GRUB_LINUXBIOS_MEMORY_AVAILABLE): Rename (for consistency) to ...
5124 (GRUB_MACHINE_MEMORY_AVAILABLE): ... this. Update all users.
5125 (grub_available_iterate): Redeclare to return `void', and redeclare
5126 its hook to use grub_uint64_t as addr and size parameters, and rename
5127 to ...
5128 (grub_machine_mmap_iterate): ... this. Update all users.
5129
5130 * kern/i386/coreboot/mmap.c (grub_mmap_iterate): Simplify parser loop
5131 to make it more readable. Rename to ...
5132 (grub_machine_mmap_iterate): ... this.
5133
5134 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): New variables.
5135 (grub_get_multiboot_mmap_len, grub_fill_multiboot_mmap): New functions.
5136 (grub_multiboot): Allocate an extra region after the payload, and fill
5137 it with a Multiboot memory map. Adjust a.out loader to calculate size
5138 with the extra space.
5139 (grub_multiboot_load_elf32): Adjust elf32 loader to calculate size
5140 with the extra space.
5141
f8aa0f43 51422008-08-17 Carles Pina i Estany <carles@pina.cat>
5143
9807deb9 5144 * menu/normal.c (run_menu): Add Home and End keys in grub-menu.
f8aa0f43 5145
605f5bb6 51462008-08-17 Felix Zielcke <fzielcke@z-51.de>
5147
5148 * gendistlist.sh: Add *.y, *.tex, *.texi, grub.cfg, README, *.sc,
5149 mdate-sh to the list `find' searches for.
5150 * DISTLIST: Regenerated.
5151
210db6c6 51522008-08-16 Felix Zielcke <fzielcke@z-51.de>
5153
5154 * gendistlist.sh (EXTRA_DISTFILES): Remove gensymlist.sh,
5155 genkernsyms.sh. Add geninit.sh, geninitheader.sh, genkernsyms.sh.in,
48cdbfd4 5156 genmoddep.awk, gensymlist.sh.in.
5157 (DISTDIRS): Add bus, docs, hook, lib.
210db6c6 5158 * DISTLIST: Regenerated.
48cdbfd4 5159 * NEWS: Add cygwin support and change the `os-prober' entry a bit.
210db6c6 5160
1082b929 51612008-08-16 Robert Millan <rmh@aybabtu.com>
5162
5163 * disk/raid.c (grub_raid_init): Handle/report errors set by
5164 grub_device_iterate().
5165 * disk/lvm.c (grub_lvm_init): Likewise.
5166
42ce5170 51672008-08-15 Bean <bean123ch@gmail.com>
5168
5169 * conf/i386-pc.rmk (pkglib_MODULES): Add datetime.mod, date.mod
5170 and datehook.mod.
5171 (datetime_mod_SOURCES): New macro.
5172 (datetime_mod_CFLAGS): Likewise.
5173 (datetime_mod_LDFLAGS): Likewise.
5174 (date_mod_SOURCES): Likewise.
5175 (date_mod_CFLAGS): Likewise.
5176 (date_mod_LDFLAGS): Likewise.
5177 (datehook_mod_SOURCES): Likewise.
5178 (datehook_mod_CFLAGS): Likewise.
5179 (datehook_mod_LDFLAGS): Likewise.
5180
5181 * conf/i386-coreboot.rmk (pkglib_MODULES): Add datetime.mod, date.mod
5182 and datehook.mod.
5183 (datetime_mod_SOURCES): New macro.
5184 (datetime_mod_CFLAGS): Likewise.
5185 (datetime_mod_LDFLAGS): Likewise.
5186 (date_mod_SOURCES): Likewise.
5187 (date_mod_CFLAGS): Likewise.
5188 (date_mod_LDFLAGS): Likewise.
5189 (datehook_mod_SOURCES): Likewise.
5190 (datehook_mod_CFLAGS): Likewise.
5191 (datehook_mod_LDFLAGS): Likewise.
5192
5193 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add datetime.mod, date.mod
5194 and datehook.mod.
5195 (datetime_mod_SOURCES): New macro.
5196 (datetime_mod_CFLAGS): Likewise.
5197 (datetime_mod_LDFLAGS): Likewise.
5198 (date_mod_SOURCES): Likewise.
5199 (date_mod_CFLAGS): Likewise.
5200 (date_mod_LDFLAGS): Likewise.
5201 (datehook_mod_SOURCES): Likewise.
5202 (datehook_mod_CFLAGS): Likewise.
5203 (datehook_mod_LDFLAGS): Likewise.
5204
5205 * conf/i386-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
5206 and datehook.mod.
5207 (datetime_mod_SOURCES): New macro.
5208 (datetime_mod_CFLAGS): Likewise.
5209 (datetime_mod_LDFLAGS): Likewise.
5210 (date_mod_SOURCES): Likewise.
5211 (date_mod_CFLAGS): Likewise.
5212 (date_mod_LDFLAGS): Likewise.
5213 (datehook_mod_SOURCES): Likewise.
5214 (datehook_mod_CFLAGS): Likewise.
5215 (datehook_mod_LDFLAGS): Likewise.
5216
5217 * conf/x86_64-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
5218 and datehook.mod.
5219 (datetime_mod_SOURCES): New macro.
5220 (datetime_mod_CFLAGS): Likewise.
5221 (datetime_mod_LDFLAGS): Likewise.
5222 (date_mod_SOURCES): Likewise.
5223 (date_mod_CFLAGS): Likewise.
5224 (date_mod_LDFLAGS): Likewise.
5225 (datehook_mod_SOURCES): Likewise.
5226 (datehook_mod_CFLAGS): Likewise.
5227 (datehook_mod_LDFLAGS): Likewise.
5228
5229 * kern/env.c (grub_env_insert): Fix a bug in prevp pointer.
5230
5231 * commands/date.c: New file.
5232
5233 * hook/datehook.c: Likewise.
5234
5235 * include/grub/lib/datetime.h: Likewise.
5236
5237 * include/grub/i386/cmos.h: Likewise.
5238
5239 * lib/datetime.c: Likewise.
5240
5241 * lib/i386/datetime.c: Likewise.
5242
5243 * lib/efi/datetime.c: Likewise.
5244
0e9242da 52452008-08-14 Robert Millan <rmh@aybabtu.com>
5246
5247 * conf/common.rmk (bin_UTILITIES): Add `grub-mkelfimage'.
5248 (grub_mkelfimage_SOURCES): New variable.
5249 (util/elf/grub-mkimage.c_DEPENDENCIES): Likewise.
5250
5251 * conf/i386-coreboot.rmk (bin_UTILITIES, grub_mkimage_SOURCES)
5252 (grub_mkimage_LDFLAGS, util/elf/grub-mkimage.c_DEPENDENCIES): Remove.
5253 * conf/powerpc-ieee1275.rmk: Likewise.
5254 * conf/i386-ieee1275.rmk: Likewise.
5255
5256 * kern/ieee1275/init.c: Include `<grub/cpu/kernel.h>'.
5257 * kern/i386/coreboot/init.c: Likewise.
5258
5259 * kern/i386/ieee1275/startup.S: Replace `<grub/machine/kernel.h>'
5260 with `<grub/cpu/kernel.h>'.
5261 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Renamed
5262 to ...
5263 (GRUB_KERNEL_CPU_PREFIX, GRUB_KERNEL_CPU_DATA_END): ... this.
5264 * kern/i386/coreboot/startup.S: Likewise.
5265
5266 * include/grub/powerpc/ieee1275/kernel.h (GRUB_MOD_ALIGN)
5267 (GRUB_MOD_GAP): Remove.
5268 * include/grub/powerpc/kernel.h: New file.
5269 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX)
5270 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
5271 * include/grub/i386/kernel.h: New file.
5272 * include/grub/i386/coreboot/kernel.h (GRUB_MOD_ALIGN)
5273 (GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_PREFIX)
5274 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
5275
5276 * util/ieee1275/grub-install.in (grub_mkimage): Initialize to use
5277 `grub-mkelfimage'.
5278 Use --directory when invoking grub_mkimage.
5279
5280 * util/elf/grub-mkimage.c: Include `<grub/cpu/kernel.h>'.
5281 (add_segments): Replace GRUB_KERNEL_MACHINE_DATA_END and
5282 GRUB_KERNEL_MACHINE_PREFIX with GRUB_KERNEL_CPU_DATA_END
5283 and GRUB_KERNEL_CPU_PREFIX.
5284
b86408f8 52852008-08-14 Felix Zielcke <fzielcke@z-51.de>
5286
d5e619ca 5287 * include/grub/err.h (grub_err_printf): New function prototype.
5288 * util/misc.c (grub_err_printf): New function.
5289 * kern/misc.c [! GRUB_UTIL] (grub_err_printf): New alias for
5290 grub_printf.
5291 * kern/err.c (grub_print_error): Use grub_err_printf.
b86408f8 5292
7161f0e0 52932008-08-13 Robert Millan <rmh@aybabtu.com>
5294
5295 * docs/grub.cfg: Remove `/dev/' prefix in GNU/Hurd boot entry.
5296
a1967522 52972008-08-13 Robert Millan <rmh@aybabtu.com>
5298
5299 * docs/grub.cfg: Use the native device name for the example GNU/Hurd
5300 boot entry.
5301
371458b5 53022008-08-12 Robert Millan <rmh@aybabtu.com>
5303
5304 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Move part
5305 of the relocation code from here ...
5306 (grub_multiboot): ... to here.
5307 (forward_relocator, backward_relocator): Move from here ...
5308 * kern/i386/loader.S (grub_multiboot_forward_relocator)
5309 (grub_multiboot_backward_relocator): ... to here.
5310 (grub_multiboot_real_boot): Use %edx for entry offset. Put Multiboot
5311 magic in %eax. Use %ebp for jumping (so %edx is not trashed).
5312 * include/grub/i386/loader.h (grub_multiboot_forward_relocator)
5313 (grub_multiboot_forward_relocator_end)
5314 (grub_multiboot_backward_relocator)
5315 (grub_multiboot_backward_relocator_end): New variables.
5316
05f9452b 53172008-08-12 Bean <bean123ch@gmail.com>
5318
5319 * disk/raid.c (grub_raid_read): Fix a bug in raid0 code.
5320
20024ab0 53212008-08-11 Robert Millan <rmh@aybabtu.com>
5322
5323 * kern/i386/linuxbios/startup.S: Move from here ...
5324 * kern/i386/coreboot/startup.S: ... to here.
5325
5326 * kern/i386/linuxbios/init.c: Move from here ...
5327 * kern/i386/coreboot/init.c: ... to here.
5328
5329 * kern/i386/linuxbios/table.c: Move from here ...
5330 * kern/i386/coreboot/mmap.c: ... to here.
5331
5332 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Update moved files.
5333
e352e9cd 53342008-08-11 Robert Millan <rmh@aybabtu.com>
5335
5336 * kern/device.c (grub_device_open): Do not handle grub_disk_open()
5337 errors. Leave it to the upper layer to handle them.
5338
2d05bc6a 53392008-08-09 Christian Franke <franke@computer.org>
5340
5341 * Makefile.in: Add `target_os' and `enable_grub_pe2elf'.
5342 * conf/common.rmk: Install `grub-pe2elf' only if requested.
5343 Install `grub.d/10_windows' only on Cygwin.
5344 * configure.ac: Add subst of `target_os'.
5345 Check `target_os' also before setting TARGET_OBJ2ELF.
5346 Add `--enable-grub-pe2elf'.
5347
042bd419 53482008-08-08 Robert Millan <rmh@aybabtu.com>
5349
5350 * kern/disk.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
5351 (grub_last_time): Change type to grub_uint64_t.
5352 (grub_disk_open): Migrate code from to using grub_get_time_ms().
5353 (grub_disk_close): Likewise.
5354
5355 * normal/menu.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
5356 (run_menu): Migrate code from to using grub_get_time_ms().
5357
5358 * util/misc.c (grub_get_time_ms): New function.
5359
7f280db5 53602008-08-08 Marco Gerards <marco@gnu.org>
5361
5362 * disk/ata.c (grub_ata_regget): Change return type to
5363 `grub_uint8_t'.
5364 (grub_ata_regget2): Likewise.
5365 (grub_ata_wait_status): New function.
5366 (grub_ata_wait_busy): Removed function, updated all users to use
5367 `grub_ata_wait_status'.
5368 (grub_ata_wait_drq): Likewise.
5369 (grub_ata_cmd): New function.
5370 (grub_ata_pio_read): Change return type to `grub_uint8_t'. Add
5371 error handling.
5372 (grub_ata_pio_write): Add error handling.
5373 (grub_atapi_identify): Likewise.
5374 (grub_atapi_packet): Use `grub_ata_cmd' and improve error
5375 handling.
5376 (grub_ata_identify): Use `grub_ata_cmd' and improve error
5377 handling. Actually use the detected registers. Reorder the
5378 detection logic such that it is easier to read.
5379 (grub_ata_pciinit): Do not assign the same ID to each controller.
5380 (grub_ata_setaddress): Use `grub_ata_cmd' and improve error
5381 handling.
5382 (grub_atapi_readsector): Check the result of `grub_ata_pio_read'.
5383
5384 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TIMEOUT'.
5385
1fbc5e66 53862008-08-08 Marco Gerards <marco@gnu.org>
5387
5388 * NEWS: Update.
5389
819ce6c0 53902008-08-07 Bean <bean123ch@gmail.com>
5391
5392 * include/grub/x86_64/pci.h: New file.
5393
5c41d44d 53942008-08-07 Christian Franke <franke@computer.org>
5395
5396 * kern/i386/pit.c (TIMER2_SPEAKER): New define.
5397 (TIMER2_GATE): Likewise.
5398 (grub_pit_wait): Add enable/disable of the timer2 gate
5399 bit of port 0x61. This fixes a possible infinite loop.
5400
5ebc275d 54012008-08-07 Bean <bean123ch@gmail.com>
5402
5403 * conf/x86_64-efi.rmk (kernel_mod_SOURCES): Add kern/time.c,
5404 kern/i386/tsc.c and kern/i386/pit.c.
5405
5406 * include/grub/i386/tsc.h (grub_cpu_is_cpuid_supported): Handle
5407 x86_64 platform.
5408
5409 * kern/i386/efi/init.c: Replace <grub/cpu/tsc.h> with
5410 <grub/i386/tsc.h>.
5411
5412 * kern/i386/pit.c: Replace <grub/cpu/io.h> with <grub/i386/io.h>.
5413
e383b3d0 54142008-08-07 Bean <bean123ch@gmail.com>
5415
5416 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add kern/time.c.
5417
5418 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add kern/time.c,
5419
5420 * include/grub/i386/pit.h: Use macro KERNEL_CPU_PIT_HEADER to avoid
5421 multiple inclusion. Add #include <grub/types.h>.
5422
1cbb58ac 54232008-08-06 Christian Franke <franke@computer.org>
5424
5425 * conf/common.rmk: Build and install `10_windows'.
5426 * util/grub.d/10_windows.in: New script.
5427
337f5a1e 54282008-08-06 Pavel Roskin <proski@gnu.org>
5429
5430 * kern/i386/pit.c: Include `<grub/i386/pit.h>'.
5431
057bc4ac 54322008-08-06 Robert Millan <rmh@aybabtu.com>
5433
5434 * conf/i386-coreboot.rmk (kernel_elf_ASFLAGS): New variable.
5435 * kern/i386/tsc.c: Include `<grub/i386/pit.h>'.
5436
2b99f123 54372008-08-06 Bean <bean123ch@gmail.com>
5438
5439 * fs/i386/pc/pxe.c (grub_pxe_data): New member block_size.
5440 (grub_pxefs_fs_int): Remove dummy definition.
5441 (grub_pxefs_open): Use data->block_size to store the current block
5442 size setting.
5443 (grub_pxefs_read): Use block size stored in data->block_size. As the
5444 value of grub_pxe_blksize can be changed after the file is opened.
5445
9f0234cb 54462008-08-06 Bean <bean123ch@gmail.com>
5447
5448 * fs/i386/pc/pxe.c (curr_file): new variable.
5449 (grub_pxefs_open): Simply the handling of pxe file system. Don't
5450 require the dummy internal file system anymore.
5451 (grub_pxefs_read): Removed.
5452 (grub_pxefs_close): Likewise.
5453 (grub_pxefs_fs_int): Likewise.
5454 (grub_pxefs_read_int): Renamed to grub_pxefs_read. Reinitialize tftp
5455 connection when we switch file.
5456 (grub_pxefs_close_int): Renamed to grub_pxefs_close.
5457
a55d42e0 54582008-08-06 Robert Millan <rmh@aybabtu.com>
5459
5460 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and
5461 `halt.mod'.
5462 (reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS)
5463 (halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables.
5464
5465 * kern/i386/halt.c: New file.
5466 * kern/i386/reboot.c: Likewise.
5467 * include/grub/i386/reboot.h: Likewise.
5468 * include/grub/i386/halt.h: Likewise.
5469
5470 * commands/halt.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]:
5471 Include `<grub/cpu/halt.h>'.
5472 * commands/reboot.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]
5473 [! GRUB_MACHINE_PCBIOS]: Include `<grub/cpu/reboot.h>'.
5474
5475 * term/i386/pc/at_keyboard.c: Include `<grub/cpu/at_keyboard.h>'.
5476 (SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA)
5477 (KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ)
5478 (KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT)
5479 (KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY)
5480 (KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move
5481 from here ...
5482 * include/grub/i386/at_keyboard.h: ... to here.
5483
24371d26 54842008-08-05 Robert Millan <rmh@aybabtu.com>
5485
5486 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pit.c'.
5487 * conf/i386-efi.rmk (kernel_mod_SOURCES): Likewise.
5488 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Likewise. Also add
5489 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
5490 `kern/generic/millisleep.c'.
5491
5492 * kern/i386/tsc.c (calibrate_tsc): Rewrite using grub_pit_wait()
5493 instead of grub_get_rtc().
5494 (grub_tsc_init): Initialize `tsc_boot_time'.
5495
5496 * kern/i386/linuxbios/init.c (grub_millisleep): Remove stub.
5497 (grub_machine_init): Use grub_tsc_init() rather than
5498 installing an RTC-based handler via grub_install_get_time_ms().
5499
5500 * kern/i386/pit.c: New file.
5501 * include/grub/i386/pit.h: Likewise.
5502
9e7007b3 55032008-08-05 Bean <bean123ch@gmail.com>
5504
5505 * boot/i386/pc/pxeboot.S (_start): Use drive number 0x7F for pxe.
5506
5507 * conf/i386-pc.rmk (kernel_img_HEADERS): Add machine/pxe.h.
5508 (pkglib_MODULES): Add pxe.mod and pxecmd.mod.
5509 (pxe_mod_SOURCES): New macro.
5510 (pxe_mod_CFLAGS): Likewise.
5511 (pxe_mod_LDFLAGS): Likewise.
5512 (pxecmd_mod_SOURCES): Likewise.
5513 (pxecmd_mod_CFLAGS): Likewise.
5514 (pxecmd_mod_LDFLAGS): Likewise.
5515
5516 * kern/i386/pc/startup.S (grub_pxe_scan): New function.
5517 (grub_pxe_call): Likewise.
5518
5519 * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_PXE_ID.
5520
5521 * commands/i386/pc/pxecmd.c: New file.
5522
9f0234cb 5523 * fs/i386/pc/pxe.c: Likewise.
9e7007b3 5524
5525 * include/grub/i386/pc/pxe.h: Likewise.
5526
6977d49f 55272008-08-05 Bean <bean123ch@gmail.com>
5528
5529 * util/console.c (grub_console_cur_color): New variable.
5530 (grub_console_standard_color): Likewise.
5531 (grub_console_normal_color): Likewise.
5532 (grub_console_highlight_color): Likewise.
5533 (color_map): Likewise.
5534 (use_color): Likewise.
5535 (NUM_COLORS): New macro.
5536 (grub_ncurses_setcolorstate): Handle color properly.
5537 (grub_ncurses_setcolor): Don't change color here, just remember the
5538 settings, color will be set in grub_ncurses_setcolorstate.
5539 (grub_ncurses_getcolor): New function.
5540 (grub_ncurses_init): Initialize color pairs.
5541 (grub_ncurses_term): New member grub_ncurses_getcolor.
5542
9c2ff3ee 55432008-08-05 Colin D Bennett <colin@gibibit.com>
337f5a1e 5544
9c2ff3ee 5545 High resolution timer support. Implemented for x86 CPUs using TSC.
5546 Extracted generic grub_millisleep() so it's linked in only as needed.
5547 This requires a Pentium compatible CPU; if the RDTSC instruction is
5548 not supported, then it falls back on the generic grub_get_time_ms()
5549 implementation that uses the machine's RTC.
5550
5551 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/time.c',
5552 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
5553 `kern/generic/millisleep.c'.
5554
5555 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add `kern/i386/tsc.c',
5556 `kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'.
5557
5558 * conf/x86_64-efi.rml (kernel_mod_SOURCES): Add
5559 `kern/generic/millisleep.c' and `kern/generic/rtc_get_time_ms.c'.
5560
5561 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
5562
5563 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
5564 `kern/generic/millisleep.c'.
5565
5566 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
5567
5568 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Add `kern/time.c'.
5569
5570 * kern/generic/rtc_get_time_ms.c: New file.
5571
5572 * kern/generic/millisleep.c: New file.
337f5a1e 5573
9c2ff3ee 5574 * kern/misc.c: Don't include
5575 <kern/time.h> anymore.
5576 (grub_millisleep_generic): Removed.
5577
5578 * commands/sleep.c (grub_interruptible_millisleep): Uses
5579 grub_get_time_ms() instead of grub_get_rtc().
5580
5581 * include/grub/i386/tsc.h (grub_get_tsc): New file. New inline
5582 function.
5583 (grub_cpu_is_cpuid_supported): New inline function.
5584 (grub_cpu_is_tsc_supported): New inline function.
5585 (grub_tsc_init): New function prototype.
5586 (grub_tsc_get_time_ms): New function prototype.
5587
5588 * kern/i386/tsc.c (grub_get_time_ms): New file.
5589
5590 * include/grub/time.h: Include <grub/types.h.
5591 (grub_millisleep_generic): Removed.
5592 (grub_get_time_ms): New prototype.
5593 (grub_install_get_time_ms): New prototype.
5594 (grub_rtc_get_time_ms): New prototype.
5595
5596 * kern/time.c (grub_get_time_ms): New function.
5597 (grub_install_get_time_ms): New function.
5598
5599 * kern/i386/efi/init.c: Include <grub/cpu/tsc.h>. Don't include
5600 <grub/time.h> anymore.
5601 (grub_millisleep): Removed.
5602 (grub_machine_init): Call grub_tsc_init.
5603
5604 * kern/i386/linuxbios/init.c (grub_machine_init): Install the RTC
5605 get_time_ms() implementation.
5606
5607 * kern/sparc64/ieee1275/init.c (grub_millisleep): Removed.
5608 (ieee1275_get_time_ms): New function.
5609 (grub_machine_init): Install get_time_ms() implementation.
5610
5611 * kern/i386/pc/init.c: Include <grub/cpu/tsc.h>.
5612 (grub_machine_init): Call grub_tsc_init().
5613 (grub_millisleep): Removed.
bf06a93f 5614
9c2ff3ee 5615 * kern/ieee1275/init.c (grub_millisleep): Removed.
5616 (grub_machine_init): Install ieee1275_get_time_ms()
5617 implementation.
5618 (ieee1275_get_time_ms): New function.
5619 (grub_get_rtc): Now calls ieee1275_get_time_ms(), which does the
5620 real work.
5621
9ec92aaf 56222008-08-05 Marco Gerards <marco@gnu.org>
5623
5624 * disk/ata.c: Include <grub/pci.h>.
5625 (enum grub_ata_commands): Add `GRUB_ATA_CMD_EXEC_DEV_DIAGNOSTICS'.
5626 (grub_ata_initialize): Rewritten.
5627 (grub_ata_device_initialize): New function.
5628
8d23f507 56292008-08-04 Pavel Roskin <proski@gnu.org>
5630
5631 * kern/main.c: Include grub/mm.h.
5632
5e15ee3d 56332008-08-04 Robert Millan <rmh@aybabtu.com>
5634
5635 * conf/i386-coreboot.rmk (COMMON_ASFLAGS, COMMON_CFLAGS)
5636 (COMMON_LDFLAGS): Harmonize with i386-pc version (fixes a code
5637 corruption problem).
5638
a9053f8f 56392008-08-04 Robert Millan <rmh@aybabtu.com>
5640
5641 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Fix misc
5642 warnings introduced in my last commit.
5643
dd19c7d7 56442008-08-03 Robert Millan <rmh@aybabtu.com>
5645
5646 Make PCI available on all i386 architectures.
5647
5648 * include/grub/i386/pc/pci.h: Move from here ...
5649 * include/grub/i386/pci.h: ... to here.
5650
5651 * include/grub/i386/pc/pci.h: Remove.
5652 * include/grub/i386/efi/pci.h: Remove.
5653 * include/grub/x86_64/efi/pci.h: Remove.
5654
5655 * include/grub/pci.h: Replace `<grub/machine/pci.h>' with
5656 `<grub/cpu/pci.h>'.
5657
5658 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `pci' and `lspci'.
5659 (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS, lspci_mod_SOURCES)
5660 (lspci_mod_CFLAGS, lspci_mod_LDFLAGS): New variables.
5661
5662 * conf/i386-ieee1275.rmk: Likewise.
5663
e14a6184 56642008-08-03 Robert Millan <rmh@aybabtu.com>
5665
5666 * term/i386/pc/vga_text.c (CRTC_CURSOR_DISABLE): New macro.
5667 (grub_console_setcursor): Make it possible to set cursor off.
5668
52768e37 56692008-08-03 Robert Millan <rmh@aybabtu.com>
5670
5671 * util/grub.d/00_header.in: Be platform-agnostic. Probe for existence
5672 of modules instead of assuming which platform provides what.
5673 * util/update-grub.in: Likewise.
5674
2d52f57f 56752008-08-03 Robert Millan <rmh@aybabtu.com>
5676
5677 * kern/i386/pc/init.c (make_install_device): Check for `grub_prefix'
5678 instead of `grub_install_dos_part' to determine whether a drive needs
5679 to be prepended to prefix (`grub_install_dos_part' is not reliable,
825aa57a 5680 because it can be overridden when loading GRUB via Multiboot).
2d52f57f 5681
2a5cd121 56822008-08-02 Robert Millan <rmh@aybabtu.com>
5683
5684 * util/i386/pc/grub-install.in: Remove trailing slash from prefix.
5685
93808428 56862008-08-02 Robert Millan <rmh@aybabtu.com>
5687
5688 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Add a pair
5689 of informational grub_dprintf() calls.
5690
3bd0a12a 56912008-08-02 Robert Millan <rmh@aybabtu.com>
5692
5693 * disk/memdisk.c (memdisk_size): Don't initialize.
5694 (GRUB_MOD_INIT(memdisk)): Find memdisk using grub_module_iterate().
5695
5696 * include/grub/i386/pc/kernel.h
5697 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): Remove macro.
5698 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Shift.
5699 (grub_memdisk_image_size, grub_arch_memdisk_addr)
5700 (grub_arch_memdisk_size): Remove.
5701
5702 * include/grub/kernel.h (struct grub_module_header): Remove `offset'
5703 field (was only used to transfer a constant). Add `type' field to
5704 support multiple module types.
5705 (grub_module_iterate): New function.
5706
5707 * kern/device.c (grub_device_open): Do not hide error messages
5708 when grub_disk_open() fails. Use grub_print_error() instead.
5709
5710 * kern/i386/pc/init.c (grub_arch_modules_addr)
5711 (grub_arch_memdisk_size): Remove functions.
5712 (grub_arch_modules_addr): Return the module address in high memory
5713 (now that it isn't copied anymore).
5714
5715 * kern/i386/pc/startup.S (grub_memdisk_image_size): Remove variable.
5716 (codestart): Don't add grub_memdisk_image_size to %ecx in LZMA
5717 decompression routine (grub_total_module_size already includes that
5718 now). Don't copy modules back to low memory.
5719
5720 * kern/main.c: Include `<grub/mm.h>'.
5721 (grub_load_modules): Split out (and use) ...
5722 (grub_module_iterate): ... this function, which iterates through
5723 module objects and runs a hook.
5724 Comment out grub_mm_init_region() call, as it would cause non-ELF
5725 modules to be overwritten.
5726
5727 * util/i386/pc/grub-mkimage.c (generate_image): Instead of appending
5728 the memdisk image in its own region, make it part of the module list.
5729 * util/elf/grub-mkimage.c (options): Add "memdisk"|'m' option.
5730 (main): Parse --memdisk|-m option, and pass user-provided path as
5731 parameter to generate_image().
5732 (add_segments): Pass `memdisk_path' down to load_modules().
5733 (load_modules): Embed memdisk image in module section when requested.
5734 * util/i386/efi/grub-mkimage.c (make_mods_section): Initialize
5735 `header.type' instead of `header.offset'.
5736
5737 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add `memdisk.mod'.
5738 (memdisk_mod_SOURCES, memdisk_mod_CFLAGS)
5739 (memdisk_mod_LDFLAGS): New variables.
5740 * conf/i386-coreboot.rmk: Likewise.
5741 * conf/i386-ieee1275.rmk: Likewise.
5742
a927cc73 57432008-08-02 Robert Millan <rmh@aybabtu.com>
5744
5745 * loader/i386/pc/multiboot.c (playground, forward_relocator)
5746 (backward_relocator): New variables. Used to allocate and relocate
5747 the payload, respectively.
5748 (grub_multiboot_load_elf32): Load into heap instead of requested
825aa57a 5749 address, install the appropriate relocator code in each bound of
a927cc73 5750 the payload, and set the entry point such that
5751 grub_multiboot_real_boot() will jump to one of them.
5752
5753 * kern/i386/loader.S (grub_multiboot_payload_size)
5754 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
5755 (grub_multiboot_payload_entry_offset): New variables.
5756 (grub_multiboot_real_boot): Set cpu context to what the relocator
5757 expects, and jump to the relocator instead of the payload.
5758
5759 * include/grub/i386/loader.h (grub_multiboot_payload_size)
5760 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
5761 (grub_multiboot_payload_entry_offset): Export.
5762
b15d8a0c 57632008-08-01 Bean <bean123ch@gmail.com>
5764
5765 * normal/menu_entry.c (editor_getline): Don't return the original
5766 string as result, as it will be released by lexer once it has done
5767 using it.
5768
cdfb3d22 57692008-08-01 Robert Millan <rmh@aybabtu.com>
5770
5771 * util/grub.d/10_linux.in: Use prepare_grub_to_access_device() from
5772 within menuentries, not before them.
5773 util/grub.d/10_hurd.in: Likewise.
5774
9175e93d 57752008-08-01 Bean <bean123ch@gmail.com>
5776
5777 * conf/common.rmk (pkglib_MODULES): Add bufio.mod.
5778 (bufio_mod_SOURCES): New macro.
5779 (bufio_mod_CFLAGS): Likewise.
5780 (bufio_mod_LDFLAGS): Likewise.
5781
5782 * include/grub/bufio.h: New file.
5783
5784 * io/bufio.c: Likewise.
5785
5786 * video/png.c: Replace <grub/file.h> with <grub/bufio.h>.
5787 (grub_video_reader_png): Use grub_buffile_open to open file.
5788
5789 * video/jpeg.c: Replace <grub/file.h> with <grub/bufio.h>.
5790 (grub_video_reader_jpeg): Use grub_buffile_open to open file.
5791
5792 * video/tga.c: Replace <grub/file.h> with <grub/bufio.h>.
5793 (grub_video_reader_tga): Use grub_buffile_open to open file.
5794
5795 * font/manager.c: Include <grub/bufio.h>.
5796 (add_font): Use grub_buffile_open to open file.
5797
3d8383e7 57982008-07-31 Robert Millan <rmh@aybabtu.com>
5799
5800 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): When loading
5801 ELF segments, use a macro for arbitrarily accessing any of them instead
5802 of preparing a pointer that allows access to one at a time.
5803 (grub_multiboot_load_elf64): Likewise.
5804
16e641b6 58052008-07-31 Bean <bean123ch@gmail.com>
5806
5807 * boot/i386/pc/lnxboot.S (real_code_2): Replace 0x50 with
5808 GRUB_KERNEL_MACHINE_DATA_END.
5809
59198b72 58102008-07-30 Robert Millan <rmh@aybabtu.com>
5811
5812 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_DATA_END):
5813 Increase from 0x50 to 0x60.
5814 * util/i386/pc/grub-install.in: Detect cross-disk installs, and
5815 use UUIDs to identify the root drive for them. If that's not
5816 possible, abort.
5817 * util/i386/pc/grub-setup.c (setup): Do not special-case, or even
5818 check, for cross-disk installs.
5819
ae88bca3 58202008-07-30 Robert Millan <rmh@aybabtu.com>
5821
5822 * kern/ieee1275/init.c (grub_machine_set_prefix): If `grub_prefix'
5823 is non-empty, use it to set the `prefix' environment variable instead
5824 of the usual approach.
5825 * kern/i386/linuxbios/init.c (make_install_device): Remove function.
5826 (grub_machine_set_prefix): Use `grub_prefix' to set the `prefix'
5827 environment variable instead of dummy make_install_device().
5828
5829 * kern/i386/ieee1275/startup.S: Include `<grub/machine/kernel.h>'.
5830 (start): Insert a data section, with `grub_prefix' variable.
825aa57a 5831 * kern/i386/linuxbios/startup.S: Likewise.
ae88bca3 5832
5833 * include/grub/powerpc/ieee1275/kernel.h [!ASM_FILE] (grub_prefix):
5834 New variable reference.
5835 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX):
5836 New macro. Defines offset of `grub_prefix' within startup.S (relative
5837 to `start').
5838 (GRUB_KERNEL_MACHINE_DATA_END): New macro. Defines the end of data
5839 section within startup.S (relative to `start').
5840 * include/grub/i386/coreboot/kernel.h: Likewise.
5841
5842 * util/elf/grub-mkimage.c (add_segments): Receive `prefix' parameter.
5843 Overwrite grub_prefix with its contents, at the beginning of the
5844 first segment.
5845 (main): Understand -p|--prefix.
5846
14f41dd1 58472008-07-30 Robert Millan <rmh@aybabtu.com>
5848
5849 * util/grub.d/10_hurd.in: Source ${libdir}/grub/update-grub_lib.
5850
4ca049a3 58512008-07-30 Robert Millan <rmh@aybabtu.com>
5852
5853 * term/i386/pc/vga_text.c (grub_console_cls): Use
5854 grub_console_gotoxy() to go back to beginning of the screen.
5855 Found by Patrick Georgi <patrick.georgi@coresystems.de>
5856
2921d337 58572008-07-29 Christian Franke <franke@computer.org>
5858
5859 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
5860 Add conversion of emulated mount points on Cygwin.
5861
b609876d 58622008-07-29 Christian Franke <franke@computer.org>
5863
5864 * util/update-grub.in: Add a check for admin
5865 group on Cygwin.
5866 Remove old `grub.cfg.new' before creation.
5867 Add `-f' to `mv' to handle the different filesystem
5868 semantics of Windows.
5869
e93e4679 58702008-07-29 Bean <bean123ch@gmail.com>
5871
5872 * normal/main.c (get_line): Fix buffer overflow bug.
5873
41694fd0 58742008-07-28 Robert Millan <rmh@aybabtu.com>
5875
5876 * partmap/apple.c (GRUB_APPLE_HEADER_MAGIC): New macro.
5877 (struct grub_apple_header): New struct. Describes the layout of
5878 the partmap header.
5879 (apple_partition_map_iterate): Check the header magic as well as the
5880 partition magic (which was already being checked).
5881
cfd0b4e6 58822008-07-28 Pavel Roskin <proski@gnu.org>
5883
5884 * genmk.rb: Add a warning to the beginning of the output that
5885 it's a generated file and should not be edited.
5886
93cce016 58872008-07-28 Robert Millan <rmh@aybabtu.com>
5888
5889 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
5890 with the same number are found, just use issue a warning with
5891 grub_dprintf(), as this error has been reported to be non-fatal.
c298def0 5892
cd1df915 58932008-07-27 Robert Millan <rmh@aybabtu.com>
5894
5895 * disk/ata.c (grub_ata_dumpinfo): Use grub_dprintf() for debugging
5896 information.
5897
b70a8427 58982008-07-27 Bean <bean123ch@gmail.com>
5899
5900 * fs/fat.c (GRUB_FAT_MAXFILE): New constant.
5901 (grub_fat_find_dir): Ignore case when comparing filename.
5902
8f5e379f 59032008-07-27 Bean <bean123ch@gmail.com>
5904
5905 * fs/xfs.c (grub_xfs_dir_header): Change field i8count back to
5906 smallino, as it's more descriptive, and i8count can be confused with
5907 the other field count.
5908 (grub_xfs_iterate_dir): Adjust grub_xfs_dir_entry pointer for small
5909 inode type.
5910
a85cd5a0 59112008-07-27 Bean <bean123ch@gmail.com>
5912
5913 * commands/crc.c: New file.
5914
5915 * lib/crc.c: Likewise.
5916
5917 * include/grub/lib/crc.h: Likewise.
5918
5919 * util/grub-fstest.c: grub/hexdump.h => grub/lib/hexdump.h.
5920
5921 * commands/hexdump.c: grub/hexdump.h => grub/lib/hexdump.h.
5922 (hexdump): Move this function to ...
5923
5924 * lib/hexdump.c: ... here.
5925
5926 * include/grub/hexdump.h: Renamed to ...
5927
5928 * include/grub/lib/hexdump.h: ... this.
5929
5930 * commands/loadenv.c: grub/envblk.h => grub/lib/envblk.h
5931
5932 * util/grub-editenv.c: Likewise.
5933
5934 * include/envblk.h: Renamed to ...
5935
5936 * include/lib/envblk.h: ... this.
5937
5938 * util/envblk.c: Renamed to ...
5939
5940 * lib/envblk.c: ... this.
5941
5942 * conf/common.rmk (grub_fstest_SOURCES): commands/hexdump.c =>
5943 lib/hexdump.c.
5944 (grub_editenv_SOURCES): util/envblk.c => lib/envblk.c
5945 (pkglib_MODULES): Add crc.mod.
5946 (hexdump_mod_SOURCES): Add lib/hexdump.c.
5947 (loadenv_mod_SOURCES): util/envblk.c => lib/envblk.c.
5948 (crc_mod_SOURCES): New macro.
5949 (crc_mod_CFLAGS): Likewise.
5950 (crc_mod_LDFLAGS): Likewise.
5951
5952 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add lib/hexdump.c.
5953
5954 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
5955
5956 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
5957
5958 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5959
5960 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
5961
c298def0 59622008-07-27 Felix Zielcke <fzielcke@z-51.de>
8749e9e5 5963
5964 * commands/help.c: Include <grub/term.h>.
5965 (TERM_WIDTH): Removed. Updated all users.
5966
cc349fb3 59672008-07-27 Pavel Roskin <proski@gnu.org>
5968
5969 * util/getroot.c (find_root_device): Rephrase a comment to avoid
5970 spurious warnings about a comment within a comment.
5971
9051607e 59722008-07-25 Robert Millan <rmh@aybabtu.com>
5973
5974 * util/getroot.c (find_root_device): Skip devices that match
5975 /dev/dm-[0-9]. This lets the real device be found for any type of
5976 abstraction (LVM, EVMS, RAID..).
5977 (grub_guess_root_device): Do not traverse /dev/mapper (for LVM)
5978 and /dev/evms (for EVMS) before traversing /dev. If a /dev/dm-[0-9]
5979 device is found first, find_root_device() will now skip it.
5980
01453bfc 59812008-07-24 Pavel Roskin <proski@gnu.org>
5982
5983 * include/grub/types.h: Use __builtin_bswap32() and
5984 __builtin_bswap64() with gcc 4.3 and newer.
5985
6af9849f 59862008-07-24 Christian Franke <franke@computer.org>
5987
3a0fa256 5988 * util/i386/pc/grub-install.in: If `--debug' is specified,
5989 pass `--verbose' to grub-setup.
5990 Abort script if make_system_path_relative_to_its_root() fails.
5991
7810e747 59922008-07-24 Bean <bean123ch@gmail.com>
5993
5994 * configure.ac: Fixed a bug caused by the previous cygwin patch,
5995 variable `target_platform' should be `platform'.
5996
42290e17 59972008-07-24 Bean <bean123ch@gmail.com>
5998
51cc5193 5999 * video/reader/png.c (DEFLATE_HLIT_MAX): Change value.
42290e17 6000 (grub_png_init_fixed_block): New function.
6001 (grub_png_decode_image_data): Handle fixed huffman code compression.
6002
2a8a80e4 60032008-07-24 Bean <bean123ch@gmail.com>
6004
6005 * common.rmk (bin_UTILITIES): Add grub-pe2elf.
6006 (grub_pe2elf_SOURCES): New macro.
6007 (CLEANFILES): Add grub-pe2elf.
6008
6009 * include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant.
6010 (GRUB_PE32_SCN_ALIGN_2BYTES): Likewise.
6011 (GRUB_PE32_SCN_ALIGN_4BYTES): Likewise.
6012 (GRUB_PE32_SCN_ALIGN_8BYTES): Likewise.
6013 (GRUB_PE32_SCN_ALIGN_16BYTES): Likewise.
6014 (GRUB_PE32_SCN_ALIGN_32BYTES): Likewise.
6015 (GRUB_PE32_SCN_ALIGN_64BYTES): Likewise.
6016 (GRUB_PE32_SCN_ALIGN_SHIFT): Likewise.
6017 (GRUB_PE32_SCN_ALIGN_MASK): Likewise.
6018 (GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise.
6019 (GRUB_PE32_SYM_CLASS_STATIC): Likewise.
6020 (GRUB_PE32_SYM_CLASS_FILE): Likewise.
6021 (GRUB_PE32_DT_FUNCTION): Likewise.
6022 (GRUB_PE32_REL_I386_DIR32): Likewise.
6023 (GRUB_PE32_REL_I386_REL32): Likewise.
6024 (grub_pe32_symbol): New structure.
6025 (grub_pe32_reloc): Likewise.
6026
6027 * util/grub-pe2elf.c: New file.
6028
6029 * configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for
6030 start symbol in non pc platform.
6031
6032 * genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf.
6033
6034 The following patches are from Christian Franke.
6035
6036 * include/grub/dl.h: Remove .previous, gas supports this only
6037 for ELF format.
6038
6039 * include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE):
6040 Remove .type, gas supports this only for ELF format.
6041
6042 * kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing
6043 nullbytes in symbol table. This fixes an infinite loop if table is
6044 zero filled.
6045
6046 * Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT,
6047 TARGET_IMG_LDFLAGS and EXEEXT.
6048
6049 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by
6050 TARGET_IMG_LDFLAGS_AC.
6051 (grub_CHECK_STACK_ARG_PROBE): New function.
6052
6053 * conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS.
6054
6055 * conf/i386-pc-cygwin-ld-img.sc: New linker script.
6056
6057 * configure.ac: Add check for linker script "conf/${target}-img-ld.c"
6058 to set TARGET_IMG_LD* accordingly.
6059 Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly.
6060 Add call to grub_CHECK_STACK_ARG_PROBE.
6061 Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols.
6062
6063 * genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.
6064
6065 * genmk.rb: Add EXEEXT to CLEANFILES.
6066
12ccdb75 60672008-07-23 Robert Millan <rmh@aybabtu.com>
6068
6069 * Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they
6070 define the codes for arrows and lines used for the menu).
6071 (ascii.pff): Generate fonts for $(UNICODE_ARROWS) and $(UNICODE_LINES)
6072 as well.
6073
6074 * util/update-grub_lib.in (font_path): Prefer ascii.pff over complete
6075 fonts, because the latter are too slow.
6076
18eeaf04 60772008-07-21 Bean <bean123ch@gmail.com>
6078
6079 * kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
6080 a20. Run keyboard test last, as it will cause macbook to halt.
6081
b095e2ad 60822008-07-18 Pavel Roskin <proski@gnu.org>
6083
6084 * kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P. We cannot
6085 load foreign architecture modules correctly anyway. Keep
6086 support for loading host architecture modules, whether we
6087 compile them or not.
6088
737feb35 60892008-07-17 Pavel Roskin <proski@gnu.org>
6090
3f4ce737 6091 * configure.ac: Use -m32 or -m64 regardless of whether we had to
6092 change target_cpu. The compiler default can mismatch target_cpu
6093 in any case.
6094
4ad2d049 6095 * disk/efi/efidisk.c: Fix format warnings on x86_64.
6096 * kern/efi/efi.c: Likewise.
6097
f6130a12 6098 * aclocal.m4 (grub_PROG_TARGET_CC): New macro. Check if the
6099 target compiler is functional.
6100 * configure.ac: Call grub_PROG_TARGET_CC once all target flags
6101 are set up.
6102
58393a2d 6103 * configure.ac: Default to efi platform for x86_64-apple. Allow
6104 powerpc64 CPU, default to ieee1275 platform for it. Split CPU
6105 adjustments from the rest, only do them if target is not
6106 explicitly given. Merge other adjustments with the final sanity
6107 check. Remove an extraneous check for supported CPU. Be
6108 specific which CPU and which platform is not supported.
6109
737feb35 6110 * configure.ac: Default to pc platform for x86_64.
6111
546f966a 61122008-07-17 Robert Millan <rmh@aybabtu.com>
6113
6114 Partial LinuxBIOS -> Coreboot rename.
6115
6116 * conf/i386-linuxbios.rmk: Renamed to ...
6117 * conf/i386-coreboot.rmk: ... this.
6118 * Makefile.in (RMKFILES): s/i386-linuxbios.rmk/i386-coreboot.rmk/g.
6119 * configure.ac: Accept "coreboot" as input platform (but maintain
6120 compatibility with "linuxbios").
6121 * include/grub/i386/linuxbios: Renamed to ...
6122 * include/grub/i386/coreboot: ... this.
6123
20011694 61242008-07-17 Bean <bean123ch@gmail.com>
6125
6126 * conf/i386/efi.rmk (pkglib_MODULES): add pci.mod and lspci.mod.
c11f6d16 6127 (appleldr_mod_SOURCE): New variable.
20011694 6128 (appleldr_mod_CFLAGS): Likewise.
6129 (appleldr_mod_LDFLAGS): Likewise.
6130 (pci_mod_SOURCES): Likewise.
6131 (pci_mod_CFLAGS): Likewise.
6132 (pci_mod_LDFLAGS): Likewise.
6133 (lspci_mod_SOURCES): Likewise.
6134 (lspci_mod_CFLAGS): Likewise.
6135 (lspci_mod_LDFLAGS): Likewise.
6136
6137 * conf/x86_64-efi.rmk: New file.
6138
6139 * disk/efi/efidisk.c (grub_efidisk_read): Wrap efi calls with efi_call_N
6140 macro.
6141 (grub_efidisk_write): Likewise.
6142
6143 * include/efi/api.h (efi_call_0): New macro.
6144 (efi_call_1): Likewise.
6145 (efi_call_2): Likewise.
6146 (efi_call_3): Likewise.
6147 (efi_call_4): Likewise.
6148 (efi_call_5): Likewise.
6149 (efi_call_6): Likewise.
6150
6151 * include/grub/efi/chainloader.h (grub_chainloader_cmd): Rename to
6152 grub_rescue_cmd_chainloader.
6153
6154 * include/grub/efi/pe32.h (GRUB_PE32_MACHINE_X86_64): New macro.
6155 (grub_pe32_optional_header): Change some fields based on i386 or
6156 x86_64 platform.
6157 (GRUB_PE32_PE32_MAGIC): Likewise.
6158
6159 * include/grub/efi/uga_draw.h: New file.
6160
6161 * include/grub/elf.h (STN_ABS): New constant.
6162 (R_X86_64_NONE): Relocation constant for x86_64.
6163 (R_X86_64_64): Likewise.
6164 (R_X86_64_PC32): Likewise.
6165 (R_X86_64_GOT32): Likewise.
6166 (R_X86_64_PLT32): Likewise.
6167 (R_X86_64_COPY): Likewise.
6168 (R_X86_64_GLOB_DAT): Likewise.
6169 (R_X86_64_JUMP_SLOT): Likewise.
6170 (R_X86_64_RELATIVE): Likewise.
6171 (R_X86_64_GOTPCREL): Likewise.
6172 (R_X86_64_32): Likewise.
6173 (R_X86_64_32S): Likewise.
6174 (R_X86_64_16): Likewise.
6175 (R_X86_64_PC16): Likewise.
6176 (R_X86_64_8): Likewise.
6177 (R_X86_64_PC8): Likewise.
6178
6179 * include/grub/i386/efi/pci.h: New file.
6180
6181 * include/grub/i386/linux.h (GRUB_LINUX_EFI_SIGNATURE):
6182 Change it value based on platform.
6183 (GRUB_LINUX_EFI_SIGNATURE_0204): New constant.
6184 (GRUB_E820_RAM): Likewise.
6185 (GRUB_E820_RESERVED): Likewise.
6186 (GRUB_E820_ACPI): Likewise.
6187 (GRUB_E820_NVS): Likewise.
6188 (GRUB_E820_EXEC_CODE): Likewise.
6189 (GRUB_E820_MAX_ENTRY): Likewise.
6190 (grub_e820_mmap): New structure.
6191 (linux_kernel_header): Change the efi field according to different
6192 kernel version, also field from linux_kernel_header.
6193
6194 * include/grub/kernel.h (grub_module_info): Add padding for x86_64.
6195
6196 * include/grub/pci.h (GRUB_PCI_ADDR_SPACE_MASK): New constant.
6197 (GRUB_PCI_ADDR_SPACE_MEMORY): Likewise.
6198 (GRUB_PCI_ADDR_SPACE_IO): Likewise.
6199 (GRUB_PCI_ADDR_MEM_TYPE_MASK): Likewise.
6200 (GRUB_PCI_ADDR_MEM_TYPE_32): Likewise.
6201 (GRUB_PCI_ADDR_MEM_TYPE_1M): Likewise.
6202 (GRUB_PCI_ADDR_MEM_TYPE_64): Likewise.
6203 (GRUB_PCI_ADDR_MEM_PREFETCH): Likewise.
6204 (GRUB_PCI_ADDR_MEM_MASK): Likewise.
6205 (GRUB_PCI_ADDR_IO_MASK): Likewise.
6206
6207 * include/grub/x86_64/efi/kernel.h: New file.
6208
6209 * include/grub/x86_64/efi/loader.h: Likewise.
6210
6211 * include/grub/x86_64/efi/machine.h: Likewise.
6212
6213 * include/grub/x86_64/efi/pci.h: Likewise.
6214
6215 * include/grub/x86_64/efi/time.h: Likewise.
6216
6217 * include/grub/x86_64/linux.h: Likewise.
6218
6219 * include/grub/x86_64/setjmp.h: Likewise.
6220
6221 * include/grub/x86_64/time.h: Likewise.
6222
6223 * include/grub/x86_64/types.h: Likewise.
6224
6225 * kern/dl.c (GRUB_CPU_SIZEOF_VOID_P): Changed to
6226 GRUB_TARGET_SIZEOF_VOID_P.
6227
6228 * kern/efi/efi.c (grub_efi_locate_protocol): Wrap efi calls.
6229 (grub_efi_locate_handle): Likewise.
6230 (grub_efi_open_protocol): Likewise.
6231 (grub_efi_set_text_mode): Likewise.
6232 (grub_efi_stall): Likewise.
6233 (grub_exit): Likewise.
6234 (grub_reboot): Likewise.
6235 (grub_halt): Likewise.
6236 (grub_efi_exit_boot_services): Likewise.
6237 (grub_get_rtc): Likewise.
6238
6239 * kern/efi/mm.c (MEMORY_MAP_SIZE): Change to 0x3000 for new models.
6240 (GRUB_CPU_SIZEOF_VOID_P): Changed to GRUB_TARGET_SIZEOF_VOID_P.
6241 (grub_efi_allocate_pages): Wrap efi calls.
6242 (grub_efi_free_pages): Wrap efi calls.
6243 (grub_efi_get_memory_map): Wrap efi calls.
6244
6245 * kern/x86_64/dl.c: New file.
6246
6247 * kern/x86_64/efi/callwrap.S: Likewise.
6248
6249 * kern/x86_64/efi/startup.S: Likewise.
6250
6251 * loader/efi/appleloader.c: Likewise.
6252
6253 * loader/efi/chainloader.c (cmdline): New variable.
6254 (grub_chainloader_unload): Wrap efi calls.
6255 (grub_chainloader_boot): Likewise.
6256 (grub_rescue_cmd_chainloader): Wrap efi calls, handle
6257 command line.
6258
6259 * loader/efi/chainloader_normal.c (chainloader_command):
6260 Change grub_chainloader_cmd to grub_rescue_cmd_chainloader, pass
6261 command line.
6262
6263 * loader/i386/efi/linux.c (allocate_pages): Change allocation
6264 method.
6265 (grub_e820_add_region): New function.
6266 (grub_linux_boot): Construct e820 map from efi map, handle x86_64
6267 booting.
6268 (grub_find_video_card): New function.
6269 (grub_linux_setup_video): New function.
6270 (grub_rescue_cmd_linux): Probe for video information.
6271
6272 * normal/x86_64/setjmp.S: New file.
6273
6274 * term/efi/console.c (map_char): New function.
6275 (grub_console_putchar): Map unicode char.
6276 (grub_console_checkkey): Wrap efi calls.
6277 (grub_console_getkey): Likewise.
6278 (grub_console_getwh): Likewise.
6279 (grub_console_gotoxy): Likewise.
6280 (grub_console_cls): Likewise.
6281 (grub_console_setcolorstate): Likewise.
6282 (grub_console_setcursor): Likewise.
6283
6284 * util/i386/efi/grub-mkimage.c: Add support for x86_64.
6285
59652a20 62862008-07-16 Pavel Roskin <proski@gnu.org>
6287
ef294055 6288 * loader/i386/efi/linux.c (allocate_pages): Fix warnings in
6289 format strings.
6290
59652a20 6291 * util/i386/efi/grub-mkimage.c (get_target_address): Return a
6292 pointer, not an integer. This fixes a warning and prevents
6293 precision loss on 64-bit systems.
6294 (relocate_addresses): Remove unneeded cast.
6295
afc3b5d7 62962008-07-15 Pavel Roskin <proski@gnu.org>
6297
506b2b3e 6298 * kern/i386/ieee1275/init.c: Include grub/cache.h.
6299
62ead89c 6300 * term/ieee1275/ofconsole.c: Disable code unused on i386.
6301
c4cd51d7 6302 * kern/ieee1275/ieee1275.c (grub_ieee1275_get_integer_property):
6303 Fix comparison between signed and unsigned.
6304
0d3d8f28 6305 * include/grub/i386/ieee1275/console.h: Declare
6306 grub_console_init() and grub_console_fini().
6307
8804b286 6308 * loader/i386/ieee1275/linux.c (grub_set_bootpath): Remove.
6309 It's empty and unused.
6310
ee01cf35 6311 * fs/ext2.c (grub_ext2_read_block): Initialize blknr in the
6312 beginning to avoid warnings with some compilers.
6313
afc3b5d7 6314 * loader/ieee1275/multiboot2.c: Include grub/machine/loader.h.
6315 [__i386__] (grub_mb2_arch_boot): Avoid unnecessary cast.
6316
e4e8eaa5 63172008-07-14 Pavel Roskin <proski@gnu.org>
6318
407aceb4 6319 * kern/env.c (grub_register_variable_hook): Don't copy empty
6320 string, it leaks memory. Pass "" to grub_env_set(), it should
6321 handle constant strings.
6322
e4e8eaa5 6323 * commands/blocklist.c (grub_cmd_blocklist): Fix format warning.
6324 * commands/cmp.c (grub_cmd_cmp): Likewise.
6325 * kern/dl.c (grub_dl_flush_cache): Likewise.
6326 (grub_dl_load_core): Likewise.
6327 * kern/elf.c (grub_elf32_load_phdrs): Likewise.
6328 (grub_elf64_load_phdrs): Likewise.
6329
d4e2dad3 63302008-07-13 Pavel Roskin <proski@gnu.org>
6331
6332 * lib/LzmaEnc.c (LzmaEnc_SetProps): Fix warning about comparison
6333 between signed and unsigned.
6334 (LzmaEnc_Finish): Fix warning about an unused parameter.
6335
aa24b516 63362008-07-13 Bean <bean123ch@gmail.com>
6337
6338 * Makefile.in (enable_lzo): New rule.
6339
6340 * conf/i386-pc.rmk (grub_mkimage_SOURCES): New test with enable_lzo.
6341
6342 * configure.ac (ENABLE_LZO): New option --enable-lzo.
6343
6344 * boot/i386/pc/lnxboot.S: #include <config.h>.
6345
6346 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Change
fe987087 6347 its value according to the compression algorithm used, lzo or lzma.
aa24b516 6348
6349 * util/i386/pc/grub-mkimage.c (compress_kernel): Use different
6350 compression algorithm according to configure macro.
6351
6352 * kern/i386/pc/startup.S (codestart): Likewise.
6353
6354 * kern/i386/pc/lzma_decode.S: New file.
6355
6356 * include/grub/lib/LzFind.h: Likewise.
6357
6358 * include/grub/lib/LzHash.h: Likewise.
6359
6360 * include/grub/lib/LzmaDec.h: Likewise.
6361
6362 * include/grub/lib/LzmaEnc.h: Likewise.
6363
6364 * include/grub/lib/LzmaTypes.h: Likewise.
6365
6366 * lib/LzFind.c: Likewise.
6367
6368 * lib/LzmaDec.c: Likewise.
6369
6370 * lib/LzmaEnc.c: Likewise.
6371
4ae821ac 63722008-07-13 Bean <bean123ch@gmail.com>
6373
6374 * fs/ext2.c (EXT4_EXTENTS_FLAG): New macro.
6375 (grub_ext4_extent_header): New structure.
6376 (grub_ext4_extent): Likewise.
6377 (grub_ext4_extent_idx): Likewise.
6378 (grub_ext4_find_leaf): New function.
6379 (grub_ext2_read_block): Handle extents.
6380
9a745147 63812008-07-12 Robert Millan <rmh@aybabtu.com>
6382
6383 * util/i386/pc/grub-mkrescue.in: s/grub-install/grub-mkrescue/g.
6384
d49a4cf6 63852008-07-11 Robert Millan <rmh@aybabtu.com>
6386
6387 * util/grub.d/40_custom.in: New file. Example on how to add custom
6388 entries to /etc/grub.d.
6389 * conf/common.rmk (%, update-grub_SCRIPTS, CLEANFILES): Install
6390 40_custom (implicitly, by merging all the grub.d rules).
6391
947414b4 63922008-07-11 Pavel Roskin <proski@gnu.org>
6393
0059cf6f 6394 * commands/read.c (grub_getline): Fix invalid memory access.
6395 Don't add newline to the variable value.
6396
947414b4 6397 * term/i386/pc/serial.c (GRUB_SERIAL_PORT_NUM): New constant.
6398 [!GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Add COM2 and COM3.
6399 (serial_hw_get_port): Check validity of the port number.
6400 (grub_cmd_serial): Check return value of serial_hw_get_port().
6401
62a02d00 64022008-07-07 Pavel Roskin <proski@gnu.org>
6403
6404 * boot/i386/pc/diskboot.S (notification_string): Replace
6405 "Loading kernel" with just "loading". This is shorter, less
6406 confusing and saves a few bytes for possible future changes.
6407
3e5581b0 64082008-07-05 Pavel Roskin <proski@gnu.org>
6409
ea387a48 6410 * disk/ata.c (grub_ata_dumpinfo): Don't output addressing and
6411 size for ATAPI devices, they are undefined. Output sector
6412 number in decimal form.
6413
3e5581b0 6414 * disk/ata.c: Use named constants for status bits.
6415
fdecb8fd 64162008-07-04 Pavel Roskin <proski@gnu.org>
6417
bcd35b90 6418 * kern/i386/linuxbios/init.c (grub_machine_init): Cast addr to
6419 grub_addr_t before casting it to the void pointer to fix a
6420 warning. Non-addressable regions are discarded earlier.
6421 (grub_arch_modules_addr): Cast _end to grub_addr_t.
6422 * kern/i386/linuxbios/table.c: Include grub/misc.h.
6423 (check_signature): Don't shadow table_header.
6424 (grub_linuxbios_table_iterate): Cast numeric constants to
6425 grub_linuxbios_table_header_t.
6426 * include/grub/i386/linuxbios/init.h: Add noreturn attribute to
6427 grub_stop().
6428
af58ab3d 6429 * kern/ieee1275/init.c: Cast _start and _end to grub_addr_t to
6430 prevent warnings.
6431
1759aa57 6432 * include/grub/misc.h (ALIGN_UP): Avoid unnecessary cast to a
6433 pointer, which can cause warnings. Support 64-bit addresses.
6434
fdecb8fd 6435 * util/elf/grub-mkimage.c: Use GRUB_TARGET_SIZEOF_LONG instead
6436 of sizeof(long). This fixes PowerPC image generation on x86_64.
6437
8516d2a8 64382008-07-04 Robert Millan <rmh@aybabtu.com>
6439
6440 This fixes a performance issue when pc & gpt partmap iterators
6441 didn't abort iteration even after our hook found what it was
fe987087 6442 looking for (often causing expensive probes of non-existent drives).
8516d2a8 6443
6444 Some callers relied on previous buggy behaviour, since they would
34c44600 6445 raise an error when their own hooks caused early abortion of its
8516d2a8 6446 iteration.
6447
6448 * kern/device.c (grub_device_open): Improve error message.
6449 * disk/lvm.c (grub_lvm_open): Likewise.
6450 * disk/raid.c (grub_raid_open): Likewise.
6451
6452 * partmap/pc.c (pc_partition_map_iterate): Abort parent iteration
6453 when hook requests it, independently of grub_errno.
6454 (pc_partition_map_probe): Do not fail when find_func() caused
6455 early abortion of pc_partition_map_iterate().
6456
6457 * partmap/gpt.c (gpt_partition_map_iterate): Abort parent iteration
6458 when hook requests it, independently of grub_errno.
6459 (gpt_partition_map_probe): Do not fail when find_func() caused
6460 early abortion of gpt_partition_map_iterate().
6461
6462 * kern/partition.c (grub_partition_iterate): Abort parent iteration
6463 when hook requests it, independently of grub_errno. Do not fail when
6464 part_map_iterate_hook() caused early abortion of p->iterate().
6465
6466 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail
6467 when grub_partition_iterate() returned with non-zero.
6468
277d0de9 64692008-07-03 Pavel Roskin <proski@gnu.org>
6470
6471 * disk/ata.c (grub_ata_pio_write): Check status before writing,
6472 like we do in grub_ata_pio_read().
6473 (grub_ata_readwrite): Always write individual sectors. Fix the
6474 sector count for the remainder.
6475 (grub_ata_write): Enable writing to ATA devices. Correctly
6476 report error for ATAPI devices.
6477
d4c9b428 64782008-07-02 Pavel Roskin <proski@gnu.org>
6479
e43fc690 6480 * boot/i386/pc/cdboot.S: Add _start entry to fix a linker
6481 warning.
6482
f707af42 6483 * disk/ata.c (grub_ata_readwrite): Don't increment sector number
6484 for every read sector, we already increment it for the whole
6485 batch. This fixes reading more than 256 sectors at once.
6486
11e16b15 6487 * util/grub-editenv.c (cmd_info): Cast argument to long
6488 explicitly. ptrdiff_t reduces to int on i386.
6489
cbabfdd4 6490 * util/grub-editenv.c (main): Be specific which parameter is
6491 missing.
6492
b8fbce0a 6493 * disk/memdisk.c (memdisk_addr): Make a pointer to fix warnings.
6494 (memdisk): Make memdisk_orig_addr a pointer.
6495
c9c8e606 6496 * fs/reiserfs.c (grub_reiserfs_read): Fix misuse of grub_size_t
6497 for file offsets, use grub_off_t instead. Fix printf format
6498 warnings.
6499
ca62e598 6500 * fs/reiserfs.c: Remove #warning, TODO list items don't belong
6501 there. Real unexpected warnings should not drown in the noise
6502 about known problems.
6503
ce8d1766 6504 * commands/hexdump.c (grub_cmd_hexdump): Fix misuse of
6505 grub_disk_addr_t for memory addresses.
6506
00c7a56a 6507 * loader/aout.c (grub_aout_load): Cast load_addr to pointer
6508 explicitly to fix a warning.
6509
08d3ef09 6510 * util/grub-editenv.c (cmd_info): Fix warning in printf format.
6511
cb71ba20 6512 * Makefile.in (MODULE_LDFLAGS): New variable.
6513 * aclocal.m4 (grub_PROG_LD_BUILD_ID_NONE): New macro. Check if
6514 the linker accepts --build-id=none.
6515 * configure.ac: Call grub_PROG_LD_BUILD_ID_NONE. Substitute
6516 MODULE_LDFLAGS.
6517 * genmk.rb: Use MODULE_LDFLAGS when linking modules.
6518
d4c9b428 6519 * fs/xfs.c (struct grub_xfs_dir_header): Use names similar to
6520 those in Linux XFS code. Provide a way to access 64-bit parent
6521 inode.
6522 (grub_xfs_iterate_dir): Use the new names. Avoid reading past
6523 the end of struct grub_xfs_dir_header.
6524
d4156eee 65252008-07-02 Bean <bean123ch@gmail.com>
6526
6527 * include/grub/ieee1275.h (grub_ieee1275_flag): New constant
6528 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
6529 and GRUB_IEEE1275_FLAG_NO_ANSI.
6530
6531 * kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set flag
6532 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
6533 and GRUB_IEEE1275_FLAG_NO_ANSI for Open Hackware.
6534
6535 * kern/ieee1275/ieee1275.c (grub_ieee1275_interpret): Return
6536 immediately if GRUB_IEEE1275_FLAG_CANNOT_INTERPRET is set.
6537
6538 * kern/ieee1275/init.c (grub_claim_heap): Claim memory directly if
6539 GRUB_IEEE1275_FLAG_FORCE_CLAIM is set.
6540
6541 * term/ieee1275/ofconsole.c (grub_ofconsole_writeesc): Don't output
6542 esc sequence on non ANSI terminal.
6543 (grub_ofconsole_gotoxy): Emulate backspace key on non ANSI terminal.
6544
6545 * util/elf/grub-mkimage.c (add_segments): Move ELF header to the
6546 beginning of file.
6547
2270f77b 65482008-07-02 Bean <bean123ch@gmail.com>
6549
6550 * conf/common.rmk (bin_UTILITIES): Add grub-editenv.
6551 (grub_editenv_SOURCES): New variable.
6552 (pkglib_MODULES): Add loadenv.mod.
6553 (loadenv_mod_SOURCES): New variable.
6554 (loadenv_mod_CFLAGS): Likewise.
6555 (loadenv_mod_LDFLAGS): Likewise.
6556
6557 * include/grub/envblk.h: New file.
6558
6559 * util/envblk.c: New file.
6560
6561 * util/grub-editenv.c: New file.
6562
6563 * commands/loadenv.c: New file.
6564
0e9e51ec 65652008-07-01 Pavel Roskin <proski@gnu.org>
6566
d89b7634 6567 * include/multiboot2.h (struct multiboot_tag_module): Use char,
6568 not unsigned char. This fixes warnings and is consistent with
6569 other tags.
6570
bf1835b1 6571 * disk/fs_uuid.c (search_fs_uuid): Correctly increment count.
6572
8222a04b 6573 * normal/parser.y: Define YYENABLE_NLS as 0 to fix warnings.
6574
6a42d99d 6575 * term/tparm.c (analyze): Always set *popcount.
6576
10b159d1 6577 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Remove useless
6578 cast to fix a warning.
6579
b8789f6c 6580 * loader/i386/pc/multiboot2.c (grub_mb2_arch_module_alloc): Use
6581 cast to suppress a warning.
6582
29d7e38a 6583 * fs/afs.c (grub_afs_read_block): Return grub_disk_addr_t, as
6584 grub_fshelp_read_file() expects.
6585
f341f669 6586 * fs/fat.c: Fix UUID calculation on big-endian systems. We
6587 write uuid as a 32-bit value in CPU byte order, so declare and
6588 use it as such.
6589
0e9e51ec 6590 * disk/raid.c: Cast grub_dprintf() arguments to unsigned long
6591 long if the format specifier expects it.
6592 * partmap/gpt.c (gpt_partition_map_iterate): Likewise.
6593 * partmap/pc.c (pc_partition_map_iterate): Likewise.
6594 * fs/ntfs.c (grub_ntfs_uuid): Cast data->uuid to unsigned long
6595 long to fix a warning.
6596 * fs/reiserfs.c (grub_reiserfs_read): Change casts in
6597 grub_dprintf() arguments to fix warnings.
6598
3aefa857 65992008-06-30 Pavel Roskin <proski@gnu.org>
6600
56c7668b 6601 * util/i386/pc/grub-setup.c (setup): Write install_dos_part and
6602 install_bsd_part immediately before core.img is embedded or
6603 modified on disk. This fixes core.img verification if core.img
6604 cannot be embedded.
6605
3aefa857 6606 * util/i386/pc/grub-setup.c (setup): Use core_path_dev, not
6607 core_path to calculate the blocklist.
6608 Patch from Javier Martín <lordhabbit@gmail.com>
6609
5444088d 66102008-06-29 Robert Millan <rmh@aybabtu.com>
6611
6612 * fs/xfs.c (GRUB_XFS_FSB_TO_BLOCK): New macro. Maps filesystem
6613 block to disk block.
6614 (grub_xfs_read_block): Use GRUB_XFS_FSB_TO_BLOCK() on result.
6615 Patch from Niels Böhm <bitbucket@arcor.de>
6616
674835c8 66172008-06-29 Robert Millan <rmh@aybabtu.com>
6618
6619 * util/update-grub_lib.in (font_path): Search for fonts in
6620 /boot/grub first, which is more likely to be readable (we aren't
6621 deciding where fonts live, just looking for them).
6622
f527dbc8 66232008-06-26 Pavel Roskin <proski@gnu.org>
6624
6c2d8df6 6625 * util/biosdisk.c (read_device_map): Don't leave dead map
6626 entries for devices failing stat() check.
6627
f527dbc8 6628 * util/i386/pc/grub-setup.c (setup): Don't reuse core_path, use
6629 core_path_dev for the core.img path on the target device.
6630
aebe3d13 66312008-06-26 Robert Millan <rmh@aybabtu.com>
6632
6633 * disk/fs_uuid.c: New file.
6634 * conf/common.rmk (pkglib_MODULES): Add `fs_uuid.mod'.
6635 (fs_uuid_mod_SOURCES, fs_uuid_mod_CFLAGS)
6636 (fs_uuid_mod_LDFLAGS): New variables.
6637 * include/grub/disk.h (grub_disk_dev_id): Add
6638 `GRUB_DISK_DEVICE_UUID_ID'.
6639 * kern/disk.c (grub_disk_dev_iterate): Allow disk devices not to
6640 implement iterate().
6641
37aaf354 66422008-06-26 Robert Millan <rmh@aybabtu.com>
6643
6644 * util/grub.d/10_linux.in: Avoid passing UUIDs to Linux when either
6645 "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" does not exist, or when a
6646 Linux image includes no initrd.
6647
25ff262a 66482008-06-21 Javier Martín <lordhabbit@gmail.com>
6649
6650 * util/i386/pc/grub-setup.c (setup): Remove literal "core.img" in a
6651 call to resolve the core image location that effectively appended the
6652 name twice.
6653
76a2bd44 66542008-06-21 Robert Millan <rmh@aybabtu.com>
6655
6656 * util/grub.d/00_header.in: Move last prepare_grub_to_access_device()
6657 call from here ...
6658
6659 * util/grub.d/10_hurd.in: ... to here ...
6660 * util/grub.d/10_linux.in: ... and here.
6661
650e1c79 66622008-06-19 Robert Millan <rmh@aybabtu.com>
6663
fe987087 6664 * kern/main.c (grub_main): Export `prefix' variable immediately
650e1c79 6665 after it has been set by grub_machine_set_prefix().
6666
6ce63911 66672008-06-19 Robert Millan <rmh@aybabtu.com>
6668
6669 * commands/search.c (search_label, search_fs_uuid, search_file): Print
6670 search result when not saving to variable, not the other way around.
6671 When saving to variable, abort iteration as soon as a match is found.
6672
73940cec 66732008-06-19 Robert Millan <rmh@aybabtu.com>
6674
6675 * util/update-grub_lib.in (prepare_grub_to_access_device): Remove
6676 check for partition that provides /boot/grub. Its logic is flawed,
6677 as it prevents prepare_grub_to_access_device() from being called
6678 multiple times.
6679
3c62a39d 66802008-06-19 Robert Millan <rmh@aybabtu.com>
6681
6682 * util/update-grub_lib.in (prepare_grub_to_access_device): Issue
6683 "insmod" command directly when abstraction modules are needed,
fe987087 6684 instead of relying on GRUB_PRELOAD_MODULES (which had no effect
3c62a39d 6685 since it had already been processed).
6686
47395a42 66872008-06-19 Pavel Roskin <proski@gnu.org>
6688
6689 * conf/i386-efi.rmk: Recompile grub-mkimage.c if Makefile has
6690 changed. This is needed in case GRUB_LIBDIR changes.
6691 * conf/i386-ieee1275.rmk: Likewise.
6692 * conf/i386-linuxbios.rmk: Likewise.
6693 * conf/i386-pc.rmk: Likewise.
6694 * conf/powerpc-ieee1275.rmk: Likewise.
6695
a145ac2d 66962008-06-18 Pavel Roskin <proski@gnu.org>
6697
6698 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Rename
6699 kernel_elf_symlist.c to symlist.c for consistency with other
6700 architectures. Update all users.
6701 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
6702
7847c51e 67032008-06-18 Robert Millan <rmh@aybabtu.com>
6704
6705 * util/i386/pc/grub-install.in: If the drive is LVM or RAID, prepend
6706 it in prefix.
6707
6708 * util/i386/pc/grub-setup.c (main): Don't handle prefix at all. Set
6709 `must_embed' to 1 when root_dev is a RAID device. When dest_dev is
6710 a RAID device, run setup() for all members independently on whether
6711 LVM abstraction is being used.
6712 (setup): Don't handle prefix at all; let grub-mkimage take care of it.
6713 If grub-mkimage has set `*install_dos_part == -2', don't override this
6714 value.
6715 Perform *install_dos_part adjustments independently on whether
6716 we're embedding or not.
6717 Clarify error message when image is too big for embedding.
6718 Remove duplicate *install_dos_part stanza.
6719
b23e5644 67202008-06-17 Robert Millan <rmh@aybabtu.com>
6721
6722 * term/ieee1275/ofconsole.c (fgcolor, bgcolor): Remove variables.
6723 (grub_ofconsole_normal_color, grub_ofconsole_highlight_color): New
6724 variables.
6725 (grub_ofconsole_setcolor, grub_ofconsole_getcolor): Load/store
6726 values in grub_ofconsole_normal_color and
6727 grub_ofconsole_highlight_color (they're not directly related to
6728 background and foreground).
6729 (grub_ofconsole_setcolorstate): Extract background and foreground
6730 from grub_ofconsole_normal_color and grub_ofconsole_highlight_color.
6731
0aac2f79 67322008-06-17 Robert Millan <rmh@aybabtu.com>
6733
6734 * util/update-grub_lib.in (prepare_grub_to_access_device): Use
6735 /boot/grub for the check in last commit, not /boot (they could be
6736 different partitions).
6737
3cca7ef3 67382008-06-16 Robert Millan <rmh@aybabtu.com>
6739
6740 * util/update-grub_lib.in (prepare_grub_to_access_device): If we were
6741 asked to setup access for the same partition that provides /boot,
6742 don't bother using UUIDs since our root already has the value we
6743 want.
6744
347396d8 67452008-06-16 Robert Millan <rmh@aybabtu.com>
6746
6747 * util/biosdisk.c (convert_system_partition_to_system_disk): Detect
6748 I2O devices.
6749 Patch from Sven Mueller <sven@debian.org>.
6750
991477f8 67512008-06-16 Robert Millan <rmh@aybabtu.com>
6752
6753 * util/update-grub.in: Check for $EUID instead of $UID.
6754 Reported by Vincent Zweije.
6755
d31a32a1 67562008-06-16 Bean <bean123ch@gmail.com>
6757
fe987087 6758 * fs/ext2.c (grub_ext2_blockgroup): Revert to pre-journal state.
d31a32a1 6759 (grub_ext2_read_block): Likewise.
6760 (grub_ext2_read_inode): Likewise.
6761 (grub_ext2_mount): Likewise.
6762 (grub_ext2_close): Likewise.
6763 (grub_ext3_get_journal): Removed.
6764
fe987087 6765 * fs/reiserfs.c (grub_reiserfs_get_item): Revert to pre-journal state.
d31a32a1 6766 (grub_reiserfs_read_symlink): Likewise.
6767 (grub_reiserfs_mount): Likewise.
6768 (grub_reiserfs_open): Likewise.
6769 (grub_reiserfs_read): Likewise.
6770 (grub_reiserfs_close): Likewise.
6771 (grub_reiserfs_get_journal): Removed.
6772
6773 * fs/fshelp.c (grub_fshelp_read): Removed.
6774 (grub_fshelp_map_block): Likewise.
6775
6776 * include/grub/fshelp.h (grub_fshelp_journal_type): Removed.
6777 (grub_fshelp_journal): Likewise.
6778 (grub_fshelp_read): Likewise.
6779 (grub_fshelp_map_block): Likewise.
6780
3540a760 67812008-06-16 Pavel Roskin <proski@gnu.org>
6782
6783 * conf/powerpc-ieee1275.rmk: Remove -msoft-float, we don't use
6784 floating point anymore.
6785 * include/grub/powerpc/libgcc.h: Leave only necessary exports.
6786
95614c84 67872008-06-15 Pavel Roskin <proski@gnu.org>
6788
6789 * commands/ls.c (grub_ls_list_files): Use integer calculations
6790 for human readable format, avoid floating point use.
6791 * kern/misc.c (grub_ftoa): Remove.
6792 (grub_vsprintf): Remove floating point support.
6793
50465dd6 67942008-06-15 Robert Millan <rmh@aybabtu.com>
6795
fe6b695a 6796 * util/grub.d/10_linux.in: Use the underlying device for loop-AES
50465dd6 6797 devices.
6798 Reported by Max Vozeler.
6799
a9207284 68002008-06-15 Robert Millan <rmh@aybabtu.com>
6801
6802 * util/i386/pc/grub-mkimage.c (generate_image): If we included a drive
6803 in our prefix, set install_{dos,bsd}_part = -2 to indicate this can be
6804 skipped later.
6805 (main): If a memdisk was requested, add "(memdisk)" drive explicitly to
6806 the beginning of the prefix.
6807
6808 * kern/i386/pc/init.c (make_install_device): Remove memdisk check.
6809 It is assumed that if we have a memdisk, grub-mkimage has set
6810 grub_prefix to include the "(memdisk)" drive in it.
6811
a7cbd45a 68122008-06-15 Robert Millan <rmh@aybabtu.com>
6813
6814 * term/i386/pc/console.c [GRUB_MACHINE_LINUXBIOS] (grub_console_init):
6815 Initialize keyboard controller after registering the terminal, so that
6816 grub_printf() can be called from grub_keyboard_controller_init().
6817
21cf716a 68182008-06-15 Robert Millan <rmh@aybabtu.com>
6819
6820 * fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in
6821 extent-btree which is written as big endian on disk.
6822 Reported by Alain Greppin <al@chilibi.org>.
6823
23a64d8e 68242008-06-14 Robert Millan <rmh@aybabtu.com>
6825
6826 * util/i386/efi/grub-install.in (modules): Remove `_chain'.
6827 * util/i386/pc/grub-install.in (modules): Likewise.
6828
d687651c 68292008-06-13 Pavel Roskin <proski@gnu.org>
6830
6831 * commands/ls.c (grub_ls_list_files): Fix format warnings.
6832
dfe9ddd4 68332008-06-13 Bean <bean123ch@gmail.com>
6834
6835 * commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.
6836
6837 * fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling.
6838
6839 * fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
6840 to indicate sparse block.
6841
16ae7781 68422008-06-12 Pavel Roskin <proski@gnu.org>
6843
e6d1a308 6844 * fs/ext2.c (grub_ext2_read_inode): Don't normalize block
6845 number, grub_fshelp_read() does it for us.
6846
16ae7781 6847 * fs/fshelp.c (grub_fshelp_read): New function. Implement
6848 linear disk read with journal translation.
6849 * fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
6850 * include/grub/fshelp.h: Declare grub_fshelp_read().
6851
40fd3a2b 68522008-06-09 Pavel Roskin <proski@gnu.org>
6853
6854 * fs/minix.c (grub_minix_mount): Handle error reading
6855 superblock.
6856
f5679726 68572008-06-08 Robert Millan <rmh@aybabtu.com>
6858
6859 * util/i386/pc/grub-setup.c (main): If install drive is an LVM,
6860 don't append the RAID prefix afterwards.
6861 Reported by Clint Adams.
6862
ce525529 68632008-06-08 Robert Millan <rmh@aybabtu.com>
6864
6865 Based on description from Pavel:
6866 * kern/disk.c (grub_disk_check_range): Rename to ...
6867 (grub_disk_adjust_range): ... this. Add a comment explaining the
6868 tasks performed by this function.
6869
ad4936a0 68702008-06-08 Robert Millan <rmh@aybabtu.com>
6871
6872 * include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to
6873 `num_serial' (for consistency with other variables).
6874 (struct grub_ntfs_data): Add `uuid' member.
6875 * fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'.
6876 (grub_ntfs_uuid): New function.
6877 (grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member.
6878
dc20b0f9 68792008-06-07 Pavel Roskin <proski@gnu.org>
6880
6881 * util/biosdisk.c (open_device): Revert last change to the
6882 function, it broke installation. The sector needs to be
6883 different dependent on which device is opened.
6884
c5e3cfba 68852008-06-06 Robert Millan <rmh@aybabtu.com>
6886
6887 Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the
6888 rest of GRUB, and breakage doesn't happen if its value were modified.
6889
6890 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
6891 Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of
6892 a constant (same value).
6893 * kern/i386/pc/startup.S: Replace hardcoded `0x50' with
6894 `GRUB_KERNEL_MACHINE_DATA_END' (same value).
6895
26a1f8c4 68962008-06-06 Robert Millan <rmh@aybabtu.com>
6897
6898 * util/biosdisk.c (open_device): Do not modify sector offset when
6899 accessing a partition. kern/disk.c already handles this for us.
6900
25d6b327 69012008-06-06 Robert Millan <rmh@aybabtu.com>
6902
6903 * util/grub-emu.c (grub_machine_init): Move code in this function from
6904 here ...
6905 (main): ... to here (before grub_util_biosdisk_init() call, to prevent
6906 segfault in case grub_printf() is called).
6907
6908 * util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to
6909 grub_probe. Update all users not to explicitly add it again.
6910 (grub_device): New variable; contains corresponding device for grubdir.
6911 (fs_module, partmap_module, devabstraction_module): Pass
6912 `--device ${grub_device}' to grub_probe to avoid traversing /dev
6913 every time.
6914
9ece62fb 69152008-06-05 Robert Millan <rmh@aybabtu.com>
6916
6917 * normal/misc.c (grub_normal_print_device_info): When a filesystem UUID
6918 is found, print it (same layout as with labels).
6919
1ad36d37 69202008-06-04 Robert Millan <rmh@aybabtu.com>
6921
6922 * util/biosdisk.c (get_drive): Rename to ...
6923 (find_grub_drive): ... this. Update all users.
6924
6925 (get_os_disk): Rename to ...
6926 (convert_system_partition_to_system_disk): ... this. Update all users.
6927
6928 (find_drive): Rename to ...
6929 (find_system_device): ... this. Update all users.
6930
e6a30859 69312008-06-04 Robert Millan <rmh@aybabtu.com>
6932
6933 * util/biosdisk.c (get_os_disk): Handle IDA devices.
6934 * util/grub-mkdevicemap.c (get_mmc_disk_name)
6935 (make_device_map): Likewise.
6936
00c108a4 69372008-06-01 Robert Millan <rmh@aybabtu.com>
6938
6939 * util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL
6940 before dereferencing it.
6941
6942 * fs/fat.c (struct grub_fat_bpb): Move fat32-specific fields into a
6943 union with fat12/fat16-specific ones. Add some new fields, including
6944 `num_serial' for both versions.
6945 (struct grub_fat_data): Add `uuid' member.
6946 (grub_fat_mount): Refer to fat32-specific fields in `bpb' by their new
6947 names. Initialize `data->uuid' using `num_serial'.
6948 (grub_fat_uuid): New function.
6949 (grub_fat_fs): Reference grub_fat_uuid() in `uuid' struct member.
6950
6951 * fs/reiserfs.c (grub_reiserfs_superblock): Add `uuid' field.
6952 (grub_reiserfs_uuid): New function.
6953 (grub_reiserfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct
6954 member.
6955
6956 * fs/xfs.c (grub_xfs_sblock): Add `uuid' field.
6957 (grub_xfs_uuid): New function.
6958 (grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member.
6959
1385c5bb 69602008-06-01 Robert Millan <rmh@aybabtu.com>
6961
6962 * util/update-grub_lib.in (prepare_grub_to_access_device): Generate
6963 code that is backward compatible with pre-uuid search command.
6964
c682dfd7 69652008-05-31 Robert Millan <rmh@aybabtu.com>
6966
6967 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through
6968 floppies after everything else, to ensure floppy drive isn't accessed
6969 unnecessarily (patch from Bean).
6970
b7db5d47 69712008-05-31 Robert Millan <rmh@aybabtu.com>
6972
6973 * commands/search.c (search_label, search_fs_uuid, search_file): Do
6974 not print device names when we were asked to set a variable.
6975
6e037aa9 69762008-05-31 Robert Millan <rmh@aybabtu.com>
6977
6978 * term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement
6979 using "cursor-on" and "cursor-off" commands (understood at least by
6980 the Open Firmware flavour on OLPC).
6981
41305bc8 69822008-05-31 Michael Gorven <michael@gorven.za.net>
6983
6984 * term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor
6985 on and off sequences.
6986
69ba137e 69872008-05-31 Robert Millan <rmh@aybabtu.com>
6988
6989 * util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'.
6990 * util/update-grub.in: Likewise.
6991
520ae21b 69922008-05-30 Pavel Roskin <proski@gnu.org>
6993
6994 * util/biosdisk.c (linux_find_partition): Simplify logic and
6995 make the code more universal. Keep special processing for
6996 devfs, but use a simple rule for all other devices. If the
6997 device ends with a number, append 'p' and the partition number.
6998 Otherwise, append only the partition number.
6999
5786569b 70002008-05-30 Robert Millan <rmh@aybabtu.com>
7001
7002 * util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable.
7003 * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and
7004 GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as
7005 the `root' parameter to Linux.
7006
51500452 70072008-05-30 Robert Millan <rmh@aybabtu.com>
7008
7009 * commands/search.c (options): Rename --fs_uuid to --fs-uuid.
7010 * util/update-grub_lib.in (prepare_grub_to_access_device): Replace
7011 --fs_uuid with --fs-uuid.
7012 * util/update-grub.in: Allow filesystem UUID probes to fail (since not
7013 all filesystems support them).
7014
811d3878 70152008-05-30 Robert Millan <rmh@aybabtu.com>
7016
7017 * fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as
f19dbdb7 7018 grub_printf() flags, since we're printing in units of 2 bytes.
811d3878 7019
cab63c95 70202008-05-30 Robert Millan <rmh@aybabtu.com>
7021
7022 * util/grub.d/00_header.in: Remove obsolete comment referencing
7023 convert_system_path_to_grub_path().
7024 * util/update-grub.in: Likewise.
7025 * util/update-grub_lib.in (is_path_readable_by_grub): New function.
7026 (convert_system_path_to_grub_path): Add a warning message explaining
7027 that this function is deprecated. Rely on is_path_readable_by_grub()
7028 for the readability checks.
7029 (font_path): Use is_path_readable_by_grub() for the readability
7030 check rather than convert_system_path_to_grub_path().
7031
972e2f7a 70322008-05-30 Robert Millan <rmh@aybabtu.com>
7033
7034 * util/update-grub_lib.in (prepare_grub_to_access_device): New function.
7035 * util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without
7036 converting it first.
7037 * util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup
7038 grub.cfg for access to font file, and afterwards call it again to set
7039 the root device.
7040
62191274 70412008-05-30 Robert Millan <rmh@aybabtu.com>
7042
7043 * commands/search.c (options): Add --fs_uuid option.
7044 (search_fs_uuid): New function.
7045 (grub_cmd_search): Fix --set argument passing.
7046 Use search_fs_uuid() when requested via --fs_uuid.
7047 (grub_search_init): Update help message.
7048 * fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid'
7049 and redeclare it as an array of 16-bit words.
7050 (grub_ext2_uuid): New function.
7051 (grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member.
7052 * include/grub/fs.h (struct grub_fs): Add `uuid' struct member.
7053 * util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT)
7054 (GRUB_DEVICE_BOOT_UUID): New variables.
7055 (GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove.
7056 * util/grub.d/00_header.in: Set root using `search --fs_uuid' command
7057 whenever possible.
7058 * util/grub.d/10_hurd.in: Avoid explicit use of root drive. Instead,
7059 just assume `root' variable has the right value.
7060 * util/grub.d/10_linux.in: Likewise.
7061 * util/grub-probe.c (probe): Probe for filesystem UUID when requested
7062 via PRINT_FS_UUID.
7063 (main): Recognise `-t fs_uuid' argument.
7064
01b73ec8 70652008-05-30 Robert Millan <rmh@aybabtu.com>
7066
7067 * util/biosdisk.c (map): Redefine structure to hold information
7068 about GRUB drive name.
fe6b695a 7069 (get_drive): Reimplement without assuming (and verifying) BIOS-like
01b73ec8 7070 drive names.
7071 (call_hook): Remove.
7072 (grub_util_biosdisk_iterate): Access drive names via `.drive' struct
7073 member. Assume drive has partitions.
7074 (grub_util_biosdisk_open): Access device names via `.device' struct
7075 member.
7076 (open_device): Likewise.
7077 (find_drive): Likewise.
7078 (read_device_map): Adjust map[] usage to match the new struct
7079 definition. Don't check for duplicates (still possible, but not cheap
7080 anymore).
7081 (grub_util_biosdisk_fini): Free malloced buffers referenced by map[].
7082 (make_device_name): Remove assumption of BIOS-like drive names.
7083
22f16596 70842008-05-30 Pavel Roskin <proski@gnu.org>
7085
7086 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as
7087 compiling execute.c doesn't need grub_script.tab.h anymore.
7088 (normal/command.c_DEPENDENCIES): Likewise.
7089 (normal/function.c_DEPENDENCIES): Likewise.
7090 * conf/i386-ieee1275.rmk: Likewise.
7091 * conf/i386-linuxbios.rmk: Likewise.
7092 * conf/i386-pc.rmk: Likewise.
7093 * conf/powerpc-ieee1275.rmk: Likewise.
7094 * conf/sparc64-ieee1275.rmk: Likewise.
7095
528ad8f2 70962008-05-29 Pavel Roskin <proski@gnu.org>
7097
d1dff95d 7098 * disk/lvm.c (grub_lvm_scan_device): Check for the buffer end
7099 when scanning metadata for volume group name.
7100
528ad8f2 7101 * include/grub/script.h: Don't include grub_script.tab.h. It's
7102 a generated file, which may only be included from the files with
7103 DEPENDENCIES rules in the makefile. Don't use typedef YYSTYPE,
7104 use union YYSTYPE, as the later allows forward declaration.
7105 * normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.
7106
47248e08 71072008-05-29 Robert Millan <rmh@aybabtu.com>
7108
7109 * term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'.
7110 (OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros.
7111 [GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes
7112 (grub_console_checkkey): Add grub_dprintf() call to report unknown
7113 scan codes.
7114
ee632529 71152008-05-29 Robert Millan <rmh@aybabtu.com>
7116
7117 * term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for
7118 control key combinations.
7119
eee96e08 71202008-05-29 Robert Millan <rmh@aybabtu.com>
7121
7122 * util/powerpc/ieee1275/grub-install.in: Move from here ...
7123 * util/ieee1275/grub-install.in: ... to here.
7124 * powerpc-ieee1275.rmk (grub_install_SOURCES): Update location.
7125 * i386-ieee1275.rmk (sbin_SCRIPTS): New variable.
7126 (grub_install_SOURCES): Likewise.
7127
da9a6a94 71282008-05-29 Robert Millan <rmh@aybabtu.com>
7129
7130 * fs/affs.c: Update copyright year.
7131 * fs/ext2.c: Likewise.
7132 * fs/fshelp.c: Likewise.
7133 * fs/hfsplus.c: Likewise.
7134 * fs/ntfs.c: Likewise.
7135 * fs/xfs.c: Likewise.
7136 * include/grub/fshelp.h: Likewise.
7137 * util/grub-mkdevicemap.c: Likewise.
7138
12e65f3a 71392008-05-28 Robert Millan <rmh@aybabtu.com>
7140
7141 * util/update-grub.in: Allow chmod call to fail, since /boot/grub/
7142 might need to be fatfs to support some firmware implementations
7143 (e.g. OFW or EFI).
7144
23023641 71452008-05-28 Robert Millan <rmh@aybabtu.com>
7146
7147 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC
7148 devices.
7149 * util/grub-mkdevicemap.c (get_mmc_disk_name)
7150 (make_device_map): Likewise.
7151
887d2619 71522008-05-20 Bean <bean123ch@gmail.com>
7153
7154 * fs/fshelp.c (grub_fshelp_map_block): New function.
7155 (grub_fshelp_find_file): Use 64-bit type for pos and block address.
7156 Use `>>' and `&' operator to avoid 64-bit divide and modulo.
7157
7158 * include/grub/fshelp.h (grub_fshelp_journal_type): New enum.
7159 (GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro.
7160 (grub_fshelp_journal): New structure.
7161 (grub_fshelp_map_block): New function prototype.
7162 (grub_fshelp_read_file): Use grub_disk_addr_t as block type.
7163 (grub_fshelp_map_block): Likewise.
7164
7165 * fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro.
7166 (EXT3_JOURNAL_MAGIC_NUMBER): Likewise.
7167 (EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise.
7168 (EXT3_JOURNAL_COMMIT_BLOCK): Likewise.
7169 (EXT3_JOURNAL_SUPERBLOCK_V1): Likewise.
7170 (EXT3_JOURNAL_SUPERBLOCK_V2): Likewise.
7171 (EXT3_JOURNAL_REVOKE_BLOCK): Likewise.
7172 (EXT3_JOURNAL_FLAG_ESCAPE): Likewise.
7173 (EXT3_JOURNAL_FLAG_SAME_UUID): Likewise.
7174 (EXT3_JOURNAL_FLAG_DELETED): Likewise.
7175 (EXT3_JOURNAL_FLAG_LAST_TAG): Likewise.
7176 (grub_ext2_sblock): New members for journal support.
7177 (grub_ext3_journal_header): New structure.
7178 (grub_ext3_journal_revoke_header): Likewise.
7179 (grub_ext3_journal_block_tag): Likewise.
7180 (grub_ext3_journal_sblock): Likewise.
7181 (grub_fshelp_node): New members logfile and journal.
7182 (grub_ext2_read_block): Change block type to grub_disk_addr_t. Use
7183 grub_fshelp_map_block to get real block number.
7184 (grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block
7185 number.
7186 (grub_ext2_read_inode): Likewise.
7187 (grub_ext3_get_journal): New function.
7188 (grub_read_inode): Initialize journal using grub_ext3_get_journal.
7189 (grub_ext2_close): Release memory used by journal.
7190
7191 * fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr".
7192 (REISERFS_MAGIC_DESC_BLOCK): New macro.
7193 (grub_reiserfs_transaction_header): Renamed to
7194 grub_reiserfs_description_block, replace field data with real_blocks.
7195 (grub_reiserfs_commit_block): New structure.
7196 (grub_reiserfs_data): New member journal.
7197 (grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block
7198 number.
7199 (grub_reiserfs_read_symlink): Likewise.
7200 (grub_reiserfs_iterate_dir): Likewise.
7201 (grub_reiserfs_open): Likewise.
7202 (grub_reiserfs_read): Likewise.
7203 (grub_reiserfs_get_journal): New function.
7204 (grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are
7205 three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal
7206 using grub_reiserfs_get_journal.
7207 (grub_reiserfs_close): Release memory used by journal.
7208
7209 * fs/affs.c (grub_affs_read_block): Change block type to
7210 grub_disk_addr_t. Use grub_divmod64 to do 64-bit division.
7211
7212 * fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t.
7213
7214 * fs/hfsplus.c (grub_hfsplus_read_block): Likewise.
7215
7216 * fs/ntfs.c (grub_ntfs_read_block): Likewise.
7217
7218 * fs/udf.c (grub_udf_read_block): Change block type to
7219 grub_disk_addr_t. Use type cast to avoid warning.
7220
7221 * fs/xfs.c (grub_xfs_read_block): Likewise.
7222
b7c6bed5 72232008-05-16 Christian Franke <franke@computer.org>
7224
7225 * commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue
7226 to ensure that break with ESC will always work.
7227 * commands/sleep.c (grub_interruptible_millisleep): Likewise.
7228 Remove ESC from keyboard queue.
7229
eedf167f 72302008-05-16 Christian Franke <franke@computer.org>
7231
7232 * util/biosdisk.c: [__CYGWIN__] Add includes.
7233 (grub_util_biosdisk_open): Use Linux code also for Cygwin.
7234 (get_os_disk): Move variable declarations to OS specific
7235 parts to avoid warning.
7236 [__GNU__] (get_os_disk): Fix /dev/sdXsN case.
7237 [__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names.
7238 (grub_util_biosdisk_get_grub_dev): Use Linux code also for
7239 Cygwin.
7240 * util/getroot.c: [__CYGWIN__] Add includes.
7241 (strip_extra_slashes): Fix "/" case.
7242 [__CYGWIN__] (get_win32_path): New function.
7243 [__CYGWIN__] (grub_get_prefix): Add conversion to win32 path.
7244 [__CYGWIN__] (find_root_device): Disable.
7245 [__CYGWIN__] (get_bootsec_serial): New function.
7246 [__CYGWIN__] (find_cygwin_root_device): Likewise.
7247 [__linux__] (grub_guess_root_device): Add early returns to simplify
7248 structure.
7249 [__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device.
7250 [__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID
7251 check for Linux only.
7252
a079699e 72532008-05-15 Bean <bean123ch@gmail.com>
7254
7255 * kern/i386/pc/startup.S (grub_console_getkey): Workaround for the
7256 keyboard hang problem in apple's intel mac.
7257
1cf4059a 72582008-05-09 Robert Millan <rmh@aybabtu.com>
7259
7260 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio
7261 devices.
7262 * util/grub-mkdevicemap.c (get_virtio_disk_name)
7263 (make_device_map): Likewise.
7264 Reported by Aurelien Jarno <aurel32@debian.org>
7265
ed759390 72662008-05-07 Ian Campbell <ijc@hellion.org.uk>
7267
7268 * util/biosdisk.c (get_os_disk): Recognise xvd type disks.
7269 * util/grub-mkdevicemap.c (get_xvd_disk_name): New function.
7270 (make_device_map): Output entries for xvd type disks.
7271
b56c4eaa 72722008-05-07 Robert Millan <rmh@aybabtu.com>
7273
7274 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS
7275 devices.
7276 * util/grub-mkdevicemap.c (get_cciss_disk_name)
7277 (make_device_map): Likewise.
7278 Reported by Roland Dreier <rdreier@cisco.com>
7279
7f8866ed 72802008-05-07 Robert Millan <rmh@aybabtu.com>
7281
7282 * disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional
7283 grub_strstr() call. Correct a few mistakes in failure path handling.
7284
b0346e0f 72852008-05-06 Robert Millan <rmh@aybabtu.com>
7286
7287 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
7288 Do not print a trailing slash (therefore, the root directory is an
7289 empty string).
7290 (convert_system_path_to_grub_path): Do not remove trailing slash
7291 from make_system_path_relative_to_its_root() output.
7292
7293 * util/i386/pc/grub-install.in: Add trailing slash to output from
7294 make_system_path_relative_to_its_root().
7295
6cf12cbd 72962008-05-06 Robert Millan <rmh@aybabtu.com>
7297
7298 * util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'. This
7299 ensures that output lines aren't intermangled with those sent to
7300 stderr (via grub_util_info()).
7301 * util/grub-probe.c (grub_refresh): Likewise.
7302 * util/i386/pc/grub-setup.c (grub_refresh): Likewise.
7303
0fbb3117 73042008-05-05 Christian Franke <franke@computer.org>
7305
7306 * util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]:
7307 Add Cygwin device names.
7308 (get_ide_disk_name) [__CYGWIN__]: Likewise.
7309 (get_scsi_disk_name) [__CYGWIN__]: Likewise.
7310 (check_device): Return error instead of success on empty name.
7311 (make_device_map): Move label inside linux specific code to
7312 prevent compiler warning.
7313
8124cdb7 73142008-04-30 Robert Millan <rmh@aybabtu.com>
7315
7316 Based on patch from Fabian Greffrath <greffrath@leat.rub.de>
7317 * util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the
7318 first boot option.
7319 * util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT.
7320
094c01d0 73212008-04-29 Robert Millan <rmh@aybabtu.com>
7322
7323 * docs/grub.cfg: New file (example GRUB configuration).
7324
f4b1fc02 73252008-04-26 Robert Millan <rmh@aybabtu.com>
7326
329ce2a5 7327 * DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST). Add
7328 `loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c'
7329 and `disk/ieee1275/nand.c'.
f4b1fc02 7330
25f16ec1 73312008-04-25 Bean <bean123ch@gmail.com>
f19dbdb7 7332
25f16ec1 7333 * Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and
7334 i386-linuxbios.
7335
7336 * commands/hexdump.c (grub_cmd_hexdump): Support dumping of device,
7337 change the buffer size to 4096 for cdrom device.
7338
7339 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add _linux.mod, linux.mod
7340 and nand.mod.
7341 (_linux_mod_SOURCES): New variable.
7342 (_linux_mod_CFLAGS): Likewise.
7343 (_linux_mod_LDFLAGS): Likewise.
7344 (linux_mod_SOURCES): Likewise.
7345 (linux_mod_CFLAGS): Likewise.
7346 (linux_mod_LDFLAGS): Likewise.
7347 (nand_mod_SOURCES): Likewise.
7348 (nand_mod_CFLAGS): Likewise.
7349 (nand_mod_LDFLAGS): Likewise.
7350
7351 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Return
7352 GRUB_ERR_UNKNOWN_DEVICE instead of GRUB_ERR_BAD_DEVICE if no device
7353 type property. (nand device in olpc don't have this property)
7354
7355 * include/grub/disk.h (grub_disk_dev_id): New macro
7356 GRUB_DISK_DEVICE_NAND_ID.
7357
7358 * include/grub/i386/ieee1275/loader.h (grub_rescue_cmd_linux): New
7359 function prototype.
7360 (grub_rescue_cmd_initrd): Likewise.
7361
7362 * include/grub/i386/linux.h (GRUB_LINUX_OFW_SIGNATURE): New macro.
7363 (linux_kernel_params): Add new member ofw_signature, ofw_num_items,
7364 ofw_cif_handler and ofw_idt, adjust padding number.
f19dbdb7 7365
25f16ec1 7366 * include/grub/i386/pc/memory.h (grub_upper_mem): Export it if
7367 GRUB_MACHINE_IEEE1275 is defined.
7368
7369 * include/grub/ieee1275/ieee1275.h (grub_available_iterate):
7370 Use NESTED_FUNC_ATTR attribute on the hook parameter.
7371
7372 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Use NESTED_FUNC_ATTR
7373 on nested function heap_init.
7374 (grub_upper_mem): New variable for i386-ieee1275.
7375 (grub_get_extended_memory): New function for i386-ieee1275.
7376 (grub_machine_init): Call grub_get_extended_memory for i386-ieee1275.
7377
7378 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Use
7379 NESTED_FUNC_ATTR on the hook parameter. Don't quit if no device type
7380 property.
f19dbdb7 7381
25f16ec1 7382 * loader/i386/ieee1275/linux.c: New file.
7383
7384 * loader/i386/ieee1275/linux_normal.c: New file.
7385
7386 * disk/ieee1275/nand.c: New file.
7387
e89d61e9 73882008-04-18 Thomas Schwinge <tschwinge@gnu.org>
7389
7390 * util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct
7391 value.
7392 * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise.
7393
602566f6 73942008-04-18 Robert Millan <rmh@aybabtu.com>
7395
7396 Restructures early code path on ieee1275 to unify grub_main() as
7397 the first C function that is executed in every platform.
7398
7399 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype.
7400 * kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of
7401 cmain().
7402 * kern/powerpc/ieee1275/crt0.S (_start): Likewise.
7403 * kern/ieee1275/cmain.c (cmain): Rename to ...
7404 * kern/ieee1275/cmain.c (grub_ieee1275_init): ... this.
7405 * kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init()
7406 at the beginning.
7407
57490c2b 74082008-04-18 Robert Millan <rmh@aybabtu.com>
7409
7410 * util/update-grub.in: Fix syntax error when setting
7411 `GRUB_PRELOAD_MODULES'.
7412 Reported by Stephane Chazelas <stephane@artesyncp.com>
7413
1977517d 74142008-04-17 Lubomir Kundrak <lkundrak@redhat.com>
7415
7416 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text
7417 section into account, newer toolchains generate unique build ids
7418 * configure.ac: remove the test for --build-id=none acceptance,
e0c5dacb 7419 we want build ids to be preserved
1977517d 7420 * genmk.rb: add -R .note.gnu.build-id to objcopy, so build id
7421 far from other sections don't cause the raw binary images grow
7422 size
7423
bfb1f1a2 74242008-04-15 Robert Millan <rmh@aybabtu.com>
7425
7426 * disk/lvm.c: Update copyright year.
7427 * kern/misc.c: Likewise.
7428
01979850 74292008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
7430
7431 * disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when
f19dbdb7 7432 there is no memory left for physical volume name.
01979850 7433
0a1150e2 74342008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
7435
7436 * disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical
7437 volume name mapping to support bigger than 9 character names properly.
7438
82ead3fe 74392008-04-13 Robert Millan <rmh@aybabtu.com>
7440
7441 * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
7442 as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm
7443
e54a72f5 74442008-04-13 Christian Franke <franke@computer.org>
7445
7446 * util/i386/pc/grub-mkrescue.in: Add --emulation=floppy
7447 to create a floppy emulation boot CD when non emulation mode
7448 does not work.
7449 Enable Joliet CD filesystem extension.
7450
9fe86034 74512008-04-13 Robert Millan <rmh@aybabtu.com>
7452
7453 * kern/misc.c (grub_strncat): Fix off-by-one error.
7454 Reported by Zhang Huan <zhanghuan@nrchpc.ac.cn>
7455
7456 * kern/env.c (grub_env_context_close): Clear current context, not
7457 previous one.
7458 Patch from Zhang Huan <zhanghuan@nrchpc.ac.cn>
7459
7460 * kern/misc.c (grub_strcat): Minor speed optimization (same code size).
7461
7ceeee39 74622008-04-13 Robert Millan <rmh@aybabtu.com>
7463
7464 Improve robustness when handling LVM.
7465
7466 * disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL
f19dbdb7 7467 (and leave `*p' unmodified).
7ceeee39 7468 (grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating
7469 through it.
7470 (grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when
7471 iterating through it.
7472 (grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating
7473 through it.
fe6b695a 7474 (grub_lvm_scan_device): Check the return value (and fail gracefully
7ceeee39 7475 when due) on each grub_lvm_getvalue() or grub_strstr() call.
7476 Don't assume `vg->pvs != NULL' when iterating through it.
7477
58cd3d85 74782008-04-13 Robert Millan <rmh@aybabtu.com>
7479
7480 * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
7481 * genmk.rb (partmap): New variable.
7482 (CLEANFILES, PARTMAPFILES): Add #{partmap}.
7483 (#{partmap}): New target rule.
7484 * genpartmaplist.sh: New file.
7485 * Makefile.in (pkglib_DATA): Add partmap.lst.
7486 (partmap.lst): New target rule.
7487 * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
7488 modules (including all partition maps), instead of preloading them.
7489
78b51059 74902007-04-13 Fabian Greffrath <fabian.greffrath@web.de>
7491
7492 * util/grub.d/30_os-prober.in: New script. Use `os-prober' and
7493 `linux-boot-prober' (if installed) to detect other operating
7494 systems which are installed on the computer and add them to
7495 the boot menu.
7496 * conf/common.rmk: Build and install 30_os-prober.
7497
a91627b4 74982008-04-12 Robert Millan <rmh@aybabtu.com>
7499
7500 * kern/powerpc/ieee1275/init.c: Move from here ...
7501 * kern/ieee1275/init.c: ... to here. Update all users.
7502
7503 * kern/powerpc/ieee1275/cmain.c: Move from here ...
7504 * kern/ieee1275/cmain.c: ... to here. Update all users.
7505
7506 * kern/powerpc/ieee1275/openfw.c: Move from here ...
7507 * kern/ieee1275/openfw.c: ... to here. Update all users.
7508
7509 * loader/powerpc/ieee1275/multiboot2.c: Move from here ...
7510 * loader/ieee1275/multiboot2.c: ... to here. Update all users.
7511
322562ea 75122008-04-10 Pavel Roskin <proski@gnu.org>
7513
7514 * configure.ac: Always use "_cv_" in cache variables for
7515 compatibility with Autoconf 2.62.
7516
a02a73c5 75172008-04-07 Robert Millan <rmh@aybabtu.com>
7518
7519 Revert grub/machine/init.h addition by Pavel (since it breaks on
7520 i386-ieee1275 and others):
7521 * util/i386/pc/misc.c: Remove grub/machine/init.h.
7522 * util/powerpc/ieee1275/misc.c: Likewise.
7523
25c024b1 75242008-04-07 Robert Millan <rmh@aybabtu.com>
7525
7526 * util/grub-probe.c (probe): Improve error message.
7527
3cbd2f98 75282008-04-07 Robert Millan <rmh@aybabtu.com>
7529
7530 * util/biosdisk.c (read_device_map): Skip devices that don't exist
7531 (this prevents the presence of a bogus entry from ruining the whole
7532 thing).
7533
87a297bf 75342008-04-06 Pavel Roskin <proski@gnu.org>
7535
36747a62 7536 * util/biosdisk.c: Include grub/util/biosdisk.h.
7537 * util/grub-fstest.c (execute_command): Make static.
7538 * util/grub-mkdevicemap.c (check_device): Likewise.
7539 * util/i386/pc/misc.c: Include grub/machine/init.h.
7540 * util/powerpc/ieee1275/misc.c: Likewise.
7541 * util/lvm.c: Include grub/util/lvm.h.
7542 * util/misc.c: Include grub/kernel.h, grub/misc.h and
7543 grub/cache.h.
7544 * util/raid.c: Include grub/util/raid.h.
7545 (grub_util_getdiskname): Make static.
7546
87a297bf 7547 * util/grub-emu.c (main): Remove calls to grub_hostfs_init() and
7548 grub_hostfs_fini(), as they are called from grub_init_all() and
7549 grub_fini_all() respectively. This fixes an infinite loop in
7550 grub-fstest due to double registration of hostfs.
7551 Reported by Christian Franke <Christian.Franke@t-online.de>
7552
f6ce7629 75532008-04-05 Pavel Roskin <proski@gnu.org>
7554
7555 * bus/pci.c (grub_pci_iterate): For multifunction devices, probe
7556 all 8 functions. Otherwise, probe function 0 only.
7557
070e49e4 75582008-04-04 Pavel Roskin <proski@gnu.org>
7559
8b088a4c 7560 * commands/lspci.c (grub_lspci_iter): Print the bus number
7561 correctly.
7562
4f657021 7563 * commands/lspci.c (grub_pci_classes): Fix typos.
7564 (grub_lspci_iter): Don't print func twice. Print vendor ID
7565 before device ID, as it's normally done.
7566
070e49e4 7567 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
7568 Fix signedness warnings.
7569 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate):
7570 Likewise.
7571 * util/ieee1275/get_disk_name.c: Include config.h so that
7572 _GNU_SOURCE is defined and getline() is declared. Mark an
7573 unused argument as such. Fix a signedness warning.
7574
ba7328dc 75752008-04-02 Pavel Roskin <proski@gnu.org>
7576
26887f22 7577 * genkernsyms.sh.in: Use more robust assignments for CC and
7578 srcdir. Quote srcdir.
7579 * gensymlist.sh.in: Likewise. Assert at the compile time that
7580 the symbol table is not empty.
7581
ba7328dc 7582 * disk/raid.c (grub_raid_memberlist): Fix a signedness warning.
7583 * fs/cpio.c (grub_cpio_read): Likewise.
7584
0f582c6b 75852008-04-01 Pavel Roskin <proski@gnu.org>
7586
4b6e1995 7587 * disk/ata.c (grub_ata_open): Don't lose precision in disk->id.
7588 * disk/host.c (grub_host_open): Likewise.
7589 * disk/loopback.c (grub_loopback_open): Likewise.
7590 * disk/memdisk.c (grub_memdisk_open): Use a string pointer for
7591 disk->id as in disk/host.c, not a multi-character constant.
7592
828a2768 7593 * util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek(). The
7594 later is obsolete, potentially dangerous and sets a bad example.
7595 * util/i386/efi/grub-mkimage.c (make_header): Likewise.
7596 * util/misc.c (grub_util_get_image_size): Likewise.
7597
2bb4fb47 7598 * disk/loopback.c (options): Improve help for "--partitions".
7599
0f582c6b 7600 * normal/arg.c (grub_arg_show_help): Fix spacing of the long
7601 options to align them with the short options, e.g. "echo -e".
7602
a33224e0 76032008-03-31 Bean <bean123ch@gmail.com>
7604
7605 * video/reader/png.c (grub_png_data): New member is_16bit and
7606 image_data.
7607 (grub_png_decode_image_header): Detect 16 bit png image.
7608 (grub_png_convert_image): New function to convert 16 bit image to 8 bit.
7609 (grub_png_decode_png): Call grub_png_convert_image for 16 bit image.
7610 (grub_video_reader_png): Release memory occupied by image_data.
7611
7612 * fs/ntfs.c (find_attr): Handle non-resident attribute list larger than
7613 4096 bytes.
7614 (grub_nfs_mount): Skip the test for sector per cluster.
7615
7616 * include/grub/ntfs.h (MAX_SPC): Removed.
7617
86cb4f54 76182008-03-31 Bean <bean123ch@gmail.com>
7619
7620 * conf/common.rmk (pkgdata_MODULES): Add afs.mod.
7621 (grub_probe_SOURCES): Add fs/afs.c.
7622 (grub_fstest_SOURCES): Likewise.
7623 (afs_mod_SOURCES): New variable.
7624 (afs_mod_CFLAGS): Likewise.
7625 (afs_mod_LDFLAGS): Likewise.
7626
7627 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/afs.c.
7628 (grub_emu_SOURCES): Likewise.
7629
7630 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
7631
7632 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7633
7634 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
7635
7636 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7637
7638 * fs/afs.c: New file.
7639
17c74c21 76402008-03-30 Pavel Roskin <proski@gnu.org>
7641
4cb68e89 7642 * disk/host.c: Include grub/misc.h to fix a warning.
7643 * util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix
7644 warnings about implicit declarations.
7645
8790bb04 7646 * fs/udf.c (grub_udf_mount): Fix warning about a shadowing a
7647 variable.
7648 * include/grub/i386/loader.h: Change declaration of
7649 grub_linux_boot() to match what grub_loader_set() expects.
7650 * util/getroot.c (grub_guess_root_device): Return const char* to
7651 fix a warning.
7652 * util/grub-probe.c (probe): Fix a warning about uninitialized
7653 abstraction_name variable.
7654 * util/i386/get_disk_name.c (grub_util_get_disk_name): Mark
7655 second argument as unused to fix a warning.
7656
9a3f3296 7657 * loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add
7658 missing grub_error() call.
7659
0ecef90d 7660 * util/update-grub_lib.in: Define datarootdir, since Autoconf
7661 2.60 and newer uses it to define datadir.
7662
0bf6d401 7663 * commands/sleep.c: Fix warning about implicit declaration.
7664 * disk/memdisk.c: Likewise.
7665 * loader/aout.c: Likewise.
7666 * loader/i386/bsd_normal.c: Likewise.
7667 * util/grub-probe.c: Likewise.
7668
7cdacf97 7669 * commands/i386/cpuid.c (has_longmode): Make static.
7670 * disk/i386/pc/biosdisk.c (cd_drive): Likewise.
7671 * include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused.
7672
17c74c21 7673 * kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
7674 GDT. This is more robust, as %ds can change.
7675 (grub_biosdisk_rw_int13_extensions): Don't clear %ds before
7676 calling real_to_prot().
7677 (grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
7678
80a3e68b 76792008-03-28 Pavel Roskin <proski@gnu.org>
7680
7681 * kern/i386/pc/startup.S: Assert that uncompressed functions
7682 don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
7683 * kern/i386/pc/lzo1x.S: Remove all .align directives in the
7684 code, as they push parts of the code (error handlers) beyond
7685 GRUB_KERNEL_MACHINE_RAW_SIZE. Speed is not as important in this
7686 code as correctness and size.
7687
77bcd272 76882008-03-28 Pavel Roskin <proski@gnu.org>
7689
7690 * kern/i386/pc/startup.S
7691 (grub_biosdisk_get_diskinfo_int13_extensions): When converting
7692 data block address to the real mode, keep offset minimal. This
7693 works around a bug in AWARD BIOS on old Athlon systems, which
7694 makes CD detection hang.
7695
c5dfd43b 76962008-03-26 Pavel Roskin <proski@gnu.org>
7697
7698 * normal/color.c (grub_parse_color_name_pair): Make `name' a
7699 const.
7700 * include/grub/normal.h: Add grub_parse_color_name_pair()
7701 declaration.
7702
bf962df2 77032008-03-24 Bean <bean123ch@gmail.com>
7704
7705 * disk/i386/pc/biosdisk.c (cd_start): Removed.
7706 (cd_count): Removed.
7707 (cd_drive): New variable.
7708 (grub_biosdisk_get_drive): Don't check for (cdN) device.
7709 (grub_biosdisk_call_hook): Likewise.
7710 (grub_biosdisk_iterate): Change cdrom detection method.
7711 (grub_biosdisk_open): Replace cd_start with cd_drive.
7712 (GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to
7713 detect cdrom device.
7714
7715 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_MACHINE_CDROM_START):
7716 Removed.
7717 (GRUB_BIOSDISK_MACHINE_CDROM_END): Removed.
7718 (GRUB_BIOSDISK_CDTYPE_NO_EMUL): New macro.
7719 (GRUB_BIOSDISK_CDTYPE_1_2_M): Likewise.
7720 (GRUB_BIOSDISK_CDTYPE_1_44_M): Likewise.
7721 (GRUB_BIOSDISK_CDTYPE_2_88_M): Likewise.
7722 (GRUB_BIOSDISK_CDTYPE_HARDDISK): Likewise.
7723 (GRUB_BIOSDISK_CDTYPE_MASK): Likewise.
7724 (grub_biosdisk_cdrp): New structure.
7725 (grub_biosdisk_get_cdinfo_int13_extensions): New function.
7726
7727 * include/grub/i386/pc/kernel.h (grub_boot_drive): Export this variable.
7728
7729 * kern/i386/pc/init.c (make_install_device): Don't use (cdN) as root
7730 device.
7731
7732 * kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions):
7733 New function.
7734
68e7fc7a 77352008-03-20 Robert Millan <rmh@aybabtu.com>
7736
7737 Remove 2 TiB limit in ata.mod.
7738 * disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t.
7739 (grub_ata_dumpinfo): Print sector count with 0x%llx.
7740 (grub_ata_identify): Interpret `&info16[100]' as a pointer to
7741 grub_uint64_t instead of grub_uint32_t.
7742
38ad2cf5 77432008-03-05 Bean <bean123ch@gmail.com>
7744
7745 * loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function.
7746 (grub_multiboot): Set boot device.
7747
7748 * boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF.
7749
2b89344e 77502008-03-02 Bean <bean123ch@gmail.com>
7751
7752 * fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of
7753 symlink_buffer.
7754
87a95d1f 77552008-03-01 Yoshinori K. Okuji <okuji@enbug.org>
7756
7757 * DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and
7758 texinfo.tex.
7759
7760 * docs/grub.texi: New file. Copied from GRUB Legacy, and slightly
7761 modified.
7762
7763 * docs/fdl.texi: New file.
f19dbdb7 7764
87a95d1f 7765 * docs/mdate-sh: New file. Copied from gnulib.
7766 * docs/texinfo.tex: Likewise.
7767
7768 * config.guess: Updated from gnulib.
7769 * install-sh: Likewise.
7770
7dc15d8e 77712008-02-28 Robert Millan <rmh@aybabtu.com>
7772
7773 * conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod.
7774 (aout_mod_SOURCES): New variable.
7775 (aout_mod_CFLAGS): Likewise.
7776 (aout_mod_LDFLAGS): Likewise.
7777
7778 * conf/i386-ieee1275.rmk: Likewise.
7779
b00ab696 77802008-02-28 Robert Millan <rmh@aybabtu.com>
7781
7782 * util/update-grub.in: Reorganise terminal validity check. Accept
7783 `ieee1275:console' (OLPC) and `*:gfxterm' as valid too.
7784 Based on suggestion by Franklin PIAT.
7785
79ca2d78 77862008-02-28 Fabian Greffrath <greffrath@leat.rub.de>
7787
7788 * include/grub/util/getroot.h (grub_util_check_block_device): Export new
7789 function.
7790 * util/getroot.c (grub_util_check_block_device): New function that
7791 returns the given argument if it is a block device and returns NULL else.
7792 * util/grub-probe.c (argument_is_device): New variable.
7793 (probe): Promote device_name from a variable to an argument. Receive
7794 device_name from grub_util_check_block_device() if path is NULL and from
7795 grub_guess_root_device() else. Do not free() device_name anymore.
f19dbdb7 7796 (options): Introduce new parameter '-d, --device'.
79ca2d78 7797 (main): Add description of the new parameter to the help screen.
7798 Rename path variable to argument. Set argument_is_device if the '-d'
7799 option is given. Pass argument to probe() depending on
7800 argument_is_device.
7801
0d16e571 78022008-02-24 Bean <bean123ch@gmail.com>
7803
7804 * fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro.
7805 (GRUB_ISO9660_VOLDESC_PRIMARY): Likewise.
7806 (GRUB_ISO9660_VOLDESC_SUPP): Likewise.
7807 (GRUB_ISO9660_VOLDESC_PART): Likewise.
7808 (GRUB_ISO9660_VOLDESC_END): Likewise.
7809 (grub_iso9660_primary_voldesc): New member escape.
7810 (grub_iso9660_data): New member joliet.
7811 (grub_iso9660_convert_string): New function.
7812 (grub_iso9660_mount): Detect joliet extension.
7813 (grub_iso9660_iterate_dir): Convert filename when joliet is detected.
7814 (grub_iso9660_iso9660_label): Likewise.
7815
7816 * conf/common.rmk (pkgdata_MODULES): Add udf.mod.
7817 (grub_setup_SOURCES): Add fs/udf.c.
7818 (grub_fstest_SOURCES): Likewise.
7819 (udf_mod_SOURCES): New variable.
7820 (udf_mod_CFLAGS): Likewise.
7821 (udf_mod_LDFLAGS): Likewise.
7822
7823 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/udf.c.
7824 (grub_emu_SOURCES): Likewise.
7825
7826 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
7827
7828 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7829
7830 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
7831
7832 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7833
7834 * fs/udf.c: New file.
7835
8a594a17 78362008-02-24 Robert Millan <rmh@aybabtu.com>
7837
7838 * conf/i386-efi.rmk (normal/function.c_DEPENDENCIES)
7839 (normal/lexer.c_DEPENDENCIES): New variables.
7840 * conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES)
7841 (normal/lexer.c_DEPENDENCIES): Likewise.
7842 * conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES)
7843 (normal/lexer.c_DEPENDENCIES): Likewise.
7844 * conf/i386-pc.rmk (normal/function.c_DEPENDENCIES)
7845 (normal/lexer.c_DEPENDENCIES): Likewise.
7846 * conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES)
7847 (normal/lexer.c_DEPENDENCIES): Likewise.
7848 * conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES)
7849 (normal/lexer.c_DEPENDENCIES): Likewise.
7850
2dc33c03 78512008-02-23 Robert Millan <rmh@aybabtu.com>
7852
7853 * partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member,
7854 since they were intended to be in hex. This didn't break previously
7855 because of a bug in gpt_partition_map_iterate() (see below).
7856
7857 (gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp'
7858 when checking the validity of GPT header.
7859 Remove `partno', since it always provides the same information as `i'.
7860
f6f4cfb0 78612008-02-21 Yoshinori K. Okuji <okuji@enbug.org>
7862
7863 * include/grub/efi/time.h: Fix a wrong comment.
7864
79ff665f 78652008-02-19 Pavel Roskin <proski@gnu.org>
7866
7867 * kern/rescue.c (grub_enter_rescue_mode): Improve initial
7868 message.
7869
d38e24c2 78702008-02-19 Bean <bean123ch@gmail.com>
7871
7872 * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
7873 (aout_mod_SOURCES): New variable.
7874 (aout_mod_CFLAGS): Likewise.
7875 (aout_mod_LDFLAGS): Likewise.
7876 (_bsd_mod_SOURCES): New variable.
7877 (_bsd_mod_CFLAGS): Likewise.
7878 (_bsd_mod_LDFLAGS): Likewise.
7879 (bsd_mod_SOURCES): New variable.
7880 (bsd_mod_CFLAGS): Likewise.
7881 (bsd_mod_LDFLAGS): Likewise.
7882
7883 * include/grub/aout.h: New file.
7884
7885 * include/grub/i386/loader.h (grub_unix_real_boot): New function.
7886
7887 * include/grub/i386/bsd.h: New file.
7888
7889 * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
7890 to make it public.
7891
7892 * kern/elf.c (grub_elf32_load): Get the physical address after the hook
7893 function is called, so that it's possible to change it inside the hook.
7894 (grub_elf64_load): Likewise.
7895 (grub_elf_file): Don't close the file if elf header is not found.
7896 (grub_elf_close): Close the file if grub_elf_file fails (The new
7897 grub_elf_file won't close it).
7898 (grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize.
7899 (grub_elf64_size): Likewise.
7900
7901 * kern/i386/loader.S (grub_unix_real_boot): New function.
7902
7903 * loader/aout.c: New file.
7904
7905 * loader/i386/bsd.c: New file.
7906
7907 * loader/i386/bsd_normal.c: New file.
7908
7909 * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.
7910
7911 * loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
fe987087 7912 can test other formats.
d38e24c2 7913
b93bdb0f 79142008-02-19 Robert Millan <rmh@aybabtu.com>
7915
7916 * partmap/gpt.c: Include `<grub/gpt_partition.h>'.
7917 (grub_gpt_partition_type_empty): Redefine with macro from
7918 `<grub/gpt_partition.h>'.
7919 (gpt_partition_map_iterate): Adjust partition type comparison.
7920
7921 Export `entry' as partmap-specific `part.data' struct.
7922 (grub_gpt_header, grub_gpt_partentry): Move from here ...
7923
7924 * include/grub/gpt_partition.h (grub_gpt_header)
7925 (grub_gpt_partentry): ... to here (new file).
7926
7927 * util/i386/pc/grub-setup.c: Include `<grub/gpt_partition.h>'.
7928
7929 (grub_gpt_partition_type_bios_boot): New const variable, defined
7930 with macro from `<grub/gpt_partition.h>'.
7931
7932 (setup): Replace `first_start' with `embed_region', which keeps
7933 track of the embed region (and is partmap-agnostic).
7934
7935 Replace find_first_partition_start() with find_usable_region(),
7936 which finds a usable region for embedding using partmap-specific
7937 knowledge (supports PC/MSDOS and GPT).
7938
7939 Fix all assumptions that the embed region start at sector 1, using
7940 `embed_region.start' from now on. Similarly, use `embed_region.end'
7941 rather than `first_start' to calculate available size.
7942
7943 In grub_util_info() message, replace "into after the MBR" with an
7944 indication of the specific sector our embed region starts at.
7945
66cb40f6 79462008-02-19 Robert Millan <rmh@aybabtu.com>
7947
7948 * DISTLIST: Replace `commands/ieee1275/halt.c' and
7949 `commands/ieee1275/reboot.c' with `commands/halt.c' and
7950 `commands/reboot.c'.
7951 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
7952 (halt_mod_SOURCES): Likewise.
7953 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
7954 (halt_mod_SOURCES): Likewise.
7955
b7202015 79562008-02-17 Christian Franke <franke@computer.org>
7957
7958 * commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key.
7959
32b0fc49 79602008-02-17 Robert Millan <rmh@aybabtu.com>
7961
7962 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
7963 set `first_start' to 0 for non-PC/MSDOS partition maps.
7964
aca63502 79652008-02-16 Robert Millan <rmh@aybabtu.com>
7966
7967 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
7968 do not assume partition map is PC/MSDOS before performing checks that
7969 are specific to that layout.
7970
0de8be86 79712008-02-13 Robert Millan <rmh@aybabtu.com>
7972
7973 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove
7974 `commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'.
7975 * kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs.
7976
c3db8364 79772008-02-13 Yoshinori K. Okuji <okuji@enbug.org>
7978
7979 * configure.ac: Only a cosmetic change on the handling of
7980 -fno-stack-protector.
7981
f714229e 79822008-02-12 Alexandre Boeglin <alex@boeglin.org>
7983
c3db8364 7984 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace
7985 commands/i386/pc/halt.c and reboot.c by commands/halt.c and
7986 reboot.c.
f714229e 7987 (grub_install_SOURCES): Add halt.mod and reboot.mod.
7988 (halt_mod_SOURCES): New variable.
7989 (halt_mod_CFLAGS): Likewise.
7990 (halt_mod_LDFLAGS): Likewise.
7991 (reboot_mod_SOURCES): Likewise.
7992 (reboot_mod_CFLAGS): Likewise.
7993 (reboot_mod_LDFLAGS): Likewise.
7994
c3db8364 7995 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace
7996 commands/ieee1275/halt.c and reboot.c by commands/halt.c and
7997 reboot.c.
f714229e 7998 (halt_mod_SOURCES): Likewise.
7999 (reboot_mod_SOURCES): Likewise.
8000
c3db8364 8001 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace
8002 commands/i386/pc/reboot.c by commands/reboot.c.
f714229e 8003 (reboot_mod_SOURCES): Likewise.
8004
8005 * commands/i386/pc/reboot.c: merge this file ...
8006
8007 * commands/ieee1275/reboot.c: ... and this file ...
8008
8009 * commands/reboot.c: ... to this file.
c3db8364 8010 Add some precompiler directive to include the correct header for
8011 each machine.
f714229e 8012
8013 * commands/ieee1275/halt.c: move this file ...
8014
8015 * commands/halt.c: ... to here.
c3db8364 8016 Add some precompiler directive to include the correct header for
8017 each machine.
f714229e 8018
8019 * include/grub/efi/efi.h (grub_reboot): New function declaration.
8020 (grub_halt): Likewise.
8021
8022 * kern/efi/efi.c (grub_reboot): New function.
8023 (grub_halt): Likewise.
8024
c74493e0 80252008-02-12 Robert Millan <rmh@aybabtu.com>
8026
8027 * util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
8028 /dev (like it is done for /dev/mapper). This doesn't provide support
8029 for EVMS, but at least it is now easy to identify the problem when it
8030 arises.
8031
d0db4b04 80322008-02-11 Robert Millan <rmh@aybabtu.com>
8033
8034 * util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition)
8035 (grub_util_biosdisk_get_grub_dev): Check open() exit status by
8036 comparing it with -1, not 0.
8037
bf748642 80382008-02-10 Robert Millan <rmh@aybabtu.com>
8039
8040 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and
8041 `disk/lvm.c'.
8042 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8043 * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
8044
8045 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and
8046 `disk/lvm.c' to the end of the list.
8047 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
8048 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
8049
b5db202a 80502008-02-10 Robert Millan <rmh@aybabtu.com>
8051
8052 * kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'. Call
8053 grub_print_error() instead. This will let user know why we're entering
8054 rescue mode.
8055 Based on suggestions from Sam Morris.
8056
83abee31 80572008-02-10 Alexandre Boeglin <alex@boeglin.org>
8058
8059 * normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg()
8060 on remaining N args, instead of "--" arg N times.
8061
78d5a08b 80622008-02-09 Vesa Jaaskelainen <chaac@nic.fi>
8063
8064 * font/manager.c (unknown_glyph): Added variable for unknown glyph.
8065 (fill_with_default_glyph): Changed to use unknown_glyph for fill
8066 pattern for unknown glyphs.
8067
68807e5f 80682008-02-09 Robert Millan <rmh@aybabtu.com>
8069
8070 * configure.ac: Probe for `help2man'.
8071 * Makefile.in (builddir): New variable.
8072 (HELP2MAN): Likewise. Set to `true' when @HELP2MAN@ doesn't provide it,
8073 or otherwise add a few flags/options to it.
8074 (install-local): For every executable utility or script that is
8075 installed, invoke $(HELP2MAN) to install a manpage based on --help
8076 output.
8077
8078 * util/i386/pc/grub-install.in: Move down `update-grub_lib' sourcing, so
8079 that it doesn't prevent --help from working in build tree.
8080
8081 * util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org'
8082 with `bug-grub@gnu.org'.
8083 * util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise.
8084 * util/update-grub.in (usage): New function.
8085 Implement proper argument check, with support for --help and --version
8086 (as well as existing -y).
8087
80882008-02-09 Christian Franke <franke@computer.org>
0d9ff7f0 8089
8090 * commands/cat.c (grub_cmd_cat): Print '\r' as hex to
8091 avoid overwriting previous output.
8092 * kern/rescue.c (grub_rescue_cmd_cat): Likewise.
8093
c1962162 80942008-02-09 Robert Millan <rmh@aybabtu.com>
8095
8096 * normal/menu.c (run_menu): If timeout is set to zero, don't bother
8097 drawing the menu.
8098
3dac2e3f 80992008-02-09 Robert Millan <rmh@aybabtu.com>
8100
8101 * commands/sleep.c: New file.
8102 * conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'.
8103 (sleep_mod_SOURCES): New variable.
8104 (sleep_mod_CFLAGS): Likewise.
8105 (sleep_mod_LDFLAGS): Likewise.
8106
7a634e08 81072008-02-09 Robert Millan <rmh@aybabtu.com>
8108
8109 * disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for
8110 situations in which we can deduce the RAID size and the superblock
8111 doesn't match it.
8112
b92f0c18 81132008-02-09 Robert Millan <rmh@aybabtu.com>
8114
8115 * disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function. Construct
8116 and return a grub_diskmemberlist_t composed of LVM physical volumes.
8117 [GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member.
8118
8119 * disk/raid.c [GRUB_UTIL] (grub_raid_memberlist): New function. Construct
8120 and return a grub_diskmemberlist_t composed of physical array members.
8121 [GRUB_UTIL] (grub_raid_dev): Add `memberlist' member.
8122
8123 * include/grub/disk.h [GRUB_UTIL] (grub_disk_memberlist): New struct
8124 prototype.
8125 [GRUB_UTIL] (struct grub_disk_dev): Add `memberlist' function pointer.
8126 [GRUB_UTIL] (struct grub_disk_memberlist): New struct declaration.
8127 [GRUB_UTIL] (grub_disk_memberlist_t): New typedef.
8128
8129 * util/grub-probe.c (probe): Move partmap probing code from here ...
8130 (probe_partmap): ... to here.
8131 (probe): Use probe_partmap() once for the disk we're probing, and
8132 additionally, when such disk contains a memberlist() struct member,
8133 once for each disk that is contained in the structure returned by
8134 memberlist().
8135
91a4bf68 81362008-02-09 Robert Millan <rmh@aybabtu.com>
8137
8138 * util/grub-probe.c (main): When `verbosity > 1', set `debug'
8139 environment variable to 'all' in order to obtain debug output from
8140 non-util/ code.
8141 * util/i386/pc/grub-setup.c (main): Likewise.
8142
a96f9caa 81432008-02-08 Robert Millan <rmh@aybabtu.com>
8144
8145 * disk/raid.c (grub_raid_scan_device): Check for
8146 `array->device[sb.this_disk.number]' rather than for
8147 `array->device[sb.this_disk.number]->name', since the latter is not
fe6b695a 8148 guaranteed to be accessible.
a96f9caa 8149
b37a9222 81502008-02-08 Robert Millan <rmh@aybabtu.com>
8151
8152 * disk/raid.c: Update copyright.
8153 * fs/cpio.c: Likewise.
8154 * include/grub/raid.h: Likewise.
8155 * loader/i386/pc/multiboot.c: Likewise.
8156 * util/hostfs.c: Likewise.
8157
5626aee1 81582008-02-08 Robert Millan <rmh@aybabtu.com>
8159
8160 * include/grub/raid.h (struct grub_raid_array): Change type of `device'
8161 to a grub_disk_t array.
8162 * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
8163 `device[x]'.
8164 (grub_raid_scan_device): Replace `device[x].name' accesses with
8165 `device[x]->name'. Simplify initialization of `array->device[x]'.
8166
554f0187 81672008-02-08 Robert Millan <rmh@aybabtu.com>
8168
8169 * disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
8170 grub_dprintf() calls.
8171 * kern/disk.c (grub_disk_read): Include grub_errmsg in out of range
8172 error message.
8173
1ec8425d 81742008-02-07 Christian Franke <franke@computer.org>
8175
8176 * util/hostfs.c (grub_hostfs_open): Use fseeko and ftello
8177 instead of fseek and ftell to support large files.
8178 (grub_hostfs_read): Likewise.
8179
f2156fda 81802008-02-07 Robert Millan <rmh@aybabtu.com>
8181
8182 Patch from Jeroen Dekkers.
8183 * disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk
fe6b695a 8184 failure, since successfully reading all array members might not be
f2156fda 8185 required.
8186
9216e0e7 81872008-02-06 Robert Millan <rmh@aybabtu.com>
8188
8189 * util/grub-probe.c (probe): Simplify partmap probing (with the
8190 assumption that the first word up to the underscore equals to
8191 the module name).
8192
b0dfd29a 81932008-02-06 Christian Franke <franke@computer.org>
8194
8195 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE
8196 (and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on
8197 last block of a cpio or tar stream.
8198 Check for "TRAILER!!!" instead of any empty data
8199 block to detect last block of a cpio stream.
8200 (grub_cpio_dir): Fix constness of variable np.
8201 (grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if
8202 cpio or tar trailer is detected. This fixes a crash
8203 on open of a non existing file.
8204
c32865bf 82052008-02-05 Bean <bean123ch@gmail.com>
8206
8207 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical
8208 address of entry.
8209 (grub_multiboot_load_elf64): Likewise.
8210 (grub_multiboot): Initialize mbi structure.
8211
8212 * util/grub-fstest.c: Don't include unused header file script.h.
8213
fe6b695a 8214 * conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the beginning
c32865bf 8215 of file.
8216 (grub_fstest_SOURCES): Likewise.
8217
409480b7 82182008-02-05 Robert Millan <rmh@aybabtu.com>
8219
8220 * include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT)
8221 (GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END)
8222 (GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC)
8223 (GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros.
8224
8225 * kern/i386/pc/startup.S: Include `<grub/term.h>'.
8226 (translation_table): Replace hardcoded values with macros
8227 provided by `<grub/term.h>'.
8228
8229 * term/i386/pc/at_keyboard.c: Include `<grub/term.h>'.
8230 (keyboard_map): Correct/add a few values, with macros provided
8231 by `<grub/term.h>'.
8232 (keyboard_map_shift): Zero values that don't differ from their
8233 `keyboard_map' equivalents.
8234 (grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling.
8235 Discard the second scan code that is always sent by Caps lock.
8236 Only use `keyboard_map_shift' when it provides a non-zero value,
8237 otherwise fallback to `keyboard_map'.
8238
99fadbaa 82392008-02-04 Bean <bean123ch@gmail.com>
8240
8241 * Makefile.in (enable_grub_fstest): New variable.
8242
8243 * conf/common.rmk (grub_fstest_init.lst): New rule.
8244 (grub_fstest_init.h): Likewise.
8245 (grub_fstest_init.c): Likewise.
8246 (util/grub-fstest.c_DEPENDENCIES): New variable.
8247 (grub_fstest_SOURCES): Likewise.
8248
8249 * configure.ac (enable_grub_fstest): Check for --enable-grub-fstest.
8250
8251 * util/grub-fstest.c: New file.
8252
bf567c50 82532008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
8254
8255 Make grub-setup handle a separate root device.
f19dbdb7 8256
bf567c50 8257 * util/i386/pc/grub-setup.c (setup): Always open the root device,
8258 so that the root device can be compared with the destination
8259 device.
8260 When embedding the core image, if the root and destination devices
8261 are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to
8262 0xFF.
8263 When not embedding, set ROOT_DRIVE to 0xFF.
f19dbdb7 8264
9be6b98b 82652008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
8266
8267 Add support for having a grub directory in a different drive. This
8268 is still only the data handling part.
f19dbdb7 8269
9be6b98b 8270 * kern/i386/pc/startup.S (multiboot_trampoline): Set %dh to 0xFF.
8271 (codestart): Save %dh in GRUB_ROOT_DRIVE.
8272 (grub_root_drive): New variable.
8273
8274 * kern/i386/pc/init.c (make_install_device): Use GRUB_ROOT_DRIVE
8275 instead of GRUB_BOOT_DRIVE to construct a device name. Set
8276 GRUB_ROOT_DRIVE to GRUB_BOOT_DRIVE if it is 0xFF, otherwise use it
8277 as it was.
8278
8279 * include/grub/i386/pc/kernel.h (grub_root_drive): New prototype.
8280
8281 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_ROOT_DRIVE): New
8282 macro.
8283 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Set to 0x4f.
8284
8285 * boot/i386/pc/pxeboot.S (_start): Set %dh to 0xFF. For now, this
8286 is bogus, because PXE booting does not specify any drive
8287 correctly.
8288
8289 * boot/i386/pc/lnxboot.S (reg_edx): Set the second byte to 0xFF. I
8290 am not sure if this is really correct.
8291
8292 * boot/i386/pc/cdboot.S: Set %dh to 0xFF, because the root drive
8293 is always identical to the boot drive when booting from a CD.
8294
8295 * boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any
8296 longer.
8297 (root_drive): New variable.
8298 (real_start): Unconditionally set %dh to ROOT_DRIVE.
8299 (setup_sectors): Push %dx right after popping it, because %dh will
8300 be modified later.
8301 (copy_buffer): Restore %dx.
8302
e0ca0677 83032008-02-03 Robert Millan <rmh@aybabtu.com>
8304
8305 * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
8306 use `cdboot.img' for cdrom images.
8307
3b3f6629 83082008-02-03 Robert Millan <rmh@aybabtu.com>
8309
8310 * util/grub.d/00_header.in: Issue scripting commands for GRUB to
8311 only setup gfxterm when `font' command has succeeded.
8312
d42b3672 83132008-02-03 Robert Millan <rmh@aybabtu.com>
8314
8315 * loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS]
8316 (grub_rescue_cmd_multiboot_loader)
8317 (grub_rescue_cmd_module_loader): Enable multiboot1 calls.
8318
fa370ea6 83192008-02-03 Pavel Roskin <proski@gnu.org>
8320
e0c5dacb 8321 * kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop
fa370ea6 8322 %edx and %esi from stack only after grub_gate_a20() is called.
8323 grub_gate_a20() clobbers %edx.
8324
f2a76e1d 83252008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
8326
8327 * configure.ac (AC_INIT): Bumped to 1.96.
8328
8329 * DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c,
8330 commands/lspci.c,disk/memdisk.c, include/grub/pci.h,
8331 include/grub/i386/pc/pci.h, video/readers/jpeg.c, and
8332 video/readers/png.c.
8333
90fd32d1 83342008-02-03 Bean <bean123ch@gmail.com>
9be665dd 8335
8336 * conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img.
8337 (cdboot_img_SOURCES): New variable.
8338 (cdboot_img_ASFLAGS): New variable.
8339 (cdboot_img_LDFLAGS): New variable.
8340
8341 * boot/i386/pc/cdboot.S: New file.
8342
8343 * disk/i386/pc/biosdisk.c (cd_start): New variable.
8344 (cd_count): Likewise.
8345 (grub_biosdisk_get_drive): Add support for cd device.
8346 (grub_biosdisk_call_hook): Likewise.
8347 (grub_biosdisk_iterate): Likewise.
8348 (grub_biosdisk_open): Likewise.
8349 (GRUB_BIOSDISK_CDROM_RETRY_COUNT): New macro.
8350 (grub_biosdisk_rw): Support reading from cd device.
8351 (GRUB_MOD_INIT): Iterate cd devices.
8352
8353 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_FLAG_CDROM): New macro.
8354 (GRUB_BIOSDISK_MACHINE_CDROM_START): Likewise.
8355 (GRUB_BIOSDISK_MACHINE_CDROM_END): Likewise.
8356
8357 * kern/i386/pc/init.c (make_install_device): Check for cd device.
8358
4020aa53 83592008-02-02 Robert Millan <rmh@aybabtu.com>
8360
8361 * commands/read.c: New file.
8362 * conf/common.rmk (pkglib_MODULES): Add `commands/read.c'.
8363 (read_mod_SOURCES): New variable.
8364 (read_mod_CFLAGS): Likewise.
8365 (read_mod_LDFLAGS): Likewise.
8366
e03a1132 83672008-02-02 Robert Millan <rmh@aybabtu.com>
8368
8369 * normal/main.c (grub_normal_execute): Check for `menu->size' when
8370 determining whether menu has to be displayed.
8371
58c69220 83722008-02-02 Marco Gerards <marco@gnu.org>
8373
8374 * bus/pci.c: New file.
8375
8376 * include/grub/pci.h: Likewise.
8377
8378 * include/grub/i386/pc/pci.h: Likewise.
8379
8380 * commands/lspci.c: Likewise.
8381
8382 * conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and
8383 `lspci.mod'.
8384 (pci_mod_SOURCES): New variable.
8385 (pci_mod_CFLAGS): Likewise.
8386 (pci_mod_LDFLAGS): Likewise.
8387 (lspci_mod_SOURCES): Likewise.
8388 (lspci_mod_CFLAGS): Likewise.
f19dbdb7 8389 (lspci_mod_LDFLAGS): Likewise.
58c69220 8390
c004e1b4 83912008-02-02 Bean <bean123ch@gmail.com>
8392
8393 * fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
8394 (grub_ufs_get_file_block): Fix indirect block calculation problem.
8395
8396 * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk.
8397 (grub_xfs_btree_node): New structure.
8398 (grub_xfs_btree_root): New structure.
8399 (grub_xfs_inode): New members nblocks, extsize, nextents and btree.
8400 (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents.
8401 (GRUB_XFS_EXTENT_BLOCK): Likewise.
8402 (GRUB_XFS_EXTENT_SIZE): Likewise.
8403 (grub_xfs_read_block): Support btree format type.
8404 (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook.
8405 Use directory block as basic unit.
8406
8407 * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block.
8408
8409 * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
8410 __attribute__ ((__regparm__ (1))).
8411
f95562bf 84122008-02-01 Robert Millan <rmh@aybabtu.com>
8413
8414 Correct a mistake in previous commit.
8415
8416 * conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the
8417 top.
8418 (normal/command.c_DEPENDENCIES): New variable.
8419
7d31f41f 84202008-02-01 Robert Millan <rmh@aybabtu.com>
8421
8422 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the
8423 top.
8424 (normal/command.c_DEPENDENCIES): New variable.
8425 (grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables.
8426 * conf/i386-ieee1275.rmk: Likewise.
8427 * conf/i386-linuxbios.rmk: Likewise.
8428 * conf/i386-pc.rmk: Likewise.
8429 * conf/sparc64-ieee1275.rmk: Likewise.
8430 * conf/powerpc-ieee1275.rmk: Likewise.
8431 (grub_emu_SOURCES): Add `fs/fshelp.c'.
8432
8433 * genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it.
8434
60b6be74 84352008-02-01 Robert Millan <rmh@aybabtu.com>
8436
8437 * kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf()
8438 call at beginning of function.
8439
078522ab 84402008-01-31 Pavel Roskin <proski@gnu.org>
8441
8442 * util/powerpc/ieee1275/grub-mkrescue.in: New file.
d2c11005 8443 * conf/powerpc-ieee1275.rmk (bin_SCRIPTS): New variable.
8444 (grub_mkrescue_SOURCES): Likewise.
078522ab 8445 * DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in.
8446
ccaa8a5f 84472008-01-30 Robert Millan <rmh@aybabtu.com>
8448
8449 * conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'.
8450 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ...
8451 * conf/common.rmk (util/grub-probe.c_DEPENDENCIES)
8452 (grub_probe_SOURCES): ... to here.
8453
8454 * conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'.
8455 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove.
8456 * conf/i386-ieee1275.rmk: Likewise.
8457 * conf/i386-linuxbios.rmk: Likewise.
8458 * conf/powerpc-ieee1275.rmk: Likewise.
8459
ae5a9cd7 84602008-01-30 Tristan Gingold <gingold@free.fr>
8461
8462 * kern/rescue.c: Silently accept empty lines.
8463
70bc2ef2 84642008-01-29 Bean <bean123ch@gmail.com>
8465
8466 * boot/i386/pc/lnxboot.S (data_start): Code cleanup.
8467 (real_code_2): Code cleanup and change comment style.
8468 (move_memory): Avoid using 32-bit address mode.
8469
6a4d50ea 84702008-01-29 Bean <bean123ch@gmail.com>
8471
8472 * conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'.
8473 (png_mod_SOURCES): New variable.
8474 (png_mod_CFLAGS): Likewise.
8475 (png_mod_LDFLAGS): Likewise.
8476
8477 * video/readers/png.c: New file.
8478
11cc30ac 84792008-01-28 Robert Millan <rmh@aybabtu.com>
8480
8481 * include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro.
8482 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove
8483 `ifndef GRUB_MOD_GAP' hack.
8484 * util/elf/grub-mkimage.c (add_segments): Likewise.
8485
3abc589f 84862008-01-27 Robert Millan <rmh@aybabtu.com>
8487
8488 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip
8489 `GRUB_MOD_GAP' for platforms in which it's not defined.
962ca133 8490 * util/elf/grub-mkimage.c (add_segments): Likewise.
3abc589f 8491
e1907778 84922008-01-27 Robert Millan <rmh@aybabtu.com>
8493
8494 Get grub-emu to build again (including parallel builds).
8495
8496 * conf/i386-pc.rmk (util/grub-emu.c_DEPENDENCIES): Remove variable.
8497 Split into ...
8498 (util/grub-emu.c_DEPENDENCIES): ... this, ...
8499 (normal/execute.c_DEPENDENCIES): ... this, ...
8500 (grub-emu_DEPENDENCIES): ... and this.
8501
8502 * conf/i386-efi.rmk: Likewise.
8503 * conf/i386-linuxbios.rmk: Likewise.
8504 * conf/i386-ieee1275.rmk: Likewise.
8505 * conf/powerpc-ieee1275.rmk: Likewise.
8506 (grub_emu_SOURCES): Remove duplicated `kern/file.c'.
8507
2216b101 85082008-01-27 Robert Millan <rmh@aybabtu.com>
8509
8510 * NEWS: Add a few items.
8511
f75172d9 85122008-01-27 Robert Millan <rmh@aybabtu.com>
8513
8514 Fix parallel builds with grub-emu. Based on earlier commit for
8515 grub-probe and grub-setup.
8516
8517 * conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ...
8518 (util/grub-emu.c_DEPENDENCIES): ... this.
8519 * conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ...
8520 (util/grub-emu.c_DEPENDENCIES): ... this.
8521 * conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ...
8522 (util/grub-emu.c_DEPENDENCIES): ... this.
8523 * conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
8524 (util/grub-emu.c_DEPENDENCIES): ... this.
8525 * conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
8526 (util/grub-emu.c_DEPENDENCIES): ... this.
8527
3f51de77 85282008-01-27 Pavel Roskin <proski@gnu.org>
8529
8530 * include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
8531 to create a gap between _end and the modules added to the image
8532 with grub-mkrescue. That fixes "CLAIM failed" on PowerMAC.
8533 * kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
8534 * util/elf/grub-mkimage.c (add_segments): Likewise.
8535
2033f53e 85362008-01-26 Pavel Roskin <proski@gnu.org>
8537
8538 * kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
8539 just return an error.
8540
22da1f6f 85412008-01-26 Bean <bean123ch@gmail.com>
8542
8543 * fs/reiserfs.c (grub_fshelp_node): New member next_offset.
8544 (grub_reiserfs_get_item): Save offset of the next item.
8545 (grub_reiserfs_iterate_dir): Use next_offset to find next item.
8546
2a9525e6 85472008-01-25 Robert Millan <rmh@aybabtu.com>
8548
8549 * conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to
8550 make all filesystem sources appear together (possibly fixing omissions
8551 while at it).
8552 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
8553 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8554 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
8555 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8556
8557 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise. Additionally,
8558 add `kern/file.c'.
8559 * conf/i386-efi.rmk (grub_probe_SOURCES): Likewise.
8560 * conf/i386-ieee1275.rmk (grub_probe_SOURCES): Likewise.
8561 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Likewise.
8562 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Likewise.
8563
8564 * util/grub-probe.c: Include `<grub/file.h>' and `<sys/stat.h>'.
8565 (probe): Add a sanity check to make sure of our ability to read
8566 requested files when probing for filesystem type.
8567
8568 * genmk.rb: Update copyright year (2007).
8569
8570 * include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init)
8571 (grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init)
8572 (grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init)
8573 (grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init)
8574 (grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init)
8575 : Remove function prototypes.
8576
b95f71b5 85772008-01-25 Robert Millan <rmh@aybabtu.com>
8578
8579 Revert my previous commits (based on wrong assumption of how grub_errno
8580 works).
8581
fe6b695a 8582 * kern/disk.c (grub_disk_open): Stop resetting grub_errno.
b95f71b5 8583 * kern/file.c (grub_file_open): Likewise.
8584
d08bbb49 85852008-01-24 Pavel Roskin <proski@gnu.org>
8586
8587 * include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares
8588 that hang if GRUB tries to setup colors.
8589 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set
8590 colors for firmwares that don't support it.
8591 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag):
8592 Recognize Open Hack'Ware, set flags to work around its
8593 limitations.
8594
605e36ed 85952008-01-24 Robert Millan <rmh@aybabtu.com>
8596
8597 * kern/file.c (grub_file_open): Do not account previous failures of
8598 unrelated functions when grub_errno is checked for.
8599 Reported by Oleg Strikov.
8600
bac332a1 86012008-01-24 Bean <bean123ch@gmail.com>
8602
8603 * fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro.
8604 (grub_ufs_sblock): New member volume name.
8605 (grub_ufs_find_file): Fix string copy bug.
8606 (grub_ufs_label): Implement this function properly.
8607
8608 * fs/hfs.c (grub_hfs_cnid_type): New enum.
8609 (grub_hfs_iterate_records): Use the correct file number for extents
8610 and catalog file. Fix problem in next index calculation.
8611 (grub_hfs_find_node): Replace recursive function call with loop.
8612 (grub_hfs_iterate_dir): Replace recursive function call with loop.
8613
15c80c09 86142008-01-23 Robert Millan <rmh@aybabtu.com>
8615
8616 * include/grub/i386/ieee1275/loader.h: Include `<grub/types.h>',
8617 `<grub/symbol.h>' and `<grub/multiboot.h>'.
8618 (grub_multiboot2_real_boot): New function prototype.
8619
8620 * include/grub/i386/pc/memory.h: Include `<grub/machine/machine.h>'.
8621 [!GRUB_MACHINE_IEEE1275] (grub_lower_mem, grub_upper_mem): Disable.
8622
8623 * kern/i386/ieee1275/init.c (grub_os_area_addr)
8624 (grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables.
8625
305338fd 86262008-01-23 Robert Millan <rmh@aybabtu.com>
8627
8628 * kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with
8629 #ifdef'ed out grub_printf().
8630
3ea52685 86312008-01-23 Robert Millan <rmh@aybabtu.com>
8632
8633 * term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out
8634 grub_dprintf calls, since they make "debug=all" mode unusable.
8635 (grub_console_checkkey): Likewise.
8636
5882ae4b 86372008-01-23 Robert Millan <rmh@aybabtu.com>
8638
8639 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
8640 `term/i386/pc/at_keyboard.c'.
8641 (pkglib_MODULES): Add `serial.mod'.
8642 (serial_mod_SOURCES): New variable.
8643 (serial_mod_CFLAGS): Likewise.
8644 (serial_mod_LDFLAGS): Likewise.
8645
8646 * include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'. Remove
8647 `<grub/powerpc/ieee1275/console.h>'.
8648 (grub_keyboard_controller_init): New function prototype.
8649 (grub_console_checkkey): Likewise.
8650 (grub_console_getkey): Likewise.
8651
8652 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT
8653 keyboard on i386.
8654
8655 * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
8656 grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
8657
06ab5303 86582008-01-23 Robert Millan <rmh@aybabtu.com>
8659
8660 * kern/i386/pc/init.c (make_install_device): When memdisk image is
8661 present, "(memdisk)/boot/grub" becomes the default prefix.
8662
8663 * util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus
8664 a memdisk tarball with all the modules. Add --overlay=DIR option that
8665 allows users to overlay additional files into the image.
8666
dbb475a4 86672008-01-23 Robert Millan <rmh@aybabtu.com>
8668
8669 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h'
8670 and `machine/memory.h'.
8671 (pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'.
8672 (_multiboot_mod_SOURCES): New variable.
8673 (_multiboot_mod_CFLAGS): Likewise.
8674 (_multiboot_mod_LDFLAGS): Likewise.
8675 (multiboot_mod_SOURCES): Likewise.
8676 (multiboot_mod_CFLAGS): Likewise.
8677 (multiboot_mod_LDFLAGS): Likewise.
8678
8679 * include/grub/i386/ieee1275/loader.h: New file.
8680
8681 * include/grub/i386/ieee1275/machine.h: Likewise.
8682
8683 * include/grub/i386/ieee1275/memory.h: Likewise.
8684
8685 * include/grub/i386/pc/init.h (grub_os_area_addr): Remove (redundant)
8686 variable declaration.
8687 (grub_os_area_size): Likewise.
8688
8689 * kern/i386/ieee1275/init.c (grub_os_area_addr, grub_os_area_size)
8690 (grub_lower_mem, grub_upper_mem): New variables.
8691 (grub_stop_floppy): New function (just to make
8692 grub_multiboot2_real_boot() happy).
8693
8694 * kern/i386/ieee1275/startup.S: Include `<grub/machine/memory.h>',
8695 `<grub/cpu/linux.h>', `<multiboot.h>' and `<multiboot2.h>'.
8696 (grub_stop): New function.
8697 Include `"../realmode.S"' and `"../loader.S"'.
8698
8699 * loader/multiboot_loader.c: Include `<grub/machine/machine.h>'.
8700 Replace `__i386__' #ifdefs with `GRUB_MACHINE_PCBIOS'.
8701
8702 * loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386,
8703 rely on grub_multiboot2_real_boot() for final boot.
8704
25638629 87052008-01-22 Robert Millan <rmh@aybabtu.com>
8706
8707 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When
8708 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any
8709 device that doesn't look like an SD card.
8710 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
8711 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag.
8712 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect
8713 OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when
8714 found.
8715
9dad816d 87162008-01-22 Robert Millan <rmh@aybabtu.com>
8717
8718 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
8719 avoid claiming over our own code.
8720
34842f2d 87212008-01-22 Bean <bean123ch@gmail.com>
8722
8723 * conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
8724 (jpeg_mod_SOURCES): New variable.
8725 (jpeg_mod_CFLAGS): Likewise.
8726 (jpeg_mod_LDFLAGS): Likewise.
8727
8728 * video/readers/jpeg.c : New file.
8729
44023a28 87302008-01-22 Bean <bean123ch@gmail.com>
8731
8732 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
8733 there are no more items.
8734
bc2d8ac6 87352008-01-21 Robert Millan <rmh@aybabtu.com>
8736
8737 * kern/mm.c (grub_mm_init_region): Improve debug message.
8738
261bd4bc 87392008-01-21 Robert Millan <rmh@aybabtu.com>
8740
8741 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
8742 (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
8743 address.
8744 (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
8745 a C macro.
8746 * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
8747 Indicates start of upper memory.
8748 * util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
8749 (generate_image): Abort when image size is big enough to corrupt
8750 upper memory.
8751
8752 * include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
8753 (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
8754 * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
8755 instead of hardcoding 0xA0000.
8756 * video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
8757 (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
8758 instead of hardcoding 0xA0000.
8759
f970b55e 87602008-01-21 Robert Millan <rmh@aybabtu.com>
8761
8762 * disk/memdisk.c (memdisk_size): New variable.
8763 (grub_memdisk_open): Replace grub_arch_memdisk_size() call with
8764 `memdisk_size'.
8765 (grub_memdisk_init): Initialize `memdisk_size'. Reallocate memdisk
8766 image to dynamic memory.
8767 (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
8768 `memdisk_size'. Free memdisk block.
8769
1a8b0526 87702008-01-21 Robert Millan <rmh@aybabtu.com>
8771
8772 Fix detection of very small filesystems (like tar).
8773
8774 * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
8775 contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
8776 GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
8777 a problem with this disk).
8778
6e9b4aab 87792008-01-21 Robert Millan <rmh@aybabtu.com>
8780
8781 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
8782 on grub_biosdisk_rw_standard() error.
8783
0d8837b2 87842008-01-21 Robert Millan <rmh@aybabtu.com>
8785
8786 * include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
8787 recent changes.
8788 * kern/elf.c: Likewise.
8789 * kern/ieee1275/ieee1275.c: Likewise.
8790 * kern/powerpc/ieee1275/openfw.c: Likewise.
8791 * term/ieee1275/ofconsole.c: Likewise.
8792
ffd36e34 87932008-01-21 Robert Millan <rmh@aybabtu.com>
8794
8795 * include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.
8796
3f0093d0 8797 * include/grub/kernel.h (grub_arch_memdisk_addr)
8798 (grub_arch_memdisk_size): Moved from here ...
ffd36e34 8799
3f0093d0 8800 * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr)
8801 (grub_arch_memdisk_size): ... to here.
ffd36e34 8802
6c391b21 88032008-01-21 Robert Millan <rmh@aybabtu.com>
8804
8805 Mostly based on bugfix from Bean.
8806
8807 * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
8808 attribute with hook() parameter.
8809 (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
8810 declaration.
8811 (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
8812 attribute with hook() parameter.
8813 (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
8814 declaration.
8815
55a581dc 88162008-01-21 Robert Millan <rmh@aybabtu.com>
8817
8818 * conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
8819 (pkglib_MODULES): Add `memdisk.mod'.
8820 (memdisk_mod_SOURCES): New variable.
8821 (memdisk_mod_CFLAGS): Likewise.
8822 (memdisk_mod_LDFLAGS): Likewise.
8823
8824 * disk/memdisk.c: New file.
8825
8826 * include/grub/disk.h (grub_disk_dev_id): Add
8827 `GRUB_DISK_DEVICE_MEMDISK_ID'.
8828
8829 * include/grub/i386/pc/kernel.h
8830 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro.
8831 (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4.
8832 (grub_kernel_image_size): New variable declaration.
8833 (grub_total_module_size): Likewise.
8834 (grub_memdisk_image_size): Likewise.
8835
8836 * include/grub/i386/pc/memory.h
8837 (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro.
8838
8839 * include/grub/kernel.h: Include `<grub/symbol.h>'.
8840 (grub_arch_memdisk_addr): New variable declaration.
8841 (grub_arch_memdisk_size): Likewise.
8842
8843 * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function.
8844 (grub_arch_memdisk_size): Likewise.
8845
8846 * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable.
8847 (codestart): Replace hardcoded `0x100000' with
8848 `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro.
8849
8850 * util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
8851 (generate_image): Add `memdisk_path' parameter. When `memdisk_path' is
8852 not NULL, append the contents of the file it refers to, at the end of
8853 the compressed kernel image. Initialize `grub_memdisk_image_size'
8854 variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
8855 (options): Add "memdisk"|'m' option.
8856 (main): Parse --memdisk|-m option, and pass user-provided path as
8857 parameter to generate_image().
8858
3d7f54c9 88592008-01-20 Robert Millan <rmh@aybabtu.com>
8860
8861 * kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
8862 grub_dprintf() calls from here ...
8863 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.
8864
0bf74728 88652008-01-20 Robert Millan <rmh@aybabtu.com>
8866
8867 Fix detection of "real mode" when /options/real-mode? doesn't exist.
8868
8869 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
8870 declaration.
8871 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
8872 (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
8873 `GRUB_IEEE1275_FLAG_REAL_MODE'.
fe6b695a 8874 (cmain): Initialize `grub_ieee1275_mmu' (using /chosen/mmu integer
0bf74728 8875 property).
8876 * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
8877 `grub_ieee1275_mmu' rather than obtaining a handler on every call.
8878
33bf70a7 88792008-01-19 Robert Millan <rmh@aybabtu.com>
8880
fe6b695a 8881 Get rid of confusing function (superseded by
33bf70a7 8882 `grub_ieee1275_get_integer_property')
8883 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
8884 prototype.
8885 * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
8886 function.
8887 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
8888 grub_ieee1275_decode_int_4(), by obtaining integer properties directly
fe987087 8889 in native endianness from grub_ieee1275_get_integer_property().
33bf70a7 8890
e2da7d26 88912008-01-19 Robert Millan <rmh@aybabtu.com>
8892
8893 * kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
8894 command after "shut-down", since implementations differ on which
8895 the command for halt is.
8896
59f1fd8d 88972008-01-19 Robert Millan <rmh@aybabtu.com>
8898
8899 * include/grub/i386/linuxbios/console.h: Add header protection.
8900 (grub_keyboard_controller_init): New function prototype.
8901 * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
8902 (KEYBOARD_COMMAND_READ): Likewise.
8903 (KEYBOARD_COMMAND_WRITE): Likewise.
8904 (KEYBOARD_SCANCODE_SET1): Likewise.
8905 (grub_keyboard_controller_write): New function.
8906 (grub_keyboard_controller_read): Likewise.
8907 (grub_keyboard_controller_init): Likewise.
8908
8909 * term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
8910 (grub_console_init): On coreboot/LinuxBIOS, call
8911 grub_keyboard_controller_init().
8912
5f5a7c15 89132008-01-19 Robert Millan <rmh@aybabtu.com>
8914
8915 PowerPC changes provided by Pavel Roskin.
8916
8917 * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
8918 * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
8919 don't rely on cmain() doing it.
8920 * kern/i386/ieee1275/startup.S (_start): Store %eax in
8921 grub_ieee1275_entry_fn, don't rely on cmain() doing it.
8922
1210e168 89232008-01-16 Robert Millan <rmh@aybabtu.com>
8924
8925 * include/grub/i386/linuxbios/memory.h
8926 (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
8927 * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
8928 receive `table_header' as argument. Instead, probe for it in the
8929 known memory ranges where it can be present.
8930 (grub_available_iterate): Do not pass a fixed `table_header' address
8931 to grub_linuxbios_table_iterate().
8932
3d04eab8 89332008-01-15 Robert Millan <rmh@aybabtu.com>
8934
8935 * configure.ac: Add `i386-ieee1275' to the list of supported targets.
8936 * conf/i386-ieee1275.rmk: New file.
8937 * include/grub/i386/ieee1275/console.h: Likewise.
8938 * include/grub/i386/ieee1275/ieee1275.h: Likewise.
8939 * include/grub/i386/ieee1275/kernel.h: Likewise.
8940 * include/grub/i386/ieee1275/time.h: Likewise.
8941 * kern/i386/ieee1275/init.c: Likewise.
8942 * kern/i386/ieee1275/startup.S: Likewise.
8943
d1bc1b73 89442008-01-15 Robert Millan <rmh@aybabtu.com>
8945
8946 * kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
8947 when pointers are 32-bit (but still do set it to one when they are
8948 64-bit).
8949
66a65807 89502008-01-15 Robert Millan <rmh@aybabtu.com>
8951
8952 * include/grub/ieee1275/ieee1275.h
8953 (grub_ieee1275_get_integer_property): New function prototype.
8954
8955 * kern/ieee1275/ieee1275.c: Include `<grub/types.h>'.
8956 (grub_ieee1275_get_integer_property): New function. Wraps around
fe987087 8957 grub_ieee1275_get_property() to handle endianness.
66a65807 8958
8959 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
8960 grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
fe6b695a 8961 where appropriate.
66a65807 8962 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
8963 (grub_map): Likewise.
8964 * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.
8965
a83ccafd 89662008-01-15 Bean <bean123ch@gmail.com>
8967
8968 * normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
8969 (grub_script_execute_cmdline): Reset grub_errno.
8970
8971 * normal/main.c (read_config_file): Reset grub_errno.
8972
8973 * normal/parse.y (script_init): New.
8974 (script): Move function and menuentry here.
8975 (delimiter): New.
8976 (command): Add delimiter at the end of command.
8977 (commands): Adjust to match the new command.
8978 (commandblock): Remove grub_script_lexer_record_start.
f19dbdb7 8979 (menuentry): Add grub_script_lexer_record_start, use the new commands.
a83ccafd 8980 (if): Use the new commands.
8981
8982 * conf/common.rmk (pkgdata_MODULES): Add echo.mod.
8983
df6ecfc6 89842008-01-15 Robert Millan <rmh@aybabtu.com>
8985
8986 * normal/menu.c (run_menu): Move timeout message from here ...
8987 (print_timeout): ... to here.
8988 (run_menu): Use print_timeout() once during initial draw to print
8989 the whole message, and again in every clock tick to update only
8990 the number of seconds.
8991
87ae25eb 89922008-01-15 Robert Millan <rmh@aybabtu.com>
8993
8994 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
8995 actual size of `available' from grub_ieee1275_get_property(), and
8996 restrict parsing to that bound.
8997
47bf09a4 89982008-01-15 Christian Franke <franke@computer.org>
8999
9000 * util/grub-emu.c: Replace <argp.h> by <getopt.h>.
9001 (argp_program_version): Remove variable.
9002 (argp_program_bug_address): Likewise.
9003 (options): Convert from struct argp_option to struct option.
9004 (struct arguments): Remove.
9005 (parse_opt): Remove.
9006 (usage): New function.
9007 (main): Replace struct args members by simple variables.
9008 Replace argp_parse() by getopt_long().
9009 Add switch to evaluate options.
9010 Add missing "(...)" around root_dev in prefix string.
9011
c86f1469 90122008-01-14 Robert Millan <rmh@aybabtu.com>
9013
9014 * kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
9015 for grub_ieee1275_exit(), in order to improve portability.
9016
e622c559 90172008-01-14 Robert Millan <rmh@aybabtu.com>
9018
9019 * util/grub.d/10_linux.in (prefix): Define.
9020 (exec_prefix): Likewise. Both definitions are later used by `libdir'.
9021
44cb1ec8 90222008-01-13 Pavel Roskin <proski@gnu.org>
9023
9024 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
9025 grub_errno if no errors have been detected.
9026
1eb8c802 90272008-01-12 Robert Millan <rmh@aybabtu.com>
9028
9029 * include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
9030 (grub_util_get_dev_abstraction): New function prototype.
9031
9032 * util/getroot.c: Include `<grub/util/getroot.h>'
9033 (grub_util_get_grub_dev): Move detection of abstraction type to ...
9034 (grub_util_get_dev_abstraction): ... here (new function).
9035
9036 * util/grub-probe.c: Convert PRINT_* to an enum. Add
9037 `PRINT_ABSTRACTION'.
9038 (probe): Probe for abstraction type when requested.
9039 (main): Understand `--target=abstraction'.
9040
9041 * util/i386/efi/grub-install.in: Add abstraction module to core
9042 image when it is found to be necessary.
9043 * util/i386/pc/grub-install.in: Likewise.
9044 * util/powerpc/ieee1275/grub-install.in: Likewise.
9045
9046 * util/update-grub_lib.in (font_path): Return system path without
9047 converting to GRUB path.
9048 * util/update-grub.in: Convert system path returned by font_path()
9049 to a GRUB path. Use `grub-probe -t abstraction' to determine what
9050 abstraction module is needed for loading fonts (if any). Export
9051 that as `GRUB_PRELOAD_MODULES'.
9052 * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
9053 insmod commands).
9054
52bd3de9 90552008-01-12 Yoshinori K. Okuji <okuji@enbug.org>
9056
9057 Remove some unused code from reiserfs.
f19dbdb7 9058
52bd3de9 9059 * fs/reiserfs.c (struct grub_reiserfs_key)
9060 [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
9061 (struct grub_reiserfs_node_body): Removed.
9062 (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
9063 Likewise.
9064 (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
9065 Likewise.
9066 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
9067 Likewise.
9068 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
9069 Likewise.
9070 (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
9071 Likewise.
9072 (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
9073 Likewise.
9074 (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
9075 (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
9076 (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
9077
2f80039d 90782008-01-10 Robert Millan <rmh@aybabtu.com>
9079
9080 * util/update-grub_lib.in (grub_file_is_not_garbage): New function.
9081 Determines if a file is garbage left by packaging systems, etc.
9082 * util/update-grub.in: Use grub_file_is_not_garbage() as a condition
9083 for processing /etc/grub.d scripts.
9084 * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
9085 * util/grub.d/10_linux.in: Likewise. Use grub_file_is_not_garbage()
9086 as a condition for processing Linux images.
9087
87888032 90882008-01-10 Pavel Roskin <proski@gnu.org>
9089
9090 * include/grub/powerpc/libgcc.h (__ucmpdi2): New export. Needed
9091 to compile reiserfs.c on PowerPC.
9092
7e54fced 90932008-01-10 Robert Millan <rmh@aybabtu.com>
de9993e0 9094
9095 * kern/device.c (grub_device_iterate): Do not abort device iteration
9096 when one of the devices cannot be opened.
9097 * kern/disk.c (grub_disk_open): Do not account previous failures of
9098 unrelated functions when grub_errno is checked for.
9099
5aa541e6 91002008-01-08 Robert Millan <rmh@aybabtu.com>
9101
9102 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
9103 `! grub_linux_is_bzimage', change order of address comparison to make
9104 it more intuitive, and improve "too big zImage" error message.
9105
7076340d 91062008-01-08 Robert Millan <rmh@aybabtu.com>
9107
9108 * Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
9109 `$(update-grub_DATA)'.
9110 (distcheck): Fix race condition when invoking `$(MAKE)' on multiple
9111 targets.
9112
9ca70333 91132008-01-07 Robert Millan <rmh@aybabtu.com>
9114
9115 * boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
9116 which instruction is modified by grub-setup during installation
9117 (since it wasn't obvious by only looking at this file).
9118
38ccf575 91192008-01-07 Robert Millan <rmh@aybabtu.com>
9120
9121 * TODO: Rewrite. Just refer to the wiki and the BTS instead of
9122 listing actual TODO items.
9123
f5db4291 91242008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
9125
868967cf 9126 * fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
9127 correctly.
9128 (grub_reiserfs_get_key_offset): Likewise.
9129 (grub_reiserfs_set_key_offset): Likewise.
9130 (grub_reiserfs_set_key_type): Likewise.
fe6b695a 9131 (grub_reiserfs_iterate_dir): Return 1 if found, otherwise 0.
868967cf 9132
9133 (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
9134 better to remove the bitfield version completely.
f19dbdb7 9135
868967cf 91362008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 9137
f5db4291 9138 * fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
9139 allocated from the heap, due to the fshelp implementation.
9140 (grub_reiserfs_dir): Free NODE, due to the same reason.
9141
492e6d9d 91422008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
9143
9144 Mostly from Vincent Pelletier:
f19dbdb7 9145
492e6d9d 9146 * fs/reiserfs.c: New file.
f19dbdb7 9147
492e6d9d 9148 * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod.
9149 (reiserfs_mod_SOURCES): New variable.
9150 (reiserfs_mod_CFLAGS): Likewise.
9151 (reiserfs_mod_LDFLAGS): Likewise.
9152
9153 * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
9154 disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
9155 include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
9156 normal/color.c.
9157
9ce3e7c1 91582008-01-06 Robert Millan <rmh@aybabtu.com>
9159
9160 * normal/color.c: Remove `<grub/env.h>'.
9161
f3b58148 91622008-01-05 Jeroen Dekkers <jeroen@dekkers.cx>
9163
9164 * include/grub/normal.h: Include <grub/env.h>.
9165
7ac3bcfa 91662008-01-05 Robert Millan <rmh@aybabtu.com>
9167
9168 * util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
9169 usage example with `(hd0,1)'.
fb358190 9170 Reported by Samuel Thibault.
7ac3bcfa 9171
c8ee99d7 91722008-01-05 Robert Millan <rmh@aybabtu.com>
9173
9174 * kern/i386/loader.S (grub_linux_is_bzimage): New variable.
9175 (grub_linux_boot_zimage): Rename to ...
9176 (grub_linux_boot): ... this.
9177 (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
9178 (grub_linux_boot_zimage): Conditionalize zImage copy.
9179
9180 * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype.
9181 (grub_linux_boot_bzimage): Remove prototype.
9182 (grub_linux_boot_zimage): Rename to ...
9183 (grub_linux_boot): ... this.
9184
9185 * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
9186 (grub_linux_boot): Remove function.
9187
0ece25b1 91882008-01-05 Robert Millan <rmh@aybabtu.com>
9189
9190 * include/grub/normal.h (grub_env_write_color_normal): New prototype.
9191 (grub_env_write_color_highlight): Likewise.
9192 (grub_wait_after_message): Likewise.
9193
9194 * normal/color.c: New file.
9195
9196 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'.
9197 (normal_mod_DEPENDENCIES): Likewise.
9198
9199 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'.
9200 (normal_mod_DEPENDENCIES): Likewise.
9201
9202 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'.
9203 (normal_mod_DEPENDENCIES): Likewise.
9204
9205 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'.
9206 (normal_mod_DEPENDENCIES): Likewise.
9207
9208 * normal/menu_entry.c (run): Rely on grub_wait_after_message()
9209 for waiting after a message is printed.
9210 * normal/main.c (read_config_file): Likewise.
9211 (grub_normal_init): Register grub_env_write_color_normal() and
9212 grub_env_write_color_highlight() hooks. Mark `color_normal' and
9213 `color_highlight' variables as global.
9214
9215 * normal/menu.c (grub_wait_after_message): New function.
9216 (grub_color_menu_normal): New variable. Replaces ...
9217 (GRUB_COLOR_MENU_NORMAL): ... this macro.
9218 (grub_color_menu_highlight): New variable. Replaces ...
9219 (GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
9220 (draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
9221 `GRUB_TERM_COLOR_STANDARD'.
9222 (print_message): Use `grub_setcolorstate' to reload colors. Rename
9223 `normal_code' and `highlight_code' to `old_color_normal' and
9224 `old_color_highlight', respectively.
9225 (grub_menu_init_page): Update colors when drawing the menu, based on
9226 `menu_color_normal' and `menu_color_highlight' variables.
9227 (grub_menu_run): Rely on grub_wait_after_message() for waiting after
9228 a message is printed.
9229
182dd4e5 92302008-01-05 Robert Millan <rmh@aybabtu.com>
9231
9232 * kern/env.c (grub_env_context_open): Propagate hooks for global
9233 variables to new context.
9234
9235 * kern/main.c (grub_set_root_dev): Export `root' variable.
9236
ddf8f6ad 92372008-01-05 Robert Millan <rmh@aybabtu.com>
9238
9239 * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
fe6b695a 9240 discs unconditionally, since udev and others have options to provide
ddf8f6ad 9241 them.
9242
d8b43d9b 92432008-01-05 Robert Millan <rmh@aybabtu.com>
9244
9245 * normal/completion.c (iterate_dir): Skip `.' and `..' directories.
9246
2bff2de3 92472008-01-04 Christian Franke <franke@computer.org>
9248
9249 * kern/i386/pc/init.c (grub_machine_init): Fix evaluation
9250 of eisa_mmap.
9251
97eab917 92522008-01-03 Pavel Roskin <proski@gnu.org>
9253
9254 * kern/i386/linuxbios/init.c: Put "void" to all function
9255 declarations with no arguments.
9256 * kern/powerpc/ieee1275/init.c: Likewise.
9257 * term/i386/pc/at_keyboard.c: Likewise.
9258 * term/i386/pc/vga_text.c: Likewise.
9259 * util/grub-mkdevicemap.c: Likewise.
9260
b9416d00 92612008-01-02 Robert Millan <rmh@aybabtu.com>
9262
9263 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
9264 message when loaded image is out of bounds.
9265 (grub_multiboot_load_elf64): Likewise.
9266
92695df9 92672008-01-02 Pavel Roskin <proski@gnu.org>
9268
9269 * util/grub.d/10_linux.in: Try version without ".old" when
9270 looking for initrd. It's better to use initrd from the newer
9271 kernel of the same version than no initrd at all.
9272
d98d9cad 92732008-01-01 Robert Millan <rmh@aybabtu.com>
9274
9275 * util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.
9276
dbfdce36 92772008-01-01 Vesa Jaaskelainen <chaac@nic.fi>
9278
f19dbdb7 9279 * include/grub/video.h: Added grub_video_unmap_color and
dbfdce36 9280 grub_video_get_active_render_target.
9281 (grub_video_adapter): Added unmap_color and get_active_render_target.
9282
f19dbdb7 9283 * video/video.c: Added grub_video_unmap_color and
dbfdce36 9284 grub_video_get_active_render_target.
9285 (grub_video_get_info): Changed method to accept NULL pointer as an
9286 argument to allow detection of active video adapter.
9287
9288 * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as
9289 grub_video_vbe_unmap_color_int.
9290 Added grub_video_vbe_unmap_color and
9291 grub_video_vbe_get_active_render_target.
9292 (grub_video_vbe_adapter): Added unmap_color and
9293 get_active_render_target.
9294
f19dbdb7 9295 * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage
dbfdce36 9296 with grub_video_vbe_unmap_color_int.
9297
9298 * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
9299 (DEFAULT_NORMAL_COLOR): Likewise.
9300 (DEFAULT_HIGHLIGHT_COLOR) Likewise.
9301 (DEFAULT_FG_COLOR): Removed.
9302 (DEFAULT_BG_COLOR): Likewise.
9303 (DEFAULT_CURSOR_COLOR): Changed value.
9304 (grub_virtual_screen): Added standard_color_setting,
9305 normal_color_setting, highlight_color_setting and term_color.
9306 (grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
9307 (bitmap_width): Added.
9308 (bitmap_height): Likewise.
9309 (bitmap): Likewise.
9310 (set_term_color): Likewise.
9311 (grub_virtual_screen_setup): Changed to use new terminal coloring
9312 settings.
9313 (grub_gfxterm_init): Added init for bitmap.
9314 (grub_gfxterm_fini): Added destroy for bitmap.
9315 (redraw_screen_rect): Updated to use background bitmap and new
9316 terminal coloring.
9317 (scroll_up): Added optimization for case when there is no bitmap.
9318 (grub_gfxterm_cls): Fixed to use correct background color.
9319 (grub_virtual_screen_setcolorstate): Changed to use new terminal
9320 coloring.
9321 (grub_virtual_screen_setcolor): Likewise.
9322 (grub_virtual_screen_getcolor): Added.
9323 (grub_gfxterm_background_image_cmd): Likewise.
9324 (grub_video_term): Added setcolor and getcolor.
9325 (MOD_INIT): Added registration of background_image command.
9326 (MOD_TERM): Added unregistration for background_image command.
9327
c3c20931 93282007-12-30 Pavel Roskin <proski@gnu.org>
9329
9330 * loader/multiboot_loader.c: Fix multiboot command
9331 unregistration. Fix all typos in the word "multiboot".
9332
df266716 93332007-12-29 Pavel Roskin <proski@gnu.org>
94239199 9334
9335 * util/grub.d/10_linux.in: Refactor search for initrd. Add
9336 support for initrd names used in Fedora.
9337
fc6e896c 93382007-12-26 Bean <bean123ch@gmail.com>
9339
9340 * conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
9341 (cpio_mod_SOURCES): New variable.
9342 (cpio_mod_CFLAGS): Likewise.
9343 (cpio_mod_LDFLAGS): Likewise.
9344
9345 * fs/cpio.c: New file.
9346
9347 * conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c.
9348
9349 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
9350
9351 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
9352
9353 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
9354
533110ad 93552007-12-25 Robert Millan <rmh@aybabtu.com>
9356
9357 * include/grub/term.h (struct grub_term): Add `getcolor' function.
9358 (grub_getcolor): New function.
9359
9360 * kern/term.c (grub_getcolor): New function.
9361 * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
9362 (GRUB_COLOR_MENU_HIGHLIGHT): New macro.
9363 (print_entry): Set normal and highlight colors to
9364 `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
9365 respectively, before printing and restore them to old
9366 values afterwards.
9367 (grub_menu_init_page): Likewise. Fill an additional colored space
9368 that would otherwise be left blank.
9369
9370 * term/efi/console.c (grub_console_getcolor): New function.
9371 (struct grub_console_term.getcolor): New variable.
9372 * term/i386/pc/console.c (grub_console_getcolor): New function.
9373 (struct grub_console_term.getcolor): New variable.
9374 * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
9375 (struct grub_console_term.getcolor): New variable.
9376
9377 * term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
9378 (struct grub_console_term.setcolor): Remove variable.
9379 * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
9380 (struct grub_console_term.setcolor): Remove variable.
9381 * term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
9382 (struct grub_console_term.setcolor): Remove variable.
9383 * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
9384 (struct grub_console_term.setcolor): Remove variable.
9385
4931827f 93862007-12-25 Robert Millan <rmh@aybabtu.com>
9387
9388 * configure.ac: Search for possible unifont.hex locations, and
9389 define UNIFONT_HEX if found.
9390
9391 * Makefile.in (UNIFONT_HEX): Define variable.
9392 (DATA): Rename to ...
9393 (PKGLIB): ... this. Update all users.
9394 (PKGDATA): New variable.
9395 (pkgdata_IMAGES): Rename to ...
9396 (pkglib_IMAGES): ... this. Update all users.
9397 (pkgdata_MODULES): Rename to ...
9398 (pkglib_MODULES): ... this. Update all users.
9399 (pkgdata_PROGRAMS): Rename to ...
9400 (pkglib_PROGRAMS): ... this. Update all users.
9401 (pkgdata_DATA): Rename to ...
9402 (pkglib_DATA): ... this. Update all users.
9403 (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
9404 (unicode.pff, ascii.pff): New rules.
9405 (all-local): Add `$(PKGDATA)' dependency.
9406 (install-local): Process `$(PKGDATA)'.
9407
9408 * util/update-grub_lib.in (font_path): Search for *.pff files in
9409 a few more locations, including `${pkgdata}'.
9410
57e57e31 94112007-12-23 Robert Millan <rmh@aybabtu.com>
9412
9413 Patch from Bean <bean123ch@gmail.com>:
9414 * disk/loopback.c (grub_loopback_read): Add missing bit shift to
9415 `size'.
9416
4bc72aa9 94172007-12-21 Bean <bean123ch@gmail.com>
9418
9419 * conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
9420 (ntfscomp_mod_SOURCES): New variable.
9421 (ntfscomp_mod_CFLAGS): Likewise.
9422 (ntfscomp_mod_LDFLAGS): Likewise.
9423
9424 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c.
9425 (grub_probe_SOURCES): Likewise.
9426 (grub_emu_SOURCES): Likewise.
9427
9428 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
9429 (grub_emu_SOURCES): Likewise.
9430
9431 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
9432 (grub_emu_SOURCES): Likewise.
9433
9434 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
9435 (grub_emu_SOURCES): Likewise.
9436
9437 * fs/ntfs.c (grub_ntfscomp_func): New variable.
9438 (read_run_list): Renamed to grub_ntfs_read_run_list.
9439 (decomp_nextvcn): Moved to ntfscomp.c.
9440 (decomp_getch): Likewise.
9441 (decomp_get16): Likewise.
9442 (decomp_block): Likewise.
9443 (read_block): Likewise.
9444 (read_data): Partially moved to ntfscomp.c.
9445 (fixup): Change unsigned to grub_uint16_t.
9446 (read_mft): Change unsigned long to grub_uint32_t.
9447 (read_attr): Likewise.
9448 (read_data): Likewise.
9449 (read_run_data): Likewise.
9450 (read_run_list): Likewise.
9451 (read_mft): Likewise.
9452
9453 * fs/ntfscomp.c: New file.
9454
9455 * include/grub/ntfs.h: New file.
9456
af680a87 94572007-12-16 Robert Millan <rmh@aybabtu.com>
9458
9459 * util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
9460 IDE disk check, since Linux is known to support 20 IDE disks.
9461 Reported by Colin Watson.
9462
84be7599 94632007-12-15 Bean <bean123ch@gmail.com>
9464
9465 * conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
9466 (lnxboot_img_SOURCES): New variable.
9467 (lnxboot_img_ASFLAGS): Likewise.
9468 (lnxboot_img_LDFLAGS): Likewise.
9469
9470 * boot/i386/pc/lnxboot.S: New file.
9471
6af9db01 94722007-11-24 Pavel Roskin <proski@gnu.org>
9473
9474 * configure.ac: Test if '--build-id=none' is supported by the
9475 linker. If yes, add it to TARGET_LDFLAGS. Build ID causes
9476 objcopy to generate incorrect binary files (binutils
9477 2.17.50.0.18-1 as shipped by Fedora 8).
9478 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
9479 linking, so that build ID doesn't break the test.
9480
7361cfe6 94812007-11-24 Pavel Roskin <proski@gnu.org>
9482
9483 * include/grub/i386/time.h: use "void" in the argument list
9484 of grub_cpu_idle().
9485 * include/grub/powerpc/time.h: Likewise.
9486 * include/grub/sparc64/time.h: Likewise.
9487
1593e10c 94882007-11-18 Christian Franke <franke@computer.org>
9489
9490 * util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
9491 now return control chars instead of GRUB_CONSOLE_KEY_* constants.
9492 This fixes the problem that function keys did not work in grub-emu.
9493
3b8db1a8 94942007-11-18 Christian Franke <franke@computer.org>
9495
9496 * disk/host.c (grub_host_open): Remove attribute unused from
9497 name parameter. Add check for "host". This fixes the problem
9498 that grub-emu does not find partitions.
9499
2e29408d 95002007-11-18 Christian Franke <franke@computer.org>
9501
9502 * util/hostfs.c (is_dir): New function.
9503 (grub_hostfs_dir): Handle missing dirent.d_type case.
9504 (grub_hostfs_read): Add missing fseek().
9505 (grub_hostfs_label): Clear label pointer. This fixes a crash
9506 of grub-emu on "ls (host)".
9507
398cd047 95082007-11-18 Christian Franke <franke@computer.org>
9509
9510 * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
9511 Add attribute packed, gcc 3.4.4 on Cygwin aligns this
9512 to 64 bit boundary by default.
9513
c405c391 95142007-11-18 Bean <bean123ch@gmail.com>
9515
9516 * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
9517 (hexdump_mod_SOURCES): New variable.
9518 (hexdump_mod_CFLAGS): Likewise.
9519 (hexdump_mod_LDFLAGS): Likewise.
f19dbdb7 9520
c405c391 9521 * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.
9522
9523 * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.
9524
9525 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.
9526
9527 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.
9528
9529 * include/grub/hexdump.h: New file.
9530
9531 * commands/hexdump.c: New file.
9532
5cced7fd 95332007-11-10 Robert Millan <rmh@aybabtu.com>
9534
9535 * commands/i386/pc/play.c (beep_off): Switch order of arguments
9536 in grub_outb() calls.
9537 (beep_on): Likewise.
9538
8b714eb0 95392007-11-10 Christian Franke <franke@computer.org>
9540
9541 * normal/menu.c (run_menu): Check for empty menu to avoid crash.
9542 (grub_menu_run): Likewise.
9543
ce0f1839 95442007-11-10 Robert Millan <rmh@aybabtu.com>
9545
9546 * include/grub/i386/efi/machine.h: New file.
9547 * include/grub/i386/linuxbios/machine.h: Likewise.
9548 * include/grub/i386/pc/machine.h: Likewise.
9549 * include/grub/powerpc/ieee1275/machine.h: Likewise.
9550 * include/grub/sparc64/ieee1275/machine.h: Likewise.
9551
9552 * term/i386/pc/serial.c: Include <grub/machine/machine.h>.
9553 (serial_hw_io_addr): New variable.
9554 (serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
9555 instead of `(unsigned short *) 0x400'.
9556
270c237d 95572007-11-10 Bean <bean123ch@gmail.com>
9558
9559 * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
9560
a87783bf 95612007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
9562
9563 * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
9564 (vga_mod_SOURCES): Added.
9565 (vga_mod_CFLAGS): Likewise.
9566 (vga_mod_LDFLAGS): Likewise.
9567
9568 * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
9569 grub_outb() calls.
9570 (set_map_mask): Likewise.
9571 (set_read_map): Likewise.
9572 (set_read_address): Likewise.
9573 (vga_font): Removed variable.
9574 (get_vga_glyph): Removed function.
9575 (invalidate_char): Likewise.
9576 (write_char): Changed to use grub_font_get_glyph() for font
9577 information.
9578 (grub_vga_putchar): Likewise.
9579 (grub_vga_getcharwidth): Likewise.
9580
6433b448 95812007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
9582
9583 * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
9584 flags.
9585 (pxeboot_img_LDFLAGS): Likewise.
9586 (diskboot_img_LDFLAGS): Likewise.
9587 (kernel_img_LDFLAGS): Likewise.
9588
49178511 95892007-11-06 Robert Millan <rmh@aybabtu.com>
9590
9591 * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
9592 in grub_outb() calls.
9593 (serial_hw_init): Likewise.
9594
53b052de 95952007-11-05 Robert Millan <rmh@aybabtu.com>
9596
9597 * util/update-grub.in: Allow files in ${update_grub_dir} to contain
9598 spaces. Skip non-regular files.
9599
5ab33bba 96002007-11-05 Robert Millan <rmh@aybabtu.com>
9601
9602 * kern/disk.c (grub_disk_firmware_fini)
9603 (grub_disk_firmware_is_tainted): New variables.
9604
9605 * include/grub/disk.h (grub_disk_firmware_fini)
9606 (grub_disk_firmware_is_tainted): Likewise.
9607
9608 * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
9609 (grub_disk_biosdisk_fini): ... to here.
9610 (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
9611 (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
9612 is set. Register grub_disk_biosdisk_fini() in
9613 `grub_disk_firmware_fini'.
9614
9615 * disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
9616 (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
9617 Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
9618 to finish existing firmware disk interface.
9619
9620 * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
9621 (ata_mod_SOURCES): New variable.
9622 (ata_mod_CFLAGS): Likewise.
9623 (ata_mod_LDFLAGS): Likewise.
9624
0149ab7c 96252007-11-05 Robert Millan <rmh@aybabtu.com>
9626
9627 * disk/ata.c: Remove `<grub/machine/time.h>'. Include `<grub/time.h>'.
9628 (grub_ata_wait): Reimplement using grub_millisleep().
9629
9630 * include/grub/misc.h (grub_div_roundup): Fix parenthesization.
9631 * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
9632
be7ac41e 96332007-11-03 Marco Gerards <marco@gnu.org>
9634
9635 * term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
9636 (CRTC_ADDR_PORT): New macro.
9637 (CRTC_DATA_PORT): Likewise.
9638 (CRTC_CURSOR): Likewise.
9639 (CRTC_CURSOR_ADDR_HIGH): Likewise.
9640 (CRTC_CURSOR_ADDR_LOW): Likewise.
9641 (update_cursor): New function.
9642 (grub_console_real_putchar): Call `update_cursor'.
9643 (grub_console_gotoxy): Likewise.
9644 (grub_console_cls): Set the default color when clearing the
9645 screen.
9646 (grub_console_setcursor): Implemented.
9647
bb06ab2e 96482007-11-03 Marco Gerards <marco@gnu.org>
9649
9650 * disk/ata.c (grub_ata_pio_read): Don't wait for the command to
9651 become activate.
9652 (grub_ata_pio_write): Likewise.
9653
9654 (grub_atapi_identify): Wait after issuing an ATA command.
9655 (grub_atapi_packet): Likewise.
9656 (grub_ata_identify): Likewise.
9657 (grub_ata_readwrite): Likewise.
9658
cf8f780b 96592007-11-03 Marco Gerards <marco@gnu.org>
9660
9661 * disk/ata.c (grub_ata_pio_read): Detect and return the error code.
9662 (grub_ata_pio_write): Likewise.
9663 (grub_ata_readwrite): Use `grub_error', instead of
9664 returning `grub_errno'.
9665
ed649e54 96662007-11-03 Marco Gerards <marco@gnu.org>
9667
9668 * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
9669 grub_ata_pio_write once for every single sector, instead of for
9670 multiple sectors.
9671
ca25d8f0 96722007-10-31 Robert Millan <rmh@aybabtu.com>
9673
9674 * configure.ac: Add `i386-linuxbios' to the list of supported targets.
9675
9676 * conf/i386-linuxbios.rmk: New file.
9677
9678 * kern/i386/pc/hardware.c: Likewise.
9679 * term/i386/pc/at_keyboard.c: Likewise.
9680 * term/i386/pc/vga_text.c: Likewise.
9681
9682 * include/grub/i386/linuxbios/boot.h: Likewise.
9683 * include/grub/i386/linuxbios/console.h: Likewise.
9684 * include/grub/i386/linuxbios/init.h: Likewise.
9685 * include/grub/i386/linuxbios/kernel.h: Likewise.
9686 * include/grub/i386/linuxbios/loader.h: Likewise.
9687 * include/grub/i386/linuxbios/memory.h: Likewise.
9688 * include/grub/i386/linuxbios/serial.h: Likewise.
9689 * include/grub/i386/linuxbios/time.h: Likewise.
9690
9691 * kern/i386/linuxbios/init.c: Likewise.
9692 * kern/i386/linuxbios/startup.S: Likewise.
9693 * kern/i386/linuxbios/table.c: Likewise.
9694
e911ecc1 96952007-10-31 Marco Gerards <marco@gnu.org>
9696
9697 * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
9698 (ata_mod_SOURCES): New variable.
9699 (ata_mod_CFLAGS): Likewise.
9700 (ata_mod_LDFLAGS): Likewise.
9701
9702 * disk/ata.c: New file.
9703
9704 * include/grub/disk.h (grub_disk_dev_id): Add
9705 `GRUB_DISK_DEV_ATA_ID'.
f19dbdb7 9706
7f66d0e0 97072007-10-31 Robert Millan <rmh@aybabtu.com>
9708
9709 * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
9710 * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.
9711
9712 * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
9713 * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.
9714
9715 * include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
9716 `<grub/types.h>'.
9717
9718 * loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
9719
5cd7dd46 97202007-10-27 Robert Millan <rmh@aybabtu.com>
9721
3236ca65 9722 * include/grub/types.h (ULONG_MAX): Define macro.
5cd7dd46 9723
2ebfc90f 97242007-10-22 Robert Millan <rmh@aybabtu.com>
9725
9726 * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'. Include
9727 `"../realmode.S"'.
9728 Remove `"kern/i386/loader.S"'. Include `"../loader.S"'.
9729
73fcb0f3 97302007-10-22 Robert Millan <rmh@aybabtu.com>
9731
9732 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
9733 (pkgdata_MODULES): Add `biosdisk.mod'.
9734 (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
9735 variables.
9736
9737 * disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
9738 (grub_biosdisk_init): Replace with ...
9739 (GRUB_MOD_INIT(biosdisk)): ... this.
9740 (grub_biosdisk_fini): Replace with ...
9741 (GRUB_MOD_FINI(biosdisk)): ... this.
9742
9743 * kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
9744 (grub_machine_init): Remove call to grub_biosdisk_init().
9745 (grub_machine_fini): Remove call to grub_machine_fini().
9746
9747 * util/i386/pc/grub-install.in (modules): Add `biosdisk'.
9748
3381d274 97492007-10-22 Robert Millan <rmh@aybabtu.com>
9750
9751 * include/grub/time.h: New file.
9752 * include/grub/i386/time.h: Likewise.
9753 * include/grub/powerpc/time.h: Likewise.
9754 * include/grub/sparc64/time.h: Likewise.
9755
9756 * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
9757 instances to ...
9758 (KERNEL_MACHINE_TIME_HEADER): ... this.
9759 * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
9760 instances to ...
9761 (KERNEL_MACHINE_TIME_HEADER): ... this.
9762 * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
9763 instances to ...
9764 (KERNEL_MACHINE_TIME_HEADER): ... this.
9765
9766 * kern/i386/efi/init.c: Include `<grub/time.h>'.
9767 (grub_millisleep): New function.
9768 * kern/i386/pc/init.c: Include `<grub/time.h>'.
9769 (grub_millisleep): New function.
9770 * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
9771 Remove `grub/machine/time.h' include.
9772 (grub_millisleep): New function.
9773 * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
9774 Remove `grub/machine/time.h' include.
9775 (grub_millisleep): New function.
9776
9777 * include/grub/misc.h (grub_div_roundup): New function.
9778
9779 * kern/misc.c: Include `<grub/time.h>'.
9780 (grub_millisleep_generic): New function.
9781
9782 * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
9783 Add `time.h'.
9784 * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
9785 Add `time.h'.
9786 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
9787 `machine/time.h'. Add `time.h'.
9788 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
9789
a39a0312 97902007-10-21 Robert Millan <rmh@aybabtu.com>
9791
9792 * include/grub/misc.h (grub_max): New function.
9793
2aad70e2 97942007-10-21 Robert Millan <rmh@aybabtu.com>
9795
9796 * util/misc.c (grub_util_info): Call fflush() before returning.
9797
54b71c4b 97982007-10-20 Robert Millan <rmh@aybabtu.com>
9799
9800 * genmk.rb (Image): Copy `extra_flags' from here ...
9801 (PModule): ... to here. Use it in `#{obj}: #{src}' rule.
9802
9803 * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
9804 to `argc' and `args' arguments.
9805
a979f513 98062007-10-17 Robert Millan <rmh@aybabtu.com>
9807
9808 * kern/i386/loader.S: New file.
9809
9810 * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
9811 * kern/i386/loader.S (grub_linux_prot_size)... to here.
9812 * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
9813 * kern/i386/loader.S (grub_linux_tmp_addr)... to here.
9814 * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
9815 * kern/i386/loader.S (grub_linux_real_addr)... to here.
9816 * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
9817 * kern/i386/loader.S (grub_linux_boot_zimage)... to here.
9818 * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
9819 * kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
9820 * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
9821 * kern/i386/loader.S (grub_multiboot_real_boot)... to here.
9822 * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
9823 * kern/i386/loader.S (grub_multiboot2_real_boot)... to here.
9824
9825 * kern/i386/realmode.S: New file.
9826
9827 * kern/i386/pc/startup.S (protstack): Moved from here ...
9828 * kern/i386/realmode.S (protstack)... to here.
9829 * kern/i386/pc/startup.S (gdt): Moved from here ...
9830 * kern/i386/realmode.S (gdt)... to here.
9831 * kern/i386/pc/startup.S (prot_to_real): Moved from here ...
9832 * kern/i386/realmode.S (prot_to_real)... to here.
9833
9834 * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
9835 `kern/i386/realmode.S'.
9836
825fc8fd 98372007-10-17 Robert Millan <rmh@aybabtu.com>
9838
9839 * include/grub/i386/loader.h: New file.
9840
9841 * include/grub/i386/pc/loader.h (grub_linux_prot_size)
9842 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
9843 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
9844 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
9845 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
9846 * include/grub/i386/loader.h (grub_linux_prot_size)
9847 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
9848 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
9849 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
9850 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.
9851
9852 * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
9853
e179b2f4 98542007-10-15 Robert Millan <rmh@aybabtu.com>
9855
9856 * normal/misc.c (grub_normal_print_device_info): Do not probe for
9857 filesystem when dev->disk is unset.
9858 Do probe for filesystem even when dev->disk->has_partitions is set.
9859 In case a filesystem is found, always report it.
9860 In case it isn't, if dev->disk->has_partitions is set, report that
9861 a partition table was found instead of reporting that no filesystem
9862 could be identified.
9863
5db82af6 98642007-10-12 Robert Millan <rmh@aybabtu.com>
9865
9866 * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
9867 to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.
9868
68f6ac74 9869 * include/grub/types.h (grub_host_to_target16): New macro.
9870 (grub_host_to_target32): Likewise.
9871 (grub_host_to_target64): Likewise.
9872 (grub_target_to_host16): Likewise.
9873 (grub_target_to_host32): Likewise.
9874 (grub_target_to_host64): Likewise.
5db82af6 9875
9876 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
9877 Renamed from to ...
9878 (GRUB_MOD_ALIGN): ...this. Update all users.
9879
68f6ac74 9880 * util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with
9881 grub_host_to_target32.
9882 Replace grub_be_to_cpu32 with grub_target_to_host32.
9883 (load_modules): Likewise.
9884 (add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16.
9885 Replace grub_be_to_cpu32 with grub_target_to_host32.
9886 Replace grub_cpu_to_be16 with grub_host_to_target16.
9887 Replace grub_cpu_to_be32 grub_host_to_target32.
5db82af6 9888
3cf497cc 98892007-10-12 Robert Millan <rmh@aybabtu.com>
9890
9891 * util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
9892 * util/elf/grub-mkimage.c: ... here.
9893
9894 * DISTLIST: Add `util/elf/grub-mkimage.c'. Remove
9895 `util/powerpc/ieee1275/grub-mkimage.c'.
9896
c8cc3692 98972007-10-07 Robert Millan <rmh@aybabtu.com>
adbc4c9d 9898
c8cc3692 9899 * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
9900 and make it easier to figure out.
9901 Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
9902 (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
9903 Do not avoid claiming a region above HEAP_MAX_ADDR if that would
9904 leave us with less than HEAP_MIN_SIZE total heap.
9905 Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
adbc4c9d 9906
5c58b791 99072007-10-03 Robert Millan <rmh@aybabtu.com>
9908
9909 * include/grub/i386/io.h: New file.
9910 * commands/i386/pc/play.c (inb): Removed.
9911 (outb): Removed.
9912 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
9913 with grub_outb().
afcd2ef8 9914 * term/i386/pc/serial.c (inb): Removed.
9915 (outb): Removed.
9916 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
9917 with grub_outb().
9918 * term/i386/pc/vga.c (inb): Removed.
9919 (outb): Removed.
9920 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
9921 with grub_outb().
5c58b791 9922
1a477ed6 99232007-10-02 Robert Millan <rmh@aybabtu.com>
9924
9925 * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
9926 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
9927 Reported by Marcin Kurek.
9928
6b5d80fa 99292007-09-07 Robert Millan <rmh@aybabtu.com>
9930
9931 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
9932 SmartFirmware version updates (as released by Sven Luther), and avoid
9933 setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
9934 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
9935 known broken.
9936
5618afbf 99372007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
9938
9939 From Hitoshi Ozeki:
9940 * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
9941 when merging two regions.
9942
6139dcd9 99432007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
9944
508e39ee 9945 * kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
9946 * normal/completion.c (grub_normal_do_completion): Likewise.
9947 Reported by Hitoshi Ozeki.
9948
99492007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 9950
6139dcd9 9951 Do not use devices at boot in chainloading.
f19dbdb7 9952
6139dcd9 9953 * loader/i386/pc/chainloader.c (boot_drive): New variable.
9954 (boot_part_addr): Likewise.
9955 (grub_chainloader_boot): Simply call grub_chainloader_real_boot
9956 with BOOT_DRIVE and BOOT_PART_ADDR.
9957 (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
9958 Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
9959
38da6516 99602007-08-29 Robert Millan <rmh@aybabtu.com>
9961
9962 Patch from Simon Peter <dn.tlp@gmx.net>:
9963 * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
9964 * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
9965 util/grub-probe.c_DEPENDENCIES. Replace grub-setup_DEPENDENCIES with
9966 util/i386/pc/grub-setup.c_DEPENDENCIES.
9967 * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
9968 util/grub-probe.c_DEPENDENCIES.
9969 * conf/powerpc-ieee1275.rmk: Likewise.
9970
29d0928c 99712007-08-28 Robert Millan <rmh@aybabtu.com>
9972
9973 * util/i386/get_disk_name.c: New. Implement grub_util_get_disk_name()
9974 to tell grub-mkdevicemap how to name devices.
9975 * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
9976 feature).
9977
9978 * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
9979 util/i386/get_disk_name.c.
9980 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
9981 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
9982 util/ieee1275/get_disk_name.c.
9983
9984 * include/grub/util/misc.h: grub_util_get_disk_name() declaration.
9985
9986 * DISTLIST: Add util/i386/get_disk_name.c and
9987 util/ieee1275/get_disk_name.c.
9988
9989 * util/grub-mkdevicemap.c: Replace device naming logic with
9990 grub_util_get_disk_name() calls.
9991
5a0d3cca 99922007-08-20 Robert Millan <rmh@aybabtu.com>
9993
9994 * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
9995 (so that it works for both plural and singular quantities).
9996
8b72db2f 99972007-08-05 Robert Millan <rmh@aybabtu.com>
9998
9999 * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
10000 so that [xz] isn't taken into account when determining order.
10001
352466bf 100022007-08-02 Marco Gerards <marco@gnu.org>
10003
10004 * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
10005 `include/multiboot2.h', `include/grub/elfload.h',
10006 `include/multiboot.h', `include/grub/multiboot.h',
10007 `include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
10008 `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
10009 `kern/elf.c', `loader/multiboot_loader.c',
10010 `loader/multiboot_loader_normal.c', `loader/multiboot2.c',
10011 `loader/i386/pc/multiboot2.c',
10012 `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
10013 `util/i386/pc/grub-mkrescue.in'. Remove
10014 `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
10015 `include/grub/i386/pc/util/biosdisk.h' and
10016 `include/grub/powerpc/ieee1275/multiboot.h'.
10017
8f096014 100182007-08-02 Bean <bean123ch@gmail.com>
10019
10020 * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
10021 (ntfs_mod_SOURCES): New variable.
10022 (ntfs_mod_CFLAGS): Likewise.
10023 (ntfs_mod_LDFLAGS): Likewise.
10024
10025 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c.
10026 (grub_probe_SOURCES): Likewise.
10027 (grub_emu_SOURCES): Likewise.
10028
10029 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
10030 (grub_emu_SOURCES): Likewise.
10031
10032 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
10033 (grub_emu_SOURCES): Likewise.
f19dbdb7 10034
8f096014 10035 * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.
10036
10037 * fs/ntfs.c: New file.
10038
9959f7db 100392007-08-02 Bean <bean123ch@gmail.com>
10040
10041 * disk.h (grub_disk): Use NESTED_FUNC_ATTR.
10042
10043 * file.h (grub_file): Likewise.
10044
10045 * fshelp.h (grub_fshelp_read_file): Likewise.
10046
10047 * util/i386/pc/grub-setup.c (setup): Likewise.
10048 (save_first_sector): Likewise.
10049 (save_blocklists): Likewise.
f19dbdb7 10050
9959f7db 10051 * fs/affs.c (grub_affs_read_file): Likewise.
10052
10053 * fs/ext2.c (grub_ext2_read_file): Likewise.
10054
10055 * fs/fat.c (grub_fat_read_data): Likewise.
10056
10057 * fs/fshelp.c (grub_fshelp_read_file): Likewise.
10058
10059 * fs/hfs.c (grub_hfs_read_file): Likewise.
10060
10061 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
10062
10063 * fs/jfs.c (grub_jfs_read_file): Likewise.
10064
10065 * fs/minix.c (grub_minix_read_file): Likewise.
10066
10067 * fs/sfs.c (grub_sfs_read_file): Likewise.
10068
10069 * fs/ufs.c (grub_ufs_read_file): Likewise.
f19dbdb7 10070
9959f7db 10071 * fs/xfs.c (grub_xfs_read_file): Likewise.
10072
10073 * command/blocklist.c (read_blocklist): Likewise.
10074 (print_blocklist): Likewise.
10075
0a203f83 100762007-08-02 Marco Gerards <marco@gnu.org>
10077
10078 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
10079 `util/hostfs.c'.
10080
10081 * disk/host.c: New file.
10082
10083 * util/hostfs.c: Likewise.
10084
10085 * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
10086 return `GRUB_ERR_BAD_FS'.
10087 * fs/sfs.c (grub_sfs_mount): Likewise.
10088 * fs/xfs.c (grub_xfs_mount): Likewise.
10089
10090 * include/grub/disk.h (enum grub_disk_dev_id): Add
10091 `GRUB_DISK_DEVICE_HOST_ID'.
10092
10093 * util/grub-emu.c (main): Initialize and de-initialize hostfs.
10094
e5dfe777 100952007-07-24 Jerone Young <jerone@gmail.com>
10096
f19dbdb7 10097 * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
e5dfe777 10098 modules for compilation.
10099 * conf/powerpc-ieee1275.rmk: Likewise.
10100
10101 * include/multiboot.h: Move multiboot definitions to one file. Rename
10102 many definitions to not get grub specific.
10103 * include/multiboot2.h: Create header with multiboot 2 definitions.
10104 * include/grub/multiboot.h: Header for grub specific function
10105 prototypes and definitions.
10106 * include/grub/multiboot2.h: Likewise.
10107 * include/grub/multiboot_loader.h: Likewise.
10108 * include/grub/i386/pc/multiboot.h: Removed.
10109 * include/grub/powerpc/ieee1275/multiboot.h: Removed.
10110
10111 * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
10112 and 2 to allow for one multiboot and module commands.
10113 * loader/multiboot2.c: Add multiboot2 functionality.
10114 * loader/i386/pc/multiboot.c: Modify for new multiboot header location
10115 and definition names.
10116 * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
10117 2 functions.
10118 * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
10119 ieee1275 specific multiboot2 code.
10120
10121 * kern/i386/pc/startup.S: Change headers and definition names for
10122 multiboot. Add function grub_multiboot2_real_boot for multiboot 2.
10123
daf0f0ba 101242007-07-22 Robert Millan <rmh@aybabtu.com>
10125
10126 * geninitheader.sh: Process file specified in first parameter rather
10127 than hardcoding grub_modules_init.lst.
fe6b695a 10128 * geninit.sh: Likewise. Also, construct header name dynamically rather
daf0f0ba 10129 than hardcoding grub_modules_init.h.
10130
10131 * conf/common.rmk: Rename grub_modules_init.[ch] files associated with
10132 grub-emu to grub_emu_init.[ch]. Add rules to build analogous
10133 grub_probe_init.[ch] and grub_setup_init.[ch].
10134
10135 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
10136 grub_modules_init.h with grub_emu_init.h.
10137 (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
10138 grub_probe_init.[ch] files.
10139 * conf/i386-efi.rmk: Likewise.
10140 * conf/i386-pc.rmk: Likewise.
10141 (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
10142 grub_setup_init.[ch] files.
10143
10144 * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
10145 * util/grub-probe.c: Include grub_probe_init.h. Use grub_init_all()
10146 to initialize modules rather than a list of hardcoded functions.
10147 * util/i386/pc/grub-setup.c: Include grub_setup_init.h. Use
10148 grub_init_all() to initialize modules rather than a list of hardcoded
10149 functions.
10150
54cdc1cc 101512007-07-22 Robert Millan <rmh@aybabtu.com>
10152
10153 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
10154 GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
10155
ad0686cc 101562007-07-22 Robert Millan <rmh@aybabtu.com>
10157
10158 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
10159 GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
10160 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
10161 flag when running on SmartFirmware.
10162 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
10163 "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
10164 was set.
10165
10166 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
10167 Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
10168 rather than decreasing it.
10169
10170 * util/i386/pc/grub-setup.c (setup): When embedding is required, but
10171 there's not enough space to do it, fail in the same way as when it
10172 can't be done because there are no partitions.
10173
10174 * util/powerpc/ieee1275/grub-install.in: Improve error message shown
10175 when nvsetenv failed.
10176
969c02ec 101772007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
10178
10179 * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
10180 because this rule is automatically generated.
10181 (grub-mkrescue): Removed for the same reason as above.
10182
5a79f472 101832007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
10184
10185 Migrate to GNU General Public License Version 3.
f19dbdb7 10186
5a79f472 10187 * COPYING: Replaced with the plain text version of GPLv3.
10188
10189 * config.guess: Updated from gnulib.
10190 * config.sub: Likewise.
10191
10192 * geninit.sh: Output a GPLv3 copyright notice.
10193 * geninitheader.sh: Likewise.
10194 * genmodsrc.sh: Likewise.
10195 * gensymlist.sh.in: Likewise.
10196
10197 * boot/i386/pc/boot.S: Upgraded to GPLv3.
10198 * boot/i386/pc/diskboot.S: Likewise.
10199 * boot/i386/pc/pxeboot.S: Likewise.
10200 * commands/blocklist.c: Likewise.
10201 * commands/boot.c: Likewise.
10202 * commands/cat.c: Likewise.
10203 * commands/cmp.c: Likewise.
10204 * commands/configfile.c: Likewise.
10205 * commands/echo.c: Likewise.
10206 * commands/help.c: Likewise.
10207 * commands/ls.c: Likewise.
10208 * commands/search.c: Likewise.
10209 * commands/terminal.c: Likewise.
10210 * commands/test.c: Likewise.
10211 * commands/videotest.c: Likewise.
10212 * commands/i386/cpuid.c: Likewise.
10213 * commands/i386/pc/halt.c: Likewise.
10214 * commands/i386/pc/play.c: Likewise.
10215 * commands/i386/pc/reboot.c: Likewise.
10216 * commands/i386/pc/vbeinfo.c: Likewise.
10217 * commands/i386/pc/vbetest.c: Likewise.
10218 * commands/ieee1275/halt.c: Likewise.
10219 * commands/ieee1275/reboot.c: Likewise.
10220 * commands/ieee1275/suspend.c: Likewise.
10221 * disk/loopback.c: Likewise.
10222 * disk/lvm.c: Likewise.
10223 * disk/raid.c: Likewise.
10224 * disk/efi/efidisk.c: Likewise.
10225 * disk/i386/pc/biosdisk.c: Likewise.
10226 * disk/ieee1275/ofdisk.c: Likewise.
10227 * font/manager.c: Likewise.
10228 * fs/affs.c: Likewise.
10229 * fs/ext2.c: Likewise.
10230 * fs/fat.c: Likewise.
10231 * fs/fshelp.c: Likewise.
10232 * fs/hfs.c: Likewise.
10233 * fs/hfsplus.c: Likewise.
10234 * fs/iso9660.c: Likewise.
10235 * fs/jfs.c: Likewise.
10236 * fs/minix.c: Likewise.
10237 * fs/sfs.c: Likewise.
10238 * fs/ufs.c: Likewise.
10239 * fs/xfs.c: Likewise.
10240 * hello/hello.c: Likewise.
10241 * include/grub/acorn_filecore.h: Likewise.
10242 * include/grub/arg.h: Likewise.
10243 * include/grub/bitmap.h: Likewise.
10244 * include/grub/boot.h: Likewise.
10245 * include/grub/cache.h: Likewise.
10246 * include/grub/device.h: Likewise.
10247 * include/grub/disk.h: Likewise.
10248 * include/grub/dl.h: Likewise.
10249 * include/grub/elfload.h: Likewise.
10250 * include/grub/env.h: Likewise.
10251 * include/grub/err.h: Likewise.
10252 * include/grub/file.h: Likewise.
10253 * include/grub/font.h: Likewise.
10254 * include/grub/fs.h: Likewise.
10255 * include/grub/fshelp.h: Likewise.
10256 * include/grub/gzio.h: Likewise.
10257 * include/grub/hfs.h: Likewise.
10258 * include/grub/kernel.h: Likewise.
10259 * include/grub/loader.h: Likewise.
10260 * include/grub/lvm.h: Likewise.
10261 * include/grub/misc.h: Likewise.
10262 * include/grub/mm.h: Likewise.
10263 * include/grub/net.h: Likewise.
10264 * include/grub/normal.h: Likewise.
10265 * include/grub/parser.h: Likewise.
10266 * include/grub/partition.h: Likewise.
10267 * include/grub/pc_partition.h: Likewise.
10268 * include/grub/raid.h: Likewise.
10269 * include/grub/rescue.h: Likewise.
10270 * include/grub/script.h: Likewise.
10271 * include/grub/setjmp.h: Likewise.
10272 * include/grub/symbol.h: Likewise.
10273 * include/grub/term.h: Likewise.
10274 * include/grub/terminfo.h: Likewise.
10275 * include/grub/tparm.h: Likewise.
10276 * include/grub/types.h: Likewise.
10277 * include/grub/video.h: Likewise.
10278 * include/grub/efi/api.h: Likewise.
10279 * include/grub/efi/chainloader.h: Likewise.
10280 * include/grub/efi/console.h: Likewise.
10281 * include/grub/efi/console_control.h: Likewise.
10282 * include/grub/efi/disk.h: Likewise.
10283 * include/grub/efi/efi.h: Likewise.
10284 * include/grub/efi/pe32.h: Likewise.
10285 * include/grub/efi/time.h: Likewise.
10286 * include/grub/i386/linux.h: Likewise.
10287 * include/grub/i386/setjmp.h: Likewise.
10288 * include/grub/i386/types.h: Likewise.
10289 * include/grub/i386/efi/kernel.h: Likewise.
10290 * include/grub/i386/efi/loader.h: Likewise.
10291 * include/grub/i386/efi/time.h: Likewise.
10292 * include/grub/i386/pc/biosdisk.h: Likewise.
10293 * include/grub/i386/pc/boot.h: Likewise.
10294 * include/grub/i386/pc/chainloader.h: Likewise.
10295 * include/grub/i386/pc/console.h: Likewise.
10296 * include/grub/i386/pc/init.h: Likewise.
10297 * include/grub/i386/pc/kernel.h: Likewise.
10298 * include/grub/i386/pc/loader.h: Likewise.
10299 * include/grub/i386/pc/memory.h: Likewise.
10300 * include/grub/i386/pc/multiboot.h: Likewise.
10301 * include/grub/i386/pc/serial.h: Likewise.
10302 * include/grub/i386/pc/time.h: Likewise.
10303 * include/grub/i386/pc/vbe.h: Likewise.
10304 * include/grub/i386/pc/vbeblit.h: Likewise.
10305 * include/grub/i386/pc/vbefill.h: Likewise.
10306 * include/grub/i386/pc/vbeutil.h: Likewise.
10307 * include/grub/i386/pc/vga.h: Likewise.
10308 * include/grub/ieee1275/ieee1275.h: Likewise.
10309 * include/grub/ieee1275/ofdisk.h: Likewise.
10310 * include/grub/powerpc/libgcc.h: Likewise.
10311 * include/grub/powerpc/setjmp.h: Likewise.
10312 * include/grub/powerpc/types.h: Likewise.
10313 * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
10314 * include/grub/powerpc/ieee1275/console.h: Likewise.
10315 * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
10316 * include/grub/powerpc/ieee1275/kernel.h: Likewise.
10317 * include/grub/powerpc/ieee1275/loader.h: Likewise.
10318 * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
10319 * include/grub/powerpc/ieee1275/time.h: Likewise.
10320 * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
10321 * include/grub/sparc64/libgcc.h: Likewise.
10322 * include/grub/sparc64/setjmp.h: Likewise.
10323 * include/grub/sparc64/types.h: Likewise.
10324 * include/grub/sparc64/ieee1275/console.h: Likewise.
10325 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
10326 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
10327 * include/grub/sparc64/ieee1275/time.h: Likewise.
10328 * include/grub/util/biosdisk.h: Likewise.
10329 * include/grub/util/getroot.h: Likewise.
10330 * include/grub/util/lvm.h: Likewise.
10331 * include/grub/util/misc.h: Likewise.
10332 * include/grub/util/raid.h: Likewise.
10333 * include/grub/util/resolve.h: Likewise.
10334 * io/gzio.c: Likewise.
10335 * kern/device.c: Likewise.
10336 * kern/disk.c: Likewise.
10337 * kern/dl.c: Likewise.
10338 * kern/elf.c: Likewise.
10339 * kern/env.c: Likewise.
10340 * kern/err.c: Likewise.
10341 * kern/file.c: Likewise.
10342 * kern/fs.c: Likewise.
10343 * kern/loader.c: Likewise.
10344 * kern/main.c: Likewise.
10345 * kern/misc.c: Likewise.
10346 * kern/mm.c: Likewise.
10347 * kern/parser.c: Likewise.
10348 * kern/partition.c: Likewise.
10349 * kern/rescue.c: Likewise.
10350 * kern/term.c: Likewise.
10351 * kern/efi/efi.c: Likewise.
10352 * kern/efi/init.c: Likewise.
10353 * kern/efi/mm.c: Likewise.
10354 * kern/i386/dl.c: Likewise.
10355 * kern/i386/efi/init.c: Likewise.
10356 * kern/i386/efi/startup.S: Likewise.
10357 * kern/i386/pc/init.c: Likewise.
10358 * kern/i386/pc/lzo1x.S: Likewise.
10359 * kern/i386/pc/startup.S: Likewise.
10360 * kern/ieee1275/ieee1275.c: Likewise.
10361 * kern/powerpc/cache.S: Likewise.
10362 * kern/powerpc/dl.c: Likewise.
10363 * kern/powerpc/ieee1275/cmain.c: Likewise.
10364 * kern/powerpc/ieee1275/crt0.S: Likewise.
10365 * kern/powerpc/ieee1275/init.c: Likewise.
10366 * kern/powerpc/ieee1275/openfw.c: Likewise.
10367 * kern/sparc64/cache.S: Likewise.
10368 * kern/sparc64/dl.c: Likewise.
10369 * kern/sparc64/ieee1275/init.c: Likewise.
10370 * kern/sparc64/ieee1275/openfw.c: Likewise.
10371 * loader/efi/chainloader.c: Likewise.
10372 * loader/efi/chainloader_normal.c: Likewise.
10373 * loader/i386/efi/linux.c: Likewise.
10374 * loader/i386/efi/linux_normal.c: Likewise.
10375 * loader/i386/pc/chainloader.c: Likewise.
10376 * loader/i386/pc/chainloader_normal.c: Likewise.
10377 * loader/i386/pc/linux.c: Likewise.
10378 * loader/i386/pc/linux_normal.c: Likewise.
10379 * loader/i386/pc/multiboot.c: Likewise.
10380 * loader/i386/pc/multiboot_normal.c: Likewise.
10381 * loader/powerpc/ieee1275/linux.c: Likewise.
10382 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
10383 * normal/arg.c: Likewise.
10384 * normal/cmdline.c: Likewise.
10385 * normal/command.c: Likewise.
10386 * normal/completion.c: Likewise.
10387 * normal/execute.c: Likewise.
10388 * normal/function.c: Likewise.
10389 * normal/lexer.c: Likewise.
10390 * normal/main.c: Likewise.
10391 * normal/menu.c: Likewise.
10392 * normal/menu_entry.c: Likewise.
10393 * normal/misc.c: Likewise.
10394 * normal/parser.y: Likewise.
10395 * normal/script.c: Likewise.
10396 * normal/i386/setjmp.S: Likewise.
10397 * normal/powerpc/setjmp.S: Likewise.
10398 * normal/sparc64/setjmp.S: Likewise.
10399 * partmap/acorn.c: Likewise.
10400 * partmap/amiga.c: Likewise.
10401 * partmap/apple.c: Likewise.
10402 * partmap/gpt.c: Likewise.
10403 * partmap/pc.c: Likewise.
10404 * partmap/sun.c: Likewise.
10405 * term/gfxterm.c: Likewise.
10406 * term/terminfo.c: Likewise.
10407 * term/efi/console.c: Likewise.
10408 * term/i386/pc/console.c: Likewise.
10409 * term/i386/pc/serial.c: Likewise.
10410 * term/i386/pc/vesafb.c: Likewise.
10411 * term/i386/pc/vga.c: Likewise.
10412 * term/ieee1275/ofconsole.c: Likewise.
10413 * util/biosdisk.c: Likewise.
10414 * util/console.c: Likewise.
10415 * util/genmoddep.c: Likewise.
10416 * util/getroot.c: Likewise.
10417 * util/grub-emu.c: Likewise.
10418 * util/grub-mkdevicemap.c: Likewise.
10419 * util/grub-probe.c: Likewise.
10420 * util/lvm.c: Likewise.
10421 * util/misc.c: Likewise.
10422 * util/raid.c: Likewise.
10423 * util/resolve.c: Likewise.
10424 * util/update-grub.in: Likewise.
10425 * util/update-grub_lib.in: Likewise.
10426 * util/grub.d/00_header.in: Likewise.
10427 * util/grub.d/10_hurd.in: Likewise.
10428 * util/grub.d/10_linux.in: Likewise.
10429 * util/i386/efi/grub-install.in: Likewise.
10430 * util/i386/efi/grub-mkimage.c: Likewise.
10431 * util/i386/pc/grub-install.in: Likewise.
10432 * util/i386/pc/grub-mkimage.c: Likewise.
10433 * util/i386/pc/grub-mkrescue.in: Likewise.
10434 * util/i386/pc/grub-setup.c: Likewise.
10435 * util/i386/pc/misc.c: Likewise.
10436 * util/powerpc/ieee1275/grub-install.in: Likewise.
10437 * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
10438 * util/powerpc/ieee1275/misc.c: Likewise.
10439 * video/bitmap.c: Likewise.
10440 * video/video.c: Likewise.
10441 * video/i386/pc/vbe.c: Likewise.
10442 * video/i386/pc/vbeblit.c: Likewise.
10443 * video/i386/pc/vbefill.c: Likewise.
10444 * video/i386/pc/vbeutil.c: Likewise.
10445 * video/readers/tga.c: Likewise.
10446
3572d015 104472007-07-02 Robert Millan <rmh@aybabtu.com>
10448
10449 * conf/i386-efi.rmk: Replace obsolete reference to
10450 util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
10451 with util/getroot.c.
10452 * conf/powerpc-ieee1275.rmk: Likewise.
10453 * conf/sparc64-ieee1275.rmk: Likewise.
10454
10455 * util/grub-emu.c (main): Fix unchecked pointer handling.
10456
2c2a681b 104572007-07-02 Robert Millan <rmh@aybabtu.com>
10458
10459 * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
10460 invocation to fail, in order to support partition-less media.
10461
10462 * util/i386/pc/grub-install.in: Likewise.
10463
10464 * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
10465 which fs or partmap modules are needed (akin to its sister scripts).
10466
10467 Also use grub-probe to get rid of unportable /proc/mounts check.
10468
10469 Print the same informational message that the other scripts do, before
fe6b695a 10470 exiting.
2c2a681b 10471
6193defe 104722007-06-23 Robert Millan <rmh@aybabtu.com>
10473
fe6b695a 10474 * util/update-grub_lib.in (font_path): New function. Determine whether
6193defe 10475 a font file can be found and, if so, echo the GRUB path to it.
10476
10477 * util/update-grub.in: Handle multiple terminals depending on user
10478 input, platform availability and font file presence. Propagate
10479 variables of our findings to /etc/grub.d/ children.
10480
10481 * util/grub.d/00_header.in: Handle multiple terminals, based on
10482 environment setup by update-grub.
10483
eface1dc 104842007-06-23 Robert Millan <rmh@aybabtu.com>
10485
ba50d28f 10486 * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.
eface1dc 10487
bf697e28 104882007-06-21 Robert Millan <rmh@aybabtu.com>
10489
10490 * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
10491 indicate end of data section in kernel image.
10492 * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
10493 GRUB_KERNEL_MACHINE_DATA_END.
10494
10495 * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
10496 space for it.
10497 * kern/i386/efi/startup.S: Likewise.
10498
10499 * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
10500 during image generation. Implement --prefix option to override this
10501 patch.
10502 * util/i386/efi/grub-mkimage.c: Likewise.
10503
10504 * util/update-grub_lib.in (convert_system_path_to_grub_path): Split
10505 code to make path relative to its root into a separate function.
10506
10507 * util/i386/pc/grub-install.in: Use newly provided
10508 make_system_path_relative_to_its_root() to convert ${grubdir}, then
10509 pass the result to grub-install --prefix.
10510
baa574b4 105112007-06-13 Robert Millan <rmh@aybabtu.com>
10512
10513 * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
10514 DEFAULT_DEVICE_MAP.
10515 * util/grub-emu.c: Use above definitions from misc.h instead of
10516 defining them.
10517 * util/grub-mkdevicemap.c: Likewise.
10518 * util/i386/pc/grub-setup.c: Likewise.
10519 * util/grub-probe.c: Likewise.
10520 (probe): Abort with grub_util_error() when either
10521 grub_guess_root_device or grub_util_get_grub_dev fails.
10522
0215dcbf 105232007-06-12 Robert Millan <rmh@aybabtu.com>
10524
10525 * normal/command.c (grub_command_execute): Use NULL rather than 0 for
10526 "pager" assignment.
10527 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
10528 "pcdata".
10529 * util/grub-probe.c (probe): Likewise for "drive_name".
10530
8af2ab7b 105312007-06-11 Robert Millan <rmh@aybabtu.com>
10532
10533 * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
10534 not just the cdrom one.
10535
59d31694 105362007-06-11 Robert Millan <rmh@aybabtu.com>
10537
10538 * util/i386/pc/grub-mkrescue.in: Add "set -e".
10539 Add --pkglibdir=DIR option to override pkglibdir.
10540 Mention --image-type=TYPE in help output.
10541 Fix --grub-mkimage (it was a no-op).
fe6b695a 10542 Abort gracefully when no parameter is given.
59d31694 10543
7ee367e4 105442007-06-11 Robert Millan <rmh@aybabtu.com>
10545
10546 * util/i386/pc/grub-mkrescue.in: New file.
10547 * conf/i386-pc.rmk: Add its build declarations. Put it in bin_SCRIPTS.
10548 * Makefile.in: Handle bin_SCRIPTS.
10549
29b0ed46 105502007-06-10 Vesa Jaaskelainen <chaac@nic.fi>
10551
10552 * term/gfxterm.c (grub_gfxterm_init): Added support for specifying
10553 list of video modes.
10554
c0f90770 105552007-06-06 Robert Millan <rmh@aybabtu.com>
10556
10557 * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
10558 file doesn't exist, or if it is in a filesystem grub can't read.
10559
10560 * util/update-grub.in: Set fallback for GRUB_FS check to "unknown". Do
10561 not abort if GRUB_DRIVE could not be defined. Rearrange generated
10562 header comment to fit in 80 columns when the variables are resolved.
10563
10564 * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
10565 could be identified by update-grub. Remove redundant check for
fe6b695a 10566 unifont.pff existence (since convert_system_path_to_grub_path now
c0f90770 10567 handles that).
10568
fb36dc26 105692007-06-04 Robert Millan <rmh@aybabtu.com>
10570
10571 * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.
10572
10573 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.
10574
10575 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
10576
0c68c93e 105772007-06-04 Robert Millan <rmh@aybabtu.com>
10578
10579 * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.
10580
10581 * include/grub/partition.h: Declare grub_apple_partition_map_init and
10582 grub_apple_partition_map_fini.
10583
10584 * util/biosdisk.c
10585 (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
10586 to access >2 TiB disks).
10587
10588 Print disk->total_sectors with %llu instead of %lu, since this
10589 variable is always 64-bit (prevents wrong disk size from being displayed
10590 on either >2 TiB disk or big-endian CPU).
10591
10592 (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
10593 into a generic case that supports all (sane) partition maps.
10594
10595 Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
10596 breaks big-endian.
10597
10598 * util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
10599 and grub_apple_partition_map_fini() after that.
10600
0f23eb74 106012007-06-01 Robert Millan <rmh@aybabtu.com>
10602
10603 * util/update-grub.in: Export GRUB_CMDLINE_LINUX.
10604
10605 * util/grub.d/00_header.in: Only enable gfxterm when
10606 convert_system_path_to_grub_path() succeeds.
10607
42c71976 106082007-05-20 Robert Millan <rmh@aybabtu.com>
10609
10610 * util/update-grub_lib.in: New file.
10611 * DISTLIST: Add update-grub_lib.in.
10612 * conf/common.rmk: Generate update-grub_lib and install it in
10613 $(lib_DATA).
10614 * Makefile.in: Add install routine for $(lib_DATA).
10615
10616 * util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
10617 function provided by update-grub_lib to support arbitrary paths of
10618 unifont.pff.
10619 * util/update-grub.in: Use convert_system_path_to_grub_path() to
10620 initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
10621
5beb2291 106222007-05-19 Robert Millan <rmh@aybabtu.com>
10623
10624 * commands/i386/cpuid.c: New module.
10625 * DISTLIST: Add it.
10626 * conf/i386-efi.rmk: Enable cpuid.mod.
10627 * conf/i386-pc.rmk: Likewise.
10628
7262eca1 106292007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
10630
10631 * kern/disk.c (grub_disk_read): Check return value of
10632 grub_realloc().
10633
260ba823 106342007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
10635
10636 * util/getroot.c (grub_util_get_grub_dev): Support partitionable
10637 arrays.
10638 * disk/raid.c (grub_raid_open): Likewise.
10639
1ecb6cf2 106402007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
10641
10642 * util/biosdisk.c (linux_find_partition): Allocate real_dev on the
10643 stack instead of on the heap.
10644
10645 * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
10646 before doing a read on it.
10647
10648 * configure.ac: Only use -fno-stack-protector for the target
10649 environment.
f19dbdb7 10650
21c8cbb1 106512007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
10652
10653 * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
10654 __attribute_ ((unused)) to mode_type argument.
10655
10656 * util/getroot.c (grub_guess_root_device): Fix #endif.
f19dbdb7 10657
21c8cbb1 10658 * kern/misc.c (memcmp): Fix prototype.
10659
10660 * include/grub/partition.h [GRUB_UTIL]
10661 (grub_gpt_partition_map_init): Add prototype.
10662 (grub_gpt_partition_map_fini): Likewise.
10663
10664 * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
10665 at the right place.
10666
10667 * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
10668 (grub_fat_read_data): Likewise.
10669 (grub_fat_find_dir): Likewise.
10670
10671 * font/manager.c (find_glyph): Make table a const.
10672 (grub_font_get_glyph): Remove bitmap from if statement.
f19dbdb7 10673
849d55d3 106742007-05-16 Jeroen Dekkers <jeroen@dekkers.cx>
10675
10676 * util/getroot.c (grub_guess_root_device): Remove RAID and LVM
10677 code, first search for device in /dev/mapper, then in /dev.
10678 (grub_util_get_grub_dev): New function.
10679 * include/grub/util/getroot.h (grub_util_get_grub_dev): Add
10680 prototype.
10681 * util/grub-probe.c (probe): Remove check for RAID, call
10682 grub_util_get_grub_dev() instead of
10683 grub_util_biosdisk_get_grub_dev().
10684 * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
10685 grub_util_biosdisk_get_grub_dev().
10686 * util/i386/pc/grub-setup.c (main): Likewise.
10687
8fff7c2f 106882007-05-16 Robert Millan <rmh@aybabtu.com>
10689
10690 * DISTLIST: Update for the latest changes.
10691 * conf/i386-pc.rmk: Use the new paths for util/getroot.c,
10692 util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
10693 * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
10694 grub/util/biosdisk.h.
10695 * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
10696 grub/util/biosdisk.h.
10697
48e12b52 106982007-05-16 Robert Millan <rmh@aybabtu.com>
10699
10700 * util/grub.d/00_header.in: Set default gfxmode to `640x480'.
10701
46b9d128 107022007-05-16 Robert Millan <rmh@aybabtu.com>
10703
10704 * util/i386/efi/grub-install.in: New.
10705 * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
10706 newly added grub-install.
10707 * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
10708 include.
10709 * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
10710 grub/util/biosdisk.h.
10711 * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
10712 grub/util/biosdisk.h.
10713
2d1a40a9 107142007-05-16 Robert Millan <rmh@aybabtu.com>
10715
10716 * include/grub/i386/pc/util/biosdisk.h: Moved to ...
10717 * include/grub/util/biosdisk.h: ... here.
10718 * util/i386/pc/biosdisk.c: Moved to ...
10719 * util/biosdisk.c: ... here.
10720 * util/i386/pc/getroot.c: Moved to ...
10721 * util/getroot.c: ... here.
10722 * util/i386/pc/grub-mkdevicemap.c: Moved to ...
10723 * util/grub-mkdevicemap.c: ... here.
10724 * util/i386/pc/grub-probe.c: Moved to ...
10725 * util/grub-probe.c: ... here.
10726
9e26e3bc 107272007-05-15 Robert Millan <rmh@aybabtu.com>
10728
10729 * util/update-grub.in: Remove duplicated line in grub.cfg header
10730 message.
10731
57f96397 107322007-05-13 Robert Millan <rmh@aybabtu.com>
10733
10734 * util/update-grub.in: Fix a few assumptions about the devices holding
10735 /, /boot and /boot/grub being the same.
10736 * util/grub.d/00_header.in: Likewise.
10737 * util/grub.d/10_hurd.in: Likewise.
10738 * util/grub.d/10_linux.in: Likewise.
10739
10740 * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
10741 patterns. Use that to define the `.old' suffix as older than `'.
10742
10743 * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.
10744
10745 * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
10746 the grub.cfg header message.
10747
2e610d62 107482007-05-11 Robert Millan <rmh@aybabtu.com>
10749
10750 * util/update-grub.in: Create device.map if it doesn't already exist,
10751 before attempting to run grub-probe.
10752 Check for grub-probe and grub-mkdevicemap with the same code
10753 grub-install is using.
10754 Remove test mode.
10755
3f6a10ef 107562007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
10757
10758 * Makefile.in: Add the datarootdir autoconf variable.
10759
02e7b75e 107602007-05-09 Robert Millan <rmh@aybabtu.com>
10761
10762 * util/i386/pc/grub-probe.c (probe): When detecting partition map,
f19dbdb7 10763 fail gracefully if dev->disk->partition == NULL.
02e7b75e 10764
75f396cc 107652007-05-07 Robert Millan <rmh@aybabtu.com>
10766
10767 * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
10768 determine partition map module.
10769 * util/i386/pc/grub-install.in: Use this feature to decide which
10770 partition module to load, instead of hardcoding pc and gpt.
10771
da65cb36 107722007-05-07 Robert Millan <rmh@aybabtu.com>
10773
10774 * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
10775 source directory differs from build directory.
10776
b57d6a91 107772007-05-05 Robert Millan <rmh@aybabtu.com>
10778
10779 * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
10780 initialisation.
10781
509d00f1 107822007-05-05 Robert Millan <rmh@aybabtu.com>
10783
10784 * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
10785
c48f23ef 107862007-05-05 Robert Millan <rmh@aybabtu.com>
10787
10788 * util/grub.d/10_linux.in: Allow the administrator to insert Linux
10789 command-line arguments via ${GRUB_CMDLINE_LINUX}.
10790
20b97658 107912007-05-05 Robert Millan <rmh@aybabtu.com>
10792
10793 * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
10794 (grub_probe_SOURCES): Likewise.
10795 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
10796 GPT and initialize dos_part and bsd_part accordingly.
10797 * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
10798 install_bsd_part.
10799 (main): Activate gpt module for use during partition identification,
10800 and deactivate it afterwards.
10801 * util/i386/pc/grub-install.in: Add gpt module to core.img.
10802 * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
10803 partition identification, and deactivate it afterwards.
10804
99123174 108052007-05-05 Robert Millan <rmh@aybabtu.com>
10806
10807 * term/i386/pc/console.c (grub_console_fini): Call
10808 grub_term_set_current() before grub_term_unregister().
10809
ebd97f6e 108102007-05-04 Robert Millan <rmh@aybabtu.com>
10811
10812 * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
10813 util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
10814 * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS
10815 and update-grub_DATA.
10816 * conf/common.rmk: Build and install update-grub components.
10817 * conf/common.mk: Regenerate.
10818 * util/update-grub.in: New. Core of update-grub.
10819 * util/grub.d/00_header.in: New. Generates grub.cfg header.
10820 * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd.
10821 * util/grub.d/10_linux.in: New. Generates boot entries for Linux.
10822 * util/grub.d/README: New. Document grub.d directory layout.
10823
b06a264d 108242007-05-01 Robert Millan <rmh@aybabtu.com>
10825
10826 * util/grub-emu.c: Move initialization functions
10827 grub_util_biosdisk_init() and grub_init_all() before
10828 grub_util_biosdisk_get_grub_dev(), which relies on them.
10829
41f0050e 108302007-04-19 Robert Millan <rmh@aybabtu.com>
10831
10832 * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
10833 it is used later.
10834
04582bb3 108352007-04-18 Jerone Young <jerone@gmail.com>
10836
f19dbdb7 10837 * kernel/elf.c: Add missing parenthesis for conditional statement
04582bb3 10838 stanza.
10839
08db4632 108402007-04-10 Jerone Young <jerone@gmail.com>
49892fdf 10841
08db4632 10842 * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
10843 continue on and look for device node with real device name.
10844
801b76be 108452007-04-10 Jerone Young <jerone@gmail.com>
f19dbdb7 10846
fe6b695a 10847 * configure.ac: Add argument for autoconf to use transformation
1d543c3e 10848 ability.
10849 * Makefile.in: Add autoconf package transformation code.
10850 * util/i386/pc/grub-install.in: Likewise.
10851 * util/powerpc/ieee1275/grub-install.in: Likewise.
10852
6795c4e1 108532007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
10854
10855 * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
10856 (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
10857 (EXT2_REVISION): Likewise.
10858 (EXT2_INODE_SIZE): Likewise.
10859 (struct grub_ext2_block_group): Added a missing member
10860 "used_dirs".
10861 (grub_ext2_read_inode): Divide by the inode size in a superblock
10862 instead of 128 to obtain INODES_PER_BLOCK.
10863 Use the macro EXT2_INODE_SIZE instead of directly using
10864 SBLOCK->INODE_SIZE.
10865
d70af616 108662007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
10867
10868 * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
10869 superblock instead of the structure size to compute an
10870 offset. This fixes the problem that GRUB could not read a
10871 filesystem when inode size is different from 128-byte.
10872
3b801603 108732007-03-05 Marco Gerards <marco@gnu.org>
10874
10875 * normal/main.c (read_config_file): When "menu" is not set, create
10876 an initial context.
10877
4785bfe4 108782007-02-21 Hollis Blanchard <hollis@penguinppc.org>
10879
10880 * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
10881 (HEAP_LIMIT): New macro.
10882 (grub_claim_heap): Claim memory up to `heaplimit'.
10883
a0cbb023 108842007-02-21 Hollis Blanchard <hollis@penguinppc.org>
10885
10886 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
10887 * kern/powerpc/ieee1275/init.c (_end): Add declaration.
10888 (_start): Likewise.
10889 (grub_arch_modules_addr): Return address after `_end'.
10890 * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
10891 (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
10892 (add_segments): Calculate `_end' from phdr size and location.
10893 (ALIGN_UP): Moved to ...
10894 * include/grub/misc.h: here.
10895 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
10896 New macro.
10897 (GRUB_IEEE1275_MODULE_BASE): Removed.
10898
fd7d8eba 108992007-02-20 Hollis Blanchard <hollis@penguinppc.org>
10900
10901 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
10902 loop boundary.
10903
9b09e6fc 109042007-02-20 Hollis Blanchard <hollis@penguinppc.org>
10905
10906 * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
10907 All users updated.
10908 (grub_elf64_load_hook_t): Likewise.
10909 * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
10910 debug output.
10911
3ce27299 109122007-02-20 Hollis Blanchard <hollis@penguinppc.org>
10913
10914 * kern/mm.c: Update copyright.
10915 (grub_mm_debug): Correct syntax error.
10916 (grub_mm_dump_free): New function.
10917 (grub_debug_free): Call `grub_free'.
10918 * include/grub/mm.h: Update copyright.
10919 (grub_mm_dump_free): Add declaration.
10920
077d5fee 109212007-02-12 Hollis Blanchard <hollis@penguinppc.org>
10922
10923 * include/grub/ieee1275/ieee1275.h: Update copyright.
10924 * kern/powerpc/ieee1275/init.c: Likewise.
10925 * kern/powerpc/ieee1275/openfw.c: Likewise.
10926
10927 * loader/powerpc/ieee1275/linux.c: Likewise.
10928 * include/grub/elfload.h: Likewise.
10929 * kern/elf.c: Likewise.
10930 (grub_elf32_load): Pass `base' and `size' parameters. Update all
10931 callers.
10932 (grub_elf64_load): Likewise.
10933 (grub_elf32_load_segment): Move to a nested function.
10934 (grub_elf64_load_segment): Likewise.
10935
dc946850 109362007-02-12 Hollis Blanchard <hollis@penguinppc.org>
10937
10938 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
10939 prototype.
10940 * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
10941 (grub_heap_len): Likewise.
10942 (HEAP_SIZE): New macro.
10943 (grub_claim_heap): New function.
10944 (grub_machine_init): Don't claim heap directly. Call
10945 `grub_claim_heap'.
10946 * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
10947 (grub_available_iterate): New function.
10948
baa2a121 109492007-02-03 Thomas Schwinge <tschwinge@gnu.org>
10950
10951 * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
10952 * configure.ac: Use it for testing the HOST and TARGET compilers.
10953
4fe9862e 109542006-12-13 Thomas Schwinge <tschwinge@gnu.org>
10955
10956 * Makefile.in (enable_grub_emu): New variable.
10957 * configure.ac (--enable-grub-emu): New option.
10958 Do the checks for (n)curses only if `--enable-grub-emu' is requested.
10959 * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
10960 * conf/i386-pc.rmk: Likewise.
10961 * conf/powerpc-ieee1275.rmk: Likewise.
10962 * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
10963
a8aa5762 109642006-12-12 Marco Gerards <marco@gnu.org>
10965
10966 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
10967
10968 * kern/env.c (grub_env_unset): Don't free the member `value' when
10969 the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
10970 pointer.
10971
10972 * normal/main.c (current_menu): Removed.
10973 (free_menu): Unset the `menu' environment variable.
10974 (grub_normal_menu_addentry): Make use of the environment variable
10975 `menu', instead of using the global `current_menu'. Allocate
10976 memory for the sourcecode of this entry.
10977 (read_config_file): New argument `nested', changed all callers.
10978 Only in the case of a new context, initialize a new menu. Set the
10979 `menu' environment variable.
10980 (grub_normal_execute): Don't set and unset the environment
10981 variable `menu' here anymore. Only free the menu when leaving the
10982 context.
10983
10984 * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
10985 leak.
10986
957b3a3e 109872006-12-11 Marco Gerards <marco@gnu.org>
10988
10989 * normal/menu_entry.c (run): Fix off by one bug so the last line
10990 is executed. Move the loader check to outside the loop.
10991
ef875714 109922006-12-08 Hollis Blanchard <hollis@penguinppc.org>
10993
10994 * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
10995
4e739985 109962006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
10997
10998 * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
10999 the number of sectors. Reported by Andrey Shuvikov
11000 <mr_hyro@yahoo.com>.
f19dbdb7 11001
790707f2 110022006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
11003
11004 * kern/disk.c (grub_disk_read): When there is a read error, always
11005 try to read only the necessary data.
f19dbdb7 11006
790707f2 11007 * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
11008 disk/raid.c.
11009 * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
11010 prototype.
11011 [GRUB_UTIL] (grub_raid_fini): Likewise.
11012 [GRUB_UTIL] (grub_lvm_init): Likewise.
f19dbdb7 11013 [GRUB_UTIL] (grub_lvm_fini): Likewise.
790707f2 11014 * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
11015 RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
11016 (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
11017 and grub_raid_fini().
f19dbdb7 11018
03e58196 110192006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
11020
11021 * include/grub/types.h (__unused): Rename to UNUSED.
11022 * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
11023 (grub_elf64_size): Likewise.
f19dbdb7 11024
ae4f23bf 110252006-11-03 Hollis Blanchard <hollis@penguinppc.org>
11026
11027 * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
11028 grub_error_push and grub_error_pop in the error-handling path.
11029 (grub_elf32_load_segment): Only call grub_file_read with non-zero
11030 length.
11031
2166cc83 110322006-11-03 Hollis Blanchard <hollis@penguinppc.org>
11033
11034 * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
11035 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
11036 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
11037 (kernel_elf_SOURCES): Likewise.
11038 * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
11039 * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
11040 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
11041 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
11042 * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
11043 (elf_mod_SOURCES): New variable.
11044 (elf_mod_CFLAGS): Likewise.
11045 (elf_mod_LDFLAGS): Likewise.
11046 * include/grub/types.h (__unused): New macro.
11047 * include/grub/elfload.h: New file.
11048 * kern/elf.c: Likewise.
11049 * loader/powerpc/ieee1275/linux.c: Include elfload.h.
11050 (ELF32_LOADMASK): New macro.
11051 (ELF64_LOADMASK): Likewise.
11052 (vmlinux): Removed.
11053 (grub_linux_load32): New function.
11054 (grub_linux_load64): Likewise.
11055 (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
11056 Use grub_elf_t instead of grub_file_t.
11057
a09d5aa5 110582006-11-02 Hollis Blanchard <hollis@penguinppc.org>
11059
11060 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
11061 `catch_result' to struct set_color_args.
11062
d976fc51 110632006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
11064
11065 * normal/menu.c: Include grub/script.h.
11066 * normal/menu_entry.c: Likewise.
11067 * include/grub/normal.h: Do not include grub/script.h.
11068
67507549 110692006-10-27 Hollis Blanchard <hollis@penguinppc.org>
11070
11071 * kern/disk.c (grub_disk_read): Correct debug printf formatting.
11072
69203a99 110732006-10-27 Hollis Blanchard <hollis@penguinppc.org>
11074
11075 * kern/disk.c (grub_disk_open): Print debug messages when opening a
11076 disk.
11077 (grub_disk_close): Print debug messages when closing a disk.
11078 (grub_disk_read): Print debug messages when disk read fails.
11079 * kern/fs.c (grub_fs_probe): Print debug messages when detecting
11080 filesystem type.
11081 * kern/partition.c: Include misc.h.
11082 (grub_partition_iterate): Print debug messages when detecting
11083 partition type.
11084
e2b8278c 110852006-10-27 Hollis Blanchard <hollis@penguinppc.org>
11086
11087 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
11088 is negative.
11089 * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
11090
97b2f2ff 110912006-10-26 Hollis Blanchard <hollis@penguinppc.org>
11092
11093 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
11094 Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
11095
6555d655 110962006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
11097
11098 * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
11099 instead of sizeof(lv). Patch by Michael Guntsche.
11100
4d42b77f 111012006-10-18 Jeroen Dekkers <jeroen@dekkers.cx>
11102
11103 * disk/lvm.c: Rename VGS to VG_LIST.
11104 (grub_lvm_iterate): Change VGS->LV to VG-LV.
11105 (grub_lvm_open): Likewise.
11106 Thanks to Michael Guntsche for finding this bug.
11107
5d74d927 111082006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
11109
11110 * configure.ac (AC_INIT): Bumped to 1.95.
11111
a1bb27e4 111122006-10-14 Robert Millan <rmh@aybabtu.com>
11113
11114 * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
11115 with "/dev/.static/dev/md".
11116
e0994b8b 111172006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
11118
11119 * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
11120 DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
11121 DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
11122 DRIVE_NAME are always freed.
11123
11124 * util/i386/pc/biosdisk.c (make_device_name): Add one into
11125 DOS_PART, as a DOS partition is counted from one instead of zero
11126 now. Reported by Robert Millan.
11127
ddd5cee9 111282006-10-14 Robert Millan <rmh@aybabtu.com>
11129
11130 * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
11131 grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
11132 * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
11133 string returned by grub_guess_root_device.
11134 * util/i386/pc/grub-setup.c: Likewise.
11135 * util/i386/pc/grub-probefs.c: Likewise.
11136
11137 * util/i386/pc/grub-probefs.c: Rename to ...
11138 * util/i386/pc/grub-probe.c: ... this.
11139 * DISTLIST: Remove grub-probefs, add grub-probe.
11140 * conf/i386-efi.rmk: Likewise.
11141 * conf/i386-pc.rmk: Likewise.
11142 * util/i386/pc/grub-install.in: Likewise.
11143
11144 * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
11145 choose which information we want to print.
11146
2b002173 111472006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
11148
11149 * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
11150 include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
11151 include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
11152 include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
11153 video/readers/tga.c and video/i386/pc/vbeutil.c.
11154
111552006-10-14 Jeroen Dekkers <jeroen@dekkers.cx>
11156
11157 Added support for RAID and LVM.
f19dbdb7 11158
2b002173 11159 * disk/lvm.c: New file.
11160 * disk/raid.c: Likewise.
11161 * include/grub/lvm.h: Likewise.
f19dbdb7 11162 * include/grub/raid.h: Likewise.
2b002173 11163 * include/grub/util/lvm.h: Likewise.
11164 * include/grub/util/raid.h: Likewise.
11165 * util/lvm.c: Likewise.
11166 * util/raid.c: Likewise.
11167
11168 * include/grub/disk.h (grub_disk_dev_id): Add
11169 GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
11170 (grub_disk_get_size): New prototype.
11171 * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
11172 returns a partition.
11173 (grub_disk_get_size): New function.
f19dbdb7 11174
2b002173 11175 * kern/i386/pc/init.c (make_install_device): Copy the prefix
11176 verbatim if grub_install_dos_part is -2.
11177
11178 * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
11179 and LVM devices.
11180
11181 * util/i386/pc/grub-setup.c (setup): New argument
11182 MUST_EMBED. Force embedding of GRUB when the argument is
11183 true. Close FILE before returning.
11184 (main): Add support for RAID and LVM.
f19dbdb7 11185
2b002173 11186 * conf/common.rmk: Add RAID and LVM modules.
11187 * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
11188 util/lvm.c.
11189 (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
11190
11191 * kern/misc.c (grub_strstr): New function.
11192 * include/grub/misc.h (grub_strstr): New prototype.
11193
050548d0 111942006-10-10 Tristan Gingold <tristan.gingold@bull.net>
11195
11196 * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
11197
da849d2d 111982006-10-05 Tristan Gingold <tristan.gingold@bull.net>
11199
11200 * kern/misc.c (grub_strtoull): Guess the base only if not
11201 specified.
11202
97b2f2ff 112032006-10-01 Hollis Blanchard <hollis@penguinppc.org>
4f0acd39 11204
11205 * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
11206 PowerMac support.
11207
97b2f2ff 112082006-10-01 Hollis Blanchard <hollis@penguinppc.org>
fba51f48 11209
11210 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
11211
11212 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
11213 Remove `flags' argument. All callers changed.
11214 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
11215 (IEEE1275_IHANDLE_INVALID): New variable.
11216 (IEEE1275_CELL_INVALID): New variable.
11217 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
11218 grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
11219 grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
11220 grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
11221 grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
11222 codes from Open Firmware. All callers updated.
11223 (grub_ieee1275_next_property): Directly return Open Firmware return
11224 code.
11225 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
11226 Standardize error checking from `grub_ieee1275_get_property'.
11227 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
11228 `devalias' to `aliases'. Correct comments. Consolidate error paths.
11229
97b2f2ff 112302006-10-01 Hollis Blanchard <hollis@penguinppc.org>
cc6d3df3 11231
11232 * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
11233 `instance_to_package_args' to `instance_to_path_args'.
11234
11235 * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
11236 `grub_ieee1275_chosen'.
11237
11238 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
11239 `grub_ieee1275_interpret'.
11240
97b2f2ff 112412006-09-25 Hollis Blanchard <hollis@penguinppc.org>
02bb8acc 11242
11243 * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
11244
97b2f2ff 112452006-09-25 Hollis Blanchard <hollis@penguinppc.org>
663b72f0 11246
11247 * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
11248 (__cmpdi): Likewise.
11249
11250 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
11251 `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type
11252 `grub_ssize_t'.
11253
02bb8acc 11254 * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
663b72f0 11255
11256 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
11257 to type `grub_ssize_t'.
11258 (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
11259
7f9a8531 112602006-09-22 Marco Gerards <marco@gnu.org>
11261
11262 * normal/script.c (grub_script_create_cmdmenu): Skip leading
11263 newlines.
11264
b5ef1102 112652006-09-22 Marco Gerards <marco@gnu.org>
11266
11267 * commands/echo.c: New file.
11268
11269 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
11270
11271 * conf/common.rmk (echo_mod_SOURCES): New variable.
11272 (echo_mod_CFLAGS): Likewise.
11273 (echo_mod_LDFLAGS): Likewise.
11274
2cff3677 112752006-09-22 Marco Gerards <marco@gnu.org>
11276
11277 * normal/main.c (get_line): Malloc memory instead of using
11278 preallocated memory. Removed the arguments `cmdline' and
11279 `max_len'. Updated all callers.
11280
6ba4688b 112812006-09-22 Marco Gerards <marco@gnu.org>
11282
11283 * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
11284 (normal_mod_DEPENDENCIES): Likewise.
11285
11286 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
11287 (normal_mod_DEPENDENCIES): Likewise.
11288
11289 * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
11290
e02ac02c 112912006-09-22 Johan Rydberg <jrydberg@gnu.org>
11292
11293 * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
11294 programs.
11295 * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
11296 (normal_mod_DEPENDENCIES): Likewise.
11297 * conf/i386-pc.mk: Regenerate.
11298 * conf/i386-efi.mk: Likewise
11299 * conf/common.mk: Likewise.
11300 * conf/powerpc-ieee1275.mk: Likewise.
11301 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 11302
8d252e44 113032006-09-22 Robert Millan <rmh@aybabtu.com>
11304
11305 Sync with i386 version.
11306 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
11307 * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
11308
209bf7ac 113092006-09-21 Robert Millan <rmh@aybabtu.com>
11310
11311 Import from GRUB Legacy (lib/device.c):
11312 * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
11313 (init_device_map) [__linux__]: Add support for I2O devices.
11314
6b146090 113152006-09-14 Marco Gerards <marco@gnu.org>
11316
11317 * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
11318 `-melf_i386'.
11319
e38600a8 113202006-09-14 Robert Millan <rmh@aybabtu.com>
2952da5d 11321
11322 * util/i386/pc/grub-install.in: Skip menu.lst when removing
11323 /boot/grub/*.lst.
78fa1790 11324
2952da5d 11325 * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
6b146090 11326
2952da5d 11327 * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
11328 before adding it to device.map.
11329
01b82a64 113302006-08-15 Johan Rydberg <jrydberg@gnu.org>
11331
fe6b695a 11332 * genmk.rb: Let GCC generate dependencies the first time it
01b82a64 11333 compiles a file; using the -MD option.
11334 * conf/common.mk: Regenerate.
11335 * conf/i386-pc.mk: Likewise.
11336 * conf/i386-efi.mk: Likewise.
11337 * conf/powerpc-ieee1275.mk: Likewise.
11338 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 11339
1064790d 113402006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
11341
11342 Move the prototypes of grub_setjmp and grub_longjmp to
11343 cpu/setjmp.h, so that each architecture may specify different
11344 attributes.
f19dbdb7 11345
1064790d 11346 * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
11347 (grub_longjmp): Likewise.
11348 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
11349 (grub_longjmp): Likewise.
11350 * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
11351 (grub_longjmp): Likewise.
11352
11353 * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
11354 [!GRUB_UTIL] (grub_longjmp): Removed.
11355
29dda3ed 113562006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
11357
11358 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
11359 "color!" method does not return any value.
11360
ad2a06ed 113612006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
11362
11363 * include/grub/bitmap.h: New file.
11364
11365 * include/grub/i386/pc/vbeutil.h: Likewise.
11366
11367 * video/bitmap.c: Likewise.
11368
11369 * video/readers/tga.c: Likewise.
11370
11371 * video/i386/pc/vbeutil.c: Likewise.
11372
11373 * commands/videotest.c: Code cleanup and updated to reflect to new
11374 video API.
11375
11376 * term/gfxterm.c: Likewise.
11377
11378 * video/video.c: Likewise.
11379
11380 * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
11381 (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
11382 (bitmap_mod_SOURCES): New entry.
11383 (bitmap_mod_CFLAGS): Likewise.
11384 (bitmap_mod_LDFLAGS): Likewise.
11385 (tga_mod_SOURCES): Likewise.
11386 (tga_mod_CFLAGS): Likewise.
11387 (tga_mod_LDFLAGS): Likewise.
11388
11389 * include/grub/video.h (grub_video_blit_operators): New enum type.
11390 (grub_video_render_target): Changed as forward declaration and moved
11391 actual definition to be video driver specific.
11392 (grub_video_adapter.blit_bitmap): Added blitting operator.
11393 (grub_video_adapter.blit_render_target): Likewise.
11394 (grub_video_blit_bitmap): Likewise.
11395 (grub_video_blit_render_target): Likewise.
11396
11397 * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
11398 driver specific render target definition.
11399 (grub_video_vbe_map_rgba): Added driver internal helper.
11400 (grub_video_vbe_unmap_color): Updated to use
11401 grub_video_i386_vbeblit_info.
11402 (grub_video_vbe_get_video_ptr): Likewise.
11403
11404 * include/grub/i386/pc/vbeblit.h
11405 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
11406 grub_video_i386_vbeblit_info.
11407 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
11408 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
11409 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
11410 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
11411 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
11412 (grub_video_i386_vbeblit_index_index): Likewise.
11413 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
11414 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
11415 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
11416 (grub_video_i386_vbeblit_blend): Added generic blitter for blend
11417 operator.
11418 (grub_video_i386_vbeblit_replace): Added generic blitter for replace
11419 operator.
11420
11421 * video/i386/pc/vbeblit.c: Updated to reflect changes on
11422 include/grub/i386/pc/vbeblit.h.
11423
11424 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
11425 Updated to use grub_video_i386_vbeblit_info.
11426 (grub_video_i386_vbefill_R8G8B8): Likewise.
11427 (grub_video_i386_vbefill_index): Likewise.
11428 (grub_video_i386_vbefill): Added generic filler.
11429
11430 * video/i386/pc/vbefill.c: Updated to reflect changes on
11431 include/grub/i386/pc/vbefill.h.
11432
11433 * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
11434 grub_video_i386_vbeblit_info.
11435 (grub_video_vbe_unmap_color): Likewise.
11436 (grub_video_vbe_blit_glyph): Likewise.
11437 (grub_video_vbe_scroll): Likewise.
11438 (grub_video_vbe_draw_pixel): Removed function.
11439 (grub_video_vbe_get_pixel): Likewise.
11440 (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
11441 updated code to use it.
11442 (common_blitter): Added common blitter for render target and bitmap.
11443 (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
11444 (grub_video_vbe_blit_render_target): Likewise.
11445
bc8c036d 114462006-07-30 Johan Rydberg <jrydberg@gnu.org>
11447
11448 * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
11449 is in text mode if there is no console control protocol instance
11450 available.
11451
684a8eff 114522006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
11453
11454 * include/grub/video.h: Code cleanup.
11455
11456 * include/grub/i386/pc/vbe.h: Likewise.
11457
11458 * video/i386/pc/vbe.c: Likewise.
11459
11460 * video/i386/pc/vbeblit.c: Likewise.
11461
11462 * video/i386/pc/vbefill.c: Likewise.
11463
11464 * video/video.c: Likewise. Also added more comments.
11465
5915059b 114662006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
11467
11468 * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
11469 (struct grub_biosdisk_dap): Likewise.
11470
11471 * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected
11472 linkage settings for all functions.
11473
90ce5d56 114742006-07-12 Marco Gerards <marco@gnu.org>
11475
11476 * configure.ac (--enable-mm-debug): Fix typo.
11477
11478 * genkernsyms.sh.in: Use proper quoting for `CC'.
11479
43e7f879 114802006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
11481
11482 * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
11483 (normal_mod_ASFLAGS): Remove "-m32".
11484
4889bdec 114852006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
11486
11487 * util/misc.c: Include config.h.
11488 [!HAVE_MEMALIGN]: Do not include malloc.h.
11489 (grub_memalign): Use posix_memalign, if present. Then, use
11490 memalign, if present. Otherwise, emit an error.
11491
11492 * util/grub-emu.c: Do not include malloc.h.
11493
11494 * include/grub/util/misc.h: Include unistd.h. This is required for
11495 FreeBSD, because off_t is defined in unistd.h. Reported by Harley
11496 D. Eades III <hde@foobar-qux.org>.
11497
11498 * configure.ac (AC_GNU_SOURCE): Added.
11499 (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
11500 type.
11501
fd39d4da 115022006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
11503
11504 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
11505 ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
11506
b786f3b5 115072006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
11508
11509 * include/grub/types.h (grub_host_addr_t): Rename to
11510 grub_target_addr_t.
11511 (grub_host_off_t): Rename to grub_target_off_t.
11512 (grub_host_size_t): Rename to grub_target_size_t.
11513 (grub_host_ssize_t): Rename to grub_target_ssize_t.
11514 Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
11515
11516 * include/grub/kernel.h (struct grub_module_header): Change type
11517 of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
11518 (grub_module_info): Likewise.
f19dbdb7 11519
051988bb 115202006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
11521
11522 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
11523 of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
11524 Velazquez <jesus.velazquez@gmail.com>.
11525
deae281b 115262006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
11527
11528 Count partitions from 1 instead of 0 in the string representation
11529 of partitions. Still use 0-based internally.
f19dbdb7 11530
deae281b 11531 * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
11532 (sun_partition_map_iterate): Use grub_partition_t instead of
11533 struct grub_partition *. Cast DESC->START_CYLINDER to
11534 grub_uint64_t after converting the endian.
11535 (sun_partition_map_probe): Subtract 1 for PARTNUM.
11536 (sun_partition_map_get_name): Add 1 to P->INDEX.
11537
11538 * partmap/pc.c (grub_partition_parse): Subtract 1 for
11539 PCDATA->DOS_PART.
11540 (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
11541
11542 * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
11543 zero instead of one.
11544 (gpt_partition_map_probe): Subtract 1 for PARTNUM.
11545 (gpt_partition_map_get_name): Add 1 into P->INDEX.
11546
11547 * partmap/apple.c (apple_partition_map_iterate): Change the type
11548 of POS to unsigned.
11549 (apple_partition_map_probe): Subtract 1 for PARTNUM.
11550 (apple_partition_map_get_name): Add 1 into P->INDEX.
11551
11552 * partmap/amiga.c (amiga_partition_map_iterate): Change the type
11553 of POS to unsigned.
11554 (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
11555 calculate the offset of a partition.
11556 (amiga_partition_map_probe): Subtract 1 for PARTNUM.
11557 (amiga_partition_map_get_name): Add 1 into P->INDEX.
11558
11559 * partmap/acorn.c (acorn_partition_map_find): Change the type of
11560 SECTOR to grub_disk_addr_t.
11561 (acorn_partition_map_iterate): Likewise.
11562 (acorn_partition_map_probe): Subtract 1 for PARTNUM.
11563 Change the type of SECTOR to grub_disk_addr_t. Declare P on the
11564 top.
11565 (acorn_partition_map_get_name): Add 1 into P->INDEX.
11566
11567 * kern/i386/pc/init.c (make_install_device): Add 1 into
11568 GRUB_INSTALL_DOS_PART.
11569
11570 * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
11571 conditional.
11572
524a1e6a 115732006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
11574
11575 Clean up the code to support 64-bit addressing in disks and
11576 files. This change is not enough for filesystems yet.
f19dbdb7 11577
524a1e6a 11578 * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
11579 type of "start" to grub_uint64_t.
11580 (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
11581 grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
11582 save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
11583 convert addresses.
11584
11585 * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
11586 to grub_disk_addr_t.
11587
11588 * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
11589 string.
11590
11591 * partmap/pc.c (pc_partition_map_iterate): Likewise.
11592
11593 * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
11594 to char *.
11595
11596 * normal/script.c (grub_script_parse): Remove unused MEMFREE.
11597
11598 * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
11599
11600 * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
11601
11602 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
11603 to grub_off_t, to detect an error from grub_file_seek.
11604 (grub_multiboot_load_elf32): Likewise.
11605
11606 * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
11607 maximum unsigned long value when an overflow is detected.
11608 (grub_strtoull): New function.
11609 (grub_divmod64): Likewise.
11610 (grub_lltoa): use grub_divmod64.
11611
11612 * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
11613 grub_disk_addr_t.
11614 (grub_fs_blocklist_open): Increase P if P is not NULL to advance
11615 the pointer to next character. Use grub_strtoull instead of
11616 grub_strtoul.
11617 (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
11618 SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
11619 respectively.
11620
fe6b695a 11621 * kern/file.c (grub_file_read): Prevent an overflow of LEN, as the
524a1e6a 11622 return value is signed.
11623 (grub_file_seek): Change the type of OLD to grub_off_t. Do not
11624 test if OFFSET is less than zero, as OFFSET is unsigned now.
11625
11626 * kern/disk.c (struct grub_disk_cache): Change the type of
11627 "sector" to grub_disk_addr_t.
11628 (grub_disk_cache_get_index): Change the type of SECTOR to
11629 grub_disk_addr_t. Calculate the hash with SECTOR casted to
11630 unsigned after shifting.
11631 (grub_disk_cache_invalidate): Change the type of SECTOR to
11632 grub_disk_addr_t.
11633 (grub_disk_cache_unlock): Likewise.
11634 (grub_disk_cache_store): Likewise.
11635 (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
11636 START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
11637 grub_disk_addr_t and grub_uint64_t, respectively.
11638 (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
11639 body, as the value of OFFSET is tweaked by
11640 grub_disk_check_range. Change the types of START_SECTOR, LEN and
11641 POS to grub_disk_addr_t, grub_size_t and grub_size_t,
11642 respectively.
11643 (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
11644 body, as the value of OFFSET is tweaked by
11645 grub_disk_check_range. Change the types of LEN and N to
11646 grub_size_t.
11647
11648 * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
11649 and "saved_offset" to grub_off_t.
11650 (test_header): Cast BUF to char *.
11651 (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
11652 to char *.
11653 (grub_gzio_read): Change the types of OFFSET and SIZE to
11654 grub_off_t and grub_size_t, respectively.
11655
11656 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
11657 Removed.
11658 (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
11659 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
11660 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
11661 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
11662 (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
11663
11664 * include/grub/types.h (grub_off_t): Unconditionally set to
11665 grub_uint64_t.
11666 (grub_disk_addr_t): Changed to grub_uint64_t.
11667
11668 * include/grub/partition.h (struct grub_partition): Change the
11669 types of "start", "len" and "offset" to grub_disk_addr_t,
11670 grub_uint64_t and grub_disk_addr_t, respectively.
11671 (grub_partition_get_start): Return grub_disk_addr_t.
11672 (grub_partition_get_len): Return grub_uint64_t.
11673
11674 * include/grub/misc.h (grub_strtoull): New prototype.
11675 (grub_divmod64): Likewise.
11676
11677 * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
11678 of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
11679 grub_off_t, respectively.
11680 All callers and references changed.
11681
11682 * include/grub/fs.h (struct grub_fs): Change the type of LEN to
11683 grub_size_t in "read".
11684 All callers and references changed.
11685
11686 * include/grub/file.h (struct grub_file): Change the types of
11687 "offset" and "size" to grub_off_t and grub_off_t,
11688 respectively. Change the type of SECTOR to grub_disk_addr_t in
11689 "read_hook".
11690 (grub_file_read): Change the type of LEN to grub_size_t.
11691 (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
11692 grub_off_t.
11693 (grub_file_size): Return grub_off_t.
11694 (grub_file_tell): Likewise.
11695 All callers and references changed.
11696
11697 * include/grub/disk.h (struct grub_disk_dev): Change the types of
11698 SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
11699 "write".
11700 (struct grub_disk): Change the type of "total_sectors" to
11701 grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
f19dbdb7 11702 "read_hook".
524a1e6a 11703 (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
11704 grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
11705 (grub_disk_write): Likewise.
11706 All callers and references changed.
11707
11708 * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
11709 char * for grub_strncmp to silence gcc.
11710 (grub_iso9660_mount): Likewise.
11711 (grub_iso9660_mount): Likewise.
11712 (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
11713 return statement.
11714 (grub_iso9660_iterate_dir): Likewise.
11715 (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
11716
11717 * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
11718 LEN to grub_disk_addr_t and grub_size_t, respectively.
11719
11720 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
11721
11722 * fs/jfs.c (grub_jfs_read_file): Likewise.
11723
11724 * fs/minix.c (grub_jfs_read_file): Likewise.
11725
11726 * fs/sfs.c (grub_jfs_read_file): Likewise.
11727
11728 * fs/ufs.c (grub_jfs_read_file): Likewise.
11729
11730 * fs/xfs.c (grub_jfs_read_file): Likewise.
11731
11732 * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
11733 and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
11734 respectively.
11735
11736 * fs/ext2.c (grub_ext2_read_block): When an error happens, set
11737 BLKNR to -1 instead of returning GRUB_ERRNO.
11738 (grub_ext2_read_file): Change the types of SECTOR and
11739 LEN to grub_disk_addr_t and grub_size_t, respectively.
11740
11741 * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
11742 LEN to grub_disk_addr_t and grub_size_t, respectively.
11743
11744 * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
11745 grub_file_read.
11746
11747 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
11748 string. Do not cast SECTOR explicitly.
11749
11750 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
11751 TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
11752 (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
11753 grub_disk_addr_t and grub_size_t, respectively. If the sector is
11754 over 2TB and LBA mode is not supported, raise an error.
11755 (get_safe_sectors): New function.
11756 (grub_biosdisk_read): Use get_safe_sectors.
11757 (grub_biosdisk_write): Likewise.
11758
11759 * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
11760 (grub_efidisk_write): Likewise.
11761
11762 * disk/loopback.c (delete_loopback): Cosmetic changes.
11763 (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
11764 correctly.
11765 (grub_loopback_open): Likewise.
11766 (grub_loopback_read): Likewise. Also, change the type of POS to
11767 grub_off_t, and fix the usage of grub_memset.
11768
11769 * commands/i386/pc/play.c: Include grub/machine/time.h.
11770
11771 * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
11772 print FILE->SIZE.
11773
11774 * commands/configfile.c: Include grub/env.h.
11775
11776 * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
11777 GRUB_ERRNO directly instead. Change the type of POS to
11778 grub_off_t. Follow the coding standard.
11779
11780 * commands/blocklist.c: Include grub/partition.h.
11781 (grub_cmd_blocklist): Return an error if the underlying device is
11782 not a disk. Take the starting sector of a partition into account,
11783 if a partition is used.
11784
11785 * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
11786 a length field.
11787 (lba_mode): Support 64-bit addresses.
11788 (chs_mode): Likewise.
11789 (copy_buffer): Adapted to the new offsets of a length field and a
11790 segment field.
11791 (blocklist_default_start): Allocate 64-bit space.
11792
11793 * boot/i386/pc/boot.S (force_lba): Removed.
11794 (boot_drive): Moved to under KERNEL_SECTOR.
fe987087 11795 (kernel_sector): Moved to under KERNEL_SEGMENT. Allocate 64-bit
524a1e6a 11796 space.
11797 (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
11798 is useless.
11799 (lba_mode): Refactored to support a 64-bit address. More size
11800 optimization.
11801 (setup_sectors): Likewise.
11802
53af98ad 118032006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
11804
11805 * DISTLIST: Added include/grub/i386/linux.h. Removed
11806 include/grub/i386/pc/linux.h
11807
11808 * configure.ac (AC_INIT): Bumped to 1.94.
11809
11810 * config.guess: Updated from gnulib.
11811 * config.sub: Likewise.
11812 * install-sh: Likewise.
11813 * mkinstalldirs: Likewise.
11814
b4c1940a 118152006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
11816
11817 * conf/common.rmk (grub_modules_init.lst): Depended on
11818 grub_emu_SOURCES, excluding grub_emu_init.c, instead of
11819 MODSRCFILES.
11820
11821 * genmk.rb (PModule::rule): Reverted the previous change.
11822
cfca1cfd 118232006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
11824
11825 * conf/common.rmk (grub_modules_init.lst): Depends on
11826 $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
11827 that the target does not exist before producing.
11828 (grub_modules_init.h): Remove the target before generating.
11829 (grub_emu_init.c): Likewise.
11830
11831 * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
11832
aa6d7826 118332006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
11834
11835 * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
11836 for the target-specific tests. Make sure that we also have the
11837 up-to-date target variables for those tests.
11838
26c607b9 118392006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
11840
11841 * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
11842 (PModule::rule): Likewise.
11843
0162321a 118442006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
11845
11846 * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
11847 TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
11848 target-specific flags should be prefixed.
11849 (PModule::rule): Likewise.
11850
6c826348 118512006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
11852
11853 * configure.ac (CMP): Check if cmp is available explicitly.
11854
b977bf01 118552006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
11856
11857 * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
11858 (target_cpu): New variable.
11859 (pkglibdir): Use target_cpu instead of host_cpu.
f19dbdb7 11860
b977bf01 11861 * util/i386/pc/grub-install.in (host_cpu): Removed.
11862 (target_cpu): New variable.
11863 (pkglibdir): Use target_cpu instead of host_cpu.
11864
11865 * util/genmoddep.c: Removed.
f19dbdb7 11866
b977bf01 11867 * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
11868 instead of GRUB_HOST_SIZEOF_VOID_P.
11869 * kern/dl.c: Likewise.
11870
11871 * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
11872 ...
11873 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
11874 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
11875 (GRUB_TARGET_SIZEOF_LONG): ... this.
11876 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
11877 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
11878 * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
11879 to ...
11880 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
11881 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
11882 (GRUB_TARGET_SIZEOF_LONG): ... this.
11883 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
11884 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
11885 * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
11886 to ...
11887 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
11888 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
11889 (GRUB_TARGET_SIZEOF_LONG): ... this.
11890 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
11891 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
11892
11893 * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
11894 GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
11895 [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
11896 instead of GRUB_HOST_SIZEOF_LONG.
11897 [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
11898 GRUB_HOST_WORDS_BIGENDIAN to define or undefine
11899 GRUB_CPU_WORDS_BIGENDIAN.
11900 Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
11901 define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
11902 grub_host_ssize_t.
11903
11904 * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
11905 (genmoddep_SOURCES): Likewise.
11906 * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
11907 (genmoddep_SOURCES): Likewise.
11908 * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
11909 (genmoddep_SOURCES): Likewise.
11910 * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
11911 Likewise.
11912 (genmoddep_SOURCES): Likewise.
11913
11914 * genmoddep.awk: New file.
11915
11916 * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
11917 TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
11918 CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
11919 (PModule::rule): Likewise.
11920 (Program::rule): Likewise.
11921 (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
11922 BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
11923 respectively.
11924
11925 * configure.ac: Rewritten intensively to use host and target
11926 instead of build and host, respectively.
11927
11928 * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
11929 (host_cpu): Removed.
11930 (target_cpu): New variable.
11931 (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
11932 (BUILD_CC): Removed.
11933 (BUILD_CFLAGS): Likewise.
11934 (BUILD_CPPFLAGS): Likewise.
11935 (TARGET_CC): New variable.
11936 (TARGET_CFLAGS): Likewise.
11937 (TARGET_CPPFLAGS): Likewise.
11938 (TARGET_LDFLAGS): Likewise.
11939 (AWK): Likewise.
11940 (include): Use target_cpu instead of host_cpu.
11941 (moddep.lst:): Use genmoddep.awk instead of genmoddep.
f19dbdb7 11942
b977bf01 11943 * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
11944
f09771a1 119452006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
11946
11947 * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
11948 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed
11949 field 'false' to 'exec_on_false'.
11950 (grub_script_create_cmdif): Renamed argument names to reflect above
11951 changes.
11952
11953 * normal/execute.c (grub_script_execute_cmdif): Likewise.
11954
11955 * normal/script.c (grub_script_create_cmdif): Likewise.
11956
118f4fb3 119572006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
11958
11959 * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
11960 top.
11961 (grub_hfsplus_btree_recptr): Likewise.
11962 (grub_hfsplus_find_block): Do not take RETRY any longer. Use
11963 FILEBLOCK both to pass a block number and store next block
11964 number.
11965 (grub_hfsplus_read_block): Rewritten heavily to support an extent
11966 overflow file correctly. Specify errors appropriately, because
11967 fshelp expects that GRUB_ERRNO is set when fails. Reuse
11968 grub_hfsplus_btree_recptr to get the pointer to a found key.
11969 (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
11970 is found.
11971
11972 * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
11973 linux.mod.
11974 (_linux_mod_SOURCES): New variable.
11975 (_linux_mod_CFLAGS): Likewise.
11976 (_linux_mod_LDFLAGS): Likewise.
11977 (linux_mod_SOURCES): Likewise.
11978 (linux_mod_CFLAGS): Likewise.
11979 (linux_mod_LDFLAGS): Likewise.
11980
11981 * DISTLIST: Added loader/i386/efi/linux.c,
11982 loader/i386/efi/linux_normal.c and
11983 include/grub/i386/efi/loader.h.
11984
11985 * loader/i386/efi/linux.c: New file.
11986 * loader/i386/efi/linux_normal.c: Likewise.
11987 * include/grub/i386/efi/loader.h: Likewise.
11988
89a7d726 119892006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
11990
11991 * commands/blocklist.c: New file.
11992
11993 * DISTLIST: Added commands/blocklist.c.
11994
11995 * term/efi/console.c (grub_console_highlight_color): Use a lighter
43b553ad 11996 color for the background, and a darker color for the foreground.
89a7d726 11997 (grub_console_checkkey): Return READ_KEY.
11998 (grub_console_cls): Set the background to
11999 GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
12000
12001 * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
12002
12003 * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
12004 the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
12005
12006 * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
12007 prototype.
12008
12009 * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
12010 BG. The spec is wrong again.
12011
12012 * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
12013 prototype.
12014 [GRUB_UTIL] (grub_blocklist_fini): Likewise.
12015
12016 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
12017 commands/blocklist.c.
12018 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
f19dbdb7 12019
89a7d726 12020 * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
12021 (blocklist_mod_SOURCES): New variable.
12022 (blocklist_mod_CFLAGS): Likewise.
12023 (blocklist_mod_LDFLAGS): Likewise.
12024
75c8f258 120252006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
12026
12027 * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
12028 duplication.
12029 (lba_mode): Use %eax more intensively to reduce the code size.
12030
da2eb181 120312006-05-20 Marco Gerards <marco@gnu.org>
12032
12033 * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
12034
12035 * normal/parser.y (commandblock): Defined as <cmd>. A subroutine
12036 for `menuentry'.
12037 (script): Accept leading newlines.
12038 (newlines): New rule to describe 0 or more newlines.
12039 (commands): Accept `command' with trailing newline. Fixed the
12040 order in which arguments were passed to `grub_script_add_cmd'.
12041 Accept commands separated by newlines.
12042 (function): Changed to accept newlines.
12043 (menuentry) Rewritten.
12044
12045 * normal/script.c (grub_script_create_cmdmenu): Add new entries in
12046 front of the list, instead of to the end.
12047
577b4050 120482006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
12049
12050 * util/i386/pc/grub-install.in (bindir): New variable.
12051 (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
12052 Shaver <lbgwjl@gmail.com>.
12053
0d6e1189 120542006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
12055
12056 * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
12057 grub/machine/linux.h
12058 * loader/i386/pc/linux.c: Likewise.
12059
12060 * include/grub/i386/pc/linux.h: Moved to ...
12061 * include/grub/i386/linux.h: ... here.
12062
12063 * include/grub/i386/linux.h (struct linux_kernel_params): New
12064 struct.
f19dbdb7 12065
31b86e9f 120662006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
12067
12068 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
12069 checking.
12070 (grub_video_vbe_blit_glyph): Likewise.
12071 (grub_video_vbe_blit_bitmap): Likewise.
12072 (grub_video_vbe_blit_render_target): Likewise.
12073
83b984de 120742006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
12075
12076 * configure.ac (--with-platform): Properly quote the square
12077 brackets.
12078
5f0413bd 120792006-05-08 Marco Gerards <marco@gnu.org>
12080
12081 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
12082 this...
12083 (kernel_elf_HEADERS): ...to this. Updated all users.
12084 (grubof_symlist.c): Renamed from this...
12085 (kernel_elf_symlist.c): ...to this. Updated all users.
12086 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
12087 (grubof_SOURCES): Renamed from this...
12088 (kernel_elf_SOURCES): ...to this.
12089 (grubof_HEADERS): Renamed from this...
12090 (kernel_elf_HEADERS): ...to this.
12091 (grubof_CFLAGS): Renamed from this...
12092 (kernel_elf_CFLAGS): ...to this.
12093 (grubof_ASFLAGS): Renamed from this...
12094 (kernel_elf_ASFLAGS): ...to this.
12095 (grubof_LDFLAGS): Renamed from this...
12096 (kernel_elf_LDFLAGS): ...to this.
12097
12098 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
12099 this...
12100 (kernel_elf_HEADERS): ...to this. Updated all users.
12101 (grubof_symlist.c): Renamed from this...
12102 (kernel_elf_symlist.c): ...to this. Updated all users.
12103 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
12104 (grubof_SOURCES): Renamed from this...
12105 (kernel_elf_SOURCES): ...to this.
12106 (grubof_HEADERS): Renamed from this...
12107 (kernel_elf_HEADERS): ...to this.
12108 (grubof_CFLAGS): Renamed from this...
12109 (kernel_elf_CFLAGS): ...to this.
12110 (grubof_ASFLAGS): Renamed from this...
12111 (kernel_elf_ASFLAGS): ...to this.
12112 (grubof_LDFLAGS): Renamed from this...
12113 (kernel_elf_LDFLAGS): ...to this.
12114
12115 * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
12116 `kernel.elf' instead of `grubof'.
12117
05568c2e 121182006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
12119
12120 Add --with-platform to configure. Use pkglibdir instead of
12121 pkgdatadir. This is reported by Roger Leigh.
12122
12123 * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
12124 (host_vendor): Likewise.
12125 (host_os): Likewise.
12126 (pkgdatadir): Likewise.
12127 (platform): New variable.
12128 (pkglibdir): Likewise.
12129 Use PKGLIBDIR instead of PKGDATADIR.
f19dbdb7 12130
05568c2e 12131 * util/i386/pc/grub-install.in (datadir): Removed.
12132 (host_vendor): Likewise.
12133 (host_os): Likewise.
12134 (pkgdatadir): Likewise.
12135 (platform): New variable.
12136 (pkglibdir): Likewise.
12137 Use PKGLIBDIR instead of PKGDATADIR.
12138
12139 * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
12140 instead of GRUB_DATADIR.
12141 (main): Likewise.
12142 * util/i386/pc/grub-mkimage.c (usage): Likewise.
12143 (main): Likewise.
12144 * util/i386/efi/grub-mkimage.c (usage): Likewise.
12145 (main): Likewise.
12146
12147 * configure.ac (--with-platform): New option.
12148 Use PLATFORM instead of HOST_VENDOR to specify a platform.
12149
12150 * Makefile.in: Include a makefile based on PLATFORM instead of
12151 HOST_VENDOR.
12152 (pkgdatadir): Not appended by the machine type.
12153 (pkglibdir): Appended by the machine type.
12154 (host_vendor): Removed.
12155 (platform): New variable.
12156 (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
12157 (install-local): Use PKGLIBDIR instead of PKGDATADIR.
12158 (uninstall): Likewise.
12159
4e93851c 121602006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
12161
12162 Use the environment context in the menu. Remove the commands
12163 "default" and "timeout", and use variables instead.
f19dbdb7 12164
4e93851c 12165 * normal/menu.c: Include grub/env.h.
12166 (print_entry): Cast TITLE to silence gcc.
12167 (get_timeout): New function.
12168 (set_timeout): Likewise.
12169 (get_entry_number): Likewise.
12170 (run_menu): Use a default entry, a fallback entry and a timeout
12171 in the environment variables "default", "fallback" and
12172 "timeout". Also, tweak the default entry if it is not within the
12173 current menu entries.
12174 (grub_menu_run): Use a fallback entry in the environment variable
12175 "fallback".
12176
12177 * normal/main.c (read_config_file): Do not initialize
12178 NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
12179 NEWMENU->TIMEOUT.
12180 (grub_normal_execute): Use a data slot to store the menu.
12181
12182 * include/grub/normal.h (struct grub_menu): Removed default_entry,
12183 fallback_entry and timeout.
12184 (struct grub_menu_list): Removed.
12185 (grub_menu_list_t): Likewise.
12186 (struct grub_context): Likewise.
12187 (grub_context_t): Likewise.
12188 (grub_context_get): Likewise.
12189 (grub_context_get_current_menu): Likewise.
12190 (grub_context_push_menu): Likewise.
12191 (grub_context_pop_menu): Likewise.
12192 (grub_default_init): Likewise.
12193 (grub_default_fini): Likewise.
12194 (grub_timeout_init): Likewise.
12195 (grub_timeout_fini): Likewise.
12196
12197 * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
12198 and timeout.mod.
12199 (normal_mod_SOURCES): Removed normal/context.c.
12200
12201 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
12202 commands/default.c, commands/timeout.c and normal/context.c.
12203 (normal_mod_SOURCES): Removed normal/context.c.
12204
12205 * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
12206 commands/timeout.c and normal/context.c.
12207 (normal_mod_SOURCES): Removed normal/context.c.
12208
12209 * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
12210 commands/default.c, commands/timeout.c and normal/context.c.
12211 (normal_mod_SOURCES): Removed normal/context.c.
12212
12213 * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
12214 timeout.mod.
12215 (default_mod_SOURCES): Removed.
12216 (default_mod_CFLAGS): Likewise.
12217 (default_mod_LDFLAGS): Likewise.
12218 (timeout_mod_SOURCES): Removed.
12219 (timeout_mod_CFLAGS): Likewise.
12220 (timeout_mod_LDFLAGS): Likewise.
12221
12222 * DISTLIST: Removed commands/default.c, commands/timeout.c and
12223 normal/context.c.
12224
12225 * commands/default.c: Removed.
12226 * commands/timeout.c: Likewise.
12227 * normal/context.c: Likewise.
12228
1eb9cc1d 122292006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
12230
12231 * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
12232
385bd9c1 122332006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
12234
12235 * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
12236 "next" to "prev" for readability.
12237 (struct grub_env_sorted_var): New struct.
12238 (grub_env_context): Renamed to ...
12239 (initial_context): ... this.
12240 (grub_env_var_context): Renamed to ...
12241 (current_context): ... this.
12242 (grub_env_find): Look only at CURRENT_CONTEXT.
12243 (grub_env_context_open): Rewritten to copy exported variables from
12244 previous context.
12245 (grub_env_context_close): Rewritten according to the new
12246 scheme. Also, add an assertion to prevent the initial context from
12247 removed.
12248 (grub_env_insert): Removed the code for the sorted list.
12249 (grub_env_remove): Likewise.
12250 (grub_env_export): Simply mark the variable with
12251 GRUB_ENV_VAR_GLOBAL.
12252 (grub_env_set): A cosmetic change for naming consistency.
12253 (grub_env_get): Likewise.
12254 (grub_env_unset): Likewise.
12255 (grub_env_iterate): Rewritten to sort variables within this
12256 function.
12257 (grub_register_variable_hook): Fixed for naming consistency. Call
12258 grub_env_find again, only if NAME is not found at the first time.
12259 (mangle_data_slot_name): New function.
12260 (grub_env_set_data_slot): Likewise.
12261 (grub_env_get_data_slot): Likewise.
12262 (grub_env_unset_data_slot): Likewise.
12263
12264 * include/grub/env.h (grub_env_var_type): New enum.
12265 (GRUB_ENV_VAR_LOCAL): New constant.
12266 (GRUB_ENV_VAR_GLOBAL): Likewise.
12267 (GRUB_ENV_VAR_DATA): Likewise.
12268 (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
12269 "type".
12270 (grub_env_set): Replace VAR with NAME for consistency.
12271 (grub_register_variable_hook): Likewise.
12272 (grub_env_export): Specify the name of the argument.
12273 (grub_env_set_data_slot): New prototype.
12274 (grub_env_get_data_slot): Likewise.
12275 (grub_env_unset_data_slot): Likewise.
12276
7f362539 122772006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
12278
12279 Extend the loader so that GRUB can accept a loader which comes
12280 back to GRUB when a loaded image exits. Also, this change adds
12281 support for a chainloader on EFI.
f19dbdb7 12282
7f362539 12283 * term/efi/console.c: Include grub/misc.h.
12284 (grub_console_checkkey): Display a scan code on the top for
12285 debugging. This will be removed once the EFI port gets stable.
12286 Correct the scan code mapping.
12287
12288 * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
12289 allocate memory from larger regions, in order to reduce the number
12290 of allocated regions. Otherwise, the MacOSX loader panics.
12291 (filter_memory_map): Avoid less than 1MB for compatibility with
12292 other loaders.
12293 (add_memory_regions): Allocate from the tail of a region, if
12294 possible, to avoid allocating a region near to 1MB, for the MacOSX
12295 loader.
12296
12297 * kern/efi/init.c (grub_efi_set_prefix): Specify
12298 GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
12299
12300 * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
12301 argument IMAGE_HANDLE and specify it to get a loaded image.
12302 (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
12303 grub_efi_get_loaded_image.
fe6b695a 12304 (grub_efi_get_filename): Divide the length by the size of
7f362539 12305 grub_efi_char16_t.
12306 (grub_efi_get_device_path): New function.
12307 (grub_efi_print_device_path): Print End Device Path nodes. Divide
12308 the length by the size of grub_efi_char16_t for a file path device
12309 path node.
12310
12311 * kern/loader.c (grub_loader_noreturn): New variable.
12312 (grub_loader_set): Accept a new argument NORETURN. Set
12313 GRUB_LOADER_NORETURN to NORETURN.
12314 All callers changed.
12315 (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
12316 grub_machine_fini.
12317
12318 * include/grub/efi/efi.h (grub_efi_get_device_path): New
12319 prototype.
12320 (grub_efi_get_loaded_image): Take an argument to specify an image
12321 handle.
12322
12323 * include/grub/loader.h (grub_loader_set): Added one more argument
12324 NORETURN.
12325
12326 * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
12327 instead of grub_efi_open_protocol.
12328 (grub_efidisk_get_device_name): Likewise.
12329 (grub_efidisk_close): Print a newline.
12330 (grub_efidisk_get_device_handle): Fixed to use
12331 GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
12332 GRUB_EFI_DEVICE_PATH_TYPE.
12333
12334 * disk/efi/efidisk.c (device_path_guid): Moved to ...
12335 * kern/efi/efi.c (device_path_guid): ... here.
12336
12337 * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
12338 chain.mod.
12339 (kernel_mod_HEADERS): Added efi/disk.h.
12340 (_chain_mod_SOURCES): New variable.
12341 (_chain_mod_CFLAGS): Likewise.
12342 (_chain_mod_LDFLAGS): Likewise.
12343 (chain_mod_SOURCES): Likewise.
12344 (chain_mod_CFLAGS): Likewise.
12345 (chain_mod_LDFLAGS): Likewise.
12346
12347 * DISTLIST: Added include/grub/efi/chainloader.h,
12348 loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
12349
12350 * include/grub/efi/chainloader.h: New file.
12351 * loader/efi/chainloader.c: Likewise.
12352 * loader/efi/chainloader_normal.c: Likewise.
12353
c0111d6e 123542006-04-30 Marco Gerards <marco@gnu.org>
12355
12356 * commands/configfile.c (grub_cmd_source): New function.
12357 (GRUB_MOD_INIT): Register the commands `source' and `.'.
12358 (GRUB_MOD_FINI): De-register the commands `source' and `.'.
12359
df5341da 123602006-04-30 Marco Gerards <marco@gnu.org>
12361
12362 * normal/execute.c (grub_script_execute_cmd): Change the return
12363 type to `grub_err_t'. Correctly return the error.
12364 (grub_script_execute_cmdline): In case a command line is not a
12365 command or a function, try to interpret it as an assignment.
12366
f85934bd 123672006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
12368
12369 * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
12370 (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
12371 skip a node whose name is obviously invalid as UTF-16,
12372 i.e. contains a NUL character. Stop the iteration when the last
12373 directory entry is found. Instead of using the return value of
12374 grub_hfsplus_btree_iterate_node, store the value in RET and use
12375 it, because the iterator can be stopped by the last directory
12376 entry.
12377
8f8a2cf8 123782006-04-30 Marco Gerards <marco@gnu.org>
12379
12380 * include/grub/env.h (grub_env_export): New prototype. Reported
12381 by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
12382
a27e84ce 123832006-04-30 Marco Gerards <marco@gnu.org>
12384
12385 * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
12386 size of the extents in a catalog file record.
12387
eaef0553 123882006-04-29 Marco Gerards <marco@gnu.org>
12389
12390 * commands/configfile.c (grub_cmd_configfile): Execute the
12391 configfile within its own context.
12392
12393 * include/grub/env.h (grub_env_context_open): New prototype.
12394 (grub_env_context_close): Likewise.
12395
12396 * kern/env.c (grub_env): Removed.
12397 (grub_env_sorted): Likewise.
12398 (grub_env_context): New variable.
12399 (grub_env_var_context): Likewise.
12400 (grub_env_find): Search both the active context and the global
12401 context.
12402 (grub_env_context_open): New function.
12403 (grub_env_context_close): Likewise.
12404 (grub_env_insert): Likewise.
12405 (grub_env_remove): Likewise.
12406 (grub_env_export): Likewise.
12407 (grub_env_set): Changed to use helper functions to avoid code
12408 duplication.
12409 (grub_env_iterate): Rewritten so both the current context and the
12410 global context are being used.
12411
12412 * normal/command.c (export_command): New function.
12413 (grub_command_init): Register the `export' function.
12414
7b455f4d 124152006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
12416
12417 * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
12418 explicitly to suppress gcc's warnings.
12419 * fs/fat.c (grub_fat_find_dir): Likewise.
12420 (grub_fat_label): Likewise.
12421 * fs/xfs.c (grub_xfs_read_inode): Likewise.
12422 (grub_xfs_mount): Likewise.
12423 (grub_xfs_label): Likewise.
12424 * fs/affs.c (grub_affs_mount): Likewise.
12425 (grub_affs_label): Likewise.
12426 (grub_affs_iterate_dir): Likewise.
12427 * fs/sfs.c (grub_sfs_mount): Likewise.
12428 (grub_sfs_iterate_dir): Likewise.
12429 * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
12430 * fs/hfs.c (grub_hfs_mount): Likewise.
12431 (grub_hfs_cmp_catkeys): Likewise.
12432 (grub_hfs_find_dir): Likewise.
12433 (grub_hfs_dir): Likewise.
12434 (grub_hfs_label): Likewise.
12435 * fs/jfs.c (grub_jfs_mount): Likewise.
12436 (grub_jfs_opendir): Likewise.
12437 (grub_jfs_getent): Likewise.
12438 (grub_jfs_lookup_symlink): Likewise.
12439 (grub_jfs_label): Likewise.
12440 * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
12441 (grub_hfsplus_iterate_dir): Likewise.
12442 (grub_hfsplus_btree_iterate_node): Made static.
12443
12444 * util/grub-emu.c (prefix): New variable.
12445 (grub_machine_set_prefix): New function.
12446 (main): Do not set the environment variable "prefix" here. Only
12447 set PREFIX, which is used later by grub_machine_set_prefix.
12448
12449 * include/grub/video.h: Do not include grub/symbol.h.
12450 (grub_video_register): Not exported. This symbol is not defined in
12451 the kernel.
12452 (grub_video_unregister): Likewise.
12453 (grub_video_iterate): Likewise.
12454 (grub_video_setup): Likewise.
12455 (grub_video_restore): Likewise.
12456 (grub_video_get_info): Likewise.
12457 (grub_video_get_blit_format): Likewise.
12458 (grub_video_set_palette): Likewise.
12459 (grub_video_get_palette): Likewise.
12460 (grub_video_set_viewport): Likewise.
12461 (grub_video_get_viewport): Likewise.
12462 (grub_video_map_color): Likewise.
12463 (grub_video_map_rgb): Likewise.
12464 (grub_video_map_rgba): Likewise.
12465 (grub_video_fill_rect): Likewise.
12466 (grub_video_blit_glyph): Likewise.
12467 (grub_video_blit_bitmap): Likewise.
12468 (grub_video_blit_render_target): Likewise.
12469 (grub_video_scroll): Likewise.
12470 (grub_video_swap_buffers): Likewise.
12471 (grub_video_create_render_target): Likewise.
12472 (grub_video_delete_render_target): Likewise.
12473 (grub_video_set_active_render_target): Likewise.
12474
12475 * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
12476 Undefined.
12477 [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
12478
12479 * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
12480 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
12481 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
12482 instead of $(srcdir)/genkernsyms.sh.
12483
12484 * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
12485 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
12486 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
12487 instead of $(srcdir)/genkernsyms.sh.
12488
12489 * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
12490 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
12491 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
12492 instead of $(srcdir)/genkernsyms.sh.
12493
12494 * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
12495 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
12496 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
12497 instead of $(srcdir)/genkernsyms.sh.
12498
12499 * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
12500 genkernsyms.sh.
12501
12502 * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
12503 genkernsyms.sh.
12504 (gensymlist.sh): New target.
12505 (genkernsyms.sh): Likewise.
12506
12507 * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
12508 genkernsyms.sh.in and gensymlist.sh.in.
12509
12510 * genkernsyms.sh: Removed.
12511 * gensymlist.sh: Likewise.
f19dbdb7 12512
7b455f4d 12513 * genkernsyms.sh.in: New file.
12514 * gensymlist.sh.in: Likewise.
12515
1885bb27 125162006-04-25 Hollis Blanchard <hollis@penguinppc.org>
12517
12518 * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
12519 clobber "prefix", since we may have already set it manually.
12520
71538dff 125212006-04-25 Hollis Blanchard <hollis@penguinppc.org>
12522
12523 * kern/misc.c (abort): New alias for grub_abort.
12524
2965c7cc 125252006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
12526
12527 A new machine-specific function "grub_machine_set_prefix" is
12528 defined. This is called after loading modules, so that a prefix
12529 initialization can use modules. Also, this change adds an
12530 intensive debugging feature for the memory manager via the
12531 configure option "--enable-mm-debug".
f19dbdb7 12532
2965c7cc 12533 * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
12534 PART.LEN.
12535
12536 * kern/sparc64/ieee1275/init.c (abort): Removed.
12537 (grub_stop): Likewise.
12538 (grub_exit): New function.
12539 (grub_set_prefix): Renamed to ...
12540 (grub_machine_set_prefix): ... this.
12541 (grub_machine_init): Do not call grub_set_prefix.
12542
12543 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
12544 (grub_machine_set_prefix): ... this.
12545 (grub_machine_init): Do not call grub_set_prefix.
12546
12547 * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
12548 (grub_machine_init): Do not set the prefix here.
12549
12550 * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
12551
12552 * kern/efi/init.c: Include grub/mm.h.
12553 (grub_efi_set_prefix): New function.
12554
12555 * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
12556 (grub_efi_get_filename): New function.
12557 (grub_print_device_path): Renamed to ...
12558 (grub_efi_print_device_path): ... this.
12559
12560 * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
12561 [MM_DEBUG] (grub_realloc): Likewise.
12562 [MM_DEBUG] (grub_free): Likewise.
12563 [MM_DEBUG] (grub_memalign): Likewise.
12564 [MM_DEBUG] (grub_mm_debug): New variable.
12565 [MM_DEBUG] (grub_debug_malloc): New function.
12566 [MM_DEBUG] (grub_debug_free): New function.
12567 [MM_DEBUG] (grub_debug_realloc): New function.
12568 [MM_DEBUG] (grub_debug_memalign): New function.
12569
12570 * kern/misc.c (grub_abort): Print a newline to distinguish
12571 the message.
12572
12573 * kern/main.c (grub_main): Call grub_machine_set_prefix and
12574 grub_set_root_dev after loading modules. This is necessary when
12575 setting a prefix depends on modules.
12576
12577 * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
12578 (grub_efi_print_device_path): ... this.
12579 (grub_efi_get_filename): New prototype.
12580 (grub_efi_set_prefix): Likewise.
12581
12582 * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
12583 and grub/disk.h.
12584 (grub_efidisk_get_device_handle): New prototype.
12585 (grub_efidisk_get_device_name): Likewise.
12586
12587 * include/grub/mm.h: Include config.h.
12588 (MM_DEBUG): Removed.
12589 [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
12590 [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
12591 [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
12592 [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
12593 [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
12594 [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
12595 [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
12596 [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
12597 [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
12598
12599 * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
12600
12601 * disk/efi/efidisk.c: Include grub/partition.h.
12602 (iterate_child_devices): New function.
12603 (add_device): First, compare only last device path nodes, so that
12604 devices are sorted by the types.
12605 (grub_efidisk_get_device_handle): New function.
12606 (grub_efidisk_get_device_name): Likewise.
12607
12608 * configure.ac (--enable-mm-debug): New option to enable the
12609 memory manager debugging feature. This makes the binary much
12610 bigger, so is disabled by default.
12611
9cacaa17 126122006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
12613
12614 Use grub_abort instead of grub_stop, and grub_exit must be
12615 define in each architecture now. Also, this change adds support
12616 for EFI disks.
f19dbdb7 12617
9cacaa17 12618 * util/i386/pc/grub-probefs.c: Include grub/term.h.
12619 (grub_getkey): New function.
12620 (grub_term_get_current): Likewise.
12621
12622 * util/i386/pc/grub-setup.c: Include grub/term.h.
12623 (grub_getkey): New function.
12624 (grub_term_get_current): Likewise.
12625
12626 * util/misc.c (grub_stop): Renamed to ...
12627 (grub_exit): ... this.
12628
12629 * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
12630 (grub_exit): ... this.
12631 (grub_machine_init): Use grub_abort instead of abort.
12632 (grub_stop): Removed.
12633
12634 * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
12635 abort.
12636
12637 * kern/i386/pc/startup.S (grub_exit): New function.
12638 (cold_reboot): New label.
12639
12640 * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
12641 (grub_efi_init): Call grub_efidisk_init.
12642 (grub_efi_fini): Call grub_efidisk_fini.
12643
12644 * kern/efi/efi.c: Include grub/mm.h.
12645 (grub_efi_console_control_guid): Renamed to ...
12646 (console_control_guid): ... this.
12647 (grub_efi_loaded_image_guid): Renamed to ...
12648 (loaded_image_guid): ... this.
12649 (grub_efi_locate_handle): New function.
12650 (grub_efi_open_protocol): Likewise.
12651 (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
12652 GRUB_EFI_CONSOLE_CONTROL_GUID.
12653 (grub_efi_exit): Removed.
12654 (grub_stop): Likewise.
12655 (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
12656 (grub_exit): New function.
12657 (grub_print_device_path): Likewise.
12658
12659 * kern/rescue.c (grub_rescue_cmd_exit): New function.
12660 (grub_enter_rescue_mode): Register "exit".
12661
12662 * kern/misc.c (grub_real_dprintf): A cosmetic change.
12663 (grub_abort): New function.
12664
12665 * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
12666
12667 * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
12668
12669 * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
12670
12671 * include/grub/efi/efi.h (grub_efi_exit): Removed.
12672 (grub_print_device_path): New prototype.
12673 (grub_efi_locate_handle): Likewise.
12674 (grub_efi_open_protocol): Likewise.
12675
12676 * include/grub/efi/disk.h (grub_efidisk_fini): New file.
12677 * disk/efi/efidisk.c: Likewise.
12678
12679 * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
12680
12681 * include/grub/efi/console_control.h
12682 (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
12683
12684 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
12685 last 8 bytes as an array.
12686 (GRUB_EFI_DISK_IO_GUID): New macro.
12687 (GRUB_EFI_BLOCK_IO_GUID): Likewise.
12688 (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
12689 (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
12690 grub_uint8_t.
12691 (struct grub_efi_guid): Use an array to specify the last 8 bytes.
12692 (struct grub_efi_device_path): Rename the member "sub_type" to
12693 "subtype".
12694 (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
12695 (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
12696 (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
12697 (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
12698 (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
12699 (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
12700 (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
12701 (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
12702 (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
12703 (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
12704 (struct grub_efi_pci_device_path): New structure.
12705 (grub_efi_pci_device_path_t): New type.
12706 (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
12707 (struct grub_efi_pccard_device_path): New structure.
12708 (grub_efi_pccard_device_path_t): New type.
12709 (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
12710 (struct grub_efi_memory_mapped_device_path): New structure.
12711 (grub_efi_memory_mapped_device_path_t): New type.
12712 (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
12713 (struct grub_efi_vendor_device_path): New structure.
12714 (grub_efi_vendor_device_path_t): New type.
12715 (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
12716 (struct grub_efi_controller_device_path): New structure.
12717 (grub_efi_controller_device_path_t): New type.
12718 (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
12719 (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
12720 (struct grub_efi_acpi_device_path): New structure.
12721 (grub_efi_acpi_device_path_t): New type.
12722 (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
12723 (struct grub_efi_expanded_acpi_device_path): New structure.
12724 (grub_efi_expanded_acpi_device_path_t): New type.
12725 (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
12726 (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
12727 (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
12728 (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
12729 (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
12730 (struct grub_efi_atapi_device_path): New structure.
12731 (grub_efi_atapi_device_path_t): New type.
12732 (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
12733 (struct grub_efi_fibre_channel_device_path): New structure.
12734 (grub_efi_fibre_channel_device_path_t): New type.
12735 (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
12736 (struct grub_efi_1394_device_path): New structure.
12737 (grub_efi_1394_device_path_t): New type.
12738 (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
12739 (struct grub_efi_usb_device_path): New structure.
12740 (grub_efi_usb_device_path_t): New type.
12741 (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
12742 (struct grub_efi_usb_class_device_path): New structure.
12743 (grub_efi_usb_class_device_path_t): New type.
12744 (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
12745 (struct grub_efi_i2o_device_path): New structure.
12746 (grub_efi_i2o_device_path_t): New type.
12747 (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
12748 (struct grub_efi_mac_address_device_path): New structure.
12749 (grub_efi_mac_address_device_path_t): New type.
12750 (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
12751 (struct grub_efi_ipv4_device_path): New structure.
12752 (grub_efi_ipv4_device_path_t): New type.
12753 (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
12754 (struct grub_efi_ipv6_device_path): New structure.
12755 (grub_efi_ipv6_device_path_t): New type.
12756 (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
12757 (struct grub_efi_infiniband_device_path): New structure.
12758 (grub_efi_infiniband_device_path_t): New type.
12759 (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
12760 (struct grub_efi_uart_device_path): New structure.
12761 (grub_efi_uart_device_path_t): New type.
12762 (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
12763 (struct grub_efi_vendor_messaging_device_path): New structure.
12764 (grub_efi_vendor_messaging_device_path_t): New type.
12765 (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
12766 (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
12767 (struct grub_efi_hard_drive_device_path): New structure.
12768 (grub_efi_hard_drive_device_path_t): New type.
12769 (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
12770 (struct grub_efi_cdrom_device_path): New structure.
12771 (grub_efi_cdrom_device_path_t): New type.
12772 (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
12773 (struct grub_efi_vendor_media_device_path): New structure.
12774 (grub_efi_vendor_media_device_path_t): New type.
12775 (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
12776 (struct grub_efi_file_path_device_path): New structure.
12777 (grub_efi_file_path_device_path_t): New type.
12778 (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
12779 (struct grub_efi_protocol_device_path): New structure.
12780 (grub_efi_protocol_device_path_t): New type.
12781 (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
12782 (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
12783 (struct grub_efi_bios_device_path): New structure.
12784 (grub_efi_bios_device_path_t): New type.
12785 (struct grub_efi_disk_io): New structure.
12786 (grub_efi_disk_io_t): New type.
12787 (struct grub_efi_block_io_media): New structure.
12788 (grub_efi_block_io_media_t): New type.
12789 (struct grub_efi_block_io): New structure.
12790 (grub_efi_block_io_t): New type.
12791
12792 * include/grub/misc.h (grub_stop): Removed.
12793 (grub_exit): New prototype.
12794 (grub_abort): Likewise.
12795
12796 * include/grub/disk.h (enum grub_disk_dev_id): Added
12797 GRUB_DISK_DEVICE_EFIDISK_ID.
12798
12799 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
12800 disk/efi/efidisk.c.
12801 (kernel_syms.lst): Remove the target if an error occurs.
12802
49986a9f 128032006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
12804
12805 * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
12806 as it was simply too buggy.
12807
970d3b8a 128082006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
12809
12810 * kern/misc.c (grub_lltoa): New function.
12811 (grub_vsprintf): Added support for the long long suffix,
12812 i.e. "ll".
12813
ff04ec24 128142006-04-20 Hollis Blanchard <hollis@penguinppc.org>
12815
12816 * Makefile.in (LDFLAGS): Add variable.
12817 (LD): Remove variable.
12818 * configure.ac: Add -m32 to LDFLAGS.
12819 * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
12820 * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
12821 (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
12822 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
12823 suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
12824 variables.
12825 * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
12826 * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
12827 * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
12828
37e5e1a4 128292006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
12830
12831 * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
12832 length for unknown glyph.
12833
c352d8dd 128342006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
12835
2eab1c0d 12836 Add support for pre-loaded modules into the EFI port.
f19dbdb7 12837
2eab1c0d 12838 * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
12839 completely. Accept one more argument DIR. The caller has changed.
12840
12841 * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
12842
12843 * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
12844 (grub_efi_loaded_image_guid): New variable.
12845 (grub_efi_get_loaded_image): New function.
12846 (grub_arch_modules_addr): Likewise.
12847
12848 * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
12849 prototype.
12850
12851 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
12852 (struct grub_efi_loaded_image): New structure.
12853 (grub_efi_loaded_image_t): New type.
12854
128552006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 12856
c352d8dd 12857 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
12858 size with GRUB_OS_AREA_SIZE as grub_size_t instead of
12859 grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
12860
6d01d6b4 128612006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
12862
12863 * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
12864
976a4ea0 128652006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
12866
12867 * DISTLIST: Added include/grub/efi/console.h,
12868 include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
12869 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
12870
12871 * include/grub/efi/console.h: New file.
12872 * include/grub/efi/time.h: Likewise.
12873 * include/grub/i386/efi/kernel.h: Likewise.
12874 * kern/efi/init.c: Likewise.
12875 * kern/efi/mm.c: Likewise.
12876 * term/efi/console.c: Likewise.
f19dbdb7 12877
976a4ea0 12878 * kern/i386/efi/init.c: Do not include grub/machine/time.h.
12879 (grub_stop): Removed.
12880 (grub_get_rtc): Likewise.
12881 (grub_machine_init): Simply call grub_efi_init.
12882 (grub_machine_fini): Call grub_efi_fini.
12883
12884 * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
12885 (grub_efi_output_string): Removed.
12886 (grub_efi_stall): New function.
12887 (grub_stop): Likewise.
12888 (grub_get_rtc): Likewise.
12889
12890 * include/grub/efi/efi.h (grub_efi_output_string): Removed.
12891 (grub_efi_stall): New prototype.
12892 (grub_efi_allocate_pages): Likewise.
12893 (grub_efi_free_pages): Likewise.
12894 (grub_efi_get_memory_map): Likewise.
12895 (grub_efi_mm_init): Likewise.
12896 (grub_efi_mm_fini): Likewise.
12897 (grub_efi_init): Likewise.
12898 (grub_efi_fini): Likewise.
12899
12900 * include/grub/i386/efi/time.h: Do not include
12901 grub/symbol.h. Include grub/efi/time.h.
12902 (GRUB_TICKS_PER_SECOND): Removed.
12903 (grub_get_rtc): Likewise.
12904
12905 * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
12906 Added padding. The EFI spec is buggy.
12907 (GRUB_EFI_BLACK): New macro.
12908 (GRUB_EFI_BLUE): Likewise.
12909 (GRUB_EFI_GREEN): Likewise.
12910 (GRUB_EFI_CYAN): Likewise.
12911 (GRUB_EFI_RED): Likewise.
12912 (GRUB_EFI_MAGENTA): Likewise.
12913 (GRUB_EFI_BROWN): Likewise.
12914 (GRUB_EFI_LIGHTGRAY): Likewise.
12915 (GRUB_EFI_BRIGHT): Likewise.
12916 (GRUB_EFI_DARKGRAY): Likewise.
12917 (GRUB_EFI_LIGHTBLUE): Likewise.
12918 (GRUB_EFI_LIGHTGREEN): Likewise.
12919 (GRUB_EFI_LIGHTCYAN): Likewise.
12920 (GRUB_EFI_LIGHTRED): Likewise.
12921 (GRUB_EFI_LIGHTMAGENTA): Likewise.
12922 (GRUB_EFI_YELLOW): Likewise.
12923 (GRUB_EFI_WHITE): Likewise.
12924 (GRUB_EFI_BACKGROUND_BLACK): Likewise.
12925 (GRUB_EFI_BACKGROUND_BLUE): Likewise.
12926 (GRUB_EFI_BACKGROUND_GREEN): Likewise.
12927 (GRUB_EFI_BACKGROUND_CYAN): Likewise.
12928 (GRUB_EFI_BACKGROUND_RED): Likewise.
12929 (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
12930 (GRUB_EFI_BACKGROUND_BROWN): Likewise.
12931 (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
12932 (GRUB_EFI_TEXT_ATTR): Likewise.
12933
12934 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
12935 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
12936 (kernel_mod_HEADERS): Added efi/time.h.
12937
83709125 129382006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
12939
12940 * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
12941 include/grub/efi/api.h, include/grub/efi/console_control.h,
12942 include/grub/efi/efi.h, include/grub/efi/pe32.h,
12943 include/grub/i386/efi/time.h, kern/efi/efi.c,
12944 kern/i386/efi/init.c, kern/i386/efi/startup.S,
12945 and util/i386/efi/grub-mkimage.c.
12946
12947 * Makefile.in (RMKFILES): Added i386-efi.rmk.
12948
12949 * genmk.rb (PModule#rule): Do not export symbols if
12950 #{prefix}_EXPORTS is set to "no".
12951
12952 * conf/i386-efi.mk: New file.
12953 * conf/i386-efi.rmk: Likewise.
12954 * include/grub/efi/api.h: Likewise.
12955 * include/grub/efi/console_control.h: Likewise.
12956 * include/grub/efi/efi.h: Likewise.
12957 * include/grub/efi/pe32.h: Likewise.
12958 * include/grub/i386/efi/time.h: Likewise.
12959 * kern/efi/efi.c: Likewise.
12960 * kern/i386/efi/init.c: Likewise.
12961 * kern/i386/efi/startup.S: Likewise.
12962 * util/i386/efi/grub-mkimage.c: Likewise.
12963
129642006-04-17 Marco Gerards <marco@gnu.org>
bfa2bd9e 12965
12966 * include/grub/script.h: Include <grub/parser.h> and
12967 "grub_script.tab.h".
12968 (struct grub_lexer_param): New struct.
12969 (struct grub_parser_param): Likewise.
12970 (grub_script_create_arglist): Pass the state in an argument.
12971 (grub_script_add_arglist): Likewise.
12972 (grub_script_create_cmdline): Likewise.
12973 (grub_script_create_cmdblock): Likewise.
12974 (grub_script_create_cmdif): Likewise.
12975 (grub_script_create_cmdmenu): Likewise.
12976 (grub_script_add_cmd): Likewise.
12977 (grub_script_arg_add): Likewise.
12978 (grub_script_lexer_ref): Likewise.
12979 (grub_script_lexer_deref): Likewise.
12980 (grub_script_lexer_record_start): Likewise.
12981 (grub_script_lexer_record_stop): Likewise.
12982 (grub_script_mem_record): Likewise.
12983 (grub_script_mem_record_stop): Likewise.
12984 (grub_script_malloc): Likewise.
12985 (grub_script_yylex): Likewise.
12986 (grub_script_yyparse): Likewise.
12987 (grub_script_yyerror): Likewise.
12988 (grub_script_yylex): Likewise.
12989 (grub_script_lexer_init): Return the state.
12990
12991 * normal/lexer.c (grub_script_lexer_state): Removed variable.
12992 (grub_script_lexer_done): Likewise.
12993 (grub_script_lexer_getline): Likewise.
12994 (grub_script_lexer_refs): Likewise.
12995 (script): Likewise.
12996 (newscript): Likewise.
12997 (record): Likewise.
12998 (recording): Likewise.
12999 (recordpos): Likewise.
13000 (recordlen): Likewise.
13001 (grub_script_lexer_init): Return the state instead of setting
13002 global variables.
13003 (grub_script_lexer_ref): Use the newly added argument for state
13004 instead of globals.
13005 (grub_script_lexer_deref): Likewise.
13006 (grub_script_lexer_record_start): Likewise.
13007 (grub_script_lexer_record_stop): Likewise.
13008 (recordchar): Likewise.
13009 (nextchar): Likewise.
13010 (grub_script_yylex2): Likewise.
13011 (grub_script_yylex): Likewise.
13012 (grub_script_yyerror): Likewise.
13013
13014 * normal/parser.y (func_mem): Removed variable.
13015 (menu_entry): Likewise.
13016 (err): Likewise.
13017 (%lex-param): New parser option.
13018 (%parse-param): Likewise.
13019 (script): Always return the AST.
13020 (argument): Pass the state around.
13021 (arguments): Likewise.
13022 (grubcmd): Likewise.
13023 (commands): Likewise.
13024 (function): Likewise.
13025 (menuentry): Likewise.
13026 (if_statement): Likewise.
13027 (if): Likewise.
13028
13029 * normal/script.c (grub_script_memused): Removed variable.
13030 (grub_script_parsed): Likewise.
13031 (grub_script_malloc): Added a state argument. Use that instead of
13032 global variables.
13033 (grub_script_mem_record): Likewise.
13034 (grub_script_mem_record_stop): Likewise.
13035 (grub_script_arg_add): Likewise.
13036 (grub_script_add_arglist): Likewise.
13037 (grub_script_create_cmdline): Likewise.
13038 (grub_script_create_cmdif): Likewise.
13039 (grub_script_create_cmdmenu): Likewise.
13040 (grub_script_add_cmd): Likewise.
13041 (grub_script_parse): Setup the state before calling the parser.
f19dbdb7 13042
e2a8c904 130432006-04-16 Marco Gerards <marco@gnu.org>
6de2ee99 13044
13045 * normal/command.c (grub_command_init): Remove the title command.
13046
13047 * normal/lexer.c (grub_script_yylex): Renamed from this...
13048 (grub_script_yylex2): ... to this.
13049 (grub_script_yylex): New function. Temporary
13050 introduced to filter some tokens.
13051 (grub_script_yyerror): Print a newline.
13052
13053 * normal/main.c (read_config_file): Output information about the
13054 lines that contain errors. Wait for a key after all lines have
13055 been processed. Don't return an empty menu.
13056
13057 * normal/parser.y (func_mem): Don't initialize.
13058 (menu_entry): Likewise.
13059 (err): New variable.
13060 (script): Don't return anything when an error was encountered.
13061 (ws, returns): Removed rules.
13062 (argument): Disabled concatenated variable support.
13063 (arguments): Remove explicit separators.
13064 (grubcmd): Likewise.
13065 (function): Likewise.
13066 (menuentry): Likewise.
13067 (if): Likewise.
13068 (commands): Likewise. Add error handling.
13069
13070 * normal/script.c (grub_script_create_cmdline): If
13071 `grub_script_parsed' is 0, assume the parser encountered an error.
13072
c9a86192 130732006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
13074
13075 * configure.ac: Add support for EFI. Fix the typo
13076 BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
13077
70f3b243 130782006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
13079
13080 * util/unifont2pff.rb: Removed unnecessary byte ordering. Now
13081 foreign multibyte characters should be shown correctly.
13082
65f201ad 130832006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
13084
13085 * normal/main.c (grub_normal_menu_addentry): Fixed menu size
13086 calculation.
13087 (read_config_file): Made it to close file before returning.
13088
b4b93674 130892006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
13090
13091 * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
13092 include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
13093 video/i386/pc/vbefill.c.
13094
13095 * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
13096 video/i386/pc/vbefill.c.
13097
13098 * include/grub/video.h (grub_video_blit_format): New enum.
13099 (grub_video_mode_info): Added new member blit_format.
13100 (grub_video_get_blit_format): New function prototype.
13101
13102 * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
13103 function prototype.
13104 (grub_video_vbe_map_rgb): Likewise.
13105 (grub_video_vbe_unmap_color): Likewise.
13106
13107 * include/grub/i386/pc/vbeblit.h: New file.
13108
13109 * include/grub/i386/pc/vbefill.h: New file.
13110
13111 * video/video.c (grub_video_get_blit_format): New function.
13112 (grub_video_vbe_get_video_ptr): Re-declared as non-static.
13113 (grub_video_vbe_map_rgb): Likewise.
13114 (grub_video_vbe_unmap_color): Likewise.
13115
13116 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
13117 optimized fills.
13118 (grub_video_vbe_blit_render_target): Changed to use more optimized
13119 blits.
13120 (grub_video_vbe_setup): Added detection for optimized settings.
13121 (grub_video_vbe_create_render_target): Likewise.
13122
13123 * video/i386/pc/vbeblit.c: New file.
13124
13125 * video/i386/pc/vbefill.c: New file.
13126
c2379b9c 131272006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
13128
13129 * font/manager.c (grub_font_get_glyph): Removed font fixup from
13130 here...
13131
13132 * util/unifont2pff.rb: ... and moved it to here. Improved argument
13133 parsing to support both hex and dec ranges. If filename was missing
13134 show usage information.
13135
bd0d7896 131362006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
13137
13138 * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
13139 video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c.
13140
13141 * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
13142 gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod.
13143 (video_mod_SOURCES): Added.
13144 (video_mod_CFLAGS): Likewise.
13145 (video_mod_LDFLAGS): Likewise.
13146 (gfxterm_mod_SOURCES): Likewise.
13147 (gfxterm_mod_CFLAGS): Likewise.
13148 (gfxterm_mod_LDFLAGS): Likewise.
13149 (videotest_mod_SOURCES): Likewise.
13150 (videotest_mod_CFLAGS): Likewise.
13151 (videotest_mod_LDFLAGS): Likewise.
13152 (vesafb_mod_SOURCES): Removed.
13153 (vesafb_mod_CFLAGS): Likewise.
13154 (vesafb_mod_LDFLAGS): Likewise.
13155 (vga_mod_SOURCES): Likewise.
13156 (vga_mod_CFLAGS): Likewise.
13157 (vga_mod_LDFLAGS): Likewise.
13158
13159 * commands/videotest.c: New file.
13160
13161 * font/manager.c (fill_with_default_glyph): Modified to use
13162 grub_font_glyph.
13163 (grub_font_get_glyph): Likewise.
13164 (fontmanager): Renamed from this...
13165 (font_manager): ... to this.
13166
13167 * include/grub/font.h (grub_font_glyph): Added new structure.
13168 (grub_font_get_glyph): Modified to use grub_font_glyph.
13169
13170 * include/grub/misc.h (grub_abs): Added as inline function.
13171
13172 * include/grub/video.h: New file.
13173
13174 * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
13175 (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
13176 (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
13177 (grub_vbe_get_controller_info): Renamed from this...
13178 (grub_vbe_bios_get_controller_info): ... to this.
13179 (grub_vbe_get_mode_info): Renamed from this...
13180 (grub_vbe_bios_get_mode_info): ... to this.
13181 (grub_vbe_set_mode): Renamed from this...
13182 (grub_vbe_bios_set_mode): ... to this.
13183 (grub_vbe_get_mode): Renamed from this...
13184 (grub_vbe_bios_get_mode): ... to this.
13185 (grub_vbe_set_memory_window): Renamed from this...
13186 (grub_vbe_bios_set_memory_window): ... to this.
13187 (grub_vbe_get_memory_window): Renamed from this...
13188 (grub_vbe_bios_get_memory_window): ... to this.
13189 (grub_vbe_set_scanline_length): Renamed from this...
13190 (grub_vbe_set_scanline_length): ... to this.
13191 (grub_vbe_get_scanline_length): Renamed from this...
13192 (grub_vbe_bios_get_scanline_length): ... to this.
13193 (grub_vbe_set_display_start): Renamed from this...
13194 (grub_vbe_bios_set_display_start): ... to this.
13195 (grub_vbe_get_display_start): Renamed from this...
13196 (grub_vbe_bios_get_display_start): ... to this.
13197 (grub_vbe_set_palette_data): Renamed from this...
13198 (grub_vbe_bios_set_palette_data): ... to this.
13199 (grub_vbe_set_pixel_rgb): Removed.
13200 (grub_vbe_set_pixel_index): Likewise.
13201
13202 * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
13203 from this...
13204 (grub_vbe_bios_get_controller_info): ... to this.
13205 (grub_vbe_get_mode_info): Renamed from this...
13206 (grub_vbe_bios_get_mode_info): ... to this.
13207 (grub_vbe_set_mode): Renamed from this...
13208 (grub_vbe_bios_set_mode): ... to this.
13209 (grub_vbe_get_mode): Renamed from this...
13210 (grub_vbe_bios_get_mode): ... to this.
13211 (grub_vbe_set_memory_window): Renamed from this...
13212 (grub_vbe_bios_set_memory_window): ... to this.
13213 (grub_vbe_get_memory_window): Renamed from this...
13214 (grub_vbe_bios_get_memory_window): ... to this.
13215 (grub_vbe_set_scanline_length): Renamed from this...
13216 (grub_vbe_set_scanline_length): ... to this.
13217 (grub_vbe_get_scanline_length): Renamed from this...
13218 (grub_vbe_bios_get_scanline_length): ... to this.
13219 (grub_vbe_set_display_start): Renamed from this...
13220 (grub_vbe_bios_set_display_start): ... to this.
13221 (grub_vbe_get_display_start): Renamed from this...
13222 (grub_vbe_bios_get_display_start): ... to this.
13223 (grub_vbe_set_palette_data): Renamed from this...
13224 (grub_vbe_bios_set_palette_data): ... to this.
13225 (grub_vbe_bios_get_controller_info): Fixed problem with registers
13226 getting corrupted after calling it. Added more pushes and pops.
13227 (grub_vbe_bios_set_mode): Likewise.
13228 (grub_vbe_bios_get_mode): Likewise.
13229 (grub_vbe_bios_get_memory_window): Likewise.
13230 (grub_vbe_bios_set_scanline_length): Likewise.
13231 (grub_vbe_bios_get_scanline_length): Likewise.
13232 (grub_vbe_bios_get_display_start): Likewise.
13233 (grub_vbe_bios_set_palette_data): Likewise.
13234
13235 * normal/cmdline.c (cl_set_pos): Refresh the screen.
13236 (cl_insert): Likewise.
13237 (cl_delete): Likewise.
13238
13239 * term/gfxterm.c: New file.
13240
13241 * term/i386/pc/vesafb.c: Removed file.
13242
13243 * video/video.c: New file.
13244
13245 * video/i386/pc/vbe.c (real2pm): Added new function.
13246 (grub_video_vbe_draw_pixel): Likewise.
13247 (grub_video_vbe_get_video_ptr): Likewise.
13248 (grub_video_vbe_get_pixel): Likewise
13249 (grub_video_vbe_init): Likewise.
13250 (grub_video_vbe_fini): Likewise.
13251 (grub_video_vbe_setup): Likewise.
13252 (grub_video_vbe_get_info): Likewise.
13253 (grub_video_vbe_set_palette): Likewise.
13254 (grub_video_vbe_get_palette): Likewise.
13255 (grub_video_vbe_set_viewport): Likewise.
13256 (grub_video_vbe_get_viewport): Likewise.
13257 (grub_video_vbe_map_color): Likewise.
13258 (grub_video_vbe_map_rgb): Likewise.
13259 (grub_video_vbe_map_rgba): Likewise.
13260 (grub_video_vbe_unmap_color): Likewise.
13261 (grub_video_vbe_fill_rect): Likewise.
13262 (grub_video_vbe_blit_glyph): Likewise.
13263 (grub_video_vbe_blit_bitmap): Likewise.
13264 (grub_video_vbe_blit_render_target): Likewise.
13265 (grub_video_vbe_scroll): Likewise.
13266 (grub_video_vbe_swap_buffers): Likewise.
13267 (grub_video_vbe_create_render_target): Likewise.
13268 (grub_video_vbe_delete_render_target): Likewise.
13269 (grub_video_vbe_set_active_render_target): Likewise.
13270 (grub_vbe_set_pixel_rgb): Remove function.
13271 (grub_vbe_set_pixel_index): Likewise.
13272 (index_color_mode): Remove static variable.
13273 (active_mode): Likewise.
13274 (framebuffer): Likewise.
13275 (bytes_per_scan_line): Likewise.
13276 (grub_video_vbe_adapter): Added new static variable.
13277 (framebuffer): Likewise.
13278 (render_target): Likewise.
13279 (initial_mode): Likewise.
13280 (mode_in_use): Likewise.
13281 (mode_list): Likewise.
13282
5f97350b 132832006-03-10 Marco Gerards <marco@gnu.org>
13284
13285 * configure.ac (AC_INIT): Bumped to 1.93.
13286
13287 * DISTLIST: Added `include/grub/hfs.h'.
13288
a3c5c6f8 132892006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
13290
13291 * boot/i386/pc/boot.S (general_error): Before looping, try INT
13292 18H, which might help the BIOS falling back to next boot media.
13293
6de53d26 132942006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
13295
13296 * util/i386/pc/grub-install.in: Escape a backslash. Reported by
13297 Poe Chen <poe.poechen@gmail.com>.
13298
77c4a393 132992006-01-17 Marco Gerards <marco@gnu.org>
13300
13301 * include/grub/normal.h: Include <grub/script.h>.
13302 (grub_command_list): Removed struct.
13303 (grub_command_list_t): Removed type.
13304 (grub_menu_entry): Remove members `num' and `command_list'. Add
13305 members `commands' and `sourcecode'.
13306 * include/grub/script.h: Add inclusion guards.
13307 (grub_script_cmd_menuentry): New struct.
13308 (grub_script_execute_menuentry): New prototype.
13309 (grub_script_lexer_record_start): Likewise.
13310 (grub_script_lexer_record_stop): Likewise.
13311 * normal/execute.c (grub_script_execute_menuentry): New function.
13312 * normal/lexer.c (record, recording, recordpos, recordlen): New
13313 variables.
13314 (grub_script_lexer_record_start): New function.
13315 (grub_script_lexer_record_stop): Likewise.
13316 (recordchar): Likewise.
13317 (nextchar): Likewise.
13318 (grub_script_yylex): Use `nextchar' to fetch new characters. Use
13319 2048 as the buffer size. Add the tokens `menuentry' and `@'.
13320 * normal/main.c: Include <grub/parser.h> and <grub/script.h>
13321 (current_menu): New variable.
13322 (free_menu): Mainly rewritten.
13323 (grub_normal_menu_addentry): New function.
13324 (read_config_file): Rewritten.
13325 * normal/menu.c (run_menu_entry): Mainly rewritten.
fe987087 13326 * normal/menu_entry.c (make_screen): Rewritten the code to insert
77c4a393 13327 the menu entry.
13328 (run): Mainly rewritten.
13329 * normal/parser.y (menu_entry): New variable.
13330 (GRUB_PARSER_TOKEN_MENUENTRY): New token.
13331 (menuentry): New rule.
13332 (command): Add `menuentry'.
13333 (if_statement): Allow additional returns before `fi'.
13334 * normal/script.c (grub_script_create_cmdmenu): New function.
13335
144f1f98 133362006-01-03 Marco Gerards <marco@gnu.org>
13337
13338 * INSTALL: GNU Bison is required.
13339 * configure.ac: Rewritten the test to detect Bison.
13340 * Makefile.in (YACC): New variable. Reported by Xun Sun
13341 <xun.sun.cn@gmail.com>.
13342
af4b2d89 133432006-01-03 Marco Gerards <marco@gnu.org>
13344
13345 * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
13346 the HFS+ filesystem to filesystem blocks.
13347 (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
13348 GCC warning is silenced.
13349
15643b71 133502006-01-03 Marco Gerards <marco@gnu.org>
13351
13352 * partmap/apple.c (apple_partition_map_iterate): Convert the data
13353 read from disk from big endian to host byte order.
13354
00905879 133552006-01-03 Hollis Blanchard <hollis@penguinppc.org>
13356
13357 * fs/hfs.c: Include <grub/hfs.h>. Added reference to the official
13358 documentation.
13359 (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
13360 (grub_hfs_mount): Grammar fix in error. Make sure this is not an
13361 embedded HFS+ filesystem.
13362 (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
13363 (grub_hfs_sblock): Move from here...
13364 * include/grub/hfs.h: To here... New file.
13365 * fs/hfsplus.c: Include <grub/hfs.h>. Added reference to the official
13366 documentation.
13367 (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
13368 New macros.
13369 (grub_hfsplus_volheader): Change type of member `magic' to
13370 `grub_uint16_t'.
13371 (grub_hfsplus_data): Add new member `embedded_offset'.
13372 (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
13373 returned block.
13374 (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
13375 Calculate the offset.
13376
8899bc3e 133772005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
13378
13379 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
13380 Removed.
13381 (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
13382
ae8c0277 133832005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
13384
13385 * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
13386 ENV->NAME is NULL after allocating ENV->VALUE.
13387
07084456 133882005-12-25 Marco Gerards <marco@gnu.org>
13389
13390 * kern/env.c (grub_env_set): Rewritten the error handling code.
13391
4750f5f1 133922005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
13393
13394 * geninit.sh: Made more robust, and more portable.
13395
50214199 133962005-12-25 Marco Gerards <marco@gnu.org>
13397
13398 Add support for Apple HFS+ filesystems.
f19dbdb7 13399
50214199 13400 * fs/hfsplus.c: New file.
13401
13402 * DISTLIST: Added `fs/hfsplus.c'.
13403
13404 * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
13405 (hfsplus_mod_SOURCES): New variable.
13406 (hfsplus_mod_CFLAGS): Likewise.
13407 (hfsplus_mod_LDFLAGS): Likewise.
13408 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
13409 (grub_setup_SOURCES): Likewise.
13410 (grub_mkdevicemap_SOURCES): Likewise.
13411 (grub_emu_SOURCES): Likewise.
13412 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
13413
13414 * fs/fshelp.c (grub_fshelp_log2blksize): New function.
13415
13416 * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
13417
befaed6c 134182005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
13419
13420 * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
13421 commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
13422 include/grub/parser.h, include/grub/script.h, kern/parser.c,
13423 kern/sparc64/cache.S, normal/execute.c, normal/function.c,
13424 normal/lexer.c, normal/parser.y, normal/script.c, and
13425 partmap/gpt.c.
13426 Removed kern/sparc64/cache.c.
13427
13428 * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
13429 grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
13430 grub_emu_init.c.
13431
13432 * configure.ac (AC_INIT): Bumped to 1.92.
13433
6a124103 134342005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
13435
13436 * kern/err.c (grub_error_push): Added new function to support error
13437 stacks.
13438 (grub_error_pop): Likewise.
13439 (grub_error_stack_items): New local variable to support error stacks.
13440 (grub_error_stack_pos): Likewise.
13441 (grub_error_stack_assert): Likewise.
13442 (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
13443 stack depth.
13444 (grub_print_error): Added support to print errors from error stack.
13445
13446 * include/grub/err.h (grub_error_push): Added function prototype.
13447 (grub_error_pop): Likewise.
13448
be973c1b 134492005-12-09 Hollis Blanchard <hollis@penguinppc.org>
13450
13451 * configure.ac: Accept `powerpc64' as host_cpu.
13452 (amd64): Rename to `biarch32'.
13453
13454 * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
13455 non-cacheline-aligned addresses.
13456
13457 * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
13458 (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
13459 if `size' is non-zero.
13460
b04216ab 134612005-12-03 Marco Gerards <mgerards@xs4all.nl>
13462
13463 * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
13464 and `cd' to make sure the filename is not prefixed with a
13465 directory name.
13466 (pkgdata_MODULES): Add `gpt.mod'.
13467 (gpt_mod_SOURCES): New variable.
13468 (gpt_mod_CFLAGS): Likewise.
13469 (gpt_mod_LDFLAGS): Likewise.
13470
13471 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
13472
13473 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
13474 New macro.
13475
13476 * partmap/gpt.c: New file.
13477
13478 * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
13479 GPT partition map is detected.
13480
41730ed9 134812005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
13482
13483 * commands/i386/pc/play.c: New file.
13484 * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
13485 (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
13486 macros.
f19dbdb7 13487
95dc3643 134882005-11-27 Marco Gerards <mgerards@xs4all.nl>
13489
13490 * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
13491 ((unused))' to silence gcc warning.
13492
1569ec51 134932005-11-26 Hollis Blanchard <hollis@penguinppc.org>
13494
13495 * configure.ac: Correct `AC_PROG_YACC' test.
13496
9abde152 134972005-11-22 Hollis Blanchard <hollis@penguinppc.org>
13498
13499 * util/powerpc/ieee1275/grub-install.in: Run the mount point
13500 check before installing files.
13501
44b83271 135022005-11-22 Mike Small <smallm@panix.com>
13503
13504 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
13505 number regex so multidigit numbers are recognized correctly.
13506
135072005-11-22 Mike Small <smallm@panix.com>
13508
13509 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
13510 debugging message before attempting to claim memory.
13511 (grub_rescue_cmd_initrd): Add a claim debugging message and try
13512 multiple addresses in case of failure.
13513
9c12956b 135142005-11-22 Hollis Blanchard <hollis@penguinppc.org>
13515
13516 * term/tparm.c (get_space): Remove empty `if' statement.
13517
13518 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
13519
13520 * kern/parser.c (check_varstate): Rename `state' to 's'.
13521
aeaf81d9 135222005-11-22 Hollis Blanchard <hollis@penguinppc.org>
13523
13524 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
13525 variable definitions to the beginning of each function. Sort stack
13526 variables by size.
13527 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
13528 `buf' argument to `char *'.
13529
79bbb63f 135302005-11-22 Hollis Blanchard <hollis@penguinppc.org>
13531
13532 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
13533 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 13534 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
79bbb63f 13535 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
13536 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
13537 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
13538 configfile.mod, search.mod, gzio.mod and test.mod.
13539 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
13540 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
13541 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
13542 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
13543 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
13544 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
13545 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
13546 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
13547 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
13548 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
13549 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
13550 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
13551 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
13552 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
13553 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
13554 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
13555 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
13556 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
13557 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
13558 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
13559 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
13560 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
13561 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
13562
13563 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
13564 `grep --include'.
13565 (pkgdata_MODULES): Add test.mod.
13566
233b1628 135672005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
13568
13569 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
13570 appending to variables with "+=".
13571 (PModule): Use full pathname to generate *.lst filenames.
13572
13573 * Makefile.in: Fixed list rules moved from genmk.rb.
13574 (.DELETE_ON_ERROR): New special target.
13575 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
13576
13577 * conf/i386-pc.rmk: Include conf/common.mk.
13578 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 13579 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
233b1628 13580 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
13581 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
13582 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
13583 configfile.mod, search.mod, gzio.mod and test.mod.
13584 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
13585 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
13586 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
13587 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
13588 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
13589 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
13590 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
13591 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
13592 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
13593 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
13594 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
13595 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
13596 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
13597 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
13598 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
13599 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
13600 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
13601 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
13602 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
13603 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
13604 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
13605 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
13606 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
13607 here...
13608 * conf/common.rmk: ... to here. New file.
13609
13610 * conf/common.mk: New file.
13611
16f820c8 136122005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
13613
13614 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
13615 (grub_script.tab.c): ... here.
13616
13617 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
13618 (grub_script.tab.c): ... here.
13619
13620 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
13621 (grub_script.tab.c): ... here.
13622
13623 * normal/command.c (grub_command_find): Fixed a memory leak of
13624 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
13625
63ba1554 136262005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
13627
13628 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
13629 "@" which marks the start of a comment on ARM.
13630 (VARIABLE): Likewise.
13631
7f67dc13 136322005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
13633
79bbb63f 13634 Add support for Linux/ADFS partition tables.
7f67dc13 13635
13636 * partmap/acorn.c: New file.
13637
13638 * include/grub/acorn_filecore.h: Likewise.
13639
13640 * DISTLIST: Added `partmap/acorn.c' and
13641 `include/grub/acorn_filecore.h'.
f19dbdb7 13642
7f67dc13 13643 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
13644 `partmap/acorn.c'.
13645 (pkgdata_MODULES): Add `acorn.mod'.
13646 (acorn_mod_SOURCES): New variable.
13647 (acorn_mod_CFLAGS): Likewise.
13648
13649 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
13650 `partmap/acorn.c'.
13651 (pkgdata_MODULES): Add `acorn.mod'.
13652 (acorn_mod_SOURCES): New variable.
13653 (acorn_mod_CFLAGS): Likewise.
13654
13655 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
13656 (pkgdata_MODULES): Add `acorn.mod'.
13657 (acorn_mod_SOURCES): New variable.
13658 (acorn_mod_CFLAGS): Likewise.
13659 (acorn_mod_LDFLAGS): Likewise.
13660
13661 * include/types.h (grub_disk_addr_t): New typedef.
13662
6d099807 136632005-11-13 Marco Gerards <mgerards@xs4all.nl>
13664
13665 * geninit.sh: New file.
13666
13667 * geninitheader.sh: Likewise.
13668
13669 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
13670 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
13671 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
13672 * commands/configfile.c (grub_configfile_init)
13673 (grub_configfile_fini): Likewise.
13674 * commands/default.c (grub_default_init, grub_default_fini):
13675 Likewise.
13676 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
13677 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
13678 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
13679 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
13680 Likewise.
13681 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
13682 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
13683 Likewise.
13684 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
fe6b695a 13685 * commands/ieee1275/halt.c (grub_halt_init, grub_halt_fini):
6d099807 13686 Likewise.
13687 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
13688 Likewise.
fe6b695a 13689 * commands/ieee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
6d099807 13690 Likewise.
13691 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
13692 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
13693 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
13694 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
13695 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
13696 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
13697 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
13698 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
13699 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
13700 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
13701 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
13702 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
13703 * partmap/amiga.c (grub_amiga_partition_map_init)
13704 (grub_amiga_partition_map_fini): Likewise.
13705 * partmap/apple.c (grub_apple_partition_map_init)
13706 (grub_apple_partition_map_fini): Likewise.
13707 * partmap/pc.c (grub_pc_partition_map_init)
13708 (grub_pc_partition_map_fini): Likewise.
13709 * partmap/sun.c (grub_sun_partition_map_init,
13710 grub_sun_partition_map_fini): Likewise.
13711 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
13712 Likewise.
13713
13714 * util/grub-emu.c: Include <grub_modules_init.h>.
13715 (main): Don't initialize and de-initialize any modules directly,
13716 use `grub_init_all' and `grub_fini_all' instead.
13717
13718 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
13719 `grub_vesafb_mod_init'.
13720 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
13721 all users.
13722 * term/i386/pc/vga.c (grub_vga_init): Renamed to
13723 `grub_vga_mod_init'. Updated all users.
13724 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
f19dbdb7 13725
6d099807 13726 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
13727 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
13728 rules.
13729
13730 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
13731 Generate a function to initialize the module in utilities.
13732 Updated all callers.
13733 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
13734 initialize the module in utilities. Updated all callers.
13735
9046bcf0 137362005-11-09 Hollis Blanchard <hollis@penguinppc.org>
13737
13738 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
13739 escape sequence and a literal ^L to clear the screen.
13740
13741 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
13742 when returning from Open Firmware.
13743
d13ea639 137442005-11-09 Hollis Blanchard <hollis@penguinppc.org>
13745
13746 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
13747 (grub_ofconsole_height): Likewise.
13748 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
13749 manually insert a '\n'.
13750 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
13751 `grub_ofconsole_height'. Return early if these are already set.
13752
a8fcf206 137532005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
13754
13755 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
13756 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
13757 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
13758 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
13759 and `normal/script.c'.
13760 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
13761 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
13762 (test_mod_SOURCES): New variable.
13763 (test_mod_CFLAGS): Likewise.
13764 (test_mod_LDFLAGS): Likewise.
13765 (pkgdata_MODULES): Add `test.mod'.
13766 (grub_script.tab.c): New rule.
13767 (grub_script.tab.h): Likewise.
13768
b6b32745 137692005-11-07 Marco Gerards <mgerards@xs4all.nl>
13770
13771 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
13772 `commands/test.c', `normal/execute.c', `normal/lexer.c',
13773 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
13774 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
13775 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
13776 (test_mod_SOURCES): New variable.
13777 (test_mod_CFLAGS): Likewise.
13778 (pkgdata_MODULES): Add `test.mod'.
13779 (grub_script.tab.c): New rule.
13780 (grub_script.tab.h): Likewise.
13781
daac212a 137822005-11-06 Marco Gerards <mgerards@xs4all.nl>
13783
13784 Add initial scripting support.
13785
13786 * commands/test.c: New file.
13787 * include/grub/script.h: Likewise.
13788 * normal/execute.c: Likewise.
13789 * normal/function.c: Likewise.
13790 * normal/lexer.c: Likewise.
13791 * normal/parser.y: Likewise.
13792 * normal/script.c: Likewise.
13793
13794 * configure.ac: Add `AC_PROG_YACC' test.
f19dbdb7 13795
daac212a 13796 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
13797 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
13798 `normal/function.c' and `normal/script.c'.
13799 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
13800 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
b6b32745 13801 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
13802 variables.
daac212a 13803 (pkgdata_MODULES): Add `test.mod'.
13804 (grub_script.tab.c): New rule.
13805 (grub_script.tab.h): Likewise.
13806
13807 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
13808
13809 * include/grub/normal.h (grub_test_init): New prototype.
13810 (grub_test_fini): Likewise.
f19dbdb7 13811
daac212a 13812 * normal/command.c: Include <grub/script.h>.
13813 (grub_command_execute): Rewritten.
f19dbdb7 13814
daac212a 13815 * util/grub-emu.c (main): Call `grub_test_init' and
13816 `grub_test_fini'.
13817
77500b2b 138182005-11-03 Hollis Blanchard <hollis@penguinppc.org>
13819
13820 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
13821 to 0.
13822 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
13823 there are no pending characters.
13824
e45deb9e 138252005-11-03 Hollis Blanchard <hollis@penguinppc.org>
13826
13827 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
13828 `grub_strndup' to drop device arguments. Replace unnecessary
13829 `grub_strndup' with `grub_strdup'.
13830
4ce32619 138312005-11-03 Hollis Blanchard <hollis@penguinppc.org>
13832
13833 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
13834 `debug' environment variable has been set.
13835
138362005-11-02 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 13837
4ce32619 13838 * Makefile.in (install-local): Use $(DATA).
13839 (uninstall): Likewise.
13840 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
13841 (sbin_UTILITIES): ... to here.
13842 (sbin_SCRIPTS): New variable.
13843 (grub_install_SOURCES): New variable.
13844 * util/powerpc/ieee1275/grub-install.in: New file.
13845 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
13846 variable.
13847 (add_segments): Call `grub_util_get_path'.
13848
25fe6f03 138492005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
13850
13851 From Timothy Baldwin:
13852 * commands/ls.c (grub_ls_list_files): Close FILE with
13853 grub_file_close.
13854 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
13855
04ccf3ec 138562005-10-24 Marco Gerards <mgerards@xs4all.nl>
13857
13858 * include/grub/parser.h: New file.
13859
13860 * kern/parser.c: Likewise.
13861
13862 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
13863 (grub_setup_SOURCES): Likewise.
13864 (grub_probefs_SOURCES): Likewise.
13865 (grub_emu_SOURCES): Likewise.
13866 (kernel_img_HEADERS): Add `parser.h'.
13867
13868 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
13869 (grub_emu_SOURCES): Add `kern/parser.c'.
13870 (grubof_SOURCES): Likewise.
13871
13872 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
13873 (grubof_SOURCES): Add `kern/parser.c'.
13874
13875 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
13876
13877 * kern/misc.c (grub_split_cmdline): Removed function.
13878
13879 * kern/rescue.c: Include <grub/parser.h>.
13880 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
13881 of `grub_split_cmdline'.
13882
13883 * normal/command.c: Include <grub/parser.h>.
13884 (grub_command_execute): Use `grub_parser_split_cmdline' instead
13885 of `grub_split_cmdline'.
13886
13887 * normal/completion.c: Include <grub/parser.h>.
13888 (cmdline_state): New variable.
13889 (iterate_dir): End the filename with a quote depending on the
13890 command line state.
13891 (get_state): new function.
13892 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
13893 split the arguments and determine the current argument. When the
13894 argument string is not quoted, escape all spaces.
13895
6d8f4b0e 138962005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
13897
13898 * normal/sparc64/setjmp.S: New file.
13899
15cf03ed 139002005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
13901
13902 * include/grub/sparc64/libgcc.h: New file.
13903 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
13904 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
13905 normal/sparc64/setjmp.c.
13906
03e8661a 139072005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
13908
13909 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
13910 * kern/sparc64/cache.S: New file.
13911 * kern/sparc64/cache.c: Removed.
13912 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
13913 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
13914 -mtune=ultrasparc.
13915 (COMMON_LDFLAGS): Add -melf64_sparc.
13916 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
13917 (grubof_SOURCES): Use cache.S instead of cache.c.
13918 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
13919 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
13920 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
13921 commented though.
13922 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
13923 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
13924 (linux_mod_CFLAGS): Commented out.
13925 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
13926 out because module isn't built.
13927 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
13928 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
13929 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
13930 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
13931 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
13932 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
13933 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
13934 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
13935 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
13936 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
13937 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
13938 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
13939 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
13940 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
13941
34eeec8a 139422005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
13943
13944 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
13945 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
13946 longer, because HFS should not be used on PC.
13947
708367a3 139482005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
13949
13950 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
13951 consistently within the loop.
13952
6fa1251a 139532005-10-15 Marco Gerards <mgerards@xs4all.nl>
13954
13955 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
13956 directory can not be read.
13957
4801580b 139582005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
13959
13960 * configure.ac (AC_INIT): Increase the version number to 1.91.
13961
13962 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
13963 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
13964 term/i386/pc/serial.c.
13965
219ad426 139662005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
13967
13968 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
13969 file size must be permitted.
13970
13971 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
13972 between %ah and %al.
13973
688e5699 139742005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
13975
13976 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
13977 grub_uint64_t.
13978 Call the hook with a NUL-terminated filename.
13979 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
13980 grub_cpu_to_be32.
13981
13982 * kern/term.c (cursor_state): New variable.
13983 (grub_term_set_current): Reset the cursor state on a new
13984 terminal.
13985 (grub_setcursor): Rewritten to use CURSOR_STATE.
13986 (grub_getcursor): New function.
13987
13988 * include/grub/term.h (grub_getcursor): New prototype.
13989
13990 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
13991 integers on ARM. Reported by Timothy Baldwin
13992 <T.E.Baldwin99@members.leeds.ac.uk>.
13993
bb34586c 139942005-10-11 Marco Gerards <mgerards@xs4all.nl>
13995
13996 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
13997 allocated.
13998 (grub_sfs_dir): Likewise.
13999
9a909877 140002005-10-09 Marco Gerards <mgerards@xs4all.nl>
14001
14002 Add support for the SFS filesystem.
14003
14004 * fs/sfs.c: New file.
14005
14006 * DISTLIST: Added `fs/sfs.c'.
14007
14008 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
14009 (grub_probefs_SOURCES): Likewise.
14010 (grub_emu_SOURCES): Likewise.
14011 (pkgdata_MODULES): Add `sfs.mod'.
14012 (sfs_mod_SOURCES): New variable.
14013 (sfs_mod_CFLAGS): Likewise.
14014 (sfs_mod_LDFLAGS): Likewise.
14015
14016 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
14017 (pkgdata_MODULES): Add `sfs.mod'.
14018 (sfs_mod_SOURCES): New variable.
14019 (sfs_mod_CFLAGS): Likewise.
14020
14021 * util/grub-emu.c (main): Call `grub_sfs_init' and
14022 `grub_sfs_fini'.
14023
14024 * include/grub/fs.h (grub_sfs_init): New prototype.
14025 (grub_sfs_fini): Likewise.
14026
57bdbde3 140272005-10-07 Marco Gerards <mgerards@xs4all.nl>
14028
14029 Add support for the AFFS filesystem.
14030
14031 * fs/affs.c: New file.
14032
14033 * DISTLIST: Added `fs/affs.c'.
14034
14035 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
14036 (grub_probefs_SOURCES): Likewise.
14037 (grub_emu_SOURCES): Likewise.
14038 (pkgdata_MODULES): Add `affs.mod'.
14039 (affs_mod_SOURCES): New variable.
14040 (affs_mod_CFLAGS): Likewise.
14041 (affs_mod_LDFLAGS): Likewise.
14042
14043 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
14044 (pkgdata_MODULES): Add `affs.mod'.
14045 (affs_mod_SOURCES): New variable.
14046 (affs_mod_CFLAGS): Likewise.
14047
14048 * util/grub-emu.c (main): Call `grub_affs_init' and
14049 `grub_affs_fini'.
14050
14051 * include/grub/fs.h (grub_affs_init): New prototype.
14052 (grub_affs_fini): Likewise.
14053
047b67e0 140542005-10-01 Marco Gerards <mgerards@xs4all.nl>
14055
14056 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
14057
59b8208a 140582005-10-01 Marco Gerards <mgerards@xs4all.nl>
14059
14060 * configure.ac: Accept `x86_64' as host_cpu. In that case add
14061 `-m32' to CFLAGS.
14062
14063 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
14064 linking.
f19dbdb7 14065
59b8208a 14066 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
14067 (COMMON_LDFLAGS): New variable.
14068 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
14069 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
14070 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
14071 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
14072 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
14073 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
14074 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
14075 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
14076 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
14077 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
14078 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
14079 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
14080 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
14081 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
14082 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
14083 variables.
14084 (normal_mod_ASFLAGS): Add `-m32'.
14085
14086 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
14087 (grub_host_size_t, grub_host_ssize_t): New types.
14088 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
fe6b695a 14089 dependent of `GRUB_CPU_SIZEOF_VOID_P' instead on
59b8208a 14090 `GRUB_HOST_SIZEOF_VOID_P'.
14091
14092 * include/grub/kernel.h (struct grub_module_header): Type of
14093 member offset changed to `grub_host_off_t'. Type of member size
14094 changed to `grub_host_size_t'.
14095 (struct grub_module_info): Type of member offset changed to
14096 `grub_host_off_t'. Type of member size changed to
14097 `grub_host_size_t'.
14098
b4093103 140992005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
14100
14101 Make GRUB's kernel compliant to Multiboot Specification.
f19dbdb7 14102
b4093103 14103 * kern/i386/pc/startup.S (multiboot_header): New label.
14104 (multiboot_entry): Likewise.
14105 (multiboot_trampoline): Likewise.
14106
14107 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
14108 Increased to 0x4A0.
14109
14110 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
14111 put parentheses after a question mark.
14112 [!GRUB_UTIL] (my_mod): New variable.
14113
14114 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
14115
b2499b29 141162005-09-28 Marco Gerards <mgerards@xs4all.nl>
14117
14118 Adds support for the XFS filesystem. Btrees are not supported
14119 yet.
14120
14121 * fs/xfs.c: New file.
14122
14123 * DISTLIST: Added `fs/xfs.c'.
14124
14125 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
14126 (grub_probefs_SOURCES): Likewise.
14127 (grub_emu_SOURCES): Likewise.
14128 (pkgdata_MODULES): Add `xfs.mod'.
14129 (xfs_mod_SOURCES): New variable.
14130 (xfs_mod_CFLAGS): Likewise.
14131
14132 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
14133 (pkgdata_MODULES): Add `xfs.mod'.
14134 (xfs_mod_SOURCES): New variable.
14135 (xfs_mod_CFLAGS): Likewise.
14136
14137 * util/grub-emu.c (main): Call `grub_xfs_init' and
14138 `grub_xfs_fini'.
14139
14140 * include/grub/fs.h (grub_xfs_init): New prototype.
14141 (grub_xfs_fini): Likewise.
14142
f19dbdb7 14143
83d37a62 141442005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
14145
14146 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
14147 color modes, allow greater than 16 colors to be configured as
14148 a default palette.
14149
47d2d65e 141502005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
14151
14152 * normal/completion.c (complete_arguments): Add the qualifier
14153 const into OPTIONS.
14154
14155 From Omniflux <omniflux+lists@omniflux.com>:
14156 * include/grub/terminfo.h: New file.
14157 * include/grub/tparm.h: Likewise.
14158 * include/grub/i386/pc/serial.h: Likewise.
14159 * term/terminfo.c: Likewise.
14160 * term/tparm.c: Likewise.
14161 * term/i386/pc/serial.c: Likewise.
14162 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
14163 serial.mod.
14164 (terminfo_mod_SOURCES): New variable.
14165 (terminfo_mod_CFLAGS): Likewise.
14166 (serial_mod_SOURCES): Likewise.
14167 (serial_mod_CFLAGS): Likewise.
14168
48b671ff 141692005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
14170
14171 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
14172 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
14173 and kern/powerpc/ieee1275/cmain.c, respectively.
14174
14175 * boot/powerpc/ieee1275/crt0.S: Moved to ...
14176 * kern/powerpc/ieee1275/crt0.S: ... here.
14177
14178 * boot/powerpc/ieee1275/cmain.c: Moved to ...
14179 * kern/powerpc/ieee1275/cmain.c: ... here.
f19dbdb7 14180
48b671ff 14181 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
14182 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
14183 instead of boot/powerpc/ieee1275/crt0.S and
14184 boot/powerpc/ieee1275/cmain.c, respectively.
14185
14186 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
14187 sectors. It was not used anyway.
14188
09fc77a7 141892005-08-30 Hollis Blanchard <hollis@penguinppc.org>
14190
14191 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
14192 `unused parameter' warning.
14193
003789c7 141942005-08-30 Hollis Blanchard <hollis@penguinppc.org>
14195
14196 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
14197 function.
14198 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
14199 getcharwidth.
14200
67f44c86 142012005-08-28 Marco Gerards <metgerards@student.han.nl>
14202
14203 * include/grub/normal.h (enum grub_completion_type): Added
14204 `GRUB_COMPLETION_TYPE_ARGUMENT'.
14205
14206 * normal/cmdline.c (print_completion): Handle
14207 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
14208 * normal/menu_entry.c (store_completion): Likewise.
14209
14210 * normal/completion.c (complete_arguments): New function.
14211 (grub_normal_do_completion): Call `complete_arguments' when the
14212 current words start with a dash.
14213
0b5abe02 142142005-08-27 Marco Gerards <metgerards@student.han.nl>
14215
14216 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
14217 `gzio.mod' instead of `io.mod').
14218
d9864ee1 142192005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
14220
14221 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
14222 (DISTDIRS): Added io and video.
14223 Rewrite the search routine to make an output consistently.
14224
14225 * DISTLIST: Added conf/sparc64-ieee1275.mk,
14226 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
14227 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
14228 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
14229 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
14230 util/powerpc/ieee1275/misc.c.
f19dbdb7 14231
d9864ee1 14232 * include/grub/gzio.h: New file.
14233 * io/gzio.c: Likewise.
f19dbdb7 14234
d9864ee1 14235 * kern/file.c (grub_file_close): Call grub_device_close only if
14236 FILE->DEVICE is not NULL.
14237
14238 * include/grub/mm.h [!NULL] (NULL): New macro.
14239
14240 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
14241
14242 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
14243 (pkgdata_MODULES): Added gzio.mod.
14244 (gzio_mod_SOURCES): New variable.
14245 (gzio_mod_CFLAGS): Likewise.
14246
14247 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
14248 (pkgdata_MODULES): Added gzio.mod.
14249 (gzio_mod_SOURCES): New variable.
14250 (gzio_mod_CFLAGS): Likewise.
14251
14252 * commands/cat.c: Include grub/gzio.h.
14253 (grub_cmd_cat): Use grub_gzfile_open instead of
14254 grub_file_open.
f19dbdb7 14255
d9864ee1 14256 * commands/cmp.c: Include grub/gzio.h.
14257 (grub_cmd_cmp): Use grub_gzfile_open instead of
14258 grub_file_open.
14259
14260 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
14261 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
14262 grub_file_open.
14263 (grub_rescue_cmd_module): Likewise.
14264
fa46f4b5 142652005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
14266
14267 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
14268 kern/sparc64/ieee1275/init.c because it contains _start.
14269 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
14270
e9211b5d 142712005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
14272
14273 * configure.ac: Add support for sparc64 host with ieee1275
14274 firmware.
14275 * configure: Generated from configure.ac.
14276 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
14277 instead of int.
14278 (grub_ofdisk_read): Likewise.
14279 (grub_ofdisk_open): Use %p to print pointer values, and cast the
14280 pointers as (void *) to remove a warning.
14281 (grub_ofdisk_close): Likewise.
14282 (grub_ofdisk_read): Likewise.
14283 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
14284 returns, so make it return void to remove a warning.
14285 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
14286 Corresponding prototype change.
14287 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
14288 values, and cast the pointers as (void *) to remove a warning.
14289 (grub_mm_dump): Likewise.
14290 * conf/sparc64-ieee1275.mk: New file.
14291 * conf/sparc64-ieee1275.rmk: Likewise.
14292 * include/grub/sparc64/setjmp.h: Likewise.
14293 * include/grub/sparc64/types.h: Likewise.
14294 * include/grub/sparc64/ieee1275/console.h: Likewise.
14295 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
14296 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
14297 * include/grub/sparc64/ieee1275/time.h: Likewise.
14298 * kern/sparc64/cache.c: Likewise.
14299 * kern/sparc64/dl.c: Likewise.
14300 * kern/sparc64/ieee1275/init.c: Likewise.
14301 * kern/sparc64/ieee1275/openfw.c: Likewise.
14302
385c6a92 143032005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
14304
14305 * util/console.c (grub_ncurses_putchar): If C is greater than
14306 0x7f, set C to a question mark.
14307 (grub_ncurses_getcharwidth): New function.
14308 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
14309 getcharwidth.
14310
14311 * normal/menu.c (print_entry): Made aware of Unicode. First,
14312 convert TITLE to UCS-4, and predict the cursor position by
14313 grub_getcharwidth.
14314
14315 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
14316 const to SRC.
14317 * kern/misc.c (grub_utf16_to_utf8): Likewise.
14318
16ccb8b1 143192005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
14320
14321 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
14322 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
14323 grub_strcat.
14324
14325 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
14326 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
14327 grub_strcpy and grub_strlen. Take it into account that a space
14328 character is inserted as a delimiter.
14329
6a85ce79 143302005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
14331
14332 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
fe6b695a 14333 invalid magic in the error.
6a85ce79 14334
14335 * commands/search.c: New file.
f19dbdb7 14336
6a85ce79 14337 * util/grub-emu.c (main): Call grub_search_init and
14338 grub_search_fini.
14339
14340 * kern/rescue.c (grub_rescue_print_disks): Removed.
14341 (grub_rescue_print_devices): New function.
14342 (grub_rescue_cmd_ls): Use grub_device_iterate with
14343 grub_rescue_print_devices instead of grub_disk_dev_iterate with
14344 grub_rescue_print_disks.
14345
14346 * kern/partition.c (grub_partition_iterate): Return the result of
14347 PARTMAP->ITERATE instead of GRUB_ERRNO.
14348
14349 * kern/device.c: Include grub/partition.h.
14350 (grub_device_iterate): New function.
14351
14352 * include/grub/partition.h (grub_partition_iterate): Return int
14353 instead of grub_err_t.
14354
14355 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
14356 prototype.
14357 [GRUB_UTIL] (grub_search_fini): Likewise.
14358
14359 * include/grub/device.h (grub_device_iterate): New prototype.
14360
14361 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
14362 commands/search.c.
14363 (pkgdata_MODULES): Added search.mod.
14364 (search_mod_SOURCES): New variable.
14365 (search_mod_CFLAGS): Likewise.
14366
14367 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
14368 (pkgdata_MODULES): Added search.mod.
14369 (search_mod_SOURCES): New variable.
14370 (search_mod_CFLAGS): Likewise.
14371
14372 * commands/ls.c (grub_ls_list_disks): Renamed to ...
14373 (grub_ls_list_devices): ... this, and use grub_device_iterate.
14374 All callers changed.
14375
14376 * DISTLIST: Added commands/search.c.
14377
ef095434 143782005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
14379
14380 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
14381 conversion.
14382 (grub_getcharwidth): New function.
14383
14384 * kern/misc.c (grub_utf8_to_ucs4): New function.
14385
14386 * include/grub/term.h (struct grub_term): Added a new member
14387 "getcharwidth".
14388 (grub_getcharwidth): New prototype.
14389
14390 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
14391
14392 * term/i386/pc/console.c (map_char): New function. Segregated from
14393 grub_console_putchar.
14394 (grub_console_putchar): Use map_char.
14395 (grub_console_getcharwidth): New function.
14396 (grub_console_term): Specified grub_console_getcharwidth as
14397 getcharwidth.
14398
14399 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
14400 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
14401
14402 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
14403 GRUB_ERRNO.
14404 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
14405 on grub_strtoul completely.
14406 (write_char): Declare local variables in the beginning of the
14407 function.
14408 (grub_vesafb_getcharwidth): New function.
14409 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
14410 getcharwidth.
14411
1f0a95e4 144122005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
14413
14414 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
14415 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
14416 commands/i386/pc/vbetest.c.
14417
14418 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
14419 call grub_vbe_get_controller_info again, because the returned
14420 information is volatile.
14421 (grub_vbe_set_video_mode): Mostly rewritten.
14422 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
14423 grub_vbe_status_t correctly.
14424 (grub_vbe_get_video_mode_info): Likewise.
14425 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
14426 several if statements.
14427
14428 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
14429 * commands/i386/pc/vbeinfo.c: ... this.
14430
14431 * commands/i386/pc/vbe_test.c: Renamed to ...
14432 * commands/i386/pc/vbetest.c: ... this.
14433
14434 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
14435 ...
14436 (grub_cmd_vbeinfo): ... this. Save video modes before
14437 iterating. Skip a video mode, if it is not available, not enough
14438 information is given or it is monochrome. Show the memory
14439 model. Leave the interpretation of MODEVAR to grub_strtoul
14440 completely.
14441 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
14442 (GRUB_MOD_FINI): Likewise.
14443
14444 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
14445 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
14446 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
14447 duplicated grub_env_get. Leave the interpretation of MODEVAR to
14448 grub_strtoul completely.
14449 (real2pm): Removed.
14450 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
14451 (GRUB_MOD_FINI): Likewise.
14452
14453 * normal/misc.c: Include grub/mm.h.
14454
14455 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
14456 vbe_list_modes with vbetest.mod and vbeinfo.mod.
14457 (vbe_list_modes_mod_SOURCES): Removed.
14458 (vbe_list_modes_mod_CFLAGS): Likewise.
14459 (vbe_test_mod_SOURCES): Likewise.
14460 (vbe_test_mod_CFLAGS): Likewise.
14461 (vbeinfo_mod_SOURCES): New variable.
14462 (vbeinfo_mod_CFLAGS): Likewise.
14463 (vbetest_mod_SOURCES): Likewise.
14464 (vbetest_mod_CFLAGS): Likewise.
14465
992ffbbe 144662005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
14467
14468 * normal/misc.c: New file.
14469
14470 * DISTLIST: Added normal/misc.c.
f19dbdb7 14471
992ffbbe 14472 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
14473 DISK to HOOK. Call HOOK with DISK.
14474 * partmap/apple.c (apple_partition_map_iterate): Likewise.
14475 * partmap/pc.c (pc_partition_map_iterate): Likewise.
14476 * partmap/sun.c (sun_partition_map_iterate): Likewise.
14477
14478 * normal/menu_entry.c (struct screen): Added a new member
14479 "completion_shown".
14480 (completion_buffer): New global variable.
14481 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
14482 (store_completion): New function.
14483 (complete): Likewise.
14484 (clear_completions): Likewise.
14485 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
14486 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
14487 a tab, call complete.
14488
14489 * normal/completion.c (disk_dev): Removed.
14490 (print_simple_completion): Likewise.
14491 (print_partition_completion): Likewise.
14492 (print_func): New global variable.
14493 (add_completion): Do not take the arguments WHAT or PRINT any
14494 longer. Added a new argument TYPE. Instead of printing directly,
14495 call PRINT_FUNC if not NULL.
14496 All callers changed.
14497 (complete_device): Use a local variable DEV instead of
14498 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
14499 (grub_normal_do_completion): Take a new argument HOOK. Do not
14500 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
14501 empty string, return NULL instead.
14502 All callers changed.
14503
14504 * normal/cmdline.c (print_completion): New function.
14505
14506 * kern/partition.c (grub_partition_iterate): Add an argument DISK
14507 to HOOK.
14508 All callers changed.
14509
14510 * kern/disk.c (grub_print_partinfo): Removed.
14511
14512 * include/grub/partition.h (struct grub_partition_map): Add a new
14513 argument DISK into HOOK of ITERATE.
14514 (grub_partition_iterate): Add a new argument DISK to HOOK.
14515
14516 * include/grub/normal.h (enum grub_completion_type): New enum.
14517 (grub_completion_type_t): New type.
14518 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
14519 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
14520 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
14521 (GRUB_COMPLETION_TYPE_FILE): Likewise.
14522 (grub_normal_do_completion): Added a new argument HOOK.
14523 (grub_normal_print_device_info): New prototype.
14524
14525 * include/grub/disk.h (grub_print_partinfo): Removed.
14526
14527 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
14528 (normal_mod_SOURCES): Likewise.
14529 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
14530 (normal_mod_SOURCES): Likewise.
14531
14532 * commands/ls.c (grub_ls_list_disks): Use
14533 grub_normal_print_device_info instead of grub_print_partinfo. Free
14534 PNAME.
14535 (grub_ls_list_files): Use grub_normal_print_device_info instead of
14536 duplicating the code.
14537
0bd41162 145382005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
14539
14540 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
f19dbdb7 14541 follow GCS more precisely.
14542 * commands/i386/pc/vbe_test.c: Likewise.
14543 * include/grub/i386/pc/vbe.h: Likewise.
14544 * term/i386/pc/vesafb.c: Likewise.
14545 * video/i386/pc/vbe.c: Likewise.
0bd41162 14546
6323696a 145472005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
14548
14549 * DISTLIST: Added term/i386/pc/vesafb.c
14550 DISTLIST: Added video/i386/pc/vbe.c
14551 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
14552 DISTLIST: Added commands/i386/pc/vbe_test.c.
14553 * commands/i386/pc/vbe_list_modes.c: New file.
14554 * commands/i386/pc/vbe_test.c: Likewise.
14555 * term/i386/pc/vesafb.c: Likewise.
14556 * video/i386/pc/vbe.c: Likewise.
14557 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
14558 (grub_vbe_probe) Added prototype.
14559 (grub_vbe_set_video_mode) Likewise.
14560 (grub_vbe_get_video_mode) Likewise.
14561 (grub_vbe_get_video_mode_info) Likewise.
14562 (grub_vbe_set_pixel_rgb) Likewise.
14563 (grub_vbe_set_pixel_index) Likewise.
14564 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
14565 (pkgdata_MODULES): Added vesafb.mod.
14566 (pkgdata_MODULES): Added vbe_list_modes.mod.
14567 (pkgdata_MODULES): Added vbe_test.mod.
14568 (vbe_mod_SOURCES): Added.
14569 (vbe_mod_CFLAGS): Likewise.
14570 (vesafb_mod_SOURCES): Likewise.
14571 (vesafb_mod_CFLAGS): Likewise.
14572 (vbe_list_modes_mod_SOURCES): Likewise.
14573 (vbe_list_modes_mod_CFLAGS): Likewise.
14574 (vbe_test_mod_SOURCES): Likewise.
14575 (vbe_test_mod_CFLAGS): Likewise.
14576
0a74e62f 145772005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
14578
0a74e62f 14579 * normal/command.c (grub_command_execute): If INTERACTIVE is
14580 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
14581 CMDLINE. Disable the pager if INTERACTIVE is true.
14582 All callers are changed.
14583
14584 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
14585 before reading a config file.
14586 * normal/main.c (read_config_file): Even if a command is not
14587 found, register it if it is within an entry.
14588
14589 * util/grub-emu.c: Include sys/types.h and unistd.h.
14590 (options): Added --hold.
14591 (struct arguments): Added a new member "hold".
14592 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
14593 missing.
14594 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
14595 cleared by a debugger, if it is not zero.
14596
14597 * include/grub/normal.h (grub_command_execute): Add an argument
14598 INTERACTIVE.
14599
e51f85ae 146002005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
14601
14602 * DISTLIST: Added include/grub/i386/pc/vbe.h.
14603
e9c6f39b 146042005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
14605
14606 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
14607 program with another one, because the old one didn't detect a bug
14608 in gcc-3.4. Always use regparm 2, because the new test is still
14609 not enough for gcc-4.0. Someone must investigate a simple test
14610 case which detects a bug in gcc-4.0.
14611
8de3495c 146122005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
14613
14614 * DISTLIST: Added normal/completion.c.
14615
14616 * normal/completion.c: New file.
f19dbdb7 14617
8de3495c 14618 * term/i386/pc/console.c (grub_console_getwh): New function.
14619 (grub_console_term): Assign grub_console_getwh to getwh.
14620
14621 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
14622 function is defined in normal/completion.c as
14623 grub_normal_do_completion.
14624 (grub_cmdline_get): Use grub_normal_do_completion instead of
14625 grub_tab_complete.
14626
14627 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
14628 returns non-zero, otherwise return 0.
14629 (grub_partition_iterate): First, probe the partition map. Then,
14630 call ITERATE only for this partition map.
14631
14632 * kern/misc.c (grub_strncmp): Rewritten.
14633
14634 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
14635 returns non-zero. Otherwise return 0.
14636
14637 * include/grub/partition.h (grub_partition_map_iterate): Return
14638 int instead of void.
14639
14640 * include/grub/normal.h (grub_normal_do_completion): New prototype.
14641
14642 * include/grub/misc.h (grub_strncmp): Change the type of N to
14643 grub_size_t.
14644
14645 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
14646 of void.
14647
14648 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
fe6b695a 14649 unsigned explicitly before comparing it with I.
8de3495c 14650
14651 * kern/main.c (grub_env_write_root): Add the attribute unused into
14652 VAR.
14653
14654 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
14655 normal/completion.c.
14656 (normal_mod_SOURCES): Likewise.
14657 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
14658 (normal_mod_SOURCES): Likewise.
14659
14660 * normal/command.c (grub_iterate_commands): If ITERATE returns
14661 non-zero, return one immediately.
14662
e85e144b 146632005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
14664
14665 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
14666 * kern/i386/pc/startup.S: Updated Global Descriptor table's
14667 descriptions.
14668 (grub_vbe_get_controller_info): New function.
14669 (grub_vbe_get_mode_info): Likewise.
14670 (grub_vbe_set_mode): Likewise.
14671 (grub_vbe_get_mode): Likewise.
14672 (grub_vbe_set_memory_window): Likewise.
14673 (grub_vbe_get_memory_window): Likewise.
14674 (grub_vbe_set_scanline_length): Likewise.
14675 (grub_vbe_get_scanline_length): Likewise.
14676 (grub_vbe_set_display_start): Likewise.
14677 (grub_vbe_get_display_start): Likewise.
14678 (grub_vbe_set_palette_data): Likewise.
14679 * include/grub/i386/pc/vbe.h: New file.
14680
c46153d2 146812005-08-08 Hollis Blanchard <hollis@penguinppc.org>
14682
14683 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
14684 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
14685 * DISTLIST: Likewise.
14686 * kern/ieee1275/of.c: Moved to ...
14687 * kern/ieee1275/ieee1275.c: ... here.
14688
0cb90c45 146892005-08-08 Hollis Blanchard <hollis@penguinppc.org>
14690
14691 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
14692 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
14693 Pass 0 as `end' parameter to grub_strtoul().
14694
a19fb360 146952005-08-08 Hollis Blanchard <hollis@penguinppc.org>
14696
14697 * include/grub/powerpc/ieee1275/console.h: Do not include
14698 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
14699 ifdef.
14700 (grub_console_cur_color): Remove i386-specific prototype.
14701 (grub_console_real_putchar): Likewise.
14702 (grub_console_checkkey): Likewise.
14703 (grub_console_getkey): Likewise.
14704 (grub_console_getxy): Likewise.
14705 (grub_console_gotoxy): Likewise.
14706 (grub_console_cls): Likewise.
14707 (grub_console_setcursor): Likewise.
14708 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
14709 Include <grub/machine/console.h>.
14710 * term/ieee1275/ofconsole.c: Likewise.
14711
4ac9bd04 147122005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
14713
14714 * Makefile.in (LIBLZO): New variable.
14715
14716 * configure.ac: Check for LZO version 2.
14717
14718 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
14719 lzo/lzo1x.h instead of lzo1x.h.
14720
14721 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
14722 of -llzo.
14723
14724 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
14725 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
14726
14727 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
14728 copying the data from PARTITION to P.
14729
f4917dfd 147302005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
14731
14732 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
14733 negative, unload the module.
14734
14735 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
14736 map is "pc_partition_map" but not "pc".
14737 (usage): Fix the description. The options are --boot-image and
14738 --core-image but not --boot-file or --core-file.
14739 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
14740 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
14741 DEFAULT_DIRECTORY.
14742
14743 * util/i386/pc/grub-install.in: Do not specify --boot-file or
14744 --core-file. Specify INSTALL_DEVICE as an argument.
14745
14746 * util/console.c: Include config.h.
14747 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
14748 [HAVE_NCURSES_H]: Include ncurses.h.
14749 [HAVE_CURSES_H]: Include curses.h.
14750 [!A_NORMAL] (A_NORMAL): Defined as zero.
14751 [!A_STANDOUT] (A_STANDOUT): Likewise.
14752
14753 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
14754 -lncurses.
14755 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
14756
14757 * configure.ac: Check for curses libraries and headers.
14758
14759 * Makefile.in (LIBCURSES): New variable.
14760
14761 * genmk.rb (Script::rule): Set the executable bits.
14762
14763 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
14764 name of the PC partition map is "pc_partition_map" but not "pc".
14765
0e143073 147662005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
14767
14768 * util/i386/pc/grub-install.in (grub_probefs): New variable.
14769 (modules): Likewise.
14770 (usage): Added descriptions for --modules and --grub-probefs.
14771 Handle --modules and --grub-probefs. Save the arguments in MODULES
14772 and GRUB_PROBEFS, respectively.
14773 Auto-detect a filesystem module against GRUBDIR. If the result is
14774 empty and modules are not specified explicitly, abort the
14775 installation. Add the result to MODULES.
14776
14777 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
14778 disk/powerpc/ieee1275/ofdisk.c,
14779 include/grub/powerpc/ieee1275/init.h and
14780 term/powerpc/ieee1275/ofconsole.c.
14781 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
14782 term/ieee1275/ofconsole.c.
14783
14784 * include/grub/powerpc/ieee1275/console.h: Resurrected.
14785
14786 * COPYING: Upgraded to the latest version. Only the address of the
14787 FSF office has changed.
f19dbdb7 14788
efd6e6d5 147892005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
14790
14791 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
14792 kern/ieee1275.c with kern/ieee1275/of.c.
14793
14794 * kern/ieee1275.c: Moved to ...
14795 * kern/ieee1275/of.c: ... here.
14796
8ceafda2 147972005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
14798
14799 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
fe6b695a 14800 readability.
8ceafda2 14801
14802 * config.guess: Updated to the latest version from gnulib.
14803 * config.sub: Likewise.
14804 * install.sh: Likewise.
14805 * mkinstalldirs: Likewise.
14806
14807 * include/grub/console.h: Removed. This file is arch-specific. Do
14808 not put this in include/grub.
14809
14810 * include/grub/i386/pc/console.h: Resurrected.
14811
14812 * util/console.c: Include grub/machine/console.h instead of
14813 grub/console.h.
14814 * util/grub-emu.c: Likewise.
14815
267f6cd9 148162005-08-04 Marco Gerards <metgerards@student.han.nl>
14817
14818 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
14819 hardcoded value.
f19dbdb7 14820
267f6cd9 14821 From Vincent Pelletier <subdino2004@yahoo.fr>
14822 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
14823 Redefined to use grub_getwh.
14824 (grub_term): New member named getwh.
14825 (grub_getwh): New prototype.
14826 * kern/term.c (grub_getwh): New function.
14827 * term/i386/pc/console.c (grub_console_getwh): New function.
14828 (grub_console_term): New member `getwh'.
14829 * term/i386/pc/vga.c (grub_vga_getwh): New function.
14830 (grub_vga_term): New member `getwh'.
0b5abe02 14831 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
267f6cd9 14832 grub_ssize_t.
14833 (grub_ofconsole_getw): New function.
14834 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
14835 (grub_ofconsole_term): New field named getwh and new initial
14836 value.
14837
3be7266d 148382005-08-03 Hollis Blanchard <hollis@penguinppc.org>
14839
14840 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
14841 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
14842 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
14843 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
14844 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
14845 of <grub/machine/ieee1275.h>.
14846 * commands/ieee1275/reboot.c: Likewise.
14847 * boot/powerpc/ieee1275/ieee1275.c: Move ...
14848 * kern/ieee1275.c: ... to here. All users updated. Change all
14849 parameter structs to use new type `grub_ieee1275_cell_t'.
14850 * term/powerpc/ieee1275/ofconsole.c: Move ...
14851 * term/ieee1275/ofconsole.c: ... to here. All users updated.
14852 * disk/powerpc/ieee1275/ofdisk.c: Move ...
14853 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
14854 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
14855 to return int.
14856 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
14857 Remove unused prototypes. All users updated.
14858 * include/grub/powerpc/ieee1275/console.h: Removed.
14859 * include/grub/powerpc/ieee1275/ieee1275.h: Define
14860 `grub_ieee1275_cell_t'.
14861 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
14862 Cast comparisons with -1 to the correct type.
14863 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
14864 type to match `grub_ieee1275_entry_fn'.
14865
8b5f3938 148662005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
14867
14868 * DISTLIST: Added util/i386/pc/grub-probefs.c.
14869
14870 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
14871 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
14872 partmap/sun.c.
14873 (grub_probefs_SOURCES): New variable.
14874
14875 * util/i386/pc/grub-probefs.c: New file.
14876
14877 * util/i386/pc/grub-setup.c (main): Call
14878 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
14879 grub_hfs_init and grub_jfs_init to initialize the system. Call
14880 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
14881 grub_pc_partition_map_fini to finish the system.
14882
ea409713 148832005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
14884
14885 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
14886 function.
14887 (grub_multiboot_load_elf32): Likewise.
14888 (grub_multiboot_is_elf64): Likewise.
14889 (grub_multiboot_load_elf64): Likewise.
14890 (grub_multiboot_load_elf): Likewise.
14891 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
14892 an ELF32 or ELF64 file.
14893 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
14894
14895 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
14896 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
14897 NULL before calling FS->LABEL.
14898 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
14899 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
14900 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
14901 before calling FS->LABEL.
14902
141a288b 149032005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
14904
14905 * util/i386/pc/grub-install.in (datadir): New variable.
14906 (libdir): Removed.
14907 (pkgdatadir): New variable.
14908 (pkglibdir): Removed.
14909
0d5f8a54 149102005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
14911
14912 * DISTLIST: Added util/i386/pc/grub-install.in.
14913
14914 * util/i386/pc/grub-install.in: New file.
14915
14916 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
14917 (grub_install_SOURCES): Likewise.
14918
14919 * genmk.rb: Added support for scripts.
14920 (Script): New class.
14921 (scripts): New variable.
14922
14923 * Makefile.in (install-local): Install sbin_SCRIPTS by
14924 INSTALL_SCRIPT.
14925 (uninstall): Remove sbin_SCRIPTS.
14926
14927 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
14928 device, try to get a GRUB device by
14929 grub_util_biosdisk_get_grub_dev.
14930 Free DEST_DEV.
14931
14932 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
14933 description for --device-map.
14934
5f968e1e 149352005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
14936
14937 Change the semantics of variable hooks. They now return strings
14938 instead of error values.
f19dbdb7 14939
5f968e1e 14940 * util/i386/pc/grub-setup.c: Include grub/env.h.
14941 (setup): Use grub_device_set_root instead of grub_env_set.
14942
14943 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
14944 grub_env_get instead of grub_device_set_root and
14945 grub_device_get_root, respectively.
14946
14947 * kern/main.c (grub_env_write_root): New function.
14948 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
14949 grub_env_set instead of grub_device_set_root.
14950
14951 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
14952 many variables.
14953 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
14954 rather than calling ENV->WRITE_HOOK afterwards.
14955 (grub_env_get): Return the result of ENV->READ_HOOK rather than
14956 passing a pointer of a pointer.
14957 (grub_register_variable_hook): Change the types of "read_hook" and
14958 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
14959 respectively.
14960 Allocate the default empty string on the heap, because this string
14961 may be freed later.
14962
14963 * kern/device.c: Include grub/env.h.
14964 (grub_device_set_root): Removed.
14965 (grub_device_get_root): Likewise.
14966 (grub_device_open): Use grub_env_get instead of
14967 grub_device_get_root.
14968
14969 * include/grub/env.h (grub_env_read_hook_t): New type.
14970 (grub_env_write_hook_t): Likewise.
14971 (grub_env_var): Change the types of "read_hook" and "write_hook"
14972 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
14973 (grub_register_variable_hook): Likewise.
14974
14975 * include/grub/device.h (grub_device_set_root): Removed.
14976 (grub_device_set_root): Likewise.
14977
14978 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
14979 make sure that DIRNAME terminates with '/', so that
14980 grub_fat_find_dir will fail if PATH is not a directory.
14981
14982 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
14983 from DIRNAME.
14984 Use the qualifier auto for print_files and print_files_long.
14985 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
14986 as a regular file.
14987 Put a newline only if there is no error.
14988 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
14989 used.
14990
896f0afd 149912005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
14992
14993 * kern/partition.c (grub_partition_probe): Initialize PART to
14994 NULL. Otherwise, when no partition map is registered, this returns
14995 a garbage.
14996
b28b81b2 149972005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
14998
14999 * partmap/apple.c (apple_partition_map_iterate): Check if POS
15000 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
15001 valid.
15002
5f3607e0 150032005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
15004
15005 * commands/ls.c (grub_ls_list_disks): Print the filesystem
15006 information on each device, if it does not have partitions. Print
15007 "Device" instead of "Disk", because this function is not specific
15008 to disk devices.
15009
15010 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
15011 static to ensure that it is put on the memory rather than a
15012 register.
15013
502c87e8 150142005-07-17 Yoshinori Okuji <okuji@enbug.org>
15015
15016 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
15017 (grub_cat_init): Likewise.
15018 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
15019 (options): Likewise.
15020 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
15021 (grub_configfile_init): Likewise.
15022 * font/manager.c (GRUB_MOD_INIT): Likewise.
15023 * commands/help.c (GRUB_MOD_INIT): Likewise.
15024 (grub_help_init): Likewise.
15025 * normal/command.c (grub_command_init): Likewise.
15026 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
15027 * disk/loopback.c (grub_loop_init): Likewise.
15028 (GRUB_MOD_INIT): Likewise.
15029 * commands/ls.c (grub_ls_init): Likewise.
15030 (GRUB_MOD_INIT): Likewise.
15031 (options): Likewise.
15032 * commands/boot.c (grub_boot_init): Likewise.
15033 (GRUB_MOD_INIT): Likewise.
15034 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
15035 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
15036 (GRUB_MOD_INIT): Likewise.
15037 * commands/cmp.c (grub_cmp_init): Likewise.
15038 (GRUB_MOD_INIT): Likewise.
15039
15040 * normal/arg.c: Use <> instead of "" to include header files.
15041 (SHORT_ARG_HELP): New macro.
15042 (SHORT_ARG_USAGE): Likewise.
15043 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
15044 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
15045 descriptions.
15046 (find_short): Check if C is 'h' or 'u' explicitly.
15047 (grub_arg_show_help): Use space characters instead of tabs. Treat
15048 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
15049 are shown with --help and --usage only if they are not used for
15050 the command itself.
15051 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
15052 'h' and 'u'.
15053
15054 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
15055 const into "longarg". Change the type of "shortarg" to int.
15056
f806d18e 150572005-07-17 Yoshinori Okuji <okuji@enbug.org>
15058
15059 * boot/i386/pc/boot.S (boot_drive_check): New label.
15060
15061 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
15062 macro.
15063
15064 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
15065 which do not pass a boot drive correctly. Copied from GRUB Legacy.
15066
e293232b 150672005-07-17 Yoshinori Okuji <okuji@enbug.org>
15068
15069 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
15070 When turning off Gate A20, skip the check and return immediately,
15071 because this is not fatal usually.
15072
ebedfd00 150732005-07-17 Yoshinori Okuji <okuji@enbug.org>
15074
15075 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
15076 be 0x7C00 instead of 0x8000.
15077
15078 * boot/i386/pc/pxeboot.S: Rewritten.
15079
15080 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
15081 EXT_C.
15082 (gate_a20_check_state): Read a byte from 0x108000. Invert the
15083 result.
15084
654fc59f 150852005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
15086
15087 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
15088 robustness. This routine now supports a BIOS call and System
15089 Control Port A to modify the gate A20.
15090
15091 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
15092 Increased to 0x440.
15093
09f9923f 150942005-07-12 Hollis Blanchard <hollis@penguinppc.org>
15095
15096 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
15097 device path and resulting ihandle.
15098 (grub_ofdisk_close): dprintf the ihandle being closed.
15099 (grub_ofdisk_read): dprintf function parameters.
15100 * kern/mm.c (grub_mm_init_region): Likewise.
15101 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
15102 (grub_linux_boot): dprintf the Linux entry point, initrd address and
15103 size, and boot arguments.
15104 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
15105 before loading into memory.
15106 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
15107 before loading into memory.
15108
7ef504d8 151092005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
15110
15111 * kern/mm.c: Added much documentation.
15112 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
15113 8, set to 5 instead of 8.
15114
e0f050c2 151152005-07-10 Yoshinori Okuji <okuji@enbug.org>
15116
15117 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
15118
15119 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
15120 (grub_mkdevicemap_SOURCES): New variable.
15121
15122 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
15123 lib/device.c of GRUB Legacy.
15124
7224189a 151252005-07-10 Yoshinori Okuji <okuji@enbug.org>
15126
15127 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
15128 instead of PATH is NULL.
15129
68c864eb 151302005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
15131
15132 * commands/cmp.c (BUFFER_SIZE): New macro.
15133 (grub_cmd_cmp): Close the right file at the right time. Compare
15134 only data just read. Don't report files of different size as
15135 identical. Dynamically allocate buffers. Move variable
15136 declarations at the beginning of function.
15137
e6f3e614 151382005-07-09 Yoshinori Okuji <okuji@enbug.org>
15139
15140 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
15141 reverse.
15142
f8f1559a 151432004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
15144
15145 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
15146 when backspace is pressed at beginning of line.
15147
39c9d41d 151482005-07-03 Yoshinori Okuji <okuji@enbug.org>
15149
15150 * DISTLIST: Added genfslist.sh.
15151
15152 * normal/main.c (fs_module_list): New variable.
15153 (autoload_fs_module): New function.
15154 (read_fs_list): Likewise.
15155 (grub_normal_execute): Call read_fs_list.
15156
15157 * kern/fs.c (grub_fs_autoload_hook): New variable.
15158 (grub_fs_probe): Added support for auto-loading.
15159
15160 * include/grub/normal.h (struct grub_fs_module_list): New struct.
15161 (grub_fs_module_list_t): New type.
15162
15163 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
15164 (grub_fs_autoload_hook): New prototype.
15165
15166 * genfslist.sh: New file.
f19dbdb7 15167
39c9d41d 15168 * genmk.rb: Added a rule to generate a filesystem list.
15169
121c1d83 151702005-06-30 Marco Gerards <metgerards@student.han.nl>
15171
15172 * configure.ac: Fix the test for cross-compiling.
15173
15174 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
15175 define GRUB_UTIL anymore.
15176
15177 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
15178 so this function works on other systems than just big endian.
15179 (load_modules): Likewise.
15180 (add_segments): Likewise.
15181
e75d76e1 151822005-06-23 Hollis Blanchard <hollis@penguinppc.org>
15183
15184 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
15185 contains `l' modifier, get a long from va_arg().
15186
50b5a0a7 151872005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
15188
15189 * kern/mm.c (grub_free): If the next free block which is being
15190 merged is the first free block, set the first block to the block
15191 being freed.
15192 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
15193
89371b20 151942005-05-08 Hollis Blanchard <hollis@penguinppc.org>
15195
15196 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
15197 `grub_ieee1275_chosen'.
15198
168d6e58 151992005-05-08 Hollis Blanchard <hollis@penguinppc.org>
15200
15201 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
15202 (grub_ieee1275_chosen): New variable.
15203 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
15204 `chosen'.
15205 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
15206 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
15207 Rename first argument to `phandle' for consistency.
15208 (grub_ieee1275_get_property_length): Likewise.
15209 (grub_ieee1275_next_property): Likewise. Change type of first argument
15210 to grub_ieee1275_phandle_t.
15211 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
15212 Move export next to declaration.
15213 (grub_ieee1275_chosen): New variable.
15214 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
15215 Correct cosmetic typo.
15216 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
15217 `grub_ieee1275_chosen'.
15218 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
15219 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
15220 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
15221 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
15222 `grub_ieee1275_chosen'.
15223
ca5baa3f 152242005-05-10 Hollis Blanchard <hollis@penguinppc.org>
15225
15226 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
15227 /chosen/bootargs.
15228 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
15229 /chosen/bootargs as "variable=value" pairs.
15230
708b345f 152312005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
15232
15233 * include/grub/misc.h (grub_dprintf): New macro.
15234 (grub_real_dprintf): New prototype.
15235 (grub_strword): Likewise.
15236 (grub_iswordseparator): Likewise.
15237 * kern/misc.c (grub_real_dprintf): New function.
15238 (grub_strword): Likewise.
15239 (grub_iswordseparator): Likewise.
15240
f4c5e67c 152412005-04-30 Hollis Blanchard <hollis@penguinppc.org>
15242
15243 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
15244 (roundup): Remove macro.
15245 (grub_ieee1275_flags): Make static.
15246 (grub_ieee1275_realmode): Remove.
15247 (grub_ieee1275_test_flag): New function.
15248 (grub_ieee1275_set_flag): Likewise.
15249 (find_options): Rename to `grub_ieee1275_find_options'; update
15250 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
15251 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
15252 (cmain): New prototype.
15253 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
15254 `grub_ieee1275_flags' directly.
15255 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
15256 machine/biosdisk.h.
15257 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
15258 Don't include grub/machine/init.h.
15259 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
15260 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
15261 Remove prototype.
15262 (grub_ieee1275_realmode): Likewise.
15263 (grub_ieee1275_flag): New enum.
15264 (grub_ieee1275_test_flag): New prototype.
15265 (grub_ieee1275_set_flag): New prototype.
15266 * include/grub/powerpc/ieee1275/init.h: Remove file.
15267 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
15268 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
15269 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
15270 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
15271 comment.
15272 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
15273 `grub_ieee1275_test_flag'.
15274 (grub_ieee1275_encode_devname): Likewise.
15275
ed16607e 152762005-04-21 Hollis Blanchard <hollis@penguinppc.org>
15277
15278 * include/grub/powerpc/ieee1275/ieee1275.h
15279 (grub_ieee1275_encode_devname): New prototype.
15280 (grub_ieee1275_get_filename): Likewise.
15281 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
15282 function.
15283 (grub_set_prefix): Likewise.
15284 (grub_machine_init): Call grub_set_prefix.
15285 * kern/powerpc/ieee1275/openfw.c: Fix typos.
15286 (grub_parse_type): New enum.
15287 (grub_ieee1275_get_devargs): New function.
15288 (grub_ieee1275_get_devname): Likewise.
15289 (grub_ieee1275_parse_args): Likewise.
15290 (grub_ieee1275_get_filename): Likewise.
15291 (grub_ieee1275_encode_devname): Likewise.
15292
be369920 152932005-03-30 Marco Gerards <metgerards@student.han.nl>
15294
15295 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
15296 `grub_loader_unset'.
15297
a5ce3a4a 152982005-03-26 Hollis Blanchard <hollis@penguinppc.org>
15299
15300 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
15301 instead of grub_ieee1275_interpret.
15302 (grub_halt_init): New function.
15303 (grub_halt_fini): Likewise.
15304 (GRUB_MOD_INIT): Correct message grammar.
15305 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
15306 instead of grub_ieee1275_interpret.
15307 (grub_reboot_init): New function.
15308 (grub_reboot_fini): Likewise.
15309 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
15310 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
15311 util/i386/pc/misc.c with commands/ieee1275/halt.c,
15312 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
15313 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
15314 function.
15315 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
15316 Add prototype.
15317 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
15318 prototype.
15319 (grub_halt): Likewise.
15320 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
15321 (cmain): Remove __attribute__((unused)).
15322 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
15323 (grub_heap_len): Likewise.
15324 (grub_machine_fini): New function.
15325 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
15326 (grub_halt): Likewise.
15327 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
15328 function.
15329 * util/powerpc/ieee1275/misc.c: New file.
15330
0058f771 153312005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
15332
15333 * DISTLIST: New file.
15334 * gendistlist.sh: Likewise.
f19dbdb7 15335
0058f771 15336 * Makefile.in (COMMON_DISTFILES): Removed.
15337 (BOOT_DISTFILES): Likewise.
15338 (CONF_DISTFILES): Likewise.
15339 (DISK_DISTFILES): Likewise.
15340 (FS_DISTFILES): Likewise.
15341 (INCLUDE_DISTFILES): Likewise.
15342 (KERN_DISTFILES): Likewise.
15343 (LOADER_DISTFILES): Likewise.
15344 (TERM_DISTFILES): Likewise.
15345 (UTIL_DISTFILES): Likewise.
15346 (DISTFILES): Likewise.
15347 (uninstall): Uninstall files in $(pkgdata_DATA).
15348 (DISTLIST): New target.
15349 (distdir): Use the contents of the file DISTLIST to get a list of
15350 distributed files.
15351
46b3b8a5 153522005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
15353
15354 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
15355 descriptor. This is ported from GRUB Legacy.
15356
15357 * gencmdlist.sh: Added an extra semicolon to make it work with
15358 old sed versions. Reported by Robert Bihlmeyer
15359 <robbe@orcus.priv.at>.
15360
5822ff87 153612005-03-08 Yoshinori Okuji <okuji@enbug.org>
15362
15363 Automatic loading of commands is supported.
f19dbdb7 15364
5822ff87 15365 * normal/main.c (read_command_list): New function.
15366 (grub_normal_execute): Call read_command_list.
15367
15368 * normal/command.c (grub_register_command): Return zero or CMD.
15369 Allocate CMD->NAME from the heap.
15370 Initialize CMD->MODULE_NAME to zero.
15371 Find the same name as well. If the same command is found and it is
15372 a dummy command, overwrite members. If it is not a dummy command,
15373 return zero.
15374 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
15375 (grub_command_find): If a dummy command is found, load a module
15376 and retry to find a command only once.
15377
15378 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
15379 make sure that each command is loaded.
15380
15381 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
15382 macro.
15383 (struct grub_command): Remove const from the member `name'.
15384 Add a new member `module_name'.
15385 (grub_register_command): Return grub_command_t.
15386
15387 * commands/help.c (grub_cmd_help): Call grub_command_find to make
15388 sure that each command is loaded.
15389
15390 * genmk.rb (PModule::rule): Specify a module name without the
15391 suffix ".mod" to gencmdlist.sh.
15392
7b1f4b57 153932005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
15394
15395 * gencmdlist.sh: New file.
f19dbdb7 15396
7b1f4b57 15397 * genmk.rb (PModule::rule): Generate a rule for a command list.
15398 Clean command.lst.
15399 Generate command.lst from $(COMMANDFILES).
15400
15401 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
15402 (DATA): Added $(pkgdata_DATA).
15403 (install-local): Install files in $(pkgdata_DATA).
15404
062aaf39 154052005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
15406
15407 * term/i386/pc/vga.c (debug_command): Removed.
15408 (GRUB_MOD_INIT): Do not register the command "debug".
15409
15410 From Hollis Blanchard:
15411 * commands/configfile.c: New file.
15412 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
15413 commands/configfile.c.
15414 (pkgdata_MODULES): Added configfile.mod.
15415 (configfile_mod_SOURCES): New variable.
15416 (configfile_mod_CFLAGS): Likewise.
15417 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
15418 commands/configfile.c.
15419 (pkgdata_MODULES): Added configfile.mod.
15420 (configfile_mod_SOURCES): New variable.
15421 (configfile_mod_CFLAGS): Likewise.
15422 * util/grub-emu.c (main): Call grub_configfile_init and
15423 grub_configfile_fini.
15424 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
15425 prototype.
15426 [GRUB_UTIL] (grub_configfile_fini): Likewise.
f19dbdb7 15427
cee01aa6 154282005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
15429
15430 * normal/arg.c (grub_arg_show_help): Do not show the bug report
15431 address.
15432
15433 * commands/help.c (grub_cmd_help): Do not print newlines after
15434 the last command in print_command_help.
15435
93f3a1d8 154362005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
15437
15438 * commands/default.h: New file.
15439 * commands/timeout.h: Likewise.
15440 * normal/context.c: Likewise.
f19dbdb7 15441
93f3a1d8 15442 * util/misc.c: Do not include sys/times.h.
15443 Include sys/time.h and grub/machine/time.h.
15444 (grub_get_rtc): Rewritten with gettimeofday.
15445
15446 * util/grub-emu.c (main): Call grub_default_init and
15447 grub_timeout_init before grub_normal_init, and call
15448 grub_timeout_fini and grub_default_fini after grub_main.
15449
15450 * util/console.c (grub_ncurses_checkkey): Return the read
15451 character or -1.
15452
15453 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
15454 timeouts.
15455
15456 * normal/main.c (read_config_file): Push MENU. If this fails,
15457 print an error and wait for a user input.
15458 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
15459 If a menu is empty or an error occurs, pop MENU.
15460 (grub_normal_execute): Pop and free MENU after grub_menu_run
15461 returns.
15462
15463 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
15464
15465 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
15466 include time.h.
15467 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
15468 without GRUB_UTIL.
15469 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
15470 time.h.
15471 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
15472 without GRUB_UTIL.
15473
15474 * include/grub/normal.h (struct grub_menu_list): New struct.
15475 (grub_menu_list_t): New type.
15476 (struct grub_context): New struct.
15477 (grub_context_t): New type.
15478 (grub_register_command): Got rid of EXPORT_FUNC.
15479 (grub_unregister_command): Likewise.
15480 (grub_context_get): New prototype.
15481 (grub_context_get_current_menu): Likewise.
15482 (grub_context_push_menu): Likewise.
15483 (grub_context_pop_menu): Likewise.
15484 [GRUB_UTIL] (grub_default_init): Likewise.
15485 [GRUB_UTIL] (grub_default_fini): Likewise.
15486 [GRUB_UTIL] (grub_timeout_init): Likewise.
15487 [GRUB_UTIL] (grub_timeout_fini): Likewise.
15488
15489 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
15490 commands/timeout.c and normal/context.c.
15491 (pkgdata_MODULES): Added default.mod and timeout.mod.
15492 (normal_mod_SOURCES): Added normal/context.c.
15493 (default_mod_SOURCES): New variable.
15494 (default_mod_CFLAGS): Likewise.
15495 (timeout_mod_SOURCES): Likewise.
15496 (timeout_mod_CFLAGS): Likewise.
15497 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
15498 conf/i386-pc.rmk.
15499 (pkgdata_MODULES): Added default.mod and timeout.mod.
15500 (normal_mod_SOURCES): Added normal/context.c.
15501 (default_mod_SOURCES): New variable.
15502 (default_mod_CFLAGS): Likewise.
15503 (timeout_mod_SOURCES): Likewise.
15504 (timeout_mod_CFLAGS): Likewise.
15505
15506 * Makefile.in (all-local): Added $(MKFILES).
15507
4ed2e1dd 155082005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
15509
15510 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
15511 (grub_emu_SOURCES): Likewise.
15512 (pkgdata_MODULES): Add `sun.mod'.
15513 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
15514 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
15515 `partmap/sun.c'.
15516 (pkgdata_MODULES): Add `sun.mod'.
15517 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
15518 * include/grub/partition.h (grub_sun_partition_map_init): New
15519 prototype.
15520 (grub_sun_partition_map_fini): Likewise.
15521 * partmap/sun.c: New file.
15522 * util/grub-emu.c (main): Initialize and de-initialize the sun
15523 partitionmap support.
15524
4d4e372e 155252005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
15526
15527 This implements an Emacs-like menu entry editor.
f19dbdb7 15528
4d4e372e 15529 * normal/menu_entry.c: New file.
f19dbdb7 15530
4d4e372e 15531 * util/console.c (grub_ncurses_putchar): Translate some Unicode
15532 characters to ASCII.
15533 (saved_char): New variable.
15534 (grub_ncurses_checkkey): Rewritten completely.
15535 (grub_ncurses_getkey): Likewise.
15536 (grub_ncurses_init): Call raw instead of cbreak.
15537
15538 * normal/menu.c (print_entry): Do not put a space.
15539 (init_page): Renamed to ...
15540 (grub_menu_init_page): ... this. All callers changed.
15541 (edit_menu_entry): Removed.
15542 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
15543
15544 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
15545
15546 * kern/misc.c (grub_vprintf): Call grub_refresh.
15547
15548 * normal/menu.c (DISP_LEFT): Renamed to ...
15549 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
15550 * normal/menu.c (DISP_UP): Renamed to ...
15551 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
15552 * normal/menu.c (DISP_RIGHT): Renamed to ...
15553 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
15554 * normal/menu.c (DISP_DOWN): Renamed to ...
15555 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
15556 * normal/menu.c (DISP_HLINE): Renamed to ...
15557 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
15558 * normal/menu.c (DISP_VLINE): Renamed to ...
15559 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
15560 * normal/menu.c (DISP_UL): Renamed to ...
15561 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
15562 * normal/menu.c (DISP_UR): Renamed to ...
15563 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
15564 * normal/menu.c (DISP_LL): Renamed to ...
15565 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
15566 * normal/menu.c (DISP_LR): Renamed to ...
15567 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
15568 * normal/menu.c (TERM_WIDTH): Renamed to ...
15569 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
15570 * normal/menu.c (TERM_HEIGHT): Renamed to ...
15571 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
15572 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
15573 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
15574 * normal/menu.c (TERM_MARGIN): Renamed to ...
15575 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
15576 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
15577 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
15578 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
15579 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
15580 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
15581 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
15582 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
15583 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
15584 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
15585 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
15586 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
15587 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
15588 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
15589 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
15590 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
15591 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
15592 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
15593 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
15594 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
15595 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
15596 All callers changed.
15597
15598 * include/grub/normal.h: New prototype.
15599
15600 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
15601 normal/menu_entry.c.
15602 (normal_mod_SOURCES): Likewise.
15603 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
15604 (normal_mod_SOURCES): Likewise.
15605
e6b92c8a 156062005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
15607
15608 * include/grub/normal.h (grub_halt_init): New prototype.
15609 (grub_halt_fini): Likewise.
15610 (grub_reboot_init): Likewise.
15611 (grub_reboot_fini): Likewise.
15612
15613 * util/grub-emu.c: Include signal.h.
15614 (main_env): New global variable.
15615 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
15616 catch C-c.
15617 (grub_machine_fini): New function.
15618 (main): Call grub_halt_init and grub_reboot_init before
15619 grub_main, and grub_reboot_fini and grub_halt_fini after it.
15620 Call setjmp with MAIN_ENV to go back afterwards.
15621 Call grub_machine_fini right before return.
15622
15623 * include/grub/util/misc.h: Include setjmp.h.
15624 (main_env): New prototype.
15625
15626 * include/grub/kernel.h (grub_machine_fini): New prototype.
15627 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
15628 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
15629
15630 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
15631 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
15632 * term/i386/pc/console.c (grub_console_fini): Likewise.
f19dbdb7 15633
e6b92c8a 15634 * util/i386/pc/misc.c: New file.
f19dbdb7 15635
e6b92c8a 15636 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
15637 util/i386/pc/misc.c, commands/i386/pc/halt.c and
15638 commands/i386/pc/reboot.c.
15639
c642636f 156402005-02-14 Guillem Jover <guillem@hadrons.org>
15641
15642 * include/grub/dl.h (grub_dl_check_header): New prototype.
15643 (grub_arch_dl_check_header): Change return type to grub_err_t,
15644 remove size parameter and export function. Update all callers.
15645 * kern/dl.c (grub_dl_check_header): New function.
15646 (grub_dl_load_core): Use `grub_dl_check_header' instead of
15647 `grub_arch_dl_check_header'. Check ELF type. Check if sections
15648 are inside the core.
15649 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
15650 independent ELF header checks.
15651 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
15652 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
15653 `grub_dl_check_header' instead of explicit checks. Check for the
15654 ELF type.
15655 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
15656 `grub_dl_check_header' instead of explicit checks. Remove arch
15657 specific ELF header checks.
15658
e6b92c8a 15659 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
15660 argument SIZE.
15661
5eabe94b 156622005-02-13 Hollis Blanchard <hollis@penguinppc.org>
15663
15664 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
15665 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
15666
1b14a681 156672005-02-12 Hollis Blanchard <hollis@penguinppc.org>
15668
15669 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
f19dbdb7 15670 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
1b14a681 15671 (part_map_iterate): Clear `grub_errno' and return 0 if
f19dbdb7 15672 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
1b14a681 15673 * partmap/amiga.c (amiga_partition_map_iterate): Return
15674 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
15675 * partmap/apple.c (apple_partition_map_iterate): Likewise.
15676
aca108aa 156772005-02-01 Guillem Jover <guillem@hadrons.org>
15678
15679 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
15680 help info.
15681
c9f9c556 156822005-01-31 Marco Gerards <metgerards@student.han.nl>
15683
15684 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
15685 Removed prototype.
15686 (grub_rescue_cmd_linux): New prototype.
15687 (grub_rescue_cmd_initrd): Likewise.
15688 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
15689 `bi_rec'.
15690 (grub_linux_release_mem): Release the memory for the initrd.
15691 (grub_load_linux): Renamed from this...
15692 (grub_rescue_cmd_linux): ...To this. Changed all callers.
15693 Changed `entry' not to be static. Loop over memory regions to
15694 find another one when the default fails.
15695 (grub_rescue_cmd_initrd): New function.
15696 (grub_linux_init): Remove function.
15697 (grub_linux_fini): Likewise.
15698 (GRUB_MOD_INIT): Register `initrd'.
15699 (GRUB_MOD_FINI): Unregister `initrd'.
15700 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
15701 Function removed.
15702 (grub_linux_normal_fini): Likewise.
15703 (GRUB_MOD_INIT): Register `initrd'.
15704 (GRUB_MOD_FINI): Unregister `initrd'.
15705
990cf3aa 157062005-01-31 Marco Gerards <metgerards@student.han.nl>
15707
15708 * commands/help.c: New file.
15709 * normal/arg.c (show_help): Renamed to...
15710 (grub_arg_show_help): ... this.
15711 * commands/i386/pc/halt.c: New file.
15712 * commands/i386/pc/reboot.c: Likewise.
15713 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
15714 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
15715 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
15716 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
15717 variables.
15718 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
15719 `commands/help.c'.
15720 (pkgdata_MODULES): Add `help.mod'.
15721 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
15722 * grub/i386/pc/init.h (grub_reboot): New prototype.
15723 (grub_halt): Likewise.
15724 * include/grub/normal.h (grub_arg_show_help): New prototype.
15725 (grub_help_init): Likewise.
15726 (grub_help_fini): Likewise.
15727 * util/grub-emu.c (main): Initialize and deinitialize the help
15728 command.
15729
15730 * normal/cmdline.c (grub_cmdline_get): Doc fix.
15731
15732 * normal/command.c (grub_command_init): Fixed the description of
15733 the `set' and `unset' commands.
15734
157352005-01-31 Marco Gerards <metgerards@student.han.nl>
0f79cdc1 15736
15737 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
15738 function.
15739 * commands/ieee1275/halt.c: New file.
15740 * commands/ieee1275/reboot.c: Likewise.
15741 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
15742 `__attribute__ ((unused))'. Some GCS related fixed.
15743 (grub_suspend_init) [GRUB_UTIL]: Function removed.
15744 (grub_suspend_fini): Likewise.
15745 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
15746 and `halt.mod'.
15747 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
15748 (halt_mod_CFLAGS): New variables.
15749 * include/grub/powerpc/ieee1275/ieee1275.h
15750 (grub_ieee1275_interpret): New prototype.
15751
1ab09cc7 157522005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
15753
15754 * include/grub/misc.h (memmove): New prototype.
15755 (memcpy): Likewise.
15756
8b8cbdb2 157572005-01-22 Hollis Blanchard <hollis@penguinppc.org>
15758
15759 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
15760 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
15761
e3741a27 157622005-01-22 Marco Gerards <metgerards@student.han.nl>
15763
15764 * kern/misc.c (grub_strndup): Function rewritten.
15765
776bd780 157662005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
15767
15768 * normal/menu.c (TERM_WIDTH): Macro redefined.
15769 (TERM_TOP_BORDER_Y): Likewise.
15770 (draw_border): Replaced while-loop by a for-loop. Make the number
15771 of lines consistent with the number of lines displayed in
15772 print_entries. Added a margin below the rectangle.
15773 (print_entry): Make the entry fit in the rectangle.
15774 (print_entries): Display the scroll arrows next to the right
15775 border.
15776
78026bce 157772005-01-21 Marco Gerards <metgerards@student.han.nl>
15778
15779 * fs/minix.c (grub_minix_find_file): Reserve more space for
15780 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
15781 `grub_strncpy' to copy `path' into it.
15782
67bbaf0f 157832005-01-21 Marco Gerards <metgerards@student.han.nl>
15784
15785 Add the loopback device, a device via which files can be accessed
15786 as devices.
f19dbdb7 15787
67bbaf0f 15788 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
15789 (pkgdata_MODULES): Add loopback.mod.
15790 (loopback_mod_SOURCES): New variable.
15791 (loopback_mod_CFLAGS): Likewise.
15792 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
15793 `disk/loopback.c'.
15794 (pkgdata_MODULES): Add loopback.mod.
15795 (loopback_mod_SOURCES): New variable.
15796 (loopback_mod_CFLAGS): Likewise.
15797 * disk/loopback.c: new file.
15798 * include/grub/normal.h (grub_loop_init): New prototype.
15799 (grub_loop_fini): New prototype.
15800 * util/grub-emu.c (main): Initialize and de-initialize loopback
15801 support.
15802 * include/grub/disk.h (grub_disk_dev_id): Add
15803 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
15804
6f1c18bd 158052005-01-20 Hollis Blanchard <hollis@penguinppc.org>
15806
15807 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
15808 function.
15809 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
15810 (suspend_mod_SOURCES): New variable.
15811 (suspend_mod_CFLAGS): Likewise.
15812 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
15813 New prototype.
15814 * commands/ieee1275/suspend.c: New file.
15815
b38551da 158162005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
15817
15818 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
f19dbdb7 15819 ((unused))' to `__attribute__ ((used))'.
b38551da 15820 (GRUB_MOD_FINI): Likewise.
15821 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
15822 * genmk.rb (PModule): Assign space to common symbols when linking
15823 modules.
15824
777aff39 158252005-01-20 Marco Gerards <metgerards@student.han.nl>
15826
15827 * include/grub/mm.h (grub_mm_init_region): Change the type of the
15828 `unsigned' arguments to `grub_size_t'.
15829 (grub_malloc): Likewise.
15830 (grub_realloc): Likewise.
15831 (grub_memalign): Likewise.
15832 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
15833 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
15834 * util/misc.c (grub_malloc): Likewise.
15835 (grub_realloc): Likewise.
15836 * kern/mm.c (get_header_from_pointer): Change the casts to
15837 `unsigned' into a cast to `grub_size_t'.
15838
15839 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
15840 point to `currnode' when `currnode' is changed.
15841
15842 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
15843 Schottelius <nico-linux@schottelius.org>.
15844
d0ff18e1 158452005-01-09 Hollis Blanchard <hollis@penguinppc.org>
15846
15847 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
15848 (note_path): Remove variable.
15849 (GRUB_IEEE1275_NOTE_NAME): New macro.
15850 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
15851 (grub_ieee1275_note_hdr): New structure.
15852 (grub_ieee1275_note_desc): Likewise.
15853 (grub_ieee1275_note): Likewise.
15854 (load_note): Remove `dir' argument. All callers updated. Remove
15855 `note_img' and `path'. Do not load a file from `note_path'.
15856 Initialize a struct grub_ieee1275_note and write that to `out'.
15857 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
15858
4ca7004c 158592005-01-05 Marco Gerards <metgerards@student.han.nl>
15860
15861 * util/misc.c (grub_util_read_image): Revert last change. It
15862 called `grub_util_read_at', which seeks from the beginning of the
15863 file.
15864
0b412211 158652005-01-04 Hollis Blanchard <hollis@penguinppc.org>
15866
15867 * TODO: Add note about endianness in grub-mkimage.
15868 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
15869 section.
15870 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
15871 (grub_mkimage_SOURCES): New target.
15872 * include/grub/kernel.h (grub_start_addr): Remove variable.
15873 (grub_end_addr): Likewise.
15874 (grub_total_module_size): Likewise.
15875 (grub_kernel_image_size): Likewise.
15876 (GRUB_MODULE_MAGIC): New constant.
15877 (grub_module_info): New structure.
15878 (grub_arch_modules_addr): New prototype.
15879 (grub_get_end_addr): Remove prototype.
15880 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
15881 * include/grub/powerpc/ieee1275/kernel.h: New file.
15882 * include/grub/util/misc.h (grub_util_get_fp_size): New
15883 prototype.
15884 (grub_util_read_at): Likewise.
15885 (grub_util_write_image_at): Likewise.
15886 * kern/main.c (grub_get_end_addr): Remove function.
15887 (grub_load_modules): Call grub_arch_modules_addr instead of using
15888 grub_end_addr. Look for a grub_module_info struct in memory. Use
15889 the grub_module_info fields instead of calling grub_get_end_addr
15890 as loop conditions. Move grub_add_unused_region code here.
15891 (grub_add_unused_region): Remove function.
15892 * kern/i386/pc/init.c: Include grub/cache.h.
15893 (grub_machine_init): Remove call to grub_get_end_addr. Remove
15894 one call to add_mem_region.
15895 (grub_arch_modules_addr): New function.
15896 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
15897 (grub_total_module_size): Likewise.
15898 Include grub/machine/kernel.h.
15899 (grub_arch_modules_addr): New function.
15900 * util/grub-emu.c (grub_end_addr): Remove variable.
15901 (grub_total_module_size): Likewise.
15902 (grub_arch_modules_addr): New function.
15903 * util/misc.c: Include unistd.h.
15904 (grub_util_get_fp_size): New function.
15905 (grub_util_read_at): Likewise.
15906 (grub_util_write_image_at): Likewise.
15907 (grub_util_read_image): Call grub_util_read_at.
15908 (grub_util_write_image): Call grub_util_write_image_at.
15909 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
15910 additional memory in kernel_img for a struct grub_module_info.
15911 Fill in that grub_module_info.
15912 * util/powerpc/ieee1275/grub-mkimage.c: New file.
15913
458786f8 159142005-01-03 Hollis Blanchard <hollis@penguinppc.org>
15915
15916 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
15917 New function.
15918 * include/grub/powerpc/ieee1275/ieee1275.h
15919 (grub_ieee1275_milliseconds): New prototype.
15920 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
15921 Change to 1000.
15922 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
15923 grub_ieee1275_milliseconds.
15924
ac507d1b 159252005-01-03 Hollis Blanchard <hollis@penguinppc.org>
15926
15927 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
15928 variable.
15929 (find_options): New function.
15930 (cmain): Call find_options.
15931 * include/grub/powerpc/ieee1275/ieee1275.h
15932 (grub_ieee1275_realmode): New extern variable.
15933 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
15934 grub_map if grub_ieee1275_realmode is false.
15935
6b8fd1c4 159362004-12-29 Marco Gerards <metgerards@student.han.nl>
15937
15938 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
15939 lines are inserted and make it work like readline. Reported by
15940 Vincent Pelletier <subdino2004@yahoo.fr>.
15941
8514a1e0 159422004-12-28 Marco Gerards <metgerards@student.han.nl>
15943
15944 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
15945
15946 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
15947 `kern/powerpc/cache.S'.
15948
924b6140 159492004-12-27 Marco Gerards <metgerards@student.han.nl>
15950
15951 * genmk.rb: Handle the `Program' class in the main loop. Written
15952 by Johan Rydberg <jrydberg@gnu.org>.
15953 (Program): New class.
15954 (programs): New variable.
15955 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
15956 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
15957 instead of "grub/kernel.h". Include <grub/machine/init.h>.
15958 (help_arch): Function removed.
15959 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
15960 `powerpc/libgcc.h' and `loader.h'.
15961 (pkgdata_PROGRAMS): New variable.
15962 (sbin_UTILITIES): Variable removed.
15963 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
15964 (grubof_SOURCES): Variable re-defined so it only includes the
15965 core functionality.
15966 (grubof_CFLAGS): Remove `-DGRUBOF'.
15967 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
15968 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
15969 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
15970 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
15971 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
15972 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
15973 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
15974 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
15975 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
15976 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
15977 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
15978 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
15979 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
15980 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
15981 (pc_mod_CFLAGS): New variables.
15982 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
15983 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
15984 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
15985 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
15986 Moved from here...
15987 * include/grub/i386/pc/init.h (grub_os_area_addr)
15988 (rub_os_area_size): ... to here.
15989 * include/grub/powerpc/ieee1275/ieee1275.h
15990 (grub_ieee1275_entry_fn): Export symbol.
15991 * include/grub/powerpc/ieee1275/init.h: New file.
15992 * include/grub/powerpc/libgcc.h: Likewise.
15993 * include/grub/cache.h: Likewise.
15994 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
15995 <hollis@penguinppc.org>.
15996 * kern/dl.c: Include <grub/cache.h>.
15997 (grub_dl_flush_cache): New function.
15998 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
15999 for this module.
16000 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
16001 (grub_console_init): Removed prototypes.
16002 (grub_machine_init): Don't initialize the modules anymore.
16003 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
16004 static.
16005 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
16006 Macro undef removed.
16007 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
16008 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
16009 relocation `R_PPC_REL32'. Return an error when the relocation is
16010 unknown.
16011 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
16012 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
16013 * util/misc.c (grub_arch_sync_caches): Likewise.
16014
e4b47e0c 160152004-12-19 Marco Gerards <metgerards@student.han.nl>
16016
16017 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
16018 `symlist.c', add `grubof_symlist.c'.
16019 (symlist.c): Variable removed.
16020 (grubof_HEADERS): Variable added.
16021 (grubof_symlist.c): New target.
16022 (kernel_syms.lst): Use `grubof_HEADERS' instead of
16023 `kernel_img_HEADERS'.
16024 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
16025 * kern/powerpc/dl.c: New file.
16026 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
16027 Function removed.
16028 (grub_arch_dl_relocate_symbols): Likewise.
16029 (grub_register_exported_symbols): Likewise.
16030
4ceb3636 160312004-12-13 Marco Gerards <metgerards@student.han.nl>
16032
16033 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
16034 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
16035 to fail instead. Reported by Vincent Pelletier
16036 <subdino2004@yahoo.fr>.
16037
16038 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
16039 it is not allocated. Reported by Vincent Pelletier
16040 <subdino2004@yahoo.fr>.
16041
16042 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
16043 output so the output looks better.
f19dbdb7 16044
3f1578fe 160452004-12-04 Marco Gerards <metgerards@student.han.nl>
16046
16047 Modulize the partition map support and add support for the amiga
16048 partition map.
f19dbdb7 16049
3f1578fe 16050 * commands/ls.c: Include <grub/partition.h> instead of
16051 <grub/machine/partition.h>.
16052 * kern/disk.c: Likewise.
16053 * kern/rescue.c: Likewise.
16054 * loader/i386/pc/chainloader.c: Likewise.
16055 * normal/cmdline.c: Likewise.
16056 * kern/powerpc/ieee1275/init.c: Likewise.
16057 (grub_machine_init): Call `grub_pc_partition_map_init',
16058 `grub_amiga_partition_map_init' and
16059 `grub_apple_partition_map_init'.
16060 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
16061 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
16062 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
16063 `partition.h' and `pc_partition.h'.
16064 (grub_setup_SOURCES): Remove
16065 `disk/i386/pc/partition.c'. Add `kern/partition.c',
16066 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
16067 (grub_emu_SOURCES): Likewise.
16068 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
16069 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
16070 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
16071 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
16072 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
16073 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
16074 (grubof_SOURCES): Likewise.
16075 * disk/i386/pc/partition.c: File removed.
16076 * disk/powerpc/ieee1275/partition.c: Likewise.
16077 * include/grub/powerpc/ieee1275/partition.h: Likewise.
16078 * include/grub/i386/pc/partition.h: Likewise.
16079 * kern/partition.c: New file.
16080 * partmap/amiga.c: Likewise.
16081 * partmap/apple.c: Likewise.
16082 * partmap/pc.c: Likewise.
16083 * include/grub/partition.h: Likewise..
16084 * include/grub/pc_partition.h: Likewise.
16085 * util/grub-emu.c: Include <grub/partition.h> instead of
16086 <grub/machine/partition.h>.
16087 (main): Call `grub_pc_partition_map_init',
16088 `grub_amiga_partition_map_init' and
16089 `grub_apple_partition_map_init' and deinitialize afterwards.
16090 * util/i386/pc/biosdisk.c: Include `#include
16091 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
16092 `<grub/machine/partition.h>'.
16093 * util/i386/pc/grub-setup.c: Likewise.
16094 * util/i386/pc/biosdisk.c: Likewise.
16095 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
16096 partition information in case of a PC partition.
16097 * util/i386/pc/grub-setup.c: Include `#include
16098 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
16099 `<grub/machine/partition.h>'.
16100 (setup): Only access the PC specific partition information in case
16101 of a PC partition.
16102
0ef4ced9 161032004-11-17 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 16104
0ef4ced9 16105 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
16106 (grub_longjmp): Likewise.
16107 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
16108 20.
16109 * normal/powerpc/setjmp.S: New file.
16110 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
16111 `normal/powerpc/setjmp.S'.
16112 (grubof_CFLAGS): Add `-DGRUBOF'.
16113 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
16114 [GRUB_UTIL && !GRUBOF].
f19dbdb7 16115
19950e29 161162004-11-16 Marco Gerards <metgerards@student.han.nl>
16117
16118 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
16119 property named `name'. Correctly handle the error returned by
16120 `grub_ieee1275_finddevice' if a device can not be opened.
16121
a2fea427 161222004-11-02 Hollis Blanchard <hollis@penguinppc.org>
16123
16124 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
16125 `actual' for negativity.
16126 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
16127 kern/fshelp.c.
16128
41ea0ea3 161292004-11-01 Marco Gerards <metgerards@student.han.nl>
16130
16131 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
16132 (PAGE_OFFSET): New macro.
16133 (CRTC_ADDR_PORT): Likewise.
16134 (CRTC_DATA_PORT): Likewise.
16135 (START_ADDR_HIGH_REGISTER): Likewise.
16136 (START_ADDR_LOW_REGISTER): Likewise.
16137 (GRAPHICS_ADDR_PORT): Likewise.
16138 (GRAPHICS_DATA_PORT): Likewise.
16139 (READ_MAP_REGISTER): Likewise.
16140 (INPUT_STATUS1_REGISTER): Likewise.
16141 (INPUT_STATUS1_VERTR_BIT): Likewise.
16142 (page): New variable.
16143 (wait_vretrace): New function.
16144 (set_read_map): Likewise.
16145 (set_start_address): Likewise.
16146 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
16147 the right page.
16148 (check_vga_mem): Take the page into account.
16149 (write_char): Likewise.
16150 (write_cursor): Likewise.
16151 (scroll_up): Likewise. Copy the page to the page that is not
16152 shown and switch between both pages.
16153 (grub_vga_putchar): Fix off by one error.
16154 (grub_vga_cls): Wait for the vertical retrace. Take the page into
16155 account.
16156
ad0bd20b 161572004-11-01 Marco Gerards <metgerards@student.han.nl>
16158
16159 Add support for iso9660 (including rockridge).
f19dbdb7 16160
ad0bd20b 16161 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
16162 (iso9660_mod_SOURCES): New variable.
16163 (iso9660_mod_CFLAGS): Likewise.
16164 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
16165 * include/grub/fs.h (grub_iso9660_init): New prototype.
16166 * util/grub-emu.c (main): Call `grub_iso9660_init'.
16167 * fs/iso9660.c: New file.
16168
16169 * include/grub/misc.h (grub_strncat): New prototype.
16170 * kern/misc.c (grub_strncat): New function.
f19dbdb7 16171
ad0bd20b 16172 * fs/hfs.c (grub_hfs_mount): Translate the error
16173 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
16174 * fs/jfs.c (grub_jfs_mount): Likewise.
16175 * fs/ufs.c (grub_ufs_mount): Likewise.
16176
a5477a59 161772004-10-28 Hollis Blanchard <hollis@penguinppc.org>
16178
16179 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
16180 which initialized BAT registers.
16181 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
16182 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
16183 Move from here...
16184 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
16185 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
16186 ... to here.
16187 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
16188 (grub_mapclaim): Likewise.
16189 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
16190 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
16191 hand.
16192
9304c1f8 161932004-10-19 Hollis Blanchard <hollis@penguinppc.org>
16194
16195 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
16196 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
16197 -ffreestanding and -msoft-float.
16198
86f4ae25 161992004-10-15 Hollis Blanchard <hollis@penguinppc.org>
16200
16201 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
16202 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
16203 set in grub_ieee1275_flags.
16204
38912228 162052004-10-14 Hollis Blanchard <hollis@penguinppc.org>
16206
16207 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
16208 prototype.
16209 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
16210 grub_console_init first.
16211 Change the memory range used for grub_ieee1275_claim and
16212 grub_mm_init_region.
16213 Print an error message if the claim fails.
16214 Include <grub/misc.h>.
16215
d1923dc8 162162004-10-13 Hollis Blanchard <hollis@penguinppc.org>
16217
16218 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
16219 Call grub_children_iterate for device nodes of type `scsi',
16220 `ide', or `ata'.
16221 (grub_ofdisk_open): Remove manual device alias resolution.
16222 Fix memory leak when device cannot be opened.
f19dbdb7 16223 * include/grub/powerpc/ieee1275/ieee1275.h
d1923dc8 16224 (grub_children_iterate): New prototype.
16225 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
16226 New function.
16227 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
16228 Return -1 if args.size was -1.
16229
4512e4f3 162302004-10-11 Hollis Blanchard <hollis@penguinppc.org>
16231
16232 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
16233 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
16234 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
16235 Open Firmware's memory for it; claim memory from _start to _end.
16236 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
16237 (_end): New extern.
16238 (_start): Zero BSS from __bss_start to _end.
16239 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
16240 New extern.
16241 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
16242
4d61feb0 162432004-10-11 Hollis Blanchard <hollis@penguinppc.org>
16244
ad0bd20b 16245 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
16246 -1 if args.base was -1.
4d61feb0 16247
026fa2f9 162482004-10-08 Hollis Blanchard <hollis@penguinppc.org>
16249
16250 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
16251 escape sequence instead of a literal ^L. Also call
16252 grub_ofconsole_gotoxy.
16253
9f2220ef 162542004-10-03 Hollis Blanchard <hollis@penguinppc.org>
16255
16256 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
16257 void * arguments to grub_addr_t. All callers updated. Also make
16258 the `result' argument optional.
16259 (grub_ieee1275_release): change void * arguments to grub_addr_t.
16260 All callers updated.
16261
8a572cd7 162622004-09-22 Hollis Blanchard <hollis@penguinppc.org>
16263
16264 * commands/ls.c (grub_ls_list_files): Use the string following the
16265 initial ')', if present, as the filesystem path.
16266 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
16267
16268 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
16269
18aa81f2 162702004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
16271
16272 Make the source code of the menu interface more readable.
f19dbdb7 16273
18aa81f2 16274 * normal/menu.c: Include grub/mm.h.
16275 (TERM_WIDTH): New macro.
16276 (TERM_HEIGHT): Likewise.
16277 (TERM_INFO_HEIGHT): Likewise.
16278 (TERM_MARGIN): Likewise.
16279 (TERM_SCROLL_WIDTH): Likewise.
16280 (TERM_TOP_BORDER_Y): Likewise.
16281 (TERM_LEFT_BORDER_X): Likewise.
16282 (TERM_BORDER_WIDTH): Likewise.
16283 (TERM_MESSAGE_HEIGHT): Likewise.
16284 (TERM_BORDER_HEIGHT): Likewise.
16285 (TERM_NUM_ENTRIES): Likewise.
16286 (TERM_FIRST_ENTRY_Y): Likewise.
16287 (TERM_ENTRY_WIDTH): Likewise.
16288 (TERM_CURSOR_X): Likewise.
16289 (draw_border): Use macros instead of magic numbers.
16290 (print_entry): Likewise.
16291 (print_entries): Likewise.
16292 (run_menu): Likewise. Also, handle the key 'e'.
16293 (run_menu_entry): Ignore empty command lines.
16294 (print_message): Added a new argument EDIT. If EDIT is true,
16295 print a different message.
16296 (init_page): Likewise.
16297 (edit_menu_entry): New function. Not implemented yet.
16298
b47efe30 162992004-09-17 Marco Gerards <metgerards@student.han.nl>
16300
16301 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
16302 can be loaded from normal mode.
f19dbdb7 16303
b47efe30 16304 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
16305 `multiboot.mod'.
16306 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
16307 (multiboot_mod_CFLAGS): New variables.
16308 * loader/i386/pc/linux_normal.c: New file.
f19dbdb7 16309 * loader/i386/pc/multiboot_normal.c: Likewise.
16310
b47efe30 16311 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
16312 attribute `unused'.
f19dbdb7 16313
b47efe30 16314 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
16315 `fdiro' to read the mode information from instead of `diro'.
16316
16317 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
16318 looking up a symlink.
16319
16320 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
16321 macro.
16322 * normal/command.c (grub_command_execute): Don't parse the
16323 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
16324 flags of the command.
16325
16326 * normal/menu.c (grub_menu_run): Fix typo.
16327
da75ac71 163282004-09-14 Hollis Blanchard <hollis@penguinppc.org>
16329
16330 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
16331
16332 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
16333 `y + 1' instead of `y - 1'.
16334
16335 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
f19dbdb7 16336
062b24c2 163372004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
16338
16339 From Hollis Blanchard <hollis@penguinppc.org>:
16340 * kern/misc.c (memmove): New alias for grub_memmove.
16341 (memcmp): New alias for grub_memcmp.
16342 (memset): New alias for grub_memset.
f19dbdb7 16343 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
062b24c2 16344 Change "int handle" to "grub_ieee1275_phandle_t handle".
f19dbdb7 16345 * include/grub/powerpc/ieee1275/ieee1275.h
062b24c2 16346 (grub_ieee1275_get_property): Likewise.
f19dbdb7 16347
8ddad845 163482004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
16349
16350 Added normal mode command `chainloader' as module chain.mod, which
16351 depends on normal.mod and _chain.mod.
f19dbdb7 16352
8ddad845 16353 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
16354 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
16355 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
16356 Deleted prototype.
16357 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
16358 but arguments parsing moved to ...
16359 (grub_chainloader_cmd): ... here. New function.
16360 * include/grub/i386/pc/chainloader.h: New file.
16361 * loader/i386/pc/chainloader_normal.c: Likewise.
16362
2c1f4ce3 163632004-09-11 Marco Gerards <metgerards@student.han.nl>
16364
16365 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
16366 (grub_mkimage_LDFLAGS): Likewise.
16367 (grub_emu_SOURCES): Likewise.
16368 (kernel_img_HEADERS): Added fshelp.h.
16369 * fs/ext2.c: Include <grub/fshelp.h>.
16370 (FILETYPE_REG): New macro.
16371 (FILETYPE_INO_REG): Likewise.
16372 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
16373 Changed all users.
16374 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
16375 all users.
16376 (grub_fshelp_node): New struct.
16377 (grub_ext2_data): Added member `diropen'. Changed member `inode'
16378 to a pointer.
16379 (grub_ext2_get_file_block): Removed function.
16380 (grub_ext2_read_block): New function.
16381 (grub_ext2_read_file): Replaced parameter `data' by `node'.
16382 This function was written.
16383 (grub_ext2_mount): Read the root inode. Create a diropen struct.
16384 (grub_ext2_find_file): Removed function.
16385 (grub_ext2_read_symlink): New function.
16386 (grub_ext2_iterate_dir): Likewise.
16387 (grub_ext2_open): Rewritten.
16388 (grub_ext2_dir): Rewritten.
16389 * include/grub/fshelp.h: New file.
16390 * fs/fshelp.c: Likewise.
16391
3c52136a 163922004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
16393
16394 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
16395 (print_message): Add a missing newline.
16396 (run_menu): Added timeout support.
16397 (run_menu_entry): New local function.
16398 (grub_menu_run): Added support for booting.
16399
16400 * kern/loader.c (grub_loader_is_loaded): New function.
16401
16402 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
16403 (grub_get_rtc): Exported.
16404
16405 * include/grub/i386/pc/time.h: Include grub/symbol.h.
16406 (grub_get_rtc): Exported.
16407
16408 * include/grub/normal.h (struct grub_command_list): Remove
16409 constant from the member `command'.
16410
16411 * include/grub/loader.h (grub_loader_is_loaded): Declared.
16412
16413 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
16414
16415 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
16416
aa033560 164172004-08-28 Marco Gerards <metgerards@student.han.nl>
16418
16419 Add support for the JFS filesystem.
16420
16421 * fs/jfs.c: New file.
16422 * include/grub/fs.h (grub_jfs_init): New prototype.
16423 (grub_jfs_fini): New prototype.
16424 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
16425 (grub_emu_SOURCES): Likewise.
16426 (pkgdata_MODULES): Add jfs.mod.
16427 (jfs_mod_SOURCES): New variable.
16428 (jfs_mod_CFLAGS): Likewise.
16429 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
16430 (grubof_SOURCES): Likewise.
16431 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
16432
16433 * fs/fat.c (grub_fat_find_dir): Convert the filename little
16434 endian to the host endian.
16435 (grub_fat_utf16_to_utf8): Move function from there...
16436 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
fe987087 16437 the endianness of the source string anymore.
aa033560 16438 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
16439
94bc45af 164402004-08-24 Marco Gerards <metgerards@student.han.nl>
16441
16442 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
16443 (grub_boot_fini) [GRUB_UTIL]: Likewise.
16444 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
16445 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
f19dbdb7 16446
94bc45af 16447 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
16448 (grub_hfs_iterate_dir): Make the function static. Add prototypes
16449 for `node_found' and `it_dir'.
16450 (grub_hfs_dir): Add prototype for `dir_hook'.
16451
16452 * fs/minix.c (grub_minix_get_file_block): Add prototype for
16453 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
16454 and `indir32' to silence a gcc warning.
16455
16456 * include/grub/fs.h (grub_hfs_init): New prototype.
16457 (grub_hfs_fini): Likewise.
f19dbdb7 16458
16459
97543f08 164602004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
16461
16462 Each disk device has its own id now. This is useful to make use
16463 of multiple disk devices.
f19dbdb7 16464
97543f08 16465 * include/grub/disk.h (grub_disk_dev_id): New enum.
16466 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
16467 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
16468
16469 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
16470 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
16471
16472 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
16473 GRUB_DISK_DEVICE_OFDISK_ID as an id.
16474
16475 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
16476 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
16477
16478 * include/grub/disk.h (struct grub_disk_dev): Added a new member
16479 "id" which is used by the cache manager.
16480
16481 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
16482 of just "GRUB".
16483
64372eb4 164842004-08-18 Marco Gerards <metgerards@student.han.nl>
16485
16486 * fs/hfs.c: New file.
16487 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
16488 (grub_emu_SOURCES): Likewise.
16489 (pkgdata_MODULES): Add hfs.mod.
16490 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
16491 (grubof_SOURCES): Likewise.
16492 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
16493
16494 * include/grub/misc.h (grub_strncasecmp): Add prototype.
16495 * kern/misc.c (grub_strncasecmp): Add function.
16496
cc61b58f 164972004-08-14 Marco Gerards <metgerards@student.han.nl>
16498
16499 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
16500 with parentheses.
16501
16502 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
16503 (grub_ext2_dir): In case the directory entry type is unknown, read
16504 it from the inode.
16505
0ef123f6 165062004-08-02 Peter Bruin <pjbruin@dds.nl>
16507
16508 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
16509 grub_load_linux instead of grub_rescue_cmd_linux as second
16510 argument of grub_rescue_register_command.
16511
16512 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
16513
a447c5df 165142004-07-27 Marco Gerards <metgerards@student.han.nl>
16515
16516 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
16517 function.
16518 * commands/boot.c: Remove the check for `GRUB_UTIL'.
16519 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
16520 `loader/powerpc/ieee1275/linux.c',
16521 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
16522 * include/grub/powerpc/ieee1275/ieee1275.h
16523 (grub_ieee1275_release): New prototype.
16524 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
16525 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
16526 normal, boot, linux and linux_normal.
16527 * loader/powerpc/ieee1275/linux.c: New file.
16528 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
16529
5a9e3546 165302004-07-12 Marco Gerards <metgerards@student.han.nl>
16531
16532 * normal/arg.c (grub_arg_parse): Correct error handling after
16533 reallocating the argumentlist (check if `argl' is not null instead
16534 of checking if `args' is not null).
16535 * kern/mm.c (grub_realloc): Return the same pointer when using the
16536 same region, instead of returning the header address.
16537
e15199cb 165382004-07-11 Marco Gerards <metgerards@student.han.nl>
16539
16540 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
16541 one block instead of two when looking for the initial partition.
16542 (grub_partition_probe): Initialize the local variable `p' with 0.
16543 Use base 10 for the grub_strtoul call.
16544 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
16545 need for one local variable.
16546 (grub_strtoul): Don't add the new value to `num', instead of that
16547 just assign it.
16548
020616c2 165492004-07-11 Marco Gerards <metgerards@student.han.nl>
16550
16551 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
16552 (pxeboot_img_SOURCES): New variable.
16553 (pxeboot_img_ASFLAGS): Likewise.
16554 (pxeboot_img_LDFLAGS): Likewise.
16555 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
16556 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
16557 <lode_leroy@hotmail.com>.
16558
6c51eb64 165592004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
16560
16561 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
16562 there was no input.
16563
cfb12aff 165642004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
16565
16566 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
16567 the history buffer logic.
16568
6eabba74 165692004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
16570
16571 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
16572 (FILETYPE_INO_SYMLINK): New macros.
16573 (grub_ext2_find_file): Check if the node is a directory using the
16574 inode stat information instead of using the filetype in the
16575 dirent. Exclude the first character of an absolute symlink.
16576 (grub_ext2_dir): Mask out the filetype part of the mode member of
16577 the inode.
16578
66e19ef8 165792004-05-24 Marco Gerards <metgerards@student.han.nl>
16580
16581 Add support for UFS version 1 and 2. Add support for the minix
16582 filesystem version 1 and 2, both the variants with 14 and 30 long
16583 filenames.
f19dbdb7 16584
66e19ef8 16585 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
16586 fs/minix.c.
16587 (grub_emu_SOURCES): Likewise.
16588 (pkgdata_MODULES): Add ufs.mod and minix.mod.
16589 (ufs_mod_SOURCES): New variable.
16590 (ufs_mod_CFLAGS): Likewise.
16591 (minix_mod_SOURCES): Likewise.
16592 (minix_mod_CFLAGS): Likewise.
16593 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
16594 fs/minix.c.
16595 (grubof_SOURCES): Likewise.
16596 * fs/ufs.c: New file.
16597 * fs/minix.c: New file.
16598 * include/grub/fs.h (grub_ufs_init): New prototype.
16599 (grub_ufs_fini): Likewise.
16600 (grub_minix_init): Likewise.
16601 (grub_minix_fini): Likewise.
16602 * util/grub-emu.c (main): Initialize and deinitialize UFS and
16603 minix fs.
16604
cc2e748a 166052004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
16606
16607 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
16608 commands/ls.c, commands/terminal.c, commands/boot.c,
16609 commands/cmp.c and commands/cat.c.
16610 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
16611
16612 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
16613 "env.h"
16614
4b13b216 166152004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
16616
16617 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
16618 and grub_, respectively. Because the conversion is trivial and
16619 mechanical, I omit the details here. Please refer to the CVS
16620 if you need more information.
16621
6a142551 166222004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
16623
16624 * include/pupa: Renamed to ...
16625 * include/grub: ... this.
16626 * util/i386/pc/pupa-mkimage.c: Renamed to ...
16627 * util/i386/pc/grub-mkimage.c: ... this.
16628 * util/i386/pc/pupa-setup.c: Renamed to ...
16629 * util/i386/pc/grub-setup.c: ... this.
16630 * util/pupa-emu.c: Renamed to ...
16631 * util/grub-emu.c: ... this.
16632
e56cdf21 166332004-03-29 Marco Gerards <metgerards@student.han.nl>
16634
16635 Add support for the newworld apple macintosh (PPC). This has been
16636 tested on the powerbook 2000 only. It only adds support for
16637 generic ieee1275 functions, console and disk support. This should
16638 be easy to port to other architectures with support for Open
16639 Firmware.
f19dbdb7 16640
e56cdf21 16641 * configure.ac: Accept the powerpc as host_cpu. In the case of
16642 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
16643 specific tests are only executed while building for the i386.
16644 Inverse test for crosscompile.
16645 * genmk.rb (Utility): Allow assembler files.
16646 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
16647 * conf/powerpc-ieee1275.rmk: New file.
16648 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
16649 * disk/powerpc/ieee1275/partition.c: Likewise.
16650 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
16651 * include/pupa/powerpc/ieee1275/console.h: Likewise.
16652 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
16653 * include/pupa/powerpc/ieee1275/time.h: Likewise.
16654 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
16655 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
16656 * include/pupa/powerpc/ieee1275/loader.h
16657 * include/pupa/powerpc/setjmp.h: Likewise.
16658 * include/pupa/powerpc/types.h: Likewise.
16659 * kern/powerpc/ieee1275/init.c: Likewise.
16660 * kern/powerpc/ieee1275/openfw.c: Likewise.
16661 * term/powerpc/ieee1275/ofconsole.c: Likewise.
16662
16663 These files were written by Johan Rydberg
16664 (jrydberg@night.trouble.net) and I only modified them slightly.
f19dbdb7 16665
e56cdf21 16666 * boot/powerpc/ieee1275/cmain.c: New file.
16667 * boot/powerpc/ieee1275/crt0.S: Likewise.
16668 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
16669 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
16670
8c8cc205 166712004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
16672
16673 * Makefile.in: Update copyright.
16674 * genmodsrc.sh: Likewise.
16675 * gensymlist.sh: Likewise.
16676 * term/i386/pc/vga.c: Indent correctly.
16677
16678 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
16679 bugreporting address.
16680 * util/i386/pc/pupa-setup.c (usage): Likewise,
16681 (main): Call pupa_ext2_init and pupa_ext2_fini.
16682
f19dbdb7 16683 * fs/fat.c (log2): Renamed to ...
8c8cc205 16684 (fat_log2): ... this.
16685 All callers changed.
16686 * kern/misc.c (memcpy): Alias to pupa_memmove.
16687 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
16688 lvalue cast.
16689 * util/console.c (pupa_ncurses_fini): Return 0.
16690
16691 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
16692 Move fail label here.
16693 [__GNU__]: Don't warn when using stat.
16694 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
16695 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
16696 long int. Use strtol instead of strtoul.
f19dbdb7 16697
db1771cf 166982004-03-14 Marco Gerards <metgerards@student.han.nl>
16699
16700 * commands/boot.c: New file.
16701 * commands/cat.c: Likewise.
16702 * commands/cmp.c: Likewise.
16703 * commands/ls.c: Likewise.
16704 * commands/terminal.c: Likewise.
16705 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
16706 (pupa_register_command): Changed interface to match the new
16707 argument parser.
16708 (pupa_command_execute): Changed (almost rewritten) so it uses
16709 pupa_split_command. Added support for setting variables using the
16710 syntax `foo=bar'.
16711 (rescue_command): Changed to work with the new argument parser.
16712 (terminal_command): Moved from here to commands/terminal.c.
16713 (set_command): New function.
16714 (unset_command): New function.
16715 (insmod_command): New function.
16716 (rmmod_command): New function.
16717 (lsmod_command): New function.
16718 (pupa_command_init): Don't initialize the command terminal
16719 anymore. Initialize the commands set, unset, insmod, rmmod and
16720 lsmod.
16721 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
16722 (kernel_img_HEADERS): Add arg.h and env.h.
16723 (pupa_mkimage_LDFLAGS): Add kern/env.c.
16724 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
16725 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
16726 normal/arg.c.
16727 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
16728 terminal.mod.
16729 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
16730 (boot_mod_SOURCES): New variable.
16731 (terminal_mod_SOURCES): Likewise.
16732 (ls_mod_SOURCES): Likewise.
16733 (cmp_mod_SOURCES): Likewise.
16734 (cat_mod_SOURCES): Likewise.
16735
16736 * normal/arg.c: New file.
16737 * kern/env.c: Likewise.
16738 * include/pupa/arg.h: Likewise.
16739 * include/pupa/env.h: Likewise.
16740 * font/manager.c (font_command): Changed to match argument parsing
16741 interface changes.
16742 (PUPA_MOD_INIT): Likewise.
16743 * hello/hello.c (pupa_cmd_hello): Likewise.
16744 (PUPA_MOD_INIT): Likewise.
16745 * include/pupa/disk.h: Include <pupa/device.h>.
16746 (pupa_print_partinfo): New prototype.
16747 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
16748 (pupa_dl_get_prefix): Likewise.
16749 * include/pupa/misc.h: Include <pupa/err.h>.
16750 (pupa_isgraph): New prototype.
16751 (pupa_isdigit): Likewise.
16752 (pupa_split_cmdline): Likewise.
16753 * include/pupa/normal.h: Include <pupa/arg.h>.
16754 (pupa_command): Changed the prototype of the member `func' to
16755 match the argument parsing interface. Added member `options'.
16756 (pupa_register_command): Updated to match function.
16757 (pupa_arg_parse): New prototype.
16758 (pupa_hello_init) [PUPA_UTIL]: New prototype.
16759 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
16760 (pupa_ls_init) [PUPA_UTIL]: Likewise.
16761 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
16762 (pupa_cat_init) [PUPA_UTIL]: Likewise.
16763 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
16764 (pupa_boot_init) [PUPA_UTIL]: Likewise.
16765 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
16766 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
16767 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
16768 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
16769 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
16770 * kern/disk.c: Include <pupa/file.h>.
16771 (pupa_print_partinfo): New function.
16772 * kern/dl.c: Include <pupa/env.h>.
16773 (pupa_dl_dir): Variable removed.
16774 (pupa_dl_load): Use the environment variable `prefix' instead of
16775 the variable pupa_dl_dir.
16776 (pupa_dl_set_prefix): Function removed.
16777 (pupa_dl_get_prefix): Likewise.
16778 * kern/i386/pc/init.c: Include <pupa/env.h>.
16779 (pupa_machine_init): Use the environment variable `prefix' instead of
16780 using pupa_dl_set_prefix to set the prefix.
16781 * kern/main.c: Include <pupa/env.h>.
16782 (pupa_set_root_dev): Use the environment variable `prefix' instead of
16783 using pupa_dl_get_prefix to get the prefix.
16784 * kern/misc.c: Include <pupa/env.h>.
16785 (pupa_isdigit): New function.
16786 (pupa_isgraph): Likewise.
16787 (pupa_ftoa): Likewise.
16788 (pupa_vsprintf): Added support for printing values of the type
16789 `double'. Make it possible to format variable output when using
16790 formatting like `%1.2%f'.
16791 (pupa_split_cmdline): New function.
16792 * kern/rescue.c: Include <pupa/env.h>.
16793 (next_word): Removed function.
16794 (pupa_rescue_cmd_prefix): Likewise.
16795 (pupa_rescue_cmd_set): New function.
16796 (pupa_rescue_cmd_unset): New function.
16797 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
16798 split the command line instead of splitting it here. Added
16799 support for setting variables using the syntax `foo=bar'. Don't
16800 initialize the prefix command anymore. Initialized the set and
16801 unset commands.
16802 * normal/cmdline.c: Include <pupa/env.h>.
16803 (pupa_tab_complete): Added prototypes for print_simple_completion,
16804 print_partition_completion, add_completion, iterate_commands,
16805 iterate_dev, iterate_part and iterate_dir. Moved code to print
16806 partition information from here to kern/disk.c.
fe6b695a 16807 (pupa_cmdline_run): Don't check if the function exists anymore.
db1771cf 16808 * normal/main.c: Include <pupa/env.h>.
16809 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
16810 instead of using pupa_dl_get_prefix to get the prefix.
16811 * term/i386/pc/vga.c: Include <pupa/arg.h>.
16812 (check_vga_mem): Cast pointers to `void *' to silence a gcc
16813 warning.
16814 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
16815 (pupa_vga_setcolor): Declare unused variables with `__attribute__
16816 ((unused))' to silence a gcc warning.
16817 (pupa_vga_setcolor): Likewise.
16818 (debug_command): Changed to match argument parsing
16819 interface changes.
16820 * util/pupa-emu.c: Include <pupa/env.h>.
16821 (options): Added 0's for unused fields to silence a gcc warning.
16822 (argp): Likewise.
16823 (main): Use the environment variable `prefix' instead of using
16824 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
16825 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
16826 and terminal.
16827
16828 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
16829 * util/misc.c: Include <malloc.h>.
16830 (pupa_malloc): Rewritten so errors are correctly reported.
16831 (pupa_realloc): Likewise.
16832 (pupa_memalign): Likewise.
16833 (pupa_mm_init_region): Declare unused variables with
16834 `__attribute__ ((unused))' to silence a gcc warning.
16835 * normal/i386/setjmp.S: Remove tab at the end of the file to
16836 silence a gcc warning.
16837 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
16838 variables with `__attribute__ ((unused))' to silence a gcc
16839 warning.
16840 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
16841 local variable i unsigned to silence a gcc warning.
16842
16843 * kern/term.c: Include <pupa/misc.h>.
16844 (pupa_more_lines): New variable.
16845 (pupa_more): Likewise.
16846 (pupa_putcode): When the pager is active pause at the end of every
16847 screen.
16848 (pupa_set_more): New function.
16849 * include/pupa/term.h (pupa_set_more): New prototype.
16850
16851
3b1139cb 168522004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
16853
16854 Now this project is GRUB 2 rather than PUPA. The location of
16855 the CVS repository was moved to GRUB's.
f19dbdb7 16856
3b1139cb 16857 * configure.ac: Use bug-grub as the reporting address.
16858 Use GRUB instead of PUPA.
16859 Change the version number to 1.90.
16860
8367695c 168612004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
16862
16863 * genkernsyms.sh: Updated copyright information.
16864 * genmk.rb: Likewise.
16865 * genmodsrc.sh: Likewise.
16866 * gensymlist.sh: Likewise.
16867 * boot/i386/pc/boot.S: Likewise.
16868 * boot/i386/pc/diskboot.S: Likewise.
16869 * disk/i386/pc/biosdisk.c: Likewise.
16870 * disk/i386/pc/partition.c: Likewise.
16871 * font/manager.c: Likewise.
16872 * fs/ext2.c: Likewise.
16873 * fs/fat.c: Likewise.
16874 * include/pupa/boot.h: Likewise.
16875 * include/pupa/device.h: Likewise.
16876 * include/pupa/disk.h: Likewise.
16877 * include/pupa/dl.h: Likewise.
16878 * include/pupa/elf.h: Likewise.
16879 * include/pupa/err.h: Likewise.
16880 * include/pupa/file.h: Likewise.
16881 * include/pupa/font.h: Likewise.
16882 * include/pupa/fs.h: Likewise.
16883 * include/pupa/kernel.h: Likewise.
16884 * include/pupa/loader.h: Likewise.
16885 * include/pupa/misc.h: Likewise.
16886 * include/pupa/mm.h: Likewise.
16887 * include/pupa/net.h: Likewise.
16888 * include/pupa/normal.h: Likewise.
16889 * include/pupa/rescue.h: Likewise.
16890 * include/pupa/setjmp.h: Likewise.
16891 * include/pupa/symbol.h: Likewise.
16892 * include/pupa/term.h: Likewise.
16893 * include/pupa/types.h: Likewise.
16894 * include/pupa/i386/setjmp.h: Likewise.
16895 * include/pupa/i386/types.h: Likewise.
16896 * include/pupa/i386/pc/biosdisk.h: Likewise.
16897 * include/pupa/i386/pc/boot.h: Likewise.
16898 * include/pupa/i386/pc/console.h: Likewise.
16899 * include/pupa/i386/pc/init.h: Likewise.
16900 * include/pupa/i386/pc/kernel.h: Likewise.
16901 * include/pupa/i386/pc/linux.h: Likewise.
16902 * include/pupa/i386/pc/loader.h: Likewise.
16903 * include/pupa/i386/pc/memory.h: Likewise.
16904 * include/pupa/i386/pc/multiboot.h: Likewise.
16905 * include/pupa/i386/pc/partition.h: Likewise.
16906 * include/pupa/i386/pc/time.h: Likewise.
16907 * include/pupa/i386/pc/vga.h: Likewise.
16908 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
16909 * include/pupa/util/getroot.h: Likewise.
16910 * include/pupa/util/misc.h: Likewise.
16911 * include/pupa/util/resolve.h: Likewise.
16912 * kern/device.c: Likewise.
16913 * kern/disk.c: Likewise.
16914 * kern/dl.c: Likewise.
16915 * kern/err.c: Likewise.
16916 * kern/file.c: Likewise.
16917 * kern/fs.c: Likewise.
16918 * kern/loader.c: Likewise.
16919 * kern/main.c: Likewise.
16920 * kern/misc.c: Likewise.
16921 * kern/mm.c: Likewise.
16922 * kern/rescue.c: Likewise.
16923 * kern/term.c: Likewise.
16924 * kern/i386/dl.c: Likewise.
16925 * kern/i386/pc/init.c: Likewise.
16926 * kern/i386/pc/lzo1x.S: Likewise.
16927 * kern/i386/pc/startup.S: Likewise.
16928 * loader/i386/pc/chainloader.c: Likewise.
16929 * loader/i386/pc/linux.c: Likewise.
16930 * loader/i386/pc/multiboot.c: Likewise.
16931 * normal/cmdline.c: Likewise.
16932 * normal/command.c: Likewise.
16933 * normal/main.c: Likewise.
16934 * normal/menu.c: Likewise.
16935 * normal/i386/setjmp.S: Likewise.
16936 * term/i386/pc/console.c: Likewise.
16937 * term/i386/pc/vga.c: Likewise.
16938 * util/console.c: Likewise.
16939 * util/genmoddep.c: Likewise.
16940 * util/misc.c: Likewise.
16941 * util/pupa-emu.c: Likewise.
16942 * util/resolve.c: Likewise.
16943 * util/unifont2pff.rb: Likewise.
16944 * util/i386/pc/biosdisk.c: Likewise.
16945 * util/i386/pc/getroot.c: Likewise.
16946 * util/i386/pc/pupa-mkimage.c: Likewise.
16947 * util/i386/pc/pupa-setup.c: Likewise.
16948
e6eced71 169492004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
16950
16951 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
16952 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
16953 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
16954 reading and reset it after reading.
16955 (pupa_ext2_close): Return PUPA_ERR_NONE.
16956
16957 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
16958 Correct value.
16959 (struct linux_kernel_header): Add kernel_version and
16960 initrd_addr_max.
16961 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
16962 pupa_file_read succeeds.
16963 (pupa_rescue_cmd_initrd): Implement.
16964
5aded270 169652003-12-03 Marco Gerards <metgerards@student.han.nl>
16966
16967 * fs/ext2.c (pupa_ext2_label): New function.
16968 (pupa_ext2_fs): Added label.
16969 * fs/fat.c (pupa_fat_label): New function.
16970 (pupa_fat_fs): Added label.
16971 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
16972
16973 * kern/misc.c (pupa_strndup): New function.
16974 * include/pupa/misc.h (pupa_strndup): New prototype.
16975
16976 * include/pupa/normal.h: Include <pupa/err.h>.
16977 (pupa_set_history): New prototype.
16978 (pupa_iterate_commands): New prototype.
16979 * normal/cmdline.c: Include <pupa/machine/partition.h>,
16980 <pupa/disk.h>, <pupa/file.h>.
16981 (hist_size): New variable.
16982 (hist_lines): Likewise.
16983 (hist_end): Likewise.
16984 (hist_used): Likewise.
16985 (pupa_set_history): New function.
16986 (pupa_history_get): Likewise.
16987 (pupa_history_add): Likewise.
16988 (pupa_history_replace): Likewise.
16989 (pupa_tab_complete): Likewise.
16990 (pupa_cmdline_run): Added tab completion and history buffer. Tab
16991 completion shows partitionnames while completing partitions, this
16992 feature was suggested by Jeff Bailey.
16993 * normal/command.c (pupa_iterate_commands): New function.
16994 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
16995 (pupa_normal_init): Initialize history buffer.
16996 (PUPA_MOD_INIT): Likewise.
16997 (pupa_normal_fini): Free the history buffer.
16998 (PUPA_MOD_FINI): Likewise.
16999
17000 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
17001 key.
17002
17003 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
17004 * configure.ac [i386]: Check for regparam bug.
17005 (NESTED_FUNC_ATTR) [! i386]: Defined.
17006
1f7315a3 170072003-11-17 Marco Gerards <metgerards@student.han.nl>
17008
17009 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
17010 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
17011 (pupa_emu_SOURCES): New variable.
17012 (pupa_emu_LDFLAGS): Likewise.
17013 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
17014 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
17015 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
17016 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
17017 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
17018 (pupa_jmp_buf): New typedef.
17019 (pupa_setjmp) [PUPA_UTIL]: New macro.
17020 (pupa_longjmp) [PUPA_UTIL]: Likewise.
17021 * include/pupa/term.h (struct pupa_term): New member `refresh'.
17022 (pupa_refresh): New prototype.
17023 * include/pupa/util/getroot.h: New file.
17024 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
17025 it.
17026 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
17027 (pupa_rescue_cmd_cat): Likewise.
17028 (pupa_rescue_cmd_ls): Likewise.
17029 (pupa_rescue_cmd_testload): Likewise.
17030 (pupa_rescue_cmd_lsmod): Likewise.
17031 * normal/cmdline.c (pupa_cmdline_get): Likewise.
17032 * normal/menu.c (run_menu): Likewise.
17033 * kern/term.c (pupa_cls): Likewise.
17034 (pupa_refresh): New function.
17035 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
17036 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
17037 * util/console.c: New file.
f19dbdb7 17038
1f7315a3 17039 * util/i386/pc/getroot.c: New file.
17040 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
17041 (pupa_putchar): New function.
17042 (pupa_refresh): Likewise.
17043 (xgetcwd): Function moved to ...
17044 (strip_extra_slashes): Likewise.
17045 (get_prefix): Likewise.
f19dbdb7 17046 * util/i386/pc/getroot.c: ... here.
1f7315a3 17047 (find_root_device): Function moved and renamed to...
17048 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
17049 Changed all callers.
17050 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
17051 and renamed to...
17052 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
17053 Changed all callers.
17054 * util/misc.c (pupa_memalign): New function.
17055 (pupa_mm_init_region): Likewise.
17056 (pupa_register_exported_symbols): Likewise.
17057 (pupa_putchar): Function removed.
17058 * util/pupa-emu.c: New file.
17059
9a5c1ade 170602003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
17061
17062 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
17063 (_multiboot_mod_SOURCES): New variable.
17064 (_multiboot_mod_CFLAGS): Likewise.
17065 * loader/i386/pc/multiboot.c: New file.
17066 * include/pupa/i386/pc/multiboot.h: Likewise.
17067 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
17068 (pupa_multiboot_real_boot): New function.
17069 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
17070 (pupa_multiboot_real_boot): New prototype.
17071 (pupa_rescue_cmd_multiboot): Likewise
17072 (pupa_rescue_cmd_module): Likewise.
17073
17074 * kern/loader.c (pupa_loader_set): Continue when
17075 pupa_loader_unload_func() fails.
17076 (pupa_loader_unset): New function.
17077 * include/pupa/loader.h (pupa_loader_unset): New prototype.
17078
17079 * kern/misc.c (pupa_stpcpy): New function.
17080 * include/pupa/misc.h (pupa_stpcpy): New prototype.
17081
8e72a9c0 170822003-11-12 Marco Gerards <metgerards@student.han.nl>
17083
17084 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
17085 for available extensions.
17086
17087 * include/pupa/i386/pc/time.h: New file.
17088 * kern/disk.c: Include <pupa/machine/time.h>.
17089 (PUPA_CACHE_TIMEOUT): New macro.
17090 (pupa_last_time): New variable.
17091 (pupa_disk_open): Flush the cache when there was a timeout.
17092 (pupa_disk_close): Reset the timer.
17093 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
17094 pupa_currticks.
17095 * util/misc.c: Include <sys/times.h>
17096 (pupa_get_rtc): New function.
17097
c4adbd32 170982003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
17099
17100 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
17101 as blocks.
17102 (pupa_ext2_get_file_block): Use blocks member.
17103
17104 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
17105 first block. Return -1 instead of pupa_errno on error.
17106
bfd30f06 171072003-10-27 Marco Gerards <metgerards@student.han.nl>
17108
17109 * README: In the pupa-mkimage example use _chain instead of chain
17110 and ext2 instead of fat.
17111 * TODO: Replace ext2fs with jfs as an example. Add an item for
17112 adding journal playback for ext2fs.
17113 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
17114 (pkgdata_MODULES): Added ext2.mod.
17115 (ext2_mod_SOURCES): New variable.
17116 (ext2_mod_CFLAGS): Likewise.
17117 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
17118 * include/pupa/misc.h (pupa_strncpy): New prototype.
17119 (pupa_strcat): Likewise.
17120 (pupa_strncmp): Likewise.
17121 * kern/misc.c (pupa_strcat): Enable function.
17122 (pupa_strncpy): New function.
17123 (pupa_strncmp): Likewise.
17124 * fs/ext2.c: New file.
f19dbdb7 17125
bfd30f06 17126 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
17127 when the read failed before retrying.
17128 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
17129 (_FILE_OFFSET_BITS): Likewise.
17130 * configure.ac: Added AC_SYS_LARGEFILE.
17131
98d15063 171322003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
17133
17134 * genmk.rb (PModule#rule): Make sure to get only symbol names
17135 from the output of nm.
17136 Reported by Robert Millan <zeratul2@wanadoo.es>.
17137
18d9c7cd 171382003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
17139
17140 I forgot to check in these changes for a long time. This adds
17141 incomplete support for VGA console, and this is still very
17142 buggy. Also, a lot of consideration is required for I18N,
17143 UNICODE, and VGA font issues. Therefore, assume that this is
17144 such that "better than nothing".
f19dbdb7 17145
18d9c7cd 17146 * font/manager.c: New file.
17147 * include/pupa/font.h: Likewise.
17148 * include/pupa/i386/pc/vga.h: Likewise.
17149 * term/i386/pc/vga.c: Likewise.
17150 * util/unifont2pff.rb: Likewise.
17151
17152 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
17153 (pkgdata_MODULES): Added vga.mod and font.mod.
17154 (vga_mod_SOURCES): New variables.
17155 (vga_mod_CFLAGS): Likewise.
17156 (font_mod_SOURCES): Likewise.
17157 (font_mod_CFLAGS): Likewise.
17158
17159 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
17160
17161 * include/pupa/term.h: Include pupa/err.h.
f19dbdb7 17162 (struct pupa_term): Added init and fini.
18d9c7cd 17163 Changed the argument of putchar to pupa_uint32_t.
17164
17165 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
17166 (pupa_console_real_putchar): New prototype.
17167 (pupa_console_putchar): Removed.
17168 (pupa_console_checkkey): Exported.
17169 (pupa_console_getkey): Likewise.
17170
17171 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
17172 characters.
17173
17174 * kern/term.c (pupa_term_set_current): Rewritten.
17175 (pupa_putchar): Likewise.
17176 (pupa_putcode): New function.
17177
17178 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
17179 (pupa_console_real_putchar): ... this.
17180 (pupa_vga_set_mode): New function.
17181 (pupa_vga_get_font): Likewise.
17182
17183 * normal/command.c: Include pupa/term.h.
17184 (terminal_command): New function.
17185 (pupa_command_init): Register the command "terminal".
17186
17187 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
17188 (DISP_UP): Likewise.
17189 (DISP_RIGHT): Likewise.
17190 (DISP_DOWN): Likewise.
17191 (DISP_HLINE): Likewise.
17192 (DISP_VLINE): Likewise.
17193 (DISP_UL): Likewise.
17194 (DISP_UR): Likewise.
17195 (DISP_LL): Likewise.
17196 (DISP_LR): Likewise.
17197
17198 * term/i386/pc/console.c (pupa_console_putchar): New function.
f19dbdb7 17199
977329f5 172002003-02-08 NIIBE Yutaka <gniibe@m17n.org>
17201
17202 * util/resolve.c (pupa_util_resolve_dependencies): BUG
17203 FIX. Reverse the path_list.
17204
17205 * include/pupa/normal.h: Export pupa_register_command and
17206 pupa_unregister_command.
17207
17208 * hello/hello.c (pupa_cmd_hello): New module.
17209 * conf/i386-pc.rmk: Added hello.mod.
17210
1f5ab428 172112003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
17212
17213 * kern/i386/pc/lzo1x.S: New file.
f19dbdb7 17214
1f5ab428 17215 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
17216 (compress_kernel): New variable.
17217 (generate_image): Heavily modified to support compressing a
17218 large part of the core image.
17219
17220 * util/misc.c (pupa_util_read_image): Fix a file descriptor
17221 leak.
17222 (pupa_util_load_image): New function.
17223
17224 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
17225 (pupa_compressed_size): New variable.
17226 (codestart): Enable Gate A20 here.
17227 Decompress the compressed part of the core image.
17228 Rearrange the code to put functions and variables which are
17229 required for initialization in the non-compressed part.
17230 Include lzo1x.S.
17231
17232 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
17233 here.
17234
17235 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
17236
f19dbdb7 17237 * include/pupa/i386/pc/kernel.h
1f5ab428 17238 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
17239 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
17240 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
17241 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
17242 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
17243
17244 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
17245
17246 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
17247 (Utility#rule): Likewise.
17248
17249 * configure.ac: Check if LZO is available.
17250
ce5bf700 172512003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
17252
17253 * include/pupa/normal.h: New file.
17254 * include/pupa/setjmp.h: Likewise.
17255 * include/pupa/i386/setjmp.h: Likewise.
17256 * normal/cmdline.c: Likewise.
17257 * normal/command.c: Likewise.
17258 * normal/main.c: Likewise.
17259 * normal/menu.c: Likewise.
17260 * normal/i386/setjmp.S: Likewise.
f19dbdb7 17261
ce5bf700 17262 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
17263 (pupa_rescue_cmd_initrd): Likewise.
17264
17265 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
17266 Likewise.
17267
17268 * kern/i386/pc/startup.S (translation_table): New variable.
17269 (translate_keycode): New function.
17270 (pupa_console_getkey): Call translate_keycode.
17271
17272 * kern/rescue.c (attempt_normal_mode): New function.
17273 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
17274 it failed, print a message.
17275
17276 * kern/mm.c (pupa_real_malloc): Print more information when a
17277 free magic is broken.
17278 (pupa_free): If the first free header is not free actually, set
17279 it to P.
17280
17281 * kern/main.c (pupa_load_normal_mode): Just load the module
17282 "normal".
17283 (pupa_main): Don't print the message
17284 "Entering into rescue mode..." here.
17285
17286 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
17287 Declared.
17288 (pupa_rescue_cmd_initrd): Likewise.
17289 (pupa_rescue_cmd_initrd): Likewise.
17290
17291 * include/pupa/symbol.h (FUNCTION): Specify the type.
17292 (VARIABLE): Likewise.
17293
17294 * include/pupa/err.h (pupa_err_t): Added
17295 PUPA_ERR_UNKNOWN_COMMAND.
17296
17297 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
17298 (pupa_dl_get_prefix): Likewise.
17299
17300 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
17301 Added _chain.mod and _linux.mod instead of chain.mod and
17302 linux.mod.
17303 (chain_mod_SOURCES): Renamed to ...
17304 (_chain_mod_SOURCES): ... this.
17305 (chain_mod_CFLAGS): Renamed to ...
17306 (_chain_mod_CFLAGS): ... this.
17307 (linux_mod_SOURCES): Renamed to ...
17308 (_linux_mod_SOURCES): ... this.
17309 (linux_mod_CFLAGS): Renamed to ...
17310 (_linux_mod_CFLAGS): ... this.
17311 (normal_mod_SOURCES): New variable.
17312 (normal_mod_CFLAGS): Likewise.
17313 (normal_mod_ASFLAGS): Likewise.
17314
173152003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
17316
17317 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
17318 possible.
17319
fe6b695a 17320 * kern/dl.c (pupa_dl_ref): Refer depending modules
ce5bf700 17321 recursively.
17322 (pupa_dl_unref): Unrefer depending modules recursively.
17323 Don't call pupa_dl_unload implicitly, because PUPA can crash if
17324 a module is unloaded before one depending on that module is
17325 unloaded.
17326 (pupa_dl_unload): Unload depending modules explicitly,
17327 if possible.
17328
c04da074 173292003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
17330
17331 * include/pupa/i386/pc/linux.h: New file.
17332 * loader/i386/pc/linux.c: Likewise.
f19dbdb7 17333
c04da074 17334 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
17335 Removed.
17336 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
17337 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
17338 of PUPA_CHAINLOADER_BOOT_SECTOR.
17339
17340 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
17341 (pupa_linux_prot_size): New variable.
17342 (pupa_linux_tmp_addr): Likewise.
17343 (pupa_linux_real_addr): Likewise.
17344 (pupa_linux_boot_zimage): New function.
17345 (pupa_linux_boot_bzimage): Likewise.
17346
17347 * kern/i386/pc/init.c (struct mem_region): New structure.
17348 (MAX_REGIONS): New macro.
17349 (mem_regions): New variable.
17350 (num_regions): Likewise.
17351 (pupa_os_area_addr): Likewise.
17352 (pupa_os_area_size): Likewise.
17353 (pupa_lower_mem): Likewise.
17354 (pupa_upper_mem): Likewise.
17355 (add_mem_region): New function.
17356 (compact_mem_regions): Likewise.
17357 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
17358 the size of the conventional memory and that of so-called upper
17359 memory (before the first memory hole).
17360 Instead of adding each found region to free memory, use
17361 add_mem_region and add them after removing overlaps.
17362 Also, add only 1/4 of the upper memory to free memory. The rest
17363 is used for loading OS images. Maybe this is ad hoc, but this
17364 makes it much easier to relocate OS images when booting.
17365
17366 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
17367 (pupa_enter_rescue_mode): Don't register initrd and module.
17368
17369 * kern/mm.c: Include pupa/dl.h.
17370
17371 * kern/main.c: Include pupa/file.h and pupa/device.h.
17372
17373 * kern/loader.c (pupa_loader_load_module_func): Removed.
17374 (pupa_loader_load_module): Likewise.
17375
17376 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
17377 ``.o''.
17378
17379 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
17380 (pupa_linux_tmp_addr): Likewise.
17381 (pupa_linux_real_addr): Likewise.
17382 (pupa_linux_boot_zimage): Likewise.
17383 (pupa_linux_boot_bzimage): Likewise.
17384
17385 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
17386 (pupa_upper_mem): Likewise.
17387 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
17388 module is too dangerous.
17389
17390 * include/pupa/loader.h (pupa_os_area_addr): Declared.
17391 (pupa_os_area_size): Likewise.
17392 (pupa_loader_set): Remove the first argument. Loader doesn't
17393 manage modules or initrd any longer.
17394 (pupa_loader_load_module): Removed.
17395
17396 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
17397 (linux_mod_SOURCES): New variable.
17398 (linux_mod_CFLAGS): Likewise.
17399
a13f9237 174002003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
17401
17402 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
17403 the length of a blocklist correctly.
17404
17405 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
17406 Use ioctl only if the OS file is a block device.
17407 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
17408 not very useful for normal files.
17409
17410 * kern/main.c (pupa_set_root_dev): New function.
17411 (pupa_load_normal_mode): Likewise.
17412 (pupa_main): Call those above.
17413
17414 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
17415 pupa_uint16_t.
17416
17417 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
17418
a5ffe966 174192003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
17420
17421 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
17422 (setup): Configure the installed partition information and the
17423 dl prefix.
17424
17425 * loader/i386/pc/chainloader.c (my_mod): New variable.
17426 (pupa_chainloader_unload): New function.
17427 (pupa_rescue_cmd_chainloader): Refer itself.
17428 (PUPA_MOD_INIT): Save its own module in MY_MOD.
17429
17430 * kern/i386/pc/startup.S (install_partition): Removed.
17431 (version_string): Likewise.
17432 (config_file): Likewise.
17433 (pupa_install_dos_part): New variable.
17434 (pupa_install_bsd_part): Likewise.
17435 (pupa_prefix): Likewise.
17436 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
17437
17438 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
17439 and pupa/misc.h.
17440 (make_install_device): New function.
17441 (pupa_machine_init): Set the dl prefix.
17442
17443 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
17444 (buf): Renamed to ...
17445 (linebuf): ... this.
17446 (pupa_rescue_cmd_prefix): New function.
17447 (pupa_rescue_cmd_insmod): Likewise.
17448 (pupa_rescue_cmd_rmmod): Likewise.
17449 (pupa_rescue_cmd_lsmod): Likewise.
17450 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
17451 rmmod and lsmod.
17452
17453 * kern/mm.c (pupa_memalign): If failed even after invalidating
17454 disk caches, unload unneeded modules and retry.
17455
17456 * kern/misc.c (pupa_memmove): New function.
17457 (pupa_memcpy): Removed.
17458 (pupa_strcpy): New function.
17459 (pupa_itoa): Made static.
17460
17461 * kern/dl.c (pupa_dl_iterate): New function.
17462 (pupa_dl_ref): Likewise.
17463 (pupa_dl_unref): Likewise.
17464 (pupa_dl_unload): Return if succeeded or not.
17465 (pupa_dl_unload_unneeded): New function.
17466 (pupa_dl_unload_all): Likewise.
17467 (pupa_dl_init): Renamed to ...
17468 (pupa_dl_set_prefix): ... this.
17469 (pupa_dl_get_prefix): New function.
17470
17471 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
17472 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
17473 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
17474 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
17475 (pupa_install_dos_part): Declared.
17476 (pupa_install_bsd_part): Likewise.
17477 (pupa_prefix): Likewise.
17478 (pupa_boot_drive): Likewise.
17479
17480 * include/pupa/types.h: Fix a typo.
17481
17482 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
17483 pupa_memmove.
17484 (pupa_memmove): Declared.
17485 (pupa_strcpy): Likewise.
17486
17487 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
17488 pupa_mod_init takes one argument, its own module.
17489 (pupa_dl_unload_unneeded): Declared.
17490 (pupa_dl_unload_all): Likewise.
17491 (pupa_dl_ref): Likewise.
17492 (pupa_dl_unref): Likewise.
17493 (pupa_dl_iterate): Likewise.
17494 (pupa_dl_init): Renamed to ...
17495 (pupa_dl_set_prefix): ... this.
17496 (pupa_dl_get_prefix): Declared.
17497
17498 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
f19dbdb7 17499 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
a5ffe966 17500 unloaded.
17501 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
17502 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
17503
17504 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
17505 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
17506
012d7999 175072003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
17508
17509 * util/i386/pc/pupa-setup.c (setup): Define the internal
17510 function find_first_partition_start at the top level, because GCC
17511 3.0.x cannot compile internal functions in deeper scopes
17512 correctly.
17513 (find_root_device): Use lstat instead of stat.
17514 Don't follow symbolic links.
17515 Fix the path-constructing code.
17516
17517 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
17518 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
17519 by a BLKGETSIZE ioctl first, because block devices don't fill
17520 the member st_mode of the structure stat on Linux.
17521 [__linux__] (linux_find_partition): Use a temporary buffer
17522 REAL_DEV for the working space. Copy it to DEV before returning.
17523 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
17524 buffer cache consistent.
17525 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
17526 strncmp. The previous value was merely wrong.
17527 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
17528
17529 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
17530 FAT size is 12. The previous value was merely wrong.
17531
17532 * kern/main.c (pupa_main): Don't split the starting message from
17533 newlines.
17534
17535 * kern/term.c (pupa_putchar): Put CR after LF instead of before
17536 LF, because BIOS goes crazy about character attributes in this
17537 case.
17538
1cc73a62 175392003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
17540
17541 * include/i386/pc/util/biosdisk.h: New file.
17542 * util/i386/pc/biosdisk.c: Likewise.
17543 * util/i386/pc/pupa-setup.c: Likewise.
f19dbdb7 17544
1cc73a62 17545 * Makefile.in (INCLUDE_DISTFILES): Added
17546 include/pupa/i386/pc/util/biosdisk.h.
17547 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
17548 directory util/i386/pc.
17549 (install-local): Added a rule for sbin_UTILITIES.
17550 (uninstall): Likewise.
17551
17552 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
17553
17554 * util/misc.c (xrealloc): New function.
17555 (pupa_malloc): Likewise.
17556 (pupa_free): Likewise.
17557 (pupa_realloc): Likewise.
17558 (pupa_stop): Likewise.
17559 (pupa_putchar): Likewise.
17560
17561 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
17562
17563 * include/pupa/util/misc.h (xrealloc): Declared.
17564
17565 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
17566 macro.
17567 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
17568 (PUPA_BOOT_MACHINE_BPB_END): ... this.
17569
17570 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
17571 [PUPA_UTIL] (pupa_fat_fini): Likewise.
17572
17573 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
17574 way should be implemented.
17575 [PUPA_UTIL] (pupa_fat_fini): Likewise.
17576
17577 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
17578 the size of NAME for safety.
17579 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
17580 0x88.
17581
17582 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
17583 (pupa_setup_SOURCES): Likewise.
17584
17585 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
17586
08b70fe8 175872002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
17588
17589 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
17590 bunch of pushl's from pusha, because this destroys the return
17591 value.
17592
62ddcc8f 175932002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
17594
17595 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
17596 This means that any missing prototypes could be fatal. Also, you
17597 must take care when writing assembly code. See the comments at
17598 the beginning of startup.S, for more details.
f19dbdb7 17599
62ddcc8f 17600 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
17601 compilation mechanism.
17602 (pupa_chainloader_real_boot): Likewise.
17603 (pupa_biosdisk_rw_int13_extensions): Likewise.
17604 (pupa_biosdisk_rw_standard): Likewise.
17605 (pupa_biosdisk_check_int13_extensions): Likewise.
17606 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
17607 (pupa_biosdisk_get_diskinfo_standard): Likewise.
17608 (pupa_get_memsize): Likewise.
17609 (pupa_get_mmap_entry): Likewise.
17610 (pupa_console_putchar): Likewise.
17611 (pupa_console_setcursor): Likewise.
17612 (pupa_getrtsecs): Use pushl instead of push.
17613
17614 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
17615 memory instead of the stack for a mmap entry, because some
17616 BIOSes may ignore the maximum size and overflow.
17617
17618 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
17619
17620 * genmk.rb (PModule#rule): Compile automatically generated
17621 sources with module-specific CFLAGS as well as other sources.
17622
9962ed99 176232002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
17624
17625 * configure.ac: Check ld.
17626 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
17627 respectively, before checking endianness and sizes.
17628
17629 * Makefile.in (LD): New variable.
f19dbdb7 17630
abdfc3c5 176312002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
17632
17633 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
17634
6a161fa9 176352002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
17636
17637 * Changelog: New file.
17638