]> git.proxmox.com Git - grub2.git/blame - ChangeLog
Forgot to commit ChangeLog ...
[grub2.git] / ChangeLog
CommitLineData
a73f5969
RM
12009-11-13 Robert Millan <rmh.grub@aybabtu.com>
2
3 * include/multiboot2.h (multiboot_word): Rename from this ...
4 (multiboot2_word): ... to this. Update all users.
5 (multiboot_header): Rename from this ...
6 (multiboot2_header): ... to this. Update all users.
7 (multiboot_tag_header): Rename from this ...
8 (multiboot2_tag_header): ... to this. Update all users.
9 (multiboot_tag_start): Rename from this ...
10 (multiboot2_tag_start): ... to this. Update all users.
11 (multiboot_tag_name): Rename from this ...
12 (multiboot2_tag_name): ... to this. Update all users.
13 (multiboot_tag_module): Rename from this ...
14 (multiboot2_tag_module): ... to this. Update all users.
15 (multiboot_tag_memory): Rename from this ...
16 (multiboot2_tag_memory): ... to this. Update all users.
17 (multiboot_tag_unused): Rename from this ...
18 (multiboot2_tag_unused): ... to this. Update all users.
19 (multiboot_tag_end): Rename from this ...
20 (multiboot2_tag_end): ... to this. Update all users.
21
1c8927f0
RM
222009-11-13 Robert Millan <rmh.grub@aybabtu.com>
23
24 Disable Multiboot2 in i386-ieee1275. It didn't actually work, and on
25 this platform we should support Multiboot1 first.
26
27 * conf/i386-ieee1275.rmk (pkglib_MODULES): Remove `multiboot.mod'.
28 (multiboot_mod_SOURCES, multiboot_mod_CFLAGS)
29 (multiboot_mod_LDFLAGS, multiboot_mod_ASFLAGS): Remove.
30
6e1e0d89
RM
312009-11-12 Robert Millan <rmh.grub@aybabtu.com>
32
33 * util/mkisofs/eltorito.c (init_boot_catalog): Handle return code
34 of write calls (converting them to fwrite() if they aren't already).
35 (get_torito_desc): Likewise.
36 * util/mkisofs/rock.c (generate_rock_ridge_attributes): Likewise.
37
7f2b34d8
RM
382009-11-12 Robert Millan <rmh.grub@aybabtu.com>
39
40 * util/i386/pc/grub-install.in: Move from here ...
41 * util/grub-install.in: ... to here. Update all users.
42
c0ef3311
CW
432009-11-11 Colin Watson <cjwatson@ubuntu.com>
44
45 * util/powerpc/ieee1275/grub-mkrescue.in: Fix --version output.
46
e1f240ff
RM
472009-11-11 Robert Millan <rmh.grub@aybabtu.com>
48
49 Support for El Torito without floppy emulation.
50
51 * util/mkisofs/eltorito.c: Include `<errno.h>'.
52 (init_boot_catalog): Improve error handling.
53 (get_torito_desc): Don't use floppy emulation unless requested by
54 user. Patch boot information table when requested via
55 `-boot-info-table'.
56 * util/mkisofs/iso9660.h (struct eltorito_boot_info): New struct.
57 * util/mkisofs/mkisofs.c (use_eltorito_emul_floppy)
58 (use_boot_info_table): New variables.
59 (OPTION_BOOT_INFO_TABLE, OPTION_NO_EMUL_BOOT)
60 (OPTION_ELTORITO_EMUL_FLOPPY): New macros.
61 (ld_options): Handle `-boot-info-table', `-no-emul-boot' and
62 `--eltorito-emul-floppy'.
63 (main): Handle `OPTION_BOOT_INFO_TABLE', `OPTION_NO_EMUL_BOOT'
64 and `OPTION_ELTORITO_EMUL_FLOPPY'.
65 * util/mkisofs/mkisofs.h (use_eltorito_emul_floppy)
66 (use_boot_info_table, get_731): New prototypes.
67 * util/mkisofs/write.c (get_731): New function.
68
af7d4de5
FZ
692009-11-11 Felix Zielcke <fzielcke@z-51.de>
70
71 Fix the generation of the man page.
72
73 * util/pc/i386/grub-install.in: Source
74 `${libdir}/grub/grub-mkconfig_lib' after options have been parsed.
75
2c55dbc0
RM
762009-11-11 Robert Millan <rmh.grub@aybabtu.com>
77
78 Large file support for grub-mkisofs.
79
80 * conf/common.rmk (grub_mkisofs_CFLAGS): Add `-D_FILE_OFFSET_BITS=64'.
81 * util/mkisofs/mkisofs.c (next_extent, last_extent)
82 (session_start): Upgrade type to `uint64_t'. Update all users.
83 * util/mkisofs/mkisofs.h: Include `<stdint.h>'.
84 (struct directory_entry): Upgrade type of `starting_block' and
85 `size' to `uint64_t'. Update all users.
86 (struct deferred): Remove unused structure.
87 (xfwrite): Upgrade type of `count' and `size' to `uint64_t'.
88 Update all users.
89 * util/mkisofs/tree.c (stat_filter, lstat_filter): Return -1 when
90 file is larger than `UINT32_MAX'.
91 * util/mkisofs/write.c (xfwrite): Upgrade type of `count' and
92 `size' to `uint64_t'. Update all users. Fix handling of fwrite()
93 return value.
94 (struct deferred_write): Upgrade type of `extent' and `size' to
95 `uint64_t'. Update all users.
96 (last_extent_written): Upgrade type to `uint64_t'. Update all
97 users.
98 (write_one_file): Upgrade type of `count' and `size' to `uint64_t'.
99 Update all users. Upgrade type of `remain' to `int64_t' and
100 `use' to `size_t'. Use error() to handle fread() errors.
101 (write_files): Rely on write_one_file() rather than calling
102 xfwrite() directly.
103
6a9cead5
FZ
1042009-11-09 Felix Zielcke <fzielcke@z-51.de>
105
106 * util/mkisofs/mkisofs.c (ld_options): Fix a spelling mistake.
107
4825d790
RM
1082009-11-09 Robert Millan <rmh.grub@aybabtu.com>
109
110 * util/mkisofs/fnmatch.c: Remove.
111 * util/mkisofs/getopt1.c: Likewise.
112 * util/mkisofs/getopt.c: Likewise.
113 * conf/common.rmk (grub_mkisofs_SOURCES): Replace
114 `util/mkisofs/fnmatch.c', `util/mkisofs/getopt1.c' and
115 `util/mkisofs/getopt.c' with `gnulib/fnmatch.c',
116 `gnulib/getopt1.c' and `gnulib/getopt.c'.
117 (grub_mkisofs_CFLAGS): Add `-I$(srcdir)/gnulib'.
118
119 * configure.ac: Detect `mingw32msvc' host_os.
120 Check for lstat(), getuid() and getgid().
121
122 * util/mkisofs/joliet.c: Include `<stdint.h>'. Replace all
123 instances of `u_char' with `uint8_t'.
124
125 * util/mkisofs/mkisofs.h: Include `<sys/stat.h>'.
126 [!HAVE_GETUID] (getuid): New function (stub).
127 [!HAVE_GETGID] (getgid): Likewise.
128 [!HAVE_LSTAT] (lstat): Likewise.
129 [!S_IROTH] (S_IROTH): New macro (dummy).
130 [!S_IRGRP] (S_IRGRP): Likewise.
131
84b860d8
RM
1322009-11-09 Robert Millan <rmh.grub@aybabtu.com>
133
134 * gnulib/fnmatch_loop.c (EXT): Fix warning (signed and unsigned type in
135 conditional expression).
136
66e9b712
RM
1372009-11-09 Robert Millan <rmh.grub@aybabtu.com>
138
139 Import from Gnulib.
140
141 * gnulib/fnmatch.c: New file.
142 * gnulib/fnmatch.h: Likewise.
143 * gnulib/fnmatch_loop.c: Likewise.
144 * gnulib/getopt.c: Likewise.
145 * gnulib/getopt.h: Likewise.
146 * gnulib/getopt1.c: Likewise.
147 * gnulib/getopt_int.h: Likewise.
148 * gnulib/gettext.h: Likewise.
149
34f4a5b0
RM
1502009-11-09 Robert Millan <rmh.grub@aybabtu.com>
151
152 * normal/dyncmd.c (read_command_list): Replace `0' with `NULL'.
153 * normal/handler.c (read_handler_list): Likewise.
154
ac451143
RM
1552009-11-09 Robert Millan <rmh.grub@aybabtu.com>
156
157 Misc cleanup.
158
159 * kern/command.c (grub_register_command_prio): Use
160 grub_zalloc() instead of explicitly zeroing data.
161 * kern/list.c: Include `<grub/mm.h>'.
162 (grub_named_list_find): Replace `0' with `NULL'.
163 * normal/autofs.c (struct grub_fs_module_list): Remove ad-hoc type.
164 (fs_module_list): Change type to `grub_named_list_t'. Update all
165 users.
166 * normal/dyncmd.c (read_command_list): Add space between function
167 call and parenthesis.
168 * normal/handler.c (read_handler_list): Likewise.
169
4089b167
RM
1702009-11-09 Robert Millan <rmh.grub@aybabtu.com>
171
172 * normal/auth.c (punishment_delay): Moved from here ...
173 (grub_auth_strcmp): ... to here (inside function).
174
325f5037
RM
1752009-11-09 Robert Millan <rmh.grub@aybabtu.com>
176
177 * include/grub/list.h (struct grub_named_list): Remove `const'
178 qualifier from `name'.
179 (struct grub_prio_list): Likewise.
180
7aea29a3
RM
1812009-11-09 Robert Millan <rmh.grub@aybabtu.com>
182
183 * normal/auth.c: Include `<grub/time.h>'.
184 (grub_auth_strcmp): Replace `strcmp' with `grub_strcmp'.
185
3fd6f044
RM
1862009-11-09 Robert Millan <rmh.grub@aybabtu.com>
187
188 * normal/auth.c (punishment_delay): New variable.
189 (grub_auth_strcmp): Rewrite using grub_get_time_ms ().
190 (grub_auth_check_authentication): Punish failed login attempts with
191 an incremental (2^N) delay.
192
a4cd68e4
RM
1932009-11-09 Robert Millan <rmh.grub@aybabtu.com>
194
195 * conf/common.rmk (grub_mkisofs_CFLAGS): Prefix include
196 path with $(srcdir).
197
7ad12f43
VS
1982009-11-09 Vladimir Serbinenko <phcoder@gmail.com>
199
200 * normal/auth.c (grub_auth_strcmp): Fixed incorrect variable usage.
201
c1129f03
RM
2022009-11-09 Robert Millan <rmh.grub@aybabtu.com>
203
204 * util/i386/coreboot/grub-mkrescue.in: New file.
205 * conf/i386-coreboot.rmk (bin_SCRIPTS, grub_mkrescue_SOURCES): New
206 variables.
207
208 * conf/common.rmk (bin_UTILITIES): Add `grub-mkisofs'.
209 (grub_mkisofs_SOURCES, grub_mkisofs_CFLAGS): New variables.
210 * configure.ac: Add header and function checks to satisfy grub-mkisofs
211 requirements.
212 * util/mkisofs/defaults.h: New file.
213 * util/mkisofs/eltorito.c: Likewise.
214 * util/mkisofs/exclude.h: Likewise.
215 * util/mkisofs/fnmatch.c: Likewise.
216 * util/mkisofs/getopt.c: Likewise.
217 * util/mkisofs/getopt1.c: Likewise.
218 * util/mkisofs/hash.c: Likewise.
219 * util/mkisofs/include/fctldefs.h: Likewise.
220 * util/mkisofs/include/mconfig.h: Likewise.
221 * util/mkisofs/include/prototyp.h: Likewise.
222 * util/mkisofs/include/statdefs.h: Likewise.
223 * util/mkisofs/iso9660.h: Likewise.
224 * util/mkisofs/joliet.c: Likewise.
225 * util/mkisofs/match.c: Likewise.
226 * util/mkisofs/match.h: Likewise.
227 * util/mkisofs/mkisofs.c: Likewise.
228 * util/mkisofs/mkisofs.h: Likewise.
229 * util/mkisofs/multi.c: Likewise.
230 * util/mkisofs/name.c: Likewise.
231 * util/mkisofs/rock.c: Likewise.
232 * util/mkisofs/tree.c: Likewise.
233 * util/mkisofs/write.c: Likewise.
234
ec8bb77d
VS
2352009-11-09 Vladimir Serbinenko <phcoder@gmail.com>
236
237 * normal/auth.c (grub_auth_strcmp): Fix bug which resulted in function
238 being insecure.
239
3716b12c
RM
2402009-11-08 Robert Millan <rmh.grub@aybabtu.com>
241
242 * util/i386/pc/grub-mkrescue.in: Fix miss-identification as
243 `grub-mkimage' (and use $0 when possible).
244
b97b7b91
RM
2452009-11-08 Robert Millan <rmh.grub@aybabtu.com>
246
247 * kern/i386/multiboot_mmap.c (grub_machine_mmap_init): Improve
248 error message for excessively large memory map.
249
04114812
RM
2502009-11-08 Robert Millan <rmh.grub@aybabtu.com>
251
252 * autogen.sh: Use `sh gendistlist.sh' to avoid reliing on
253 executable bit.
254
e4eb2373
RM
2552009-11-08 Robert Millan <rmh.grub@aybabtu.com>
256
257 * kern/i386/multiboot_mmap.c (grub_machine_mmap_init): Improve error
258 message for coreboot users.
259
c926e1d5 2602009-11-07 Robert Millan <rmh.grub@aybabtu.com>
261
262 Fix build with GNU gold.
263
264 * conf/i386-pc.rmk (boot_img_LDFLAGS, pxeboot_img_LDFLAGS)
265 (diskboot_img_LDFLAGS, lnxboot_img_LDFLAGS)
266 (cdboot_img_LDFLAGS): Prepend `0x' qualifier to hexadecimal
267 link addresses.
268 * aclocal.m4: Likewise.
269
86e5b1db 2702009-11-04 Felix Zielcke <fzielcke@z-51.de>
271
272 * configure.ac (AC_PREREQ): Bump to 2.59d.
273 * INSTALL: Make it more clear when Autoconf and Ruby are
274 needed and when to run `./autogen.sh'.
275
246cd78f 2762009-11-03 Samuel Thibault <samuel.thibault@ens-lyon.org>
277
278 * util/grub.d/30_os-prober.in: Restore default behavior for unsupported
279 OSes.
280
4f9dfb37 2812009-11-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
282
283 * util/grub.d/30_os-prober.in: Add GNU/Hurd support
284
b82bd5e1 2852009-11-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
286
287 * util/grub.d/10_hurd.in: Drop /dev/ prefix from root device path before
288 giving it to GNU Mach.
289
ff1a9bca 2902009-11-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
291
292 * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Subtract 1 from
293 GNU partition number to get internal GRUB partition number.
294
61697d9c 2952009-11-02 Samuel Thibault <samuel.thibault@ens-lyon.org>
296
297 * util/grub.d/10_hurd.in: Call prepare_grub_to_access_device
298 ${GRUB_DEVICE_BOOT} before loading /boot kernel.
299
a50569e1 3002009-11-01 Robert Millan <rmh.grub@aybabtu.com>
301
302 Based on patch from BVK Chaitanya <bvk.groups@gmail.com>
303 * kern/misc.c (grub_strchr, grub_strrchr): Fix to handle c == '\0'
304 case.
305
5b153867 3062009-11-01 Felix Zielcke <fzielcke@z-51.de>
307
308 * Makefile.in (TARGET_CPPFLAGS): Add `-I$(srcdir)/include'.
309
d9e2cd70 3102009-10-30 Robert Millan <rmh.grub@aybabtu.com>
311
312 Fix build problem.
313
314 * Makefile.in (TARGET_CPPFLAGS): Replace `-nostdinc' with
315 `-isystem=$(srcdir)/include'.
316
805111a4 3172009-10-30 Robert Millan <rmh.grub@aybabtu.com>
318
319 * util/i386/pc/grub-install.in: Remove hint that device.map should be
320 checked (grub-install doesn't currently rely on it).
321
fa6e945f 3222009-10-29 Robert Millan <rmh.grub@aybabtu.com>
323
324 Revert SVN r2660.
325
326 * conf/common.rmk (script/sh/lexer.c_DEPENDENCIES): Moved from here ...
327 * conf/i386-coreboot.rmk (script/sh/lexer.c_DEPENDENCIES): ... to here.
328 * conf/i386-efi.rmk (script/sh/lexer.c_DEPENDENCIES): ... and here.
329 * conf/i386-ieee1275.rmk: Likewise.
330 * conf/i386-pc.rmk: Likewise.
331 * conf/powerpc-ieee1275.rmk: Likewise.
332 * conf/sparc64-ieee1275.rmk: Likewise.
333 * conf/x86_64-efi.rmk: Likewise.
334
cee15086 3352009-10-28 Robert Millan <rmh.grub@aybabtu.com>
336
337 * Makefile.in (TARGET_CPPFLAGS): Add `-nostdinc'.
338
95b9239e 3392009-10-28 Robert Millan <rmh.grub@aybabtu.com>
340
341 * include/grub/misc.h: Stop checking for APPLE_CC.
342
2ed19dfd 3432009-10-28 Robert Millan <rmh.grub@aybabtu.com>
344
345 * kern/i386/coreboot/init.c (grub_exit): Reimplement in a way that
346 doesn't cause an infinite call loop.
347
fdcdde19 3482009-10-28 Felix Zielcke <fzielcke@z-51.de>
349
350 * commands/acpi.c (grub_cmd_acpi): Fix the out of memory error
351 strings.
352
cefabfe1 3532009-10-26 Robert Millan <rmh.grub@aybabtu.com>
354
355 * autogen.sh: Support addition of external modules via `GRUB_CONTRIB'
356 variable.
357 * Makefile.in: Likewise.
358
ed96ab6d 3592009-10-26 Robert Millan <rmh.grub@aybabtu.com>
360
361 * gendistlist.sh: Simplify .svn check. Skip .bzr as well.
362
0579b753 3632009-10-26 Robert Millan <rmh.grub@aybabtu.com>
364
365 * Makefile.in (RMKFILES): Rewrite using $(wildcard).
366
478df409 3672009-10-26 Robert Millan <rmh.grub@aybabtu.com>
368
369 * disk/scsi.c: Remove `<grub/machine/kernel.h>' (not needed).
370
083d1679 3712009-10-26 Robert Millan <rmh.grub@aybabtu.com>
372
373 * gensymlist.sh.in (COMPILE_TIME_ASSERT): Copy macro declaration
374 from here ...
375 * include/grub/misc.h (COMPILE_TIME_ASSERT): ... to here.
376
5947ae32 3772009-10-26 Robert Millan <rmh.grub@aybabtu.com>
378
379 * Makefile.in (docs/grub.info): Use make syntax to ignore errors
380 in $(MAKEINFO) invocation. This makes it clear in output that
381 errors are being ignored.
382
94180ff6 3832009-10-26 Robert Millan <rmh.grub@aybabtu.com>
384
385 * conf/i386-coreboot.rmk (script/sh/lexer.c_DEPENDENCIES): Moved
386 from here ...
387 * conf/common.rmk (script/sh/lexer.c_DEPENDENCIES): ... to here.
388 * conf/i386-efi.rmk (script/sh/lexer.c_DEPENDENCIES): Remove.
389 * conf/i386-ieee1275.rmk: Likewise.
390 * conf/i386-pc.rmk: Likewise.
391 * conf/powerpc-ieee1275.rmk: Likewise.
392 * conf/sparc64-ieee1275.rmk: Likewise.
393 * conf/x86_64-efi.rmk: Likewise.
394
9031b03a 3952009-10-26 Colin Watson <cjwatson@ubuntu.com>
396
397 * util/grub-editenv.c (main): If only a command is given, use
398 DEFAULT_DIRECTORY "/" GRUB_ENVBLK_DEFCFG as a default file name.
399 (usage): FILENAME is now optional and has a default.
400
e4f6809b 4012009-10-26 Colin Watson <cjwatson@ubuntu.com>
402
403 Improve grub-mkconfig performance when there are several menu
404 entries on a single filesystem.
405
406 * util/grub.d/10_linux.in (linux_entry): Cache the output of
407 prepare_grub_to_access_device.
408 * util/grub.d/10_kfreebsd.in (kfreebsd_entry): Likewise.
409 * util/grub.d/30_os-prober.in: Likewise.
410
67937d4d 4112009-10-26 Robert Millan <rmh.grub@aybabtu.com>
412
413 * util/grub.d/10_freebsd.in: Remove.
414 * util/grub.d/10_kfreebsd.in: New file (based on 10_linux.in).
415 * configure.ac: Set host_kernel=kfreebsd for FreeBSD and GNU/kFreeBSD.
416
ee3756cc 4172009-10-26 Robert Millan <rmh.grub@aybabtu.com>
418
5c35048e 419 * docs/grub.cfg: Fix example usage of *BSD loaders.
ee3756cc 420
4dea1c6f 4212009-10-25 Robert Millan <rmh.grub@aybabtu.com>
422
423 * util/i386/pc/grub-setup.c (setup): Add missing parameter to
424 grub_util_error() call.
425
042484d7 4262009-10-25 Robert Millan <rmh.grub@aybabtu.com>
427
428 * include/grub/fs.h [GRUB_UTIL] (struct grub_fs): Add
429 `reserved_first_sector' member.
430 * fs/ext2.c [GRUB_UTIL] (grub_ext2_fs): Initialize
431 `reserved_first_sector' to 1.
432 * fs/fat.c [GRUB_UTIL] (grub_fat_fs): Likewise.
433 * fs/ntfs.c [GRUB_UTIL] (grub_ntfs_fs): Likewise.
434 * fs/hfsplus.c [GRUB_UTIL] (grub_hfsplus_fs): Likewise.
435 * util/i386/pc/grub-setup.c (setup): Add safety check that probes for
436 filesystems which begin at first sector.
437 (options): New option --skip-fs-probe.
438 (main): Handle --skip-fs-probe and pass it to setup().
439
d64448a7 4402009-10-25 Robert Millan <rmh.grub@aybabtu.com>
441
442 * include/grub/misc.h: Fix wrong evaluation of APPLE_CC.
443 (memset): Fix function prototype.
444
508d42ec 4452009-10-25 Robert Millan <rmh.grub@aybabtu.com>
4462009-10-25 Vasily Averin <vvs@parallels.com>
447
448 * fs/ext2.c (grub_ext2_iterate_dir): Avoid infinite loop when
449 `dirent.direntlen == 0'.
450
b240e30c 4512009-10-25 Robert Millan <rmh.grub@aybabtu.com>
452
453 * fs/cpio.c [MODE_USTAR]: Initialize `tar' module instead of
454 `cpio'.
455 [! MODE_USTAR]: Initialize `cpio' module instead of `tar'.
456
346e7fbe 4572009-10-25 Robert Millan <rmh.grub@aybabtu.com>
458
459 * configure.ac: Check for `__ashldi3', `__ashrdi3', `__lshrdi3',
460 `__trampoline_setup' and `__ucmpdi2'.
461 * include/grub/powerpc/libgcc.h: Only export symbols for functions
462 that libgcc provides.
463
cdb308b0 4642009-10-25 Robert Millan <rmh.grub@aybabtu.com>
465
466 * include/grub/powerpc/libgcc.h (memset): Remove function prototype.
467 * include/grub/sparc64/libgcc.h (memset): Likewise.
468 * include/grub/misc.h (memset, memcmp): New function prototypes.
469
fb26abc2 4702009-10-25 Robert Millan <rmh.grub@aybabtu.com>
471
472 * fs/cpio.c [MODE_USTAR]: Finish `tar' module instead of
473 `cpio'.
474 [! MODE_USTAR]: Finish `cpio' module instead of `tar'.
475
f6693890 4762009-10-25 Robert Millan <rmh.grub@aybabtu.com>
477
478 Patch from Samuel Thibault <samuel.thibault@ens-lyon.org>
479 * docs/grub.cfg: Compensate for recent change in multiboot
480 loader (since 2009-08-14 it won't pass filename to payload).
481 * util/grub.d/10_hurd.in: Likewise.
482
0933cdc0 4832009-10-21 Felix Zielcke <fzielcke@z-51.de>
484
485 * config.guess: Update to latest version from config git
486 repository.
487 * config.sub: Likewise.
488
3b2fe8c2 4892009-10-20 Robert Millan <rmh.grub@aybabtu.com>
490
491 Fix build on sparc64.
492
493 * configure.ac: Perform checks for libgcc symbols before
494 adding `-nostdlib' to LDFLAGS.
495
46695a62 4962009-10-16 Vladimir Serbinenko <phcoder@gmail.com>
497
498 Let user specify OpenBSD root device.
499
500 * loader/i386/bsd.c (openbsd_root): New variable.
501 (openbsd_opts): New option 'root'.
502 (OPENBSD_ROOT_ARG): New macro.
503 (grub_openbsd_boot): Use 'openbsd_root'.
504 (grub_cmd_openbsd): Fill 'openbsd_root'.
505
d2b6b7fc 5062009-10-16 Robert Millan <rmh.grub@aybabtu.com>
507
508 * NEWS: Misc adjustments.
509
421bd7ac 5102009-10-16 Vladimir Serbinenko <phcoder@gmail.com>
511
512 * NEWS: Mentioned XNU, ACPI, gptsync, password and parttool.
513
f1d29d87 5142009-10-16 Robert Millan <rmh.grub@aybabtu.com>
515
516 * configure.ac: Bump version to 1.97.
517
6f3cd880 5182009-10-16 Colin Watson <cjwatson@ubuntu.com>
519
520 * configure.ac (TARGET_CFLAGS): Add -mno-mmx -mno-sse -mno-sse2
521 -mno-3dnow on x86 architectures. Some toolchains enable these
522 features by default, but they rely on registers that aren't enabled
523 in GRUB. Thanks to Vladimir Serbinenko for the suggestion.
524
035f7122 5252009-10-15 Robert Millan <rmh.grub@aybabtu.com>
526
527 Make entry text a bit more readable.
528
529 * util/grub.d/10_linux.in: Add `with' before `Linux'.
530
44998e58 5312009-10-15 Vladimir Serbinenko <phcoder@gmail.com>
532
533 * loader/i386/pc/xnu.c (grub_xnu_set_video): Fix loading splash image.
534
cd2851b3 5352009-10-15 Vladimir Serbinenko <phcoder@gmail.com>
536
537 * commands/xnu_uuid.c (grub_cmd_xnu_uuid): Remove duplicated bitwise
538 operations.
539
c6f3b249 5402009-10-15 Vladimir Serbinenko <phcoder@gmail.com>
541
542 * configure.ac: Add missing dollar.
543
6b5886ba 5442009-10-15 Vladimir Serbinenko <phcoder@gmail.com>
545
546 Revert 2009-06-10 Pavel Roskin <proski@gnu.org>
547
548 * configure.ac: Put checks for __bswapsi2 and __bswapdi2.
549 * include/grub/powerpc/libgcc.h: Don't use weak attribute for all
550 exports.
551 * include/grub/sparc64/libgcc.h: Likewise. Use
552 preprocessor conditionals.
553
e9d66f6d 5542009-10-14 Robert Millan <rmh.grub@aybabtu.com>
555
556 * conf/common.rmk (grub-dumpbios): Remove rule.
557 (sbin_SCRIPTS, CLEANFILES): Remove `grub-dumpbios'.
558 * util/grub-dumpbios.in: Remove file.
559
9155bc17 5602009-10-14 Robert Millan <rmh.grub@aybabtu.com>
561
562 Refer to kernel of FreeBSD "kFreeBSD" to avoid confusion between
563 the Operating System (FreeBSD) and its kernel (kernel of FreeBSD).
564
565 * loader/i386/bsd.c (grub_freebsd_boot): Read kernel environment
566 from "kFreeBSD" namespace (rather than "FreeBSD"). Update all
567 users.
568
569 (GRUB_MOD_INIT (bsd)): Rename "freebsd" command to "kfreebsd",
570 "openbsd" to "kopenbsd", "netbsd" to "knetbsd", "freebsd_loadenv"
571 to "kfreebsd_loadenv", "freebsd_module" to "kfreebsd_module",
572 and "freebsd_module_elf" to "kfreebsd_module_elf". Update all
573 users.
574
bf7f7a18 5752009-10-12 Robert Millan <rmh.grub@aybabtu.com>
576
577 * term/tparm.c: Switch to GPLv3.
578
86564c26 5792009-10-09 Robert Millan <rmh.grub@aybabtu.com>
580
581 * include/grub/i386/cpuid.h: Add header protection.
582
5c936493 5832009-10-09 Robert Millan <rmh.grub@aybabtu.com>
584
585 Fail gracefuly when attempting to load 64-bit kFreeBSD on IA32 CPU.
586
587 * include/grub/i386/cpuid.h: New file.
588 * commands/i386/cpuid.c: Include `<grub/i386/cpuid.h>'.
589 (has_longmode): Rename to ...
590 (grub_cpuid_has_longmode): ... this. Update all users. Remove
591 `static' attribute.
592 * loader/i386/bsd.c: Include `<grub/i386/cpuid.h>'.
593 (grub_bsd_load_elf): Fail if load of 64-bit kernel was requested
594 on a CPU that doesn't implement AMD64 instruction set.
595
186e7cf2 5962009-10-06 Colin Watson <cjwatson@ubuntu.com>
597
598 * Makefile.in (docs/stamp-vti): Depend on configure.ac as well, so
599 that version.texi is rebuilt on version number changes.
600
83b65c4a 6012009-10-06 Colin Watson <cjwatson@ubuntu.com>
602
603 * Makefile.in: Don't set info_INFOS unless makeinfo was found.
604 Fixes bug #27602.
605
d244281c 6062009-10-06 Colin Watson <cjwatson@ubuntu.com>
607
608 * util/i386/pc/grub-install.in: Source
609 ${libdir}/grub/grub-mkconfig_lib before option processing, in order
610 that the --grub-probe option will work.
611 * util/sparc64/ieee1275/grub-install.in: Likewise.
612
da25306d 6132009-10-05 Robert Millan <rmh.grub@aybabtu.com>
614
615 * configure.ac: Bump version to 1.97~beta4.
616
e8ee83c0 6172009-10-03 Robert Millan <rmh.grub@aybabtu.com>
618
619 Resync grub-mkdevicemap in x86_64-efi.
620
621 * conf/x86_64-efi.rmk (sbin_UTILITIES): Enable `grub-mkdevicemap'.
622 (grub_mkdevicemap_SOURCES): Add missing `util/deviceiter.c' and
623 `util/devicemap.c'.
624
50dcabcf 6252009-10-01 Colin Watson <cjwatson@ubuntu.com>
626
627 * util/grub-editenv.c (create_envblk_file): Write new block with a
628 .new suffix and then rename it into place, to ensure atomic
629 creation.
630
0e51c3a7 6312009-09-28 Robert Millan <rmh.grub@aybabtu.com>
632
633 Do not automatically install headers.
634
635 * Makefile.in (include_DATA): Remove. Update all users.
636
31299a95 6372009-09-26 Robert Millan <rmh.grub@aybabtu.com>
638
639 * conf/common.rmk (pkglib_MODULES): Remove `lua.mod'.
640 (lua_mod_SOURCES, lua_mod_CFLAGS, lua_mod_LDFLAGS): Remove.
641
642 * util/osdetect.lua: Remove.
643 * script/lua/lauxlib.c: Likewise.
644 * script/lua/ldebug.c: Likewise.
645 * script/lua/grub_main.c: Likewise.
646 * script/lua/lauxlib.h: Likewise.
647 * script/lua/ldebug.h: Likewise.
648 * script/lua/ltablib.c: Likewise.
649 * script/lua/liolib.c: Likewise.
650 * script/lua/lstrlib.c: Likewise.
651 * script/lua/lualib.h: Likewise.
652 * script/lua/ldo.c: Likewise.
653 * script/lua/ldump.c: Likewise.
654 * script/lua/ldo.h: Likewise.
655 * script/lua/loslib.c: Likewise.
656 * script/lua/lundump.c: Likewise.
657 * script/lua/grub_lib.c: Likewise.
658 * script/lua/ldblib.c: Likewise.
659 * script/lua/lundump.h: Likewise.
660 * script/lua/lmem.c: Likewise.
661 * script/lua/grub_lib.h: Likewise.
662 * script/lua/lmathlib.c: Likewise.
663 * script/lua/lstate.c: Likewise.
664 * script/lua/ltm.c: Likewise.
665 * script/lua/lvm.c: Likewise.
666 * script/lua/lmem.h: Likewise.
667 * script/lua/lstate.h: Likewise.
668 * script/lua/ltm.h: Likewise.
669 * script/lua/ltable.c: Likewise.
670 * script/lua/lvm.h: Likewise.
671 * script/lua/llex.c: Likewise.
672 * script/lua/lgc.c: Likewise.
673 * script/lua/grub_lua.h: Likewise.
674 * script/lua/loadlib.c: Likewise.
675 * script/lua/lfunc.c: Likewise.
676 * script/lua/lopcodes.c: Likewise.
677 * script/lua/lparser.c: Likewise.
678 * script/lua/ltable.h: Likewise.
679 * script/lua/llex.h: Likewise.
680 * script/lua/lgc.h: Likewise.
681 * script/lua/lfunc.h: Likewise.
682 * script/lua/lbaselib.c: Likewise.
683 * script/lua/lopcodes.h: Likewise.
684 * script/lua/lparser.h: Likewise.
685 * script/lua/lzio.c: Likewise.
686 * script/lua/linit.c: Likewise.
687 * script/lua/lobject.c: Likewise.
688 * script/lua/llimits.h: Likewise.
689 * script/lua/lstring.c: Likewise.
690 * script/lua/lzio.h: Likewise.
691 * script/lua/lapi.c: Likewise.
692 * script/lua/lcode.c: Likewise.
693 * script/lua/lua.h: Likewise.
694 * script/lua/lobject.h: Likewise.
695 * script/lua/lstring.h: Likewise.
696 * script/lua/lapi.h: Likewise.
697 * script/lua/lcode.h: Likewise.
698 * script/lua/luaconf.h: Likewise.
699
cb8a2c38 7002009-09-26 Colin Watson <cjwatson@ubuntu.com>
701
702 * docs/grub.texi (Command-line and menu entry commands): Document
703 date and echo commands.
704
6b9b6276 7052009-09-24 Pavel Roskin <proski@gnu.org>
706
707 * include/grub/kernel.h (struct grub_module_header): Remove
708 `grub_module_header_types'. Make `type' unsigned. Make `size'
709 32-bit on all platforms.
710 * util/elf/grub-mkimage.c (load_modules): Treat `type' as an
711 8-bit field. Use grub_host_to_target32() for `size'.
712 * util/i386/efi/grub-mkimage.c (make_mods_section): Likewise.
713 * util/i386/pc/grub-mkimage.c (generate_image): Likewise.
714 * util/sparc64/ieee1275/grub-mkimage.c (generate_image): Likewise.
715
4e5a02a7 7162009-09-24 Robert Millan <rmh.grub@aybabtu.com>
717
718 Fix "lost keypress" bug in at_keyboard.
719
720 * term/i386/pc/at_keyboard.c (grub_at_keyboard_checkkey): New function.
721 Checks for readyness of input buffer (without flushing it).
722 (grub_at_keyboard_term): Use grub_at_keyboard_checkkey() rather
723 than grub_at_keyboard_getkey_noblock() for `checkkey' struct member.
724
c6dcedf6 7252009-09-24 Robert Millan <rmh.grub@aybabtu.com>
726
727 * util/i386/pc/grub-mkimage.c (generate_image): Enclose BIOS-specific
728 size check within GRUB_MACHINE_PCBIOS section.
729
74c958b1 7302009-09-24 Robert Millan <rmh.grub@aybabtu.com>
731
732 * include/grub/i386/at_keyboard.h (KEYBOARD_ISREADY): Negate
733 return value.
734 * term/i386/pc/at_keyboard.c (grub_keyboard_getkey): Negate
735 KEYBOARD_ISREADY check.
736 (grub_at_keyboard_checkkey): Rename to ...
737 (grub_at_keyboard_getkey_noblock): ... this. Update all users.
738 Remove gratuitous cast.
739
ff420223 7402009-09-23 Colin Watson <cjwatson@ubuntu.com>
741
742 * configure.ac: Call AC_PROG_MKDIR_P.
743 * Makefile.in (docs/stamp-vti): Create docs directory. Create
744 version.texi in $(builddir) rather than $(srcdir).
745 (docs/grub.info): Create docs directory. Prepend $(builddir)/docs
746 to makeinfo's @include search path.
747
d96875df 7482009-09-23 Felix Zielcke <fzielcke@z-51.de>
749
750 * util/grub-mkconfig_lib.in (grub_file_is_not_garbage): Cope with `*.dpkg-*'
751
9b3f8365 7522009-09-23 Felix Zielcke <fzielcke@z-51.de>
753
754 * util/grub-mkconfig_lib.in (grub_file_is_not_garbage): Add support
755 for `*.dpkg-new'.
756
c44c90db 7572009-09-21 Colin Watson <cjwatson@ubuntu.com>
758
759 Build info documentation. Some code borrowed from Automake.
760
761 * configure.ac: Check for makeinfo.
762 * Makefile.in (MAKEINFO, INFOS, info_INFOS): New variables.
763 (MAINTAINER_CLEANFILES): Add $(INFOS), docs/stamp-vti, and
764 docs/version.texi.
765 (MOSTLYCLEANFILES): Add vti.tmp.
766 (docs/version.texi, docs/stamp-vti): Update automatically.
767 (docs/grub.info): Build info documentation. Use --force and ignore
768 errors for now.
769 (all-local): Add $(INFOS).
770 (install-local): Install info files.
771 (uninstall): Uninstall info files.
772 * docs/version.texi: Remove from revision control. This file is
773 automatically generated on build now.
774 * gendistlist.sh: Add `*.info'.
775
e0b37bb5 7762009-09-21 Felix Zielcke <fzielcke@z-51.de>
777
778 * kern/term.c: Fix indentation.
779
5a78865b 7802009-09-21 Felix Zielcke <fzielcke@z-51.de>
781
782 * util/hostdisk.c: Fix a comment.
783
dace7e8a 7842009-09-20 Robert Millan <rmh.grub@aybabtu.com>
785
786 Fix regression introduced in r2539.
787
788 * term/usb_keyboard.c (USB_HID_DEVICE_TO_HOST): Change from 0x61
789 to 0xA1.
790
a83d079b 7912009-09-19 Colin Watson <cjwatson@ubuntu.com>
792
793 * util/grub.d/30_os-prober.in: Don't throw away stderr from
4cbbccec 794 os-prober. Under normal operation, it does not print anything to
795 stderr; if it does, we need to debug it, and throwing away stderr
796 makes that excessively difficult.
a83d079b 797
be94a509 7982009-09-16 Vladimir Serbinenko <phcoder@gmail.com>
799
800 * mmap/mmap.c (grub_cmd_badram): Fix off-by-one error.
801
63f745e8 8022009-09-16 Robert Millan <rmh.grub@aybabtu.com>
803
804 * aclocal.m4 (AC_LANG_PROGRAM): New macro. Overrides stock
805 AC_LANG_PROGRAM from autoconf.
806 (grub_ASM_USCORE, grub_PROG_OBJCOPY_ABSOLUTE): Add missing
807 prototypes (fixes warning).
808
809 * configure.ac: Add `-Werror' to TARGET_CFLAGS unless
810 `--disable-werror' was used.
811
bbb2a70f 8122009-09-16 Robert Millan <rmh.grub@aybabtu.com>
813
814 * partmap/msdos.c (pc_partition_map_iterate): Fix possible use of
815 uninitialized `lastaddr'.
816
77c24f1d 8172009-09-15 Vladimir Serbinenko <phcoder@gmail.com>
818
0f0b8c87 819 * partmap/msdos.c (pc_partition_map_iterate): Detect and break loops.
77c24f1d 820
07197f23 8212009-09-14 Colin Watson <cjwatson@ubuntu.com>
822
823 * commands/test.c (get_fileinfo): Return immediately if
824 grub_fs_probe fails.
825
dabf1798 8262009-09-14 José Martínez <xosemp@gmail.com>
827
828 * commands/acpi.c (grub_cmd_acpi): Fix loading ACPI tables from file.
829
d52109a7 8302009-09-14 Colin Watson <cjwatson@ubuntu.com>
831
832 * util/grub.d/30_os-prober.in: Cope with Windows 7 in os-prober
833 output.
834
56532179 8352009-09-13 Robert Millan <rmh.grub@aybabtu.com>
836
837 * configure.ac: Remove --enable-grub-pe2elf. Only build
838 grub-pe2elf when needed by the build system itself.
839 * conf/common.rmk: Remove $(enable_grub_pe2elf) check.
840
8ef070f5 8412009-09-12 Robert Millan <rmh.grub@aybabtu.com>
842
843 * configure.ac: Bump version to 1.97~beta3.
844 * docs/version.texi: Likewise.
845
61229557 8462009-09-12 Robert Millan <rmh.grub@aybabtu.com>
847
848 * video/i386/pc/vbe.c (grub_vbe_get_video_mode_info): Move packed
849 mode special handling (grub_vbe_bios_set_dac_palette_width() call)
850 from here ...
851 * loader/i386/linux.c [GRUB_MACHINE_PCBIOS]
852 (grub_linux_setup_video): ... to here (with some adjustments).
853
5c9f8d84 8542009-09-12 Robert Millan <rmh.grub@aybabtu.com>
855
856 Fix memory corruption issue (spotted by Colin Watson).
857
858 * kern/i386/pc/startup.S (grub_vbe_bios_getset_dac_palette): Fix bug
859 causing returned size to be stored in an incorrect memory location.
860 Fix use of uninitialized value when storing the returned size.
861
e8f5d6e9 8622009-09-12 Yves Blusseau <blusseau@zetam.org>
863
864 Change clean rules to properly remove files
865
866 * genmk.rb: add new clean rules
867 * Makefile.in (clean): add the new targets
868 (mostlyclean): likewise
869
cda2a409 8702009-09-11 Colin Watson <cjwatson@ubuntu.com>
871
872 * include/grub/ntfs.h (struct grub_fshelp_node): Change `size'
873 to grub_uint64_t.
874 * fs/ntfs.c (init_file): Understand 64-bit sizes for
875 non-resident files.
876
86695375 8772009-09-11 Colin Watson <cjwatson@ubuntu.com>
878
879 * configure.ac: Don't look for help2man when cross-compiling. Fixes
880 part of bug #27349.
881
8aa1541a 8822009-09-10 Felix Zielcke <fzielcke@z-51.de>
883
884 * util/grub-mkconfig.in: Make the created config mode 400 and
885 print a warning if it fails.
886
48d9bb0a 8872009-09-10 Robert Millan <rmh.grub@aybabtu.com>
888
889 * util/grub.d/40_custom.in: Ask user to type custom entries below
890 comment, rather than below 'exec tail' line.
891
3b0521be 8922009-09-10 Colin Watson <cjwatson@ubuntu.com>
893
894 * util/grub.d/40_custom.in: Make sure that the explanatory text is
895 visible in grub.cfg.
896
50051d55 8972009-09-10 Colin Watson <cjwatson@ubuntu.com>
898
899 * util/grub.d/40_custom.in: Make it a little clearer how to use this
900 file.
901
c0d34387 9022009-09-10 Felix Zielcke <fzielcke@z-51.de>
903
904 * docs/grub.cfg: Add an example menu entry for memtest86+.
905
80a608f3 9062009-09-09 Felix Zielcke <fzielcke@z-51.de>
907
a2094832 908 * config.guess: Update to latest version from config git.
80a608f3 909 * config.sub: Likewise.
910
99423078 9112009-09-08 Colin Watson <cjwatson@ubuntu.com>
912
913 * script/sh/execute.c (grub_script_execute_cmdline): Set "?" in
914 unknown-command case. Fixes bug #27320.
915
44454e4c 9162009-09-08 Felix Zielcke <fzielcke@z-51.de>
917
918 * kern/rescue_parser.c (grub_rescue_parse_line): Only suggest to try
919 `help' if the command exists.
920
e30d87ad 9212009-09-06 Robert Millan <rmh.grub@aybabtu.com>
922
923 * INSTALL: Require GCC 4.1.3 or later.
924
9a86f1ec 9252009-09-06 Yves Blusseau <blusseau@zetam.org>
926
927 * Makefile.in (RMKFILES): add i386-qemu.rmk
928 (MAINTAINER_CLEANFILES): add $(srcdir)/DISTLIST $(srcdir)/config.h.in
929 $(srcdir)/stamp-h.in
930
7f26d466 9312009-09-05 Robert Millan <rmh.grub@aybabtu.com>
932
933 * util/grub-probe.c (probe): Comment out buggy codepath, which
934 was unexpectedly enabled by Colin Watson's 2009-09-02 fix. This
935 should be re-enabled after 1.97.
936
3a613259 9372009-09-05 Felix Zielcke <fzielcke@z-51.de>
938
939 * gendistlist.sh: Add `grub-dumpdevtree' and `*.lua' to the list
940 find searches for.
941
197f76c7 9422009-09-04 Vladimir Serbinenko <phcoder@gmail.com>
943
944 * loader/i386/xnu.c (grub_cpu_xnu_fill_devicetree): Remove
945 unnecessary calls to grub_error.
946
70ba68ce 9472009-09-04 Colin Watson <cjwatson@ubuntu.com>
948
949 * NEWS: Mention `keystatus' and Unicode fonts.
950
4ff0d7a4 9512009-09-04 Robert Millan <rmh.grub@aybabtu.com>
952
953 * configure.ac: Bump version to 1.97~beta2.
954 * docs/version.texi: Likewise.
955
77c55a87 9562009-09-03 Colin Watson <cjwatson@ubuntu.com>
957
958 * configure.ac: By default, GCC 4.4 generates .eh_frame sections
959 containing unwind information in some cases where it previously did
960 not. Use -fno-dwarf2-cfi-asm if available to restore the old
961 behaviour. See http://patchwork.kernel.org/patch/8555/ for related
962 discussion.
963
f79572cd 9642009-09-02 Yves BLUSSEAU <blusseau@zetam.org>
965
966 Embedding loadenv module into grub-emu
967
968 * conf/i386-pc.rmk (grub_emu_SOURCES): add lib/envblk.c and
969 commands/loadenv.c
970 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise
971 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise
972 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise
973 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise
974 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise
975 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise
976
93a81088 9772009-09-03 Magnus Granberg <zorry@ume.nu>
978
979 * aclocal.m4: Add grub_CHECK_PIE. It check if the compiler
980 include -fPIE in the default specs.
981 * configure.ac: Check if pie_possible is yes and add -fno-PIE
982 to TARGET_CFLAGS.
983
160034b2 9842009-09-03 Felix Zielcke <fzielcke@z-51.de>
985
986 * INSTALL: Note that GNU Bison 2.3 or later is required.
987
087c07c4 9882009-09-03 Colin Watson <cjwatson@ubuntu.com>
989
990 * kern/i386/pc/startup.S: Fix typo.
991
cbf978c0 9922009-09-02 Vladimir Serbinenko <phcoder@gmail.com>
993
994 * efiemu/loadcore.c (SUFFIX (grub_efiemu_loadcore_load)): Fix style
995 according to GCS.
996
9972009-09-02 Colin Watson <cjwatson@ubuntu.com>
f0910644 998
999 * docs/grub.texi (Naming convention): Describe one-based partition
1000 numbering.
1001 (Device syntax): Likewise.
1002 (File name syntax): Likewise.
1003 (Block list syntax): Likewise.
1004 (Making a GRUB bootable CD-ROM): Talk about grub.cfg rather than
1005 menu.lst.
1006 (File name syntax): Likewise.
1007 (Command-line and menu entry commands): Document acpi, blocklist,
1008 crc, export, insmod, keystatus, ls, set, and unset commands.
1009
f3e8cdfd 10102009-09-02 Colin Watson <cjwatson@ubuntu.com>
1011
1012 * commands/keystatus.c (GRUB_MOD_INIT (keystatus)): Adjust summary
1013 to avoid implying that only one of --shift, --ctrl, or --alt may be
1014 used.
1015
c0bc232b 10162009-09-02 Colin Watson <cjwatson@ubuntu.com>
1017
1018 * util/grub-probe.c (probe): Test st.st_mode using S_ISREG macro
1019 rather than comparing against S_IFREG, which will almost never work.
1020
aa0f752d 10212009-09-01 Vladimir Serbinenko <phcoder@gmail.com>
1022
1023 * commands/loadenv.c (check_blocklists): Fix off-by-one error.
1024 (write_blocklists): Likewise.
1025
ecb3166a 10262009-09-01 Colin Watson <cjwatson@ubuntu.com>
1027
1028 * script/lua/grub_lua.h (fputs): Supply a format string as the first
1029 argument to grub_printf.
1030
c403a125 10312009-09-01 Felix Zielcke <fzielcke@z-51.de>
31aba781 1032
1033 * genmk.rb: Add quotes around $(TARGET_OBJ2ELF) to cope with
c403a125 1034 non GNU test.
31aba781 1035
b5e7312c 10362009-08-30 Vladimir Serbinenko <phcoder@gmail.com>
1037
1038 * kern/file.c (grub_file_read): Spelling fix
1039
fe00f472 10402009-08-30 Vladimir Serbinenko <phcoder@gmail.com>
1041
1042 * loader/i386/bsdXX.c (SUFFIX (grub_freebsd_load_elfmodule)): Fix
1043 loading of headers in some cases.
1044
cc55302e 10452009-08-30 Robert Millan <rmh.grub@aybabtu.com>
1046
1047 * configure.ac: Bump version to 1.97~beta1.
1048 * docs/version.texi: Likewise.
1049
5c90cdd2 10502009-08-29 Vladimir Serbinenko <phcoder@gmail.com>
64bf71d0 1051
1052 * include/grub/i386/xnu.h: Add license header.
1053 include grub/err.h explicitly.
1054
c90edae4 10552009-08-29 Robert Millan <rmh.grub@aybabtu.com>
1056
1057 * util/grub.d/10_freebsd.in: Detect `ufs1' and `ufs2' and map them
1058 to `ufs' in the vfs.root.mountfrom kernel parameter.
1059
d8888b5c 10602009-08-29 Robert Millan <rmh.grub@aybabtu.com>
1061
1062 * term/i386/pc/serial.c: Include `<grub/machine/memory.h>'.
1063
1064 [GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Macroify initialization
1065 value (0x0400 -> GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR).
1066
1067 [! GRUB_MACHINE_PCBIOS] (GRUB_SERIAL_PORT_NUM): Calculate using
1068 `ARRAY_SIZE' macro.
1069
6f07b921 10702009-08-28 Vladimir Serbinenko <phcoder@gmail.com>
1071
1072 * kern/file.c (grub_file_read): Check offset.
1073 * fs/hfs.c (grub_hfs_read_file): Remove unnecessary offset check.
1074 * fs/jfs.c (grub_jfs_read_file): Likewise.
1075 * fs/ntfs.c (grub_ntfs_read): Likewise.
1076 * fs/reiserfs.c (grub_reiserfs_read): Likewise.
1077 * fs/minix.c (grub_minix_read_file): Correct offset check.
1078 * fs/ufs.c (grub_ufs_read_file): Likewise.
1079
b4f34077 10802009-08-28 Colin Watson <cjwatson@ubuntu.com>
1081
1082 * term/i386/pc/console.c (bios_data_area): Cast
1083 GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR explicitly.
1084
e7c69859 10852009-08-28 Vladimir Serbinenko <phcoder@gmail.com>
1086
1087 1-bit optimised blitters.
1088
1089 * include/grub/fbblit.h (grub_video_fbblit_replace_32bit_1bit): New
1090 prototype.
1091 (grub_video_fbblit_replace_24bit_1bit): Likewise.
1092 (grub_video_fbblit_replace_16bit_1bit): Likewise.
1093 (grub_video_fbblit_replace_8bit_1bit): Likewise.
1094 (grub_video_fbblit_blend_XXXA8888_1bit): Likewise.
1095 (grub_video_fbblit_blend_XXX888_1bit): Likewise.
1096 (grub_video_fbblit_blend_XXX565_1bit): Likewise.
1097 * video/fb/fbblit.c (grub_video_fbblit_replace_32bit_1bit): New
1098 function.
1099 (grub_video_fbblit_replace_24bit_1bit): Likewise.
1100 (grub_video_fbblit_replace_16bit_1bit): Likewise.
1101 (grub_video_fbblit_replace_8bit_1bit): Likewise.
1102 (grub_video_fbblit_blend_XXXA8888_1bit): Likewise.
1103 (grub_video_fbblit_blend_XXX888_1bit): Likewise.
1104 (grub_video_fbblit_blend_XXX565_1bit): Likewise.
1105 * video/fb/video_fb.c (common_blitter): Use 1-bit optimised blitters
1106 when possible.
1107 * video/video.c (grub_video_get_blit_format): Return
1108 GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED if bpp = 1.
1109
a57da43f 11102009-08-28 Colin Watson <cjwatson@ubuntu.com>
1111
1112 * normal/cmdline.c (grub_cmdline_get): Supply a format string as
1113 the first argument to grub_printf.
1114
4cbe67e5 11152009-08-28 Colin Watson <cjwatson@ubuntu.com>
11162009-08-28 Robert Millan <rmh.grub@aybabtu.com>
1117
1118 Add `getkeystatus' terminal method. Add a new `keystatus' command
1119 to query it.
1120
1121 * include/grub/term.h (GRUB_TERM_STATUS_SHIFT,
1122 GRUB_TERM_STATUS_CTRL, GRUB_TERM_STATUS_ALT): Definitions for
1123 modifier key bitmasks.
1124 (struct grub_term_input): Add `getkeystatus' member.
1125 (grub_getkeystatus): Add prototype.
1126 * kern/term.c (grub_getkeystatus): New function.
1127
1128 * include/grub/i386/pc/memory.h
1129 (GRUB_MEMORY_MACHINE_BIOS_DATA_AREA_ADDR): New macro.
1130 (struct grub_machine_bios_data_area): Define necessary parts of BIOS
1131 Data Area layout.
1132 * term/i386/pc/console.c (grub_console_getkeystatus): New function.
1133 (grub_console_term_input): Set `getkeystatus' member.
1134 * term/usb_keyboard.c (grub_usb_hid): Macroify HID protocol
1135 constants.
1136 (grub_usb_keyboard_getreport): Likewise.
1137 (grub_usb_keyboard_checkkey): Likewise.
1138 (grub_usb_keyboard_getkeystatus): New function.
1139 (grub_usb_keyboard_term): Set `getkeystatus' member.
1140
1141 * commands/keystatus.c: New file.
1142 * conf/common.rmk (pkglib_MODULES): Add keystatus.mod.
1143 (keystatus_mod_SOURCES): New variable.
1144 (keystatus_mod_CFLAGS): Likewise.
1145 (keystatus_mod_LDFLAGS): Likewise.
1146 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add
1147 commands/keystatus.c.
1148 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1149 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1150 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
1151 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1152 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1153 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
4cbe67e5 1154
6e2a9085 11552009-08-28 Vladimir Serbinenko <phcoder@gmail.com>
1156
1157 Split befs.mod and afs.mod into *_be.mod and *.mod
1158
1159 * conf/common.rmk (grub_probe_SOURCES): Add afs_be.c and befs_be.c.
1160 (grub_fstest_SOURCES): Likewise.
1161 (pkglib_MODULES): Add afs_be.mod and befs_be.mod.
1162 (afs_be_mod_SOURCES): New variable.
1163 (afs_be_mod_CFLAGS): Likewise.
1164 (afs_be_mod_LDFLAGS): Likewise.
1165 (befs_be_mod_SOURCES): Likewise.
1166 (befs_be_mod_CFLAGS): Likewise.
1167 (befs_be_mod_LDFLAGS): Likewise.
1168 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add afs_be.c and befs_be.c.
1169 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1170 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1171 * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
1172 (grub_emu_SOURCES): Likewise.
1173 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1174 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1175 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1176 * fs/afs_be.c: New file.
1177 * fs/befs_be.c: New file.
1178 * fs/afs.c (GRUB_AFS_FSNAME_SUFFIX): New definition.
1179 (GRUB_AFS_FSNAME): Use GRUB_AFS_FSNAME_SUFFIX.
1180 (U16): Replaced with ...
1181 (grub_afs_to_cpu16): ...this. All users updated.
1182 (U32): Replaced with ...
1183 (grub_afs_to_cpu32): ...this. All users updated.
1184 (U64): Replaced with ...
1185 (grub_afs_to_cpu64): ...this. All users updated.
1186 (GRUB_AFS_BO_LITTLE_ENDIAN): Remove.
1187 (GRUB_AFS_BO_BIG_ENDIAN): Likewise.
ad8ea1f4 1188 (grub_afs_validate_sblock): Check only one endianness.
6e2a9085 1189 (GRUB_MOD_INIT (befs)) [MODE_BIGENDIAN && MODE_BFS]: Rename to ..
1190 (GRUB_MOD_INIT (befs_be)) [MODE_BIGENDIAN && MODE_BFS]: ... this.
1191 (GRUB_MOD_INIT (afs)) [MODE_BIGENDIAN && !MODE_BFS]: Rename to ..
1192 (GRUB_MOD_INIT (afs_be)) [MODE_BIGENDIAN && !MODE_BFS]: ... this.
1193 (GRUB_MOD_FINI (befs)) [MODE_BIGENDIAN && MODE_BFS]: Rename to ..
1194 (GRUB_MOD_FINI (befs_be)) [MODE_BIGENDIAN && MODE_BFS]: ... this.
1195 (GRUB_MOD_FINI (afs)) [MODE_BIGENDIAN && !MODE_BFS]: Rename to ..
1196 (GRUB_MOD_FINI (afs_be)) [MODE_BIGENDIAN && !MODE_BFS]: ... this.
1197
32a71655 11982009-08-26 Bean <bean123ch@gmail.com>
1199
1200 * fs/xfs.c (GRUB_XFS_INO_INOINAG): Replace 1L with 1LL to support
1201 64-bit number.
1202 (GRUB_XFS_FSB_TO_BLOCK): Likewise.
1203 (grub_xfs_inode_block): Change return type to grub_uint64_t.
1204 (grub_xfs_read_inode): Change type of block to grub_uint64_t.
1205
552bf6c5 12062009-08-25 Vladimir Serbinenko <phcoder@gmail.com>
1207
1208 NetBSD memory map support.
1209
1210 * include/grub/i386/bsd.h (NETBSD_BTINFO_MEMMAP): New definition.
1211 (grub_netbsd_btinfo_mmap_header): New structure.
1212 (grub_netbsd_btinfo_mmap_entry): Likewise.
1213 * loader/i386/bsd.c (grub_netbsd_boot): Pass memory map.
1214
1ae2078c 12152009-08-25 Vladimir Serbinenko <phcoder@gmail.com>
1216
1217 Enable bsd.mod on coreboot.
1218
1219 * conf/i386-coreboot.rmk (pkglib_MODULES): Add bsd.mod.
1220 (bsd_mod_SOURCES): New variable.
1221 (bsd_mod_CFLAGS): Likewise.
1222 (bsd_mod_LDFLAGS): Likewise.
1223 (bsd_mod_ASFLAGS): Likewise.
1224 * loader/i386/bsd.c [!GRUB_MACHINE_PCBIOS]: Fix includes.
1225 (grub_bsd_get_device) [!GRUB_MACHINE_PCBIOS]: Set *biosdev to 0xff.
1226
beefc598 12272009-08-25 Vladimir Serbinenko <phcoder@gmail.com>
1228
1229 Cleanup NetBSD root support.
1230
1231 * loader/i386/bsd.c (grub_netbsd_boot): Remove call to
1232 grub_bsd_get_device.
1233 Fix typo.
1234
3b76e68b 12352009-08-25 Felix Zielcke <fzielcke@z-51.de>
1236
1237 * util/grub.d/00_header.in: Move check for the video backend of
1238 gfxterm from here ...
1239 * util/grub-mkconfig.in: ... to here. Enable gfxterm if there's
1240 a suitable video backend.
1241
aea664ea 12422009-08-25 Vladimir Serbinenko <phcoder@gmail.com>
1243
1244 Fix breakage in grub-setup.
1245
1246 * util/i386/pc/grub-setup.c (setup): Use "part_msdos" instead of
1247 "msdos_partition_map".
1248
ff747d50 12492009-08-25 Vladimir Serbinenko <phcoder@gmail.com>
1250
1251 Fix breakage in normal/auth.c.
1252
1253 * normal/auth.c (grub_iswordseparator): New function.
1254
e7e1f93f 12552009-08-25 Vladimir Serbinenko <phcoder@gmail.com>
1256
1257 Authentication support.
1258
1259 * commands/password.c: New file.
1260 * conf/common.rmk (pkglib_MODULES): Add password.mod.
1261 (password_mod_SOURCES): New variable.
1262 (password_mod_CFLAGS): Likewise.
1263 (password_mod_LDFLAGS): Likewise.
1264 (normal_mod_SOURCES): Add normal/auth.c.
1265 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add commands/password.c and
1266 normal/auth.c.
1267 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1268 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1269 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
1270 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1271 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1272 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
1273 * include/grub/auth.h: New file.
1274 * include/grub/err.h (grub_err_t): New enum value
1275 GRUB_ERR_ACCESS_DENIED.
1276 * include/grub/menu.h (grub_menu_entry): New fields 'restricted' and
1277 'users'.
1278 * include/grub/normal.h (grub_cmdline_get): New argument 'history'.
1279 * normal/cmdline.c (grub_cmdline_get): New argument 'history'. All
1280 users updated.
1281 * normal/auth.c: New file.
1282 * normal/main.c (grub_normal_add_menu_entry): Handle --users option.
1283 (grub_cmdline_run): Don't allow to go to command line without
1284 authentication.
1285 * normal/menu.c (grub_menu_execute_entry): Handle restricted entries.
1286 * normal/menu_entry.c (grub_menu_entry_run): Don't allow editing
1287 menuentry without superuser rights.
1288 * normal/menu_viewer.c (grub_menu_viewer_show_menu): Don't exit if
1289 user isn't a superuser.
1290
70f1161d 12912009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
1292
1293 Save space by inlining misc.c functions.
1294
1295 * kern/misc.c (grub_iswordseparator): Made static.
1296 * kern/misc.c (grub_strcat): Moved from here ...
1297 * include/grub/misc.h (grub_strcat): ... here. Inlined.
1298 * kern/misc.c (grub_strncat): Moved from here ...
1299 * include/grub/misc.h (grub_strncat): ... here. Inlined.
1300 * kern/misc.c (grub_strcasecmp): Moved from here ...
1301 * include/grub/misc.h (grub_strcasecmp): ... here. Inlined.
1302 * kern/misc.c (grub_strncasecmp): Moved from here ...
1303 * include/grub/misc.h (grub_strncasecmp): ... here. Inlined.
1304 * kern/misc.c (grub_isalpha): Moved from here ...
1305 * include/grub/misc.h (grub_isalpha): ... here. Inlined.
1306 * kern/misc.c (grub_isdigit): Moved from here ...
1307 * include/grub/misc.h (grub_isdigit): ... here. Inlined.
1308 * kern/misc.c (grub_isgraph): Moved from here ...
1309 * include/grub/misc.h (grub_isgraph): ... here. Inlined.
1310 * kern/misc.c (grub_tolower): Moved from here ...
1311 * include/grub/misc.h (grub_tolower): ... here. Inlined.
1312
48e40bff 13132009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
1314
1315 * script/sh/function.c (grub_script_function_find): Cut error message
1316 not to flood terminal.
1317 * script/sh/lexer.c (grub_script_yylex): Remove command line length
1318 limit.
1319 * script/sh/script.c (grub_script_arg_add): Duplicate string.
1320
c385bfc3 13212009-08-24 Colin Watson <cjwatson@ubuntu.com>
1322
1323 * term/usb_keyboard.c (grub_usb_keyboard_getreport): Make
1324 `report' grub_uint8_t *.
1325 (grub_usb_keyboard_checkkey): Make `data' elements grub_uint8_t.
1326 Use a 50-millisecond timeout rather than just repeating
1327 grub_usb_keyboard_getreport 50 times.
1328 (grub_usb_keyboard_getkey): Make `data' elements grub_uint8_t.
1329
2d21e3e8 13302009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
1331
1332 Rename *_partition_map to part_*
1333
1334 * partmap/acorn.c (grub_acorn_partition_map): Set name to 'part_acorn'.
1335 * partmap/amiga.c (grub_amiga_partition_map): Set name to 'part_amiga'.
1336 * partmap/apple.c (grub_apple_partition_map): Set name to 'part_apple'.
1337 * partmap/gpt.c (grub_gpt_partition_map): Set name to 'part_gpt'.
1338 All users updated.
1339 * partmap/msdos.c (grub_msdos_partition_map): Set name to 'part_msdos'.
1340 All users updated.
1341 * partmap/sun.c (grub_sun_partition_map): Set name to 'part_sun'.
1342 * util/grub-probe.c (probe_partmap): Don't transform partition name
1343 to get module name.
1344
dd103c4e 13452009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
1346
1347 Fix OpenBSD and NetBSD support.
1348
1349 * include/grub/i386/bsd.h (GRUB_BSD_TEMP_BUFFER): Change to resolve
1350 memory address conflict.
1351 (OPENBSD_MMAP_ACPI): New definition.
1352 (OPENBSD_MMAP_NVS): Likewise.
1353 * loader/i386/bsd.c (grub_openbsd_boot): Support OPENBSD_MMAP_ACPI
1354 and OPENBSD_MMAP_NVS.
1355 Add memory map terminator
1356 Explicit cast when calling grub_unix_real_boot.
ad8ea1f4 1357 (grub_netbsd_boot): Explicit cast when calling grub_unix_real_boot.
dd103c4e 1358
16c84d74 13592009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
1360
1361 Let user specify NetBSD root device.
1362
1363 * loader/i386/bsd.c (netbsd_root): New variable.
1364 (netbsd_opts): New option 'root'.
1365 (NETBSD_ROOT_ARG): New macro.
1366 (grub_netbsd_boot): Use 'netbsd_root'.
1367 (grub_bsd_unload): Free 'netbsd_root'.
1368 (grub_cmd_netbsd): Fill 'netbsd_root'.
1369
adb29902 13702009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
1371
1372 Support for 64-bit NetBSD.
1373
1374 * loader/i386/bsd.c (grub_bsd_load_elf): Apply correct mask to entry
1375 point when booting non-FreeBSD.
1376
f5ae9f74 13772009-08-24 Vladimir Serbinenko <phcoder@gmail.com>
1378
1379 Support --no-smp and --no-acpi for NetBSD.
1380
1381 * include/grub/i386/bsd.h (NETBSD_AB_NOSMP): New definition.
1382 (NETBSD_AB_NOACPI): Likewise.
1383 * loader/i386/bsd.c (netbsd_opts): New entries no-smp and no-acpi.
1384 (netbsd_flags): Add NETBSD_AB_NOSMP, NETBSD_AB_NOACPI.
1385
de74f136 13862009-08-23 Vladimir Serbinenko <phcoder@gmail.com>
1387
1388 * fs/hfsplus.c (grub_hfsplus_mount): Don't ignore grub_hfsplus_read_file
1389 errors.
1390 (grub_hfsplus_btree_iterate_node): Don't ignore grub_hfsplus_read_file
1391 errors. Call grub_error when needed.
1392
e9a925da 13932009-08-23 Vladimir Serbinenko <phcoder@gmail.com>
1394
1395 * commands/search.c (search_fs): Try searching without autoload first.
1396 * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Load
1397 filesystem module explicitly for faster booting.
1398
5174302b 13992009-08-23 Colin Watson <cjwatson@ubuntu.com>
1400
1401 * util/grub-mkconfig.in: Export GRUB_DISABLE_OS_PROBER.
1402
c8c80635 14032009-08-23 Colin Watson <cjwatson@ubuntu.com>
1404
1405 * util/grub.d/30_os-prober.in: Disable os-prober if
1406 `GRUB_DISABLE_OS_PROBER' was set to true.
1407
71acf5e5 14082009-08-23 Robert Millan <rmh.grub@aybabtu.com>
1409
1410 * partmap/pc.c: Rename to ...
1411 * partmap/msdos.c: ... this. Update all users.
1412 (grub_pc_partition_map): Rename to ...
1413 (grub_msdos_partition_map): ... this. Update all users.
1414
1415 * parttool/pcpart.c: Rename to ...
1416 * parttool/msdospart.c: ... this. Update all users.
1417
1418 * include/grub/pc_partition.h: Rename to ...
1419 * include/grub/msdos_partition.h: ... this. Update all users.
1420 (grub_pc_partition_bsd_entry): Rename to ...
1421 (grub_msdos_partition_bsd_entry): ... this. Update all users.
1422 (grub_pc_partition_disk_label): Rename to ...
1423 (grub_msdos_partition_disk_label): ... this. Update all users.
1424 (grub_pc_partition_entry): Rename to ...
1425 (grub_msdos_partition_entry): ... this. Update all users.
1426 (grub_pc_partition_mbr): Rename to ...
1427 (grub_msdos_partition_mbr): ... this. Update all users.
1428 (grub_pc_partition): Rename to ...
1429 (grub_msdos_partition): ... this. Update all users.
1430 (grub_pc_partition_is_empty): Rename to ...
1431 (grub_msdos_partition_is_empty): ... this. Update all users.
1432 (grub_pc_partition_is_extended): Rename to ...
1433 (grub_msdos_partition_is_extended): ... this. Update all users.
1434 (grub_pc_partition_is_bsd): Rename to ...
1435 (grub_msdos_partition_is_bsd): ... this. Update all users.
1436
1437 * conf/common.rmk (amiga_mod_SOURCES, amiga_mod_CFLAGS)
1438 (amiga_mod_LDFLAGS, apple_mod_SOURCES, apple_mod_CFLAGS)
1439 (apple_mod_LDFLAGS, msdos_mod_SOURCES, msdos_mod_CFLAGS)
1440 (msdos_mod_LDFLAGS, sun_mod_SOURCES, sun_mod_CFLAGS)
1441 (sun_mod_LDFLAGS, acorn_mod_SOURCES, acorn_mod_CFLAGS)
1442 (acorn_mod_LDFLAGS, gpt_mod_SOURCES, gpt_mod_CFLAGS)
1443 (gpt_mod_LDFLAGS): Rename to ...
1444 (part_amiga_mod_SOURCES, part_amiga_mod_CFLAGS, part_amiga_mod_LDFLAGS)
1445 (part_apple_mod_SOURCES, part_apple_mod_CFLAGS, part_apple_mod_LDFLAGS)
1446 (part_msdos_mod_SOURCES, part_msdos_mod_CFLAGS, part_msdos_mod_LDFLAGS)
1447 (part_sun_mod_SOURCES, part_sun_mod_CFLAGS, part_sun_mod_LDFLAGS)
1448 (part_acorn_mod_SOURCES, part_acorn_mod_CFLAGS, part_acorn_mod_LDFLAGS)
1449 (part_gpt_mod_SOURCES, part_gpt_mod_CFLAGS)
1450 (part_gpt_mod_LDFLAGS): ... this.
1451 (pkglib_MODULES): Prefix partition modules with `part_'. Rename
1452 `pcpart.mod' to `msdospart.mod'.
1453 (pcpart_mod_SOURCES, pcpart_mod_CFLAGS, pcpart_mod_LDFLAGS): Rename
1454 to ...
1455 (msdospart_mod_SOURCES, msdospart_mod_CFLAGS)
1456 (msdospart_mod_LDFLAGS): ... this.
1457
c11fded5 14582009-08-23 Vladimir Serbinenko <phcoder@gmail.com>
1459
1460 * loader/i386/bsd.c (freebsd_opts): Rewritten to use extcmd.
1461 (openbsd_opts): Likewise.
1462 (netbsd_opts): Likewise.
1463 (freebsd_flags): Added 0 terminator.
1464 (openbsd_flags): Likewise.
1465 (netbsd_flags): Likewise.
1466 (grub_bsd_parse_flags): Rewritten to use extcmd. All users updated.
1467 (grub_cmd_freebsd): Transformed into extended command.
1468 (grub_cmd_openbsd): Likewise.
1469 (grub_cmd_netbsd): Likewise.
1470 (cmd_freebsd): Changed type to grub_extcmd_t.
1471 (cmd_openbsd): Likewise.
1472 (cmd_netbsd): Likewise.
1473 (GRUB_MOD_INIT (bsd)): Register grub_cmd_freebsd, grub_cmd_netbsd and
1474 grub_cmd_openbsd as extended commands.
1475 (GRUB_MOD_FINI (bsd)): Use grub_unregister_extcmd for cmd_freebsd,
1476 cmd_netbsd and cmd_openbsd
1477
11d1c769 14782009-08-22 Vladimir Serbinenko <phcoder@gmail.com>
1479
1480 * commands/xnu_uuid.c (transform): Use grub_memcpy instead of memcpy.
1481
7a9094e5 14822009-08-21 Pavel Roskin <proski@gnu.org>
1483
5496c37e 1484 * Makefile.in (install-local): When checking if a file is in the
1485 build directory, use "test -e" to detect symlinks.
1486
7a9094e5 1487 * Makefile.in (install-local): Remove all files in
1488 $(DESTDIR)$(pkglibdir) before installing new files there.
1489
e53cea11 14902009-08-18 Felix Zielcke <fzielcke@z-51.de>
1491
1492 * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Use
1493 grub-mkelfimage.
1494
9aced544 14952009-08-18 Felix Zielcke <fzielcke@z-51.de>
1496
1497 * util/grub-mkconfig.in: Don't use gfxterm by default if not
1498 explicitly specified by the user.
1499
b7da6bab 15002009-08-18 Pavel Roskin <proski@gnu.org>
1501
1502 * include/grub/fbfill.h (struct grub_video_fbrender_target): Use
1503 grub_uint8_t pointer for data.
1504 * include/grub/fbutil.h (struct grub_video_fbblit_info):
1505 Likewise.
1506 * video/fb/fbutil.c: Remove unnecessary casts.
1507
19f1b335 15082009-08-17 Michal Suchanek <hramrach@centrum.cz>
1509
1510 VBE cleanup.
1511
1512 * video/i386/pc/vbe.c (vbe_mode_in_use): Removed (duplicate).
1513 (grub_vbe_set_video_mode): Save active mode info
1514 only after setting the mode.
1515 (grub_video_vbe_setup): Call 'grub_vbe_set_video_mode' with NULL as
1516 second argument.
1517
2f467aa9 15182009-08-17 Michal Suchanek <hramrach@centrum.cz>
1519
1520 Rename variables for clarity.
1521
1522 * video/i386/pc/vbe.c (active_mode_info): Renamed to ...
1523 (active_vbe_mode_info): ... this. All users updated.
1524 (framebuffer): Rename 'active_mode' to 'active_vbe_mode'.
1525 All users updated.
1526 (initial_mode): Rename to ...
1527 (initial_vbe_mode): ... this. All users updated.
1528 (mode_in_use): Rename to ..
1529 (vbe_mode_in_use): ... this. All users updated.
1530 (mode_list): Rename to ..
1531 (vbe_mode_list): ... this. All users updated.
1532 (grub_vbe_set_video_mode): Rename 'mode' to 'vbe_mode', 'mode_info' to
1533 'vbe_mode_info' and 'old_mode' to 'old_vbe_mode'.
1534 (grub_video_vbe_init): Rename 'rm_mode_list' to 'rm_vbe_mode_list' and
1535 'mode_list_size' to 'vbe_mode_list_size'.
1536 (grub_video_vbe_setup): Rename 'mode_info' to 'vbe_mode_info',
1537 'best_mode_info' to 'best_vbe_mode_info' and
1538 'best_mode' to 'best_vbe_mode'
1539
6025fcd7 15402009-08-17 Michal Suchanek <hramrach@centrum.cz>
1541
1542 Remove duplicate grub_video_fb_get_video_ptr.
1543
1544 * include/grub/fbutil.h (get_data_ptr): Rename to ...
1545 (grub_video_fb_get_video_ptr): ... this.
1546 * include/grub/video_fb.h (grub_video_fb_get_video_ptr): Removed.
1547 * video/fb/fbutil.c: Add comment about addressing.
1548 (get_data_ptr): Rename to ...
1549 (grub_video_fb_get_video_ptr): ... this. All users updated.
1550 * video/fb/video_fb.c (grub_video_fb_get_video_ptr): Remove.
1551
cc8c6faf 15522009-08-17 Robert Millan <rmh.grub@aybabtu.com>
1553
1554 * fs/fat.c (grub_fat_read_data): Remove `#if 0' braces around the
1555 grub_dprintf() that was just added.
1556
08aa61f0 15572009-08-17 Robert Millan <rmh.grub@aybabtu.com>
1558
1559 * loader/i386/linux.c (GRUB_ASSUME_LINUX_HAS_FB_SUPPORT)
1560 (DEFAULT_VIDEO_MODE): Remove macros.
1561 (grub_linux_boot): Remove assumption that Linux has FB support,
1562 and use "text" as default video mode.
1563
7cef4f75 15642009-08-15 Vladimir Serbinenko <phcoder@gmail.com>
1565
1566 * fs/affs.c (grub_affs_read_symlink): Change leftover grub_printf into
1567 grub_dprintf.
1568 * fs/fat.c (grub_fat_read_data): Likewise.
1569
e1f39873 15702009-08-14 Vladimir Serbinenko <phcoder@gmail.com>
1571
1572 * loader/i386/multiboot.c (grub_multiboot): Don't pass filename to
1573 payload.
1574 (grub_module): Likewise.
1575
c166d79e 15762009-08-14 Vladimir Serbinenko <phcoder@gmail.com>
1577
1578 * loader/i386/multiboot.c (grub_multiboot_unload): Don't free mbi and
1579 mbi->cmdline but free playground.
1580
c60cee8e 15812009-08-14 Vladimir Serbinenko <phcoder@gmail.com>
1582
1583 Handle group offset on UFS1.
1584
1585 * fs/ufs.c (grub_ufs_sblock): New field 'cylg_mask'.
1586 (grub_ufs_read_inode) [!MODE_UFS2]: handle cylg_offset and cylg_mask.
1587
c0d8b5d4 15882009-08-14 Vladimir Serbinenko <phcoder@gmail.com>
1589
1590 Split ufs.mod into ufs1.mod and ufs2.mod.
1591
1592 * conf/common.rmk (grub_probe_SOURCES): Add fs/ufs2.c.
1593 (grub_fstest_SOURCES): Likewise.
1594 (pkglib_MODULES): Remove ufs.mod. Add ufs1.mod and ufs2.mod.
1595 (ufs_mod_SOURCES): Remove.
1596 (ufs_mod_CFLAGS): Likewise.
1597 (ufs_mod_LDFLAGS): Likewise.
1598 (ufs1_mod_SOURCES): New variable.
1599 (ufs1_mod_CFLAGS): Likewise.
1600 (ufs1_mod_LDFLAGS): Likewise.
25fbd77a 1601 (ufs2_mod_SOURCES): New variable.
1602 (ufs2_mod_CFLAGS): Likewise.
1603 (ufs2_mod_LDFLAGS): Likewise.
c0d8b5d4 1604 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add fs/ufs2.c.
1605 * conf/i386-efi.rmk (util/i386/efi/grub-mkimage.c_DEPENDENCIES):
1606 Likewise.
1607 (grub_emu_SOURCES): Likewise.
1608 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1609 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
1610 (grub_setup_SOURCES): Likewise.
1611 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1612 * conf/sparc64.rmk (grub_emu_SOURCES): Likewise.
1613 (grub_setup_SOURCES): Likewise.
1614 * conf/x86_64-efi.rmk (util/i386/efi/grub-mkimage.c_DEPENDENCIES):
1615 Likewise.
1616 * fs/ufs2.c: New file.
1617 * fs/ufs.c: Separate UFS1 from UFS2 by using preprocessor.
1618
d3539132 16192009-08-14 Vladimir Serbinenko <phcoder@gmail.com>
1620
1621 Framebuffer split.
1622
1623 * commands/i386/pc/vbetest.c (grub_cmd_vbetest): Restore video
1624 subsystem at the end.
1625 * conf/common.rmk (pkglib_MODULES): Add video_fb.mod.
1626 (video_fb_mod_SOURCES): New variable.
1627 (video_fb_mod_CFLAGS): Likewise.
1628 (video_fb_mod_LDFLAGS): Likewise.
1629 * conf/i386-pc.rmk (vbe_mod_SOURCES): Remove video/i386/pc/vbeblit.c,
1630 video/i386/pc/vbefill.c and video/i386/pc/vbeutil.c.
1631 * video/i386/pc/vbeblit.c: Moved from here ...
1632 * video/fb/fbblit.c: ..here. Replaced 'vbe' with 'fb'.
1633 * video/i386/pc/vbefill.c: Moved from here ...
1634 * video/fb/fbfill.c: ..here. Replaced 'vbe' with 'fb'.
1635 * video/i386/pc/vbeutil.c: Moved from here ...
1636 * video/fb/fbutil.c: ..here. Replaced 'vbe' with 'fb'.
1637 * include/grub/i386/pc/vbeblit.h: Moved from here ...
1638 * include/grub/fbblit.h: ... here. Replaced 'vbe' with 'fb'.
1639 * include/grub/i386/pc/vbefill.h: Moved from here ...
1640 * include/grub/fbfill.h: ... here. Replaced 'vbe' with 'fb'.
1641 * include/grub/i386/pc/vbeutil.h: Moved from here ...
1642 * include/grub/fbutil.h: ... here. Replaced 'vbe' with 'fb'.
1643 * include/grub/i386/pc/vbe.h: Moved framebuffer part ...
1644 * include/grub/video_fb.h: ... here. Replaced 'vbe' with 'fb'.
1645 * include/grub/video.h (GRUB_VIDEO_RENDER_TARGET_FRONT_BUFFER): Removed.
1646 (GRUB_VIDEO_RENDER_TARGET_BACK_BUFFER): Likewise.
1647 (grub_video_adapter): Added 'get_info_and_fini'.
1648 (grub_video_get_info_and_fini): New prototype.
1649 (grub_video_set_mode): make modestring const char *.
1650 * loader/i386/linux.c (grub_linux_setup_video): Use
1651 grub_video_get_info_and_fini.
1652 (grub_linux_boot): Move modesetting just before booting.
1653 * loader/i386/pc/xnu.c (grub_xnu_set_video): Use
1654 grub_video_get_info_and_fini.
1655 * video/i386/pc/vbe.c: Moved framebuffer part ...
1656 * video/fb/video_fb.c: ... here. Replaced 'vbe' with 'fb'.
1657 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): Use
1658 grub_video_fbstd_colors and grub_video_fb_set_palette.
1659 (grub_video_vbe_init): Clear 'framebuffer' variable and use
1660 grub_video_fb_init.
1661 (grub_video_vbe_fini): Use grub_video_fb_fini.
1662 (grub_video_vbe_setup): Use framebuffer.render_target instead of
1663 render_target and use grub_video_fb_set_active_render_target and
1664 grub_video_fb_set_palette.
1665 (grub_video_vbe_set_palette): Use grub_video_fb_set_palette.
1666 (grub_video_vbe_set_viewport): Use grub_video_fb_set_viewport.
1667 (grub_video_vbe_adapter): Use framebuffer.
1668 * video/video.c (grub_video_get_info_and_fini): New function.
1669 (grub_video_set_mode): Make modestring const char *.
1670 (GRUB_MOD_INIT(video_video)): Don't set variables to 0 since these
1671 values are already initialised.
1672
d404ee56 16732009-08-14 Pavel Roskin <proski@gnu.org>
1674
1675 * boot/i386/pc/cdboot.S: Use LOCAL for local labels. Eliminate
1676 ABS and APPLE_CC.
1677 * boot/i386/pc/diskboot.S: Likewise.
1678 * boot/i386/pc/lnxboot.S: Likewise. Hardcode the number of code
1679 sectors allow compilation on MacOSX.
1680 * conf/i386-pc.rmk: Enable unconditional compilation of
1681 lnxboot.img.
1682
9a10df16 16832009-08-13 Colin Watson <cjwatson@ubuntu.com>
1684
1685 * util/grub-mkconfig.in: Export GRUB_HIDDEN_TIMEOUT.
1686 * util/grub.d/00_header.in: Enter interruptible sleep if
1687 GRUB_HIDDEN_TIMEOUT is set.
1688
be3c9ca7 16892009-08-13 Yves Blusseau <blusseau@zetam.org>
1690
1691 * include/grub/symbol.h: Add the LOCAL macro.
1692 * boot/i386/pc/boot.S: Use the LOCAL macro for all labels
1693 starting with "L_".
1694
1f9e557e 16952009-08-13 Pavel Roskin <proski@gnu.org>
1696
9ca62843 1697 * boot/i386/pc/boot.S: Remove ABS macro, it's not required by
1698 any modern compilers we support.
1699
1f9e557e 1700 * boot/i386/pc/boot.S: Remove all code dependent on APPLE_CC.
1701 Use local labels starting with "L_" so that Apple assembler
1702 knows they are local.
1703
81623db6 17042009-08-10 Robert Millan <rmh.grub@aybabtu.com>
1705
1706 * include/grub/i386/bsd.h (KERNEL_TYPE_NONE, KERNEL_TYPE_FREEBSD)
1707 (KERNEL_TYPE_OPENBSD, KERNEL_TYPE_NETBSD): Convert to ...
1708 (bsd_kernel_types): ... this enum.
1709
1710 * loader/i386/bsd.c (grub_cmd_freebsd_loadenv, grub_cmd_freebsd_module)
1711 (grub_cmd_freebsd_module_elf): Abort with "You need to load the
1712 kernel first." when `kernel_type' is set to KERNEL_TYPE_NONE.
1713
1714 (grub_bsd_load_aout, grub_bsd_load, grub_cmd_freebsd_loadenv)
1715 (grub_cmd_freebsd_module, grub_cmd_freebsd_module_elf)
1716 (GRUB_MOD_INIT (bsd)): Fix capitalization in a few error
1717 messages.
1718
f5d35e7a 17192009-08-08 Robert Millan <rmh.grub@aybabtu.com>
1720
1721 * util/grub-dumpdevtree: Moved from here ...
1722 * util/i386/efi/grub-dumpdevtree: ... to here.
1723 (hexify): New function. Converts a string to its hex version.
1724 Generate hex versions of "efi" and "device-properties" by calling
1725 hexify() on the ASCII strings rather than by hardcoding numbers.
1726
d1e1d527 17272009-08-08 Robert Millan <rmh.grub@aybabtu.com>
1728
1729 * fs/jfs.c: Update copyright year.
1730
1ebbe064 17312009-08-08 Felix Zielcke <fzielcke@z-51.de>
1732
1733 * util/grub.d/00_header.in: Fix a comment.
1734 * util/grub.d/10_linux.in: Likewise.
1735 * util/grub.d/10_windows.in: Likewise.
1736 * util/grub.d/10_hurd.in: Likewise.
1737
a78c8d24 17382009-08-08 Felix Zielcke <fzielcke@z-51.de>
1739
1740 * util/grub-mkconfig.in: Allow the user to specify the used font
1741 with GRUB_FONT.
1742
29a6b9e8 17432009-08-08 Pavel Roskin <proski@gnu.org>
1744
b5f16cc4 1745 * include/grub/powerpc/libgcc.h: Export __ashrdi3() if
1746 available, xfs.mod needs it now.
1747
2f5cb827 1748 * util/grub-mkconfig_lib.in (version_test_numeric): Don't use
1749 the "g" modifier in sed when the intention is to strip something
1750 once. This fixes comparison of kernels with multiple dashes.
1751
29a6b9e8 1752 * util/grub-mkconfig.in: Define datarootdir, datadir may depend
1753 on it. Add missing space before closing bracket. Fix
1754 misleading formatting.
1755
892a3d98 17562009-08-07 Robert Millan <rmh.grub@aybabtu.com>
1757
1758 * docs/grub.texi: Major overhaul. Remove all sections that are
1759 specific to GRUB Legacy, or mostly composed of Legacy-specific
1760 information.
1761
ed94253f 17622009-08-07 Robert Millan <rmh.grub@aybabtu.com>
1763
1764 * docs/version.texi: New file. Provides version information for
1765 grub.texi.
1766
126d6628 17672009-08-07 Robert Millan <rmh.grub@aybabtu.com>
1768
1769 * docs/grub.texi: Update CVS information to SVN.
1770 Replace outdated "GRUB 2 will include" phrase with "GRUB 2 includes".
1771
998b5aa9 17722009-08-07 Felix Zielcke <fzielcke@z-51.de>
1773
1774 * util/grub-mkconfig.in: Remove a wrong `fi'.
1775
818e094a 17762009-08-07 Felix Zielcke <fzielcke@z-51.de>
1777
1778 * fs/uuid.c (grub_jfs_superblock): New fields unused2 and uuid.
1779 (grub_jfs_uuid): New function.
1780 (grub_jfs_fs): Set uuid field to grub_jfs_uuid.
1781
b969c52f 17822009-08-07 Felix Zielcke <fzielcke@z-51.de>
1783
1784 * util/grub-mkconfig_lib.in (font_path): Move the functionality
1785 of it to ...
1786 * util/grub-mkconfig.in: ... here. Prefer unicode.pf2 and
1787 unifont.pf2 over ascii.pf2. Export LANG=C in case ascii.pf2 gets used.
1788
7a4894cc 17892009-08-07 Robert Millan <rmh.grub@aybabtu.com>
1790
1791 * util/grub.d/10_linux.in (test_numeric): Moved from here ...
1792 * util/grub-mkconfig_lib.in (version_test_numeric): ... to here.
1793 Update all users.
1794
1795 * util/grub.d/10_linux.in (test_gt): Strip any basename prefix,
1796 not just "vmlinu[zx]".
1797 Moved from here ...
1798 * util/grub-mkconfig_lib.in (version_test_gt): ... to here. Update
1799 all users.
1800
1801 * util/grub.d/10_linux.in (find_latest): Moved from here ...
1802 * util/grub-mkconfig_lib.in (version_find_latest): ... to here. Update
1803 all users.
1804
4e2171f8 18052009-08-07 Robert Millan <rmh.grub@aybabtu.com>
1806
1807 * util/grub.d/10_freebsd.in: Use an absolute device path for
1808 `vfs.root.mountfrom'. Set `vfs.root.mountfrom.options=rw'.
1809
6dcfcb32 18102009-08-06 Felix Zielcke <fzielcke@z-51.de>
1811
1812 * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Fix
1813 handling of multiple abstraction modules.
1814
f56a8756 18152009-08-04 Robert Millan <rmh.grub@aybabtu.com>
1816
1817 Fix a bug resulting in black screen when loading Linux using a
1818 packed video mode.
1819
1820 * kern/i386/pc/startup.S (grub_vbe_bios_getset_dac_palette_width): New
1821 function.
1822
1823 * include/grub/i386/pc/vbe.h (GRUB_VBE_CAPABILITY_DACWIDTH): New macro.
1824 (grub_vbe_bios_getset_dac_palette_width): New function.
1825 (grub_vbe_bios_get_dac_palette_width)
1826 (grub_vbe_bios_set_dac_palette_width): New macros (act as wrappers for
1827 grub_vbe_bios_getset_dac_palette_width()).
1828
1829 * video/i386/pc/vbe.c (grub_vbe_probe): Use `GRUB_VBE_STATUS_OK' to
1830 check for return status.
1831 (grub_vbe_get_video_mode_info): When getting information for a packed
1832 mode (<= 8 bpp), obtain DAC palette width using
1833 grub_vbe_bios_getset_dac_palette_width(), and use that for initializing
1834 {red,green,blue}_mark_size.
1835
222671b2 18362009-08-04 Felix Zielcke <fzielcke@z-51.de>
1837
ecb1a6d9 1838 * commands/search.c (options): Fix help output to match actual code.
222671b2 1839
f84114f5 18402009-08-02 Vladimir Serbinenko <phcoder@gmail.com>
1841
1842 * commands/hexdump.c (grub_cmd_hexdump): Use grub_disk_read instead
1843 of homegrown code.
1844
bd288a20 18452009-08-01 Vladimir Serbinenko <phcoder@gmail.com>
e768b770 1846
1847 * util/hostfs.c (grub_hostfs_dir): Don't use DT_DIR: It doesn't work
1848 on XFS or ReiserFS.
1849
8aab5e25 18502009-08-01 Vladimir Serbinenko <phcoder@gmail.com>
1851
1852 Support Apple partition map with sector size different from 512 bytes.
1853
1854 * partmap/apple.c (grub_apple_header): New field 'blocksize'.
1855 (apple_partition_map_iterate): Respect 'aheader.blocksize'
1856 and 'apart.partmap_size'.
1857
6ad6258a 18582009-08-01 Vladimir Serbinenko <phcoder@gmail.com>
18592009-08-01 Robert Millan <rmh.grub@aybabtu.com>
1860
1861 Fix cpuid command.
1862
1863 * commands/i386/cpuid.c (options): New variable.
1864 (grub_cmd_cpuid): Return real error.
1865 (GRUB_MOD_INIT(cpuid)): Declare options.
1866
67459bc6 18672009-07-31 Vladimir Serbinenko <phcoder@gmail.com>
1868
1869 * partmap/pc.c (pc_partition_map_iterate): Check that boot flags are
1870 valid.
1871
fbc6ab54 18722009-07-31 Bean <bean123ch@gmail.com>
1873
1874 * fs/xfs.c (grub_xfs_sblock): Change unused5 field to log2_sect and
1875 log2_inode.
1876 (grub_fshelp_node): Move inode field to the end.
1877 (grub_xfs_data): Remove inode field.
1878 (grub_xfs_inode_block): Calculate inode size using sblock.
1879 (grub_xfs_inode_offset): Likewise.
1880 (grub_xfs_read_inode): Calculate inode size using sblock.
1881 (grub_xfs_read_block): Replace XFS_INODE_EXTENTS with nrec.
1882 (grub_xfs_iterate_dir): Calculate inode size using sblock.
1883 (grub_xfs_mount): Use grub_zalloc instead of grub_malloc. Realloc data
1884 to match inode size.
1885 (grub_xfs_dir): goto mount_fail when mount fails, as data->diropen is
1886 not accessible when data is null.
1887 (grub_xfs_open): Likewise.
1888
f45d6cfc 18892009-07-31 Bean <bean123ch@gmail.com>
1890
1891 * disk/lvm.c (grub_lvm_scan_device): Ignore extra copy of metadata.
1892 Don't change pv->disk if it's already set.
1893
1894 * disk/raid.c (grub_raid_scan_device): Merge this function into ...
1895 (grub_raid_register): ... here.
1896 (grub_raid_rescan): Removed.
1897
1898 * include/grub/raid.h (grub_raid_rescan): Removed.
1899
1900 * util/grub-fstest.c: Remove include file <grub/raid.h>.
1901 (fstest): Replace grub_raid_rescan with module fini function followed
1902 by init function.
1903
1904 * util/grub-probe.c: Add include file <grub/raid.h>.
1905 (probe_raid_level): New function.
1906 (probe): Detect abstraction by walking the disk device, support two
1907 level of abstraction (LVM on RAID) when detecting partition map.
1908
24443b5a 19092009-07-31 Pavel Roskin <proski@gnu.org>
1910
1911 * disk/raid5_recover.c (grub_raid5_recover): Revert conversion
1912 to grub_zalloc(), it was erroneous.
1913 Reported by Bean <bean123ch@gmail.com>
1914
a275d9e7 19152009-07-30 Vladimir Serbinenko <phcoder@gmail.com>
1916
1917 * util/i386/pc/grub-setup.c (setup): Check that no partition is in
ad8ea1f4 1918 embedding zone, not only the first one.
a275d9e7 1919
56c5a47f 19202009-07-29 Joe Auricchio <jauricchio@gmail.com>
1921
1922 * term/gfxterm.c (clear_char): New function.
1923 (grub_virtual_screen_setup): Use clear_char.
1924 (scroll_up): Likewise.
1925 (grub_virtual_screen_cls): Likewise.
1926
67bb323a 19272009-07-29 Felix Zielcke <fzielcke@z-51.de>
1928
1929 * util/deviceiter.c (get_acceleraid_disk_name): New static
1930 function.
1931 (grub_util_iterate_devices): Handle Accelraid devices.
1932 * util/hostdisk.c (convert_system_partition_to_system_disk): Likewise.
1933
388a7c75 19342009-07-28 Robert Millan <rmh.grub@aybabtu.com>
1935
1936 * loader/i386/linux.c (grub_cmd_linux): Use ',' rather than ';' as
1937 separator for the suggested gfxpayload string (';' collides with the
1938 parser and needs escaping).
1939
3bb7abcf 19402009-07-28 Vladimir Serbinenko <phcoder@gmail.com>
1941
1942 * loader/i386/multiboot_helper.S (grub_multiboot_backward_relocator):
1943 Clear direction flag before jumping to OS.
1944 (grub_multiboot2_real_boot): Likewise.
1945
2ddd36d7 19462009-07-28 Felix Zielcke <fzielcke@z-51.de>
1947
1948 * util/i386/pc/grub-install: Fix parsing of --disk-module
1949 option.
1950
c521b62b 19512009-07-28 Felix Zielcke <fzielcke@z-51.de>
1952
1953 * util/i386/pc/grub-setup.c (setup): Fix 2 incorrect checks
1954 when embedding.
1955
880e0a0c 19562009-07-26 Felix Zielcke <fzielcke@z-51.de>
1957
1958 * util/grub-mkconfig.in (package_version): New variable.
1959 Use it do display the version.
1960
2366e356 19612009-07-25 Felix Zielcke <fzielcke@z-51.de>
1962
1963 * kern/file.c (grub_file_open): Revert to previous check with
1964 grub_errno.
1965
7ad8c80e 19662009-07-25 Vladimir Serbinenko <phcoder@gmail.com>
1967
1968 * commands/probe.c (GRUB_MOD_INIT (probe)): Remove "[--target=target]"
1969 from help line. It's out of sync with code.
1970
72b9658b 19712009-07-25 Vladimir Serbinenko <phcoder@gmail.com>
1972
1973 * kern/parser.c (grub_parser_execute): Fix a bug causing truncated
1974 entries on failed boot.
1975
77435277 19762009-07-25 Felix Zielcke <fzielcke@z-51.de>
1977
1978 * kern/file.c (grub_file_open): Fix an error check.
1979
fcaa8b21 19802009-07-24 Vladimir Serbinenko <phcoder@gmail.com>
1981
35d16c74 1982 * util/i386/pc/grub-setup.c (setup): Fix segmentation fault when
1983 partition map couldn't be identified.
fcaa8b21 1984
48904cd1 19852009-07-23 Pavel Roskin <proski@gnu.org>
1986
ef3c317f 1987 * commands/xnu_uuid.c (transform): Use GRUB_CPU_WORDS_BIGENDIAN
1988 instead of WORDS_BIGENDIAN. Use grub_le_to_cpu32(), so that the
1989 case of little endian words becomes just an optimization.
1990 Respect const modifier.
ad8ea1f4 1991 (md5_final): Use code that doesn't depend on endianness.
ef3c317f 1992
48904cd1 1993 * include/grub/misc.h (ALIGN_UP): Cast align to the type of addr
1994 to avoid loss of upper bits if align is unsigned and shorter
1995 than addr.
1996
260c9a89 19972009-07-21 Vladimir Serbinenko <phcoder@gmail.com>
1998
1999 UUID support for UFS
2000
2001 * fs/ufs.c (grub_ufs_sblock): Add uuidhi and uuidlow.
2002 (grub_ufs_uuid): New function.
2003 (grub_ufs_fs): add .uuid
2004
f76ce889 20052009-07-21 Pavel Roskin <proski@gnu.org>
2006
2007 * kern/dl.c (grub_dl_check_header): Make static.
2008
6a6cbcaf 20092009-07-21 Felix Zielcke <fzielcke@z-51.de>
2010
2011 * util/grub.d/30_os-prober.in: Remove unused CHAINROOT. Don't
2012 add drivemap for Vista. It breaks Windows 7.
2013
cffcddb2 20142009-07-21 Vladimir Serbinenko <phcoder@gmail.com>
2015
2016 * fs/ufs.c (grub_ufs_sblock): Fix offset of mtime2 which was off by
2017 128 bytes
2018
1ef44b80 20192009-07-20 Vladimir Serbinenko <phcoder@gmail.com>
2020
2021 Add BFS support
2022
2023 * conf/common.rmk (grub_probe_SOURCES): Add fs/befs.c.
2024 (grub_fstest_SOURCES): Likewise.
2025 (pkglib_MODULES): Add befs.mod.
2026 (befs_mod_SOURCES): New variable.
2027 (befs_mod_CFLAGS): Likewise.
2028 (befs_mod_LDFLAGS): Likewise.
2029 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
2030 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
2031 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2032 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
2033 (grub_setup_SOURCES): Likewise.
2034 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2035 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2036 (grub_setup_SOURCES): Likewise.
2037 * fs/befs.c: New file.
2038 * fs/afs.c (GRUB_AFS_FSNAME): New declaration.
2039 (GRUB_AFS_SBLOCK_SECTOR): Likewise.
2040 (GRUB_AFS_SBLOCK_MAGIC1) [MODE_BFS]: New conditional declaration.
2041 (GRUB_AFS_BTREE_MAGIC) [MODE_BFS]: Likewise
2042 (B_KEY_INDEX_ALIGN): New declaration.
2043 (B_KEY_INDEX_OFFSET): Use B_KEY_INDEX_ALIGN.
2044 (grub_afs_bnode) [MODE_BFS]: Make key_count and key_size 16-bit
2045 (grub_afs_btree) [MODE_BFS]: New conditional declaration.
2046 (grub_afs_sblock) [MODE_BFS]: Remove link_count.
2047 (grub_afs_validate_sblock) [MODE_BFS]: Support BFS
2048 (grub_afs_mount) [MODE_BFS]: Likewise.
2049 (grub_afs_dir) [MODE_BFS]: Divide mtime by 65536 and not 1000000.
2050 (grub_afs_fs): Use GRUB_AFS_FSNAME
2051 (GRUB_MOD_INIT (afs)) [MODE_BFS]: Rename to ...
2052 (GRUB_MOD_INIT (befs)) [MODE_BFS]: ... this
2053 (GRUB_MOD_FINI (afs)) [MODE_BFS]: Rename to ...
2054 (GRUB_MOD_FINI (befs)) [MODE_BFS]: ... this
2055
4f253044 20562009-07-19 Yves BLUSSEAU <yves.grub-devel@zetam.org>
2057
2058 * util/getroot.c (find_root_device): Add support for MacOSX.
2059 * util/hostdisk.c: Likewise.
2060
57a55913 20612009-07-20 Vladimir Serbinenko <phcoder@gmail.com>
2062
2063 * font/font.c (find_glyph): Check whether a font is present to avoid
2064 segmentation fault.
75421ca9 2065
20662009-07-20 Joe Auricchio <jauricchio@gmail.com>
04c7c429 2067
2068 * term/gfxterm.c (grub_virtual_screen_setup): Clear virtual_screen.
2069
e98cd0c2 20702009-07-20 Pavel Roskin <proski@gnu.org>
2071
2072 * configure.ac: Trim excessively wordy excuses.
2073
1d2d169a 20742009-07-20 Vladimir Serbinenko <phcoder@gmail.com>
2075
2076 Add symlink, mtime and label support to AtheFS.
2077
2078 * fs/afs.c (grub_afs_sblock): Declare `name' as char.
2079 (grub_afs_iterate_dir): Handle symlinks.
2080 (grub_afs_open): Use grub_afs_read_symlink.
2081 (grub_afs_dir): Likewise.
2082 Pass mtime.
2083 (grub_afs_label): New function.
2084 (grub_afs_fs): Add grub_afs_label.
2085 (grub_afs_read_symlink): New function.
2086
186f3189 20872009-07-20 Vladimir Serbinenko <phcoder@gmail.com>
2088
2089 Fix AtheFS support.
2090
2091 * fs/afs.c: Fix comments style.
2092 (grub_afs_blockrun): Declare as packed.
2093 (grub_afs_datastream): Likewise.
2094 (grub_afs_bnode): Likewise.
2095 (grub_afs_btree): Likewise.
2096 (grub_afs_sblock): Likewise.
2097 Declare `name' as char.
2098 (grub_afs_inode): Declare as packed.
2099 Change void *vnode to grub_uint32_t unused.
2100 (grub_afs_iterate_dir): Check that key_size is positive.
2101 (grub_afs_mount): Don't read superblock twice.
75421ca9 2102 (grub_afs_dir): Don't free node in case of error,
186f3189 2103 grub_fshelp_find_file already handles this.
2104 (grub_afs_open): Likewise.
2105
5680109e 21062009-07-19 Pavel Roskin <proski@gnu.org>
2107
2108 * Makefile.in: Remove LIBLZO and enable_lzo.
2109 * conf/i386-pc.rmk: Remove lzo support.
2110 * configure.ac: Remove checks for lzo, don't define ENABLE_LZMA.
2111 * include/grub/i386/pc/kernel.h: Define ENABLE_LZMA. Remove lzo
2112 support.
2113 * kern/i386/pc/lzo1x.S: Remove.
2114 * kern/i386/pc/startup.S: Remove lzo support.
2115 * util/i386/pc/grub-mkimage.c: Likewise.
2116
ac70fa32 21172009-07-19 Vladimir Serbinenko <phcoder@gmail.com>
2118
2119 * disk/usbms.c (grub_usbms_transfer): Fix double semicolon.
2120 * fs/xfs.c (grub_xfs_dir): Likewise.
2121 * fs/afs.c (grub_afs_dir): Likewise.
2122 * fs/iso9660.c (grub_iso9660_iterate_dir): Likewise.
2123 (grub_iso9660_open): Likewise.
2124 * fs/jfs.c (grub_jfs_open): Likewise.
2125 * fs/ext2.c (grub_ext2_dir): Likewise.
2126 * include/grub/macho.h (grub_macho_fat_arch): Likewise.
2127 * script/sh/lexer.c (grub_script_yylex): Likewise.
75421ca9 2128
eab58da2 21292009-07-16 Pavel Roskin <proski@gnu.org>
2130
d2838156 2131 * configure.ac: Never add "-c" to CFLAGS.
2132
55c70904 2133 * configure.ac: Fix incorrect comparison for grub_cv_cc_efiemu.
2134
43e6200c 2135 * configure.ac: Fix wrong use of grub_cv_cc_no_red_zone where
2136 grub_cv_cc_efiemu should be used.
2137
ce7a733d 2138 * configure.ac: Typo fixes.
2139
eab58da2 2140 * kern/mm.c (grub_zalloc): New function.
2141 (grub_debug_zalloc): Likewise.
2142 * include/grub/mm.h: Declare grub_zalloc() and
2143 grub_debug_zalloc().
2144 * util/misc.c (grub_zalloc): New function.
2145 * bus/usb/uhci.c (grub_uhci_pci_iter): Use grub_zalloc()
2146 instead of grub_malloc(), remove unneeded initializations.
2147 * bus/usb/usbhub.c (grub_usb_hub_add_dev): Likewise.
2148 * commands/extcmd.c (grub_extcmd_dispatcher): Likewise.
2149 * commands/parttool.c (grub_cmd_parttool): Likewise.
2150 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Likewise.
2151 * disk/raid5_recover.c (grub_raid5_recover): Likewise.
2152 * disk/raid6_recover.c (grub_raid6_recover): Likewise.
2153 * disk/usbms.c (grub_usbms_finddevs): Likewise.
2154 * efiemu/mm.c (grub_efiemu_request_memalign): Likewise.
2155 * efiemu/pnvram.c (grub_efiemu_pnvram): Likewise.
2156 (grub_cmd_efiemu_pnvram): Likewise.
2157 * fs/i386/pc/pxe.c (grub_pxefs_open): Likewise.
2158 * fs/iso9660.c (grub_iso9660_mount): Likewise.
2159 (grub_iso9660_iterate_dir): Likewise.
2160 * fs/jfs.c (grub_jfs_opendir): Likewise.
2161 * fs/ntfs.c (list_file): Likewise.
2162 (grub_ntfs_mount): Likewise.
2163 * kern/disk.c (grub_disk_open): Likewise.
2164 * kern/dl.c (grub_dl_load_core): Likewise.
2165 * kern/elf.c (grub_elf_file): Likewise.
2166 * kern/env.c (grub_env_context_open): Likewise.
2167 (grub_env_set): Likewise.
2168 (grub_env_set_data_slot): Likewise.
2169 * kern/file.c (grub_file_open): Likewise.
2170 * kern/fs.c (grub_fs_blocklist_open): Likewise.
2171 * loader/i386/multiboot.c (grub_module): Likewise.
2172 * loader/xnu.c (grub_xnu_create_key): Likewise.
2173 (grub_xnu_create_value): Likewise.
2174 * normal/main.c (grub_normal_add_menu_entry): Likewise.
2175 (read_config_file): Likewise.
2176 * normal/menu_entry.c (make_screen): Likewise.
2177 * partmap/sun.c (sun_partition_map_iterate): Likewise.
2178 * script/sh/lexer.c (grub_script_lexer_init): Likewise.
2179 * script/sh/script.c (grub_script_parse): Likewise.
2180 * video/bitmap.c (grub_video_bitmap_create): Likewise.
2181 * video/readers/jpeg.c (grub_video_reader_jpeg): Likewise.
2182 * video/readers/png.c (grub_png_output_byte): Likewise.
2183 (grub_video_reader_png): Likewise.
2184
830afef7 21852009-07-16 Vladimir Serbinenko <phcoder@gmail.com>
5ce5507f 2186
2187 Enable all targets that can be built by default
2188
830afef7 2189 * configure.ac: enable efiemu runtime, grub-emu, grub-emu-usb,
5ce5507f 2190 grub-mkfont and grub-fstest if they can be built
2191
ee293aee 21922009-07-16 Vladimir Serbinenko <phcoder@gmail.com>
2193
2194 Fix hang and segmentation fault in grub-emu-usb
2195
2196 * disk/scsi.c (grub_scsi_open): return err and not grub_errno
2197 * util/usb.c (grub_libusb_devices): likewise
2198 (grub_libusb_init): rename to ...
2199 (GRUB_MOD_INIT (libusb)):...this
2200 (grub_libusb_fini): rename to ..
2201 (GRUB_MOD_FINI (libusb)):...this
2202 * disk/usbms.c (grub_usbms_transfer): fix retry logic
2203 * include/grub/disk.h (grub_raid_init): removed, it's useless
2204 (grub_raid_fini): likewise
2205 (grub_lvm_init): likewise
2206 (grub_lvm_fini): likewise
2207 * util/grub-emu.c (main): don't call grub_libusb_init, it's done
2208 by grub_init_all
2209
94414221 22102009-07-16 Vladimir Serbinenko <phcoder@gmail.com>
2211
2212 Fix libusb
2213
2214 * Makefile.in (LIBUSB): new macro
2215 * genmk.rb (Utility/print_tail): new method
2216 (Utility/rule): use intermediary variable #{prefix}_OBJECTS
2217 (top level): call util.print_tail at the end.
2218
59ade63d 22192009-07-16 Vladimir Serbinenko <phcoder@gmail.com>
2220
2221 Make FreeBSD accept zpool.cache
2222
2223 * loader/i386/bsd.c (grub_freebsd_add_meta_module): spoof filename if
2224 type is /boot/zfs/zpool.cache
2225
a58da8c7 22262009-07-16 Vladimir Serbinenko <phcoder@gmail.com>
2227
2228 Fix 64-bit efiemu
2229
2230 * include/grub/efiemu/efiemu.h (grub_efiemu_configuration_table64_t):
2231 correct wrong typedef
2232 * efiemu/prepare.c (SUFFIX (grub_efiemu_prepare)): minor style fixes
2233
20591577 22342009-07-15 Pavel Roskin <proski@gnu.org>
2235
560ca572 2236 * include/grub/disk.h (struct grub_disk_dev): Use enum for id.
2237 * kern/disk.c (struct grub_disk_cache): Likewise.
2238
e8e8e4fd 2239 * commands/probe.c (options): Typo fix.
2240
fde24e10 2241 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_BPB_END):
2242 Increase to 0x5a to accommodate FAT32. Adjust other offsets
2243 accordingly.
2244 Original patch by Yves Blusseau <yves.grub-devel@zetam.org>
2245
379c54c1 2246 * boot/i386/pc/boot.S (general_error_string): Add DOS newline at
2247 the end of "Error" to make the message more readable.
2248
7bd8f5bf 2249 * boot/i386/pc/boot.S (kernel_segment): Remove.
2250 (copy_buffer): Use GRUB_BOOT_MACHINE_KERNEL_ADDR in segment 0
2251 for destination.
2252
40b132c5 2253 * boot/i386/pc/boot.S (boot_version): Remove.
2254 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_VER_MAJ):
2255 Remove.
2256
20591577 2257 * include/grub/i386/pc/boot.h: Sort all offsets.
2258 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Remove, it's unused.
2259 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Likewise.
2260 * boot/i386/pc/boot.S: Assert location of every offset listed in
2261 include/grub/i386/pc/boot.h.
2262
2df32b2c 22632009-07-13 Pavel Roskin <proski@gnu.org>
2264
44b5d879 2265 * include/grub/i386/coreboot/machine.h: Rename
2266 GRUB_MACHINE_LINUXBIOS to GRUB_MACHINE_COREBOOT.
2267 * loader/multiboot_loader.c (grub_cmd_multiboot_loader): Allow
2268 multiboot 1 for GRUB_MACHINE_COREBOOT and GRUB_MACHINE_QEMU.
2269
17dc3751 2270 * kern/dl.c: Force native word size to suppress warnings when
2271 compiling grub-emu.
2272
2df32b2c 2273 * kern/device.c (grub_device_iterate): Change struct part_ent to
2274 hold the name, not a pointer to it. Use one grub_malloc() per
2275 partition, not two. Free partition_name if grub_malloc() fails.
2276 Set ents to NULL only before grub_partition_iterate() is called.
2277
75c59f59 22782009-07-11 Bean <bean123ch@gmail.com>
2279
2280 * kern/ieee1275/openfw.c (grub_children_iterate): Fix size of
2281 childname.
2282
0ae1bf88 22832009-07-10 Bean <bean123ch@gmail.com>
22842009-07-10 Robert Millan <rmh.grub@aybabtu.com>
2285
2286 * kern/ieee1275/openfw.c (grub_children_iterate)
2287 (grub_devalias_iterate): Fix size evaluation for property or path
2288 strings, which was broken since r2132.
2289
8279cade 22902009-07-07 Pavel Roskin <proski@gnu.org>
2291
7d8a52d3 2292 * commands/search.c (search_file): Merge into ...
2293 (search_fs): ... this. Accept search type as argument.
2294 (grub_cmd_search): Pass search type to search_fs().
2295
25f9a05a 2296 * include/grub/util/console.h: New file.
2297 * util/console.c: Use it instead of grub/machine/console.h.
2298 * util/grub-emu.c: Likewise.
2299
8279cade 2300 * lib/arg.c (find_long_option): Remove.
2301 (find_long): Add `len' argument, make `s' const char *.
2302 (grub_arg_parse): Parse long options in place, not in a
2303 temporary buffer.
2304
4a11b60f 23052009-07-06 Pavel Roskin <proski@gnu.org>
2306
99f68041 2307 * commands/search.c (search_fs): Fix potential NULL pointer
2308 dereference.
2309
4a11b60f 2310 * commands/search.c (search_fs): Replace QUID macro with quid_fn
2311 function pointer.
2312
e110f4de 23132009-07-06 Daniel Mierswa <impulze@impulze.org>
2314
2315 * commands/search.c (search_fs): Use grub_strcasecmp() for UUID
2316 comparison.
2317
46eeb6a2 23182009-07-05 Pavel Roskin <proski@gnu.org>
2319
bab74958 2320 * include/grub/i386/linux.h (struct linux_kernel_params):
2321 Restore padding3, it's still needed.
2322
46eeb6a2 2323 * util/grub.d/10_freebsd.in: Fix spelling of `device.hints' on
2324 FreeBSD.
2325 * util/osdetect.lua: Likewise.
2326
b4a1dc79 23272009-07-05 Bean <bean123ch@gmail.com>
2328
2329 * conf/common.rmk (lua_mode_SOURCES): Add script/lua/lstrlib.c.
2330
2331 * script/lua/grub_lib.c (grub_lua_run): Check input parameter.
2332 (grub_lua_getenv): Likewise.
2333 (grub_lua_setenv): Likewise.
2334 (save_errno): New function.
2335 (push_result): Likewise.
2336 (grub_lua_enum_device): Likewise.
2337 (grub_lua_enum_file): Likewise.
2338 (grub_lua_file_open): Likewise.
2339 (grub_lua_file_close): Likewise.
2340 (grub_lua_file_seek): Likewise.
2341 (grub_lua_file_read): Likewise.
2342 (grub_lua_file_getline): Likewise.
2343 (grub_lua_file_getsize): Likewise.
2344 (grub_lua_file_getpos): Likewise.
2345 (grub_lua_file_eof): Likewise.
2346 (grub_lua_file_exist): Likewise.
2347 (grub_lua_add_menu): Likewise.
2348
2349 * script/lua/grub_lua.h (isupper): New inline function.
2350 (islower): Likewise.
2351 (ispunct): Likewise.
2352 (isxdigit): Likewise.
2353 (strcspn): Change to normal function.
2354 (strpbkr): New function declaration.
2355 (memchr): Likewise.
2356
2357 * script/lua/grub_main.c (scan_str): New function.
2358 (strcspn): Likewise.
2359 (strpbrk): Likewise.
2360 (memchr): Likewise.
2361
2362 * script/lua/linit.c (lualibs): Enable the string library.
2363
2364 * util/osdetect.lua: New file.
2365
2da92295 23662009-07-04 Robert Millan <rmh.grub@aybabtu.com>
2367
2368 * include/grub/i386/linux.h (struct linux_kernel_params): Add
2369 `capabilities' member.
2370
b2582ec9 23712009-07-02 Pavel Roskin <proski@gnu.org>
2372
2373 * genparttoollist.sh: Add missing newline at the end.
2374
32622956 23752009-07-01 Pavel Roskin <proski@gnu.org>
2376
87a7339e 2377 * kern/x86_64/efi/callwrap.S: Add missing newline at the end.
2378
d23af54e 2379 * util/hostdisk.c (open_device): Remove `const' from
2380 `sysctl_size', as sysctlbyname() can change it (in this case it
2381 doesn't actually happen).
2382
c94b18a9 2383 * include/grub/types.h: Define GRUB_LONG_MAX and GRUB_LONG_MIN
2384 using signed long int constants.
2385
c6cd3ef0 2386 * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): Make `p'
2387 constant to avoid a warning on FreeBSD.
2388
0df63420 2389 * util/hostdisk.c (device_is_wholedisk): Compile only on systems
2390 where it's needed.
2391
999577f1 2392 * Makefile.in: Install include/grub/machine symlink.
2393
6f41557f 2394 * Makefile.in: When installing symlinks, use "cp -fR", which
2395 works on FreeBSD and MacOSX.
2396 From Yves Blusseau <cl7m42e02@sneakemail.com>
2397
c8d22988 2398 * kern/dl.c (grub_dl_resolve_symbol): Make static.
2399 * include/grub/dl.h: Remove grub_dl_resolve_symbol().
2400
1b96e952 2401 * util/misc.c: Move grub_reboot() and grub_halt() ...
2402 * util/grub-emu.c: ... here. Make main_env static.
2403 * include/grub/util/misc.h: Remove main_env.
2404
2ef0084d 2405 * kern/mm.c: Use correct format to print size_t.
2406
32622956 2407 * include/grub/elf.h: Define Elf_Sword and Elf_Xword.
2408 * kern/i386/dl.c: Use ELF symbols without "32" or "64".
2409 * kern/powerpc/dl.c: Likewise.
2410 * kern/sparc64/dl.c: Likewise.
2411 * kern/x86_64/dl.c: Likewise.
2412
3f7f0cd0 24132009-07-01 Robert Millan <rmh.grub@aybabtu.com>
2414
2415 Fix grub-emu build on sparc64-ieee1275.
2416
75421ca9 2417 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Synchronize with ...
3f7f0cd0 2418 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): ... this.
2419
211d06b5 24202009-07-01 Robert Millan <rmh.grub@aybabtu.com>
2421
2422 * util/misc.c: Include `<setjmp.h>' and `<grub/machine/machine.h>'.
2423 (grub_reboot, grub_halt): New functions.
2424
2425 * util/i386/pc/misc.c: Delete. Update all users.
2426 * util/sparc64/ieee1275/misc.c: Likewise.
2427 * util/powerpc/ieee1275/misc.c: Likewise.
2428
aaf53e3c 24292009-07-01 Robert Millan <rmh.grub@aybabtu.com>
2430
2431 * conf/i386.rmk (setjmp_mod_SOURCES)
2432 (setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): Move to ...
2433 * conf/common.rmk (setjmp_mod_SOURCES)
2434 (setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): ... here, and modify
2435 to use $(target_cpu).
2436 * conf/x86_64-efi.rmk (setjmp_mod_SOURCES)
2437 (setjmp_mod_ASFLAGS, setjmp_mod_LDFLAGS): Remove.
2438 * conf/powerpc-ieee1275.rmk: Likewise.
2439 * conf/sparc64-ieee1275.rmk: Likewise.
2440
2441 * conf/i386-pc.rmk (kernel_img_SOURCES): Use
2442 $(target_cpu) for kern/$(target_cpu)/dl.c.
2443 * conf/i386-efi.rmk: Likewise.
2444 * conf/i386-ieee1275.rmk: Likewise.
2445 * conf/x86_64-efi.rmk: Likewise.
2446 * conf/i386-coreboot.rmk: Likewise.
2447 * conf/powerpc-ieee1275.rmk (kernel_img_SOURCES): Use
2448 $(target_cpu) for kern/$(target_cpu)/dl.c and for
2449 kern/$(target_cpu)/cache.S.
2450 * conf/sparc64-ieee1275.rmk: Likewise.
2451
a337130b 24522009-07-01 Robert Millan <rmh.grub@aybabtu.com>
2453
2454 * include/grub/i386/linux.h (linux_kernel_params): Change `mmap_size'
2455 type to `grub_uint8_t', and adjust `padding9' accordingly.
2456
c6fe4d53 24572009-06-29 Robert Millan <rmh.grub@aybabtu.com>
2458
b09db61d 2459 * include/grub/i386/linux.h (GRUB_VIDEO_TYPE_TEXT): New macro.
2460
c6fe4d53 2461 * loader/i386/linux.c [__i386__] (grub_linux_boot): Simplify inline
2462 assembly in final jump, using register constraints.
2463
b09db61d 2464 (grub_linux_boot): For text mode, initialize `have_vga' using
2465 GRUB_VIDEO_TYPE_TEXT rather than 0 (this changes its value to 1).
2466
2467 Initialize `video_cursor_x' and `video_cursor_y' as late as possible,
2468 right before the final jump.
2469
2470 Set `video_mode' to 0x3.
2471
2472 Document initialization of `video_page', `video_mode' and
2473 `video_ega_bx'.
2474
28333ad0 24752009-06-29 Robert Millan <rmh.grub@aybabtu.com>
2476
2477 * include/grub/i386/linux.h (GRUB_LINUX_FLAG_QUIET): New macro.
2478 * loader/i386/linux.c (grub_cmd_linux): Recognize "quiet" option,
75421ca9 2479 and set GRUB_LINUX_FLAG_QUIET appropriately.
28333ad0 2480
02164e1b 24812009-06-29 Robert Millan <rmh.grub@aybabtu.com>
2482
2483 Fix build on Debian / sparc.
2484
2485 * configure.ac: Recognize `sparc' target_cpu (as sparc64).
2486
18b6c557 24872009-06-28 Pavel Roskin <proski@gnu.org>
2488
85f2aab6 2489 * kern/i386/qemu/mmap.c (grub_machine_mmap_iterate): Use cast to
2490 fix a warning.
2491
18b6c557 2492 * util/grub.d/10_linux.in: Match SUSE style initrd names.
2493
ad760f81 24942009-06-27 Robert Millan <rmh.grub@aybabtu.com>
2495
2496 * loader/i386/linux.c (grub_linux_boot): Fix uninitialized use of
2497 `err'.
2498
87a4623b 24992009-06-27 Robert Millan <rmh.grub@aybabtu.com>
2500
2501 Revert r2338.
2502
2503 * loader/i386/linux.c (grub_cmd_linux): Don't call grub_error when
2504 file can't be opened. grub_file_open() is already supposed to set
75421ca9 2505 grub_errno / grub_errmsg appropriately.
87a4623b 2506 * loader/i386/pc/linux.c (grub_cmd_linux): Likewise.
2507
8231fb77 25082009-06-27 Pavel Roskin <proski@gnu.org>
25092009-06-27 Robert Millan <rmh.grub@aybabtu.com>
2510
2511 * include/grub/dl.h: Include grub/elf.h.
2512 (struct grub_dl): Add symtab field.
2513 * kern/dl.c [GRUB_MACHINE_QEMU]: Define
2514 GRUB_MODULES_MACHINE_READONLY.
2515 (grub_dl_resolve_symbols): Populate mod->symtab, making a copy
2516 of the header for read-only modules.
2517 (grub_dl_unload): Free mod->symtab for read-only modules.
2518 * kern/i386/dl.c: Use mod->symtab.
2519 * kern/powerpc/dl.c: Likewise.
2520 * kern/sparc64/dl.c: Likewise.
2521 * kern/x86_64/dl.c: Likewise.
2522
2523 * conf/i386-qemu.rmk: New file.
2524 * kern/i386/qemu/startup.S: Likewise.
2525 * kern/i386/qemu/mmap.c: Likewise.
2526 * boot/i386/qemu/boot.S: Likewise.
2527 * include/grub/i386/qemu/time.h: Likewise.
2528 * include/grub/i386/qemu/serial.h: Likewise.
2529 * include/grub/i386/qemu/kernel.h: Likewise.
2530 * include/grub/i386/qemu/console.h: Likewise.
2531 * include/grub/i386/qemu/boot.h: Likewise.
2532 * include/grub/i386/qemu/init.h: Likewise.
2533 * include/grub/i386/qemu/machine.h: Likewise.
2534 * include/grub/i386/qemu/loader.h: Likewise.
2535 * include/grub/i386/qemu/memory.h: Likewise.
2536
2537 * conf/i386-coreboot.rmk (GRUB_BOOT_MACHINE_LINK_ADDR)
2538 (GRUB_KERNEL_MACHINE_LINK_ADDR): New variables.
2539 [qemu] (pkglib_IMAGES): Add `boot.img'.
2540 [qemu] (boot_img_SOURCES, boot_img_ASFLAGS, boot_img_LDFLAGS)
2541 [qemu] (boot_img_FORMAT): New variables.
2542 [qemu] (bin_UTILITIES): Add `grub-mkimage'.
2543 [qemu] (grub_mkimage_SOURCES, grub_mkimage_CFLAGS): New variables.
2544 [qemu] (kernel_img_SOURCES, kernel_img_HEADERS, kernel_img_CFLAGS)
2545 [qemu] (kernel_img_ASFLAGS, kernel_img_LDFLAGS)
2546 [qemu] (kernel_img_FORMAT): New variables.
2547
2548 * configure.ac: Recognise `i386-qemu'.
2549
2550 * util/i386/pc/grub-mkimage.c (compress_kernel): Add dummy variant
2551 (for no compression).
2552 [GRUB_MACHINE_QEMU] (generate_image): Misc adjustments to produce
2553 a valid i386 ROM image. Make `GRUB_KERNEL_MACHINE_COMPRESSED_SIZE',
2554 `GRUB_KERNEL_MACHINE_INSTALL_DOS_PART' and
2555 `GRUB_KERNEL_MACHINE_INSTALL_BSD_PART' optional features (with
2556 ifdefs).
2557
97fe384e 25582009-06-27 Pavel Roskin <proski@gnu.org>
2559
2560 * efiemu/prepare.c: Eliminate TYPE macro, it makes code hard to
2561 read.
2562 * efiemu/prepare32.c: Likewise.
2563 * efiemu/prepare64.c: Likewise.
2564
c402ab17 25652009-06-26 Pavel Roskin <proski@gnu.org>
2566
2567 * include/grub/types.h: Define GRUB_TARGET_WORDSIZE.
2568 * include/grub/elf.h: Define symbols without "32" or "64" based
2569 on GRUB_TARGET_WORDSIZE.
2570 * include/grub/multiboot2.h: Use GRUB_TARGET_WORDSIZE.
2571 * efiemu/loadcore32.c: Redefine GRUB_TARGET_WORDSIZE, remove own
2572 ELF definitions.
2573 * efiemu/loadcore64.c: Likewise.
2574 * loader/i386/bsd32.c: Likewise.
2575 * loader/i386/bsd64.c: Likewise.
2576 * kern/dl.c: Remove own ELF definitions.
2577 * util/i386/efi/grub-mkimage.c: Likewise.
2578
9bbdfd4d 25792009-06-23 Robert Millan <rmh.grub@aybabtu.com>
2580
2581 * kern/i386/pc/startup.S (real_to_prot): Access `gdtdesc' using
2582 segment 0x0 unconditionally, because the reference generated by
2583 GAS is an absolute address.
2584
a42ce6e9 25852009-06-22 Robert Millan <rmh.grub@aybabtu.com>
2586
2587 * include/grub/i386/kernel.h: Include `<grub/machine/machine.h>'.
2588 [! GRUB_MACHINE_IEEE1275]: Set `GRUB_MOD_ALIGN' to 0x1.
2589
c952cf92 25902009-06-22 Robert Millan <rmh.grub@aybabtu.com>
2591
2592 * commands/search.c (grub_cmd_search): Macroify hardcoded args[]
2593 indexes. Check for -f explicitly.
cc3752ad 2594 (search_file): Improve error message.
2595 (GRUB_MOD_INIT(search)): Add missing `-n' to help output.
c952cf92 2596
132a0a59 25972009-06-22 Robert Millan <rmh.grub@aybabtu.com>
2598
2599 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): Rename to ...
2600 (GRUB_KERNEL_MACHINE_LINK_ADDR): ... this. Update all users.
2601
387a140c 26022009-06-22 Robert Millan <rmh.grub@aybabtu.com>
2603
2604 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/misc.S'.
2605 * conf/i386-ieee1275.rmk: Likewise.
2606 * conf/i386-coreboot.rmk: Likewise.
2607
2608 * kern/i386/pc/startup.S (grub_stop): Remove function.
2609 * kern/i386/ieee1275/startup.S: Likewise.
2610 * kern/i386/coreboot/startup.S: Likewise.
2611 * kern/i386/misc.S (grub_stop): New function.
2612
41da9665 26132009-06-22 Robert Millan <rmh.grub@aybabtu.com>
2614
2615 * kern/i386/pc/startup.S (real_to_prot): Move from here ...
2616 * kern/i386/realmode.S (real_to_prot): ... to here.
2617
bf337234 26182009-06-22 Robert Millan <rmh.grub@aybabtu.com>
2619
2620 * conf/i386-ieee1275.rmk (pkglib_PROGRAMS): Replace `kernel.elf'
2621 with `kernel.img'.
2622 (kernel_elf_SOURCES): Rename to ...
2623 (kernel_img_SOURCES): ... this.
2624 (kernel_elf_HEADERS): Rename to ...
2625 (kernel_img_HEADERS): ... this. Update all users.
2626 (kernel_elf_ASFLAGS): Rename to ...
2627 (kernel_img_ASFLAGS): ... this.
2628 (kernel_elf_CFLAGS): Rename to ...
2629 (kernel_img_CFLAGS): ... this.
2630 (kernel_elf_LDFLAGS): Rename to ...
2631 (kernel_img_LDFLAGS): ... this.
2632 * conf/i386-coreboot.rmk: Likewise.
2633 * conf/powerpc-ieee1275.rmk: Likewise.
2634
2635 * util/elf/grub-mkimage.c (add_segments): Replace "kernel.elf"
2636 with "kernel.img".
2637
f52196ff 26382009-06-21 Pavel Roskin <proski@gnu.org>
2639
c3cee413 2640 * loader/powerpc/ieee1275/linux.c (offset_phdr): Fix prototypes
2641 to match nested functions.
2642 * loader/sparc64/ieee1275/linux.c: Likewise.
2643
f52196ff 2644 * conf/i386-ieee1275.rmk: Define kernel_elf_ASFLAGS.
2645
58750afc 26462009-06-21 Robert Millan <rmh.grub@aybabtu.com>
2647
2648 * configure.ac: Enable `END_SYMBOL' / `BSS_START_SYMBOL' test on
2649 all i386 platforms.
2650
15355c7d 26512009-06-21 Robert Millan <rmh.grub@aybabtu.com>
2652
2653 Fix asm file handling on ELF, and remove workarounds.
2654
2655 * genmk.rb (class Programs): Detect assembly files, and set ASFLAGS
75421ca9 2656 and -DASM_FILE=1 appropriately (copied from `class Images' stanza).
15355c7d 2657 * kern/i386/ieee1275/startup.S (ASM_FILE): Remove macro.
2658 * kern/i386/coreboot/startup.S (ASM_FILE): Likewise.
2659
3f3ec72b 26602009-06-21 Vladimir Serbinenko <phcoder@gmail.com>
2661
2662 Load BSD ELF modules
2663
2664 * conf/i386-pc.rmk (bsd_mod_SOURCES): Add loader/i386/bsd32.c
2665 and loader/i386/bsd64.c
2666 * include/grub/i386/bsd.h (FREEBSD_MODTYPE_MODULE): Remove
2667 (FREEBSD_MODTYPE_ELF_MODULE): New definition
2668 (FREEBSD_MODTYPE_ELF_MODULE_OBJ): Likewise
2669 (grub_freebsd_load_elfmodule32): New declaration
2670 (grub_freebsd_load_elfmoduleobj64): Likewise
2671 (grub_freebsd_load_elf_meta32): Likewise
2672 (grub_freebsd_load_elf_meta64): Likewise
2673 (grub_freebsd_add_meta): Likewise
2674 (grub_freebsd_add_meta_module): Likewise
2675 * loader/i386/bsd.c (grub_freebsd_add_meta): Make global
2676 (grub_freebsd_add_meta_module): Likewise and move module-specific
2677 parts to grub_cmd_freebsd and grub_cmd_freebsd_module
2678 (grub_cmd_freebsd): Add elf-kernel specific parts
2679 based on grub_freebsd_add_meta_module
2680 (grub_cmd_freebsd_module): Add type parsing moved from
2681 grub_freebsd_add_meta_module
2682 (grub_cmd_freebsd_module_elf): New function
2683 (cmd_freebsd_module_elf): New variable
2684 (GRUB_MOD_INIT): Register freebsd_module_elf
2685 * loader/i386/bsd32.c: New file
2686 * loader/i386/bsd64.c: Likewise
2687 * loader/i386/bsdXX.c: Likewise
2688 * kern/elf.c (grub_elf32_load): Let hook decide which pheaders to load
2689 (grub_elf64_load): Likewise
2690 * include/grub/elfload.h (grub_elf32_load_hook_t): New parameter do_load
2691 All users updated
2692 (grub_elf64_load_hook_t): Likewise
2693
0db15301 26942009-06-21 Colin Watson <cjwatson@ubuntu.com>
2695
2696 * util/grub-mkconfig.in (GRUB_DISABLE_LINUX_RECOVERY): Export
2697 variable.
2698 * util/grub.d/10_linux.in: If GRUB_DISABLE_LINUX_RECOVERY is true,
2699 don't write a menu entry for recovery mode.
2700
546796c1 27012009-06-20 Robert Millan <rmh.grub@aybabtu.com>
2702
2703 * util/i386/pc/grub-mkimage.c (main): Oops, free `output' only
2704 after it's no longer needed.
2705
cd7310d5 27062009-06-20 Robert Millan <rmh.grub@aybabtu.com>
2707
2708 * include/grub/i386/loader.h (grub_linux_prot_size)
2709 (grub_linux_tmp_addr, grub_linux_real_addr)
2710 (grub_linux_is_bzimage, grub_linux16_boot): Declare only on
2711 GRUB_MACHINE_PCBIOS.
2712 * util/i386/pc/grub-mkimage.c (compress_kernel): Move
2713 common grub_util_info() call to ...
2714 (generate_image): ... here.
2715 Fix use of uninitialized memory, comparison of signed with
2716 unsigned integers and memory leak.
2717 Remove bogus module address message.
2718
ab32d3b5 27192009-06-20 Vladimir Serbinenko <phcoder@gmail.com>
2720
2721 * disk/mdraid_linux.c (GRUB_MOD_FINI): use grub_raid_unregister and not
2722 grub_raid_register
2723 * disk/dmraid_nvidia.c (GRUB_MOD_FINI): likewise
2724
024ef597 27252009-06-19 Pavel Roskin <proski@gnu.org>
2726
2727 * configure.ac: Remove stray AC_MSG_CHECKING.
2728
3ac72b51 27292009-06-19 Vladimir Serbinenko <phcoder@gmail.com>
2730
2731 * disk/scsi.c (grub_scsi_open): use continue instead of big if
dd74360c 2732
e14cd814 27332009-06-18 Pavel Roskin <proski@gnu.org>
2734
2735 * conf/common.rmk: Add fs_file.mod.
2736 * disk/fs_file.c: New file.
2737 * include/grub/disk.h (enum grub_disk_dev_id): Add
2738 GRUB_DISK_DEVICE_FILE_ID.
2739
26586d98 27402009-06-18 Vladimir Serbinenko <phcoder@gmail.com>
2741
2742 Fix build with Apple's toolchain. Part 2
2743
2744 * aclocal.m4 (grub_PROG_TARGET_CC): add missing prototype for main and
2745 a fake start
2746
26de2bcd 27472009-06-18 Vladimir Serbinenko <phcoder@gmail.com>
2748
2749 Fix build with Apple's toolchain. Part 1
2750
2751 * commands/i386/pc/drivemap_int13h.S: use assembly-time constants
2752 for long calls
2753 * configure.ac: remove a leftover AC_MSG_RESULT
dd74360c 2754 (CFLAGS): don't add -Wl,--defsym,___main=0x8100 when building with
26de2bcd 2755 Apple's toolchain
2756
09b3490b 27572009-06-18 Vladimir Serbinenko <phcoder@gmail.com>
2758
2759 Fix warnings
2760
2761 * fs/ntfscomp.c (decomp_get16): initialize c1 and c2
2762 (decomp_block): initialize ch
2763 use grub_memcpy instead of memcpy
2764
c22a006a 27652009-06-17 Pavel Roskin <proski@gnu.org>
2766
d3638678 2767 * include/grub/i386/coreboot/console.h: Don't use the i386-pc
2768 version, use declarations needed to use vga_text as the startup
2769 console.
2770
c22a006a 2771 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Remove
2772 term/i386/pc/at_keyboard.c, it doesn't need to be compiled into
2773 the kernel.
2774 * kern/i386/coreboot/init.c: Don't call grub_at_keyboard_init()
2775 and grub_at_keyboard_fini(), it's done on module load and
2776 unload.
2777
05b129e0 27782009-06-17 Felix Zielcke <fzielcke@z-51.de>
2779
2780 * loader/i386/linux.c (grub_cmd_linux): Set grub_error if the
2781 file can't be found.
2782 * loader/i386/pc/linux.c (grub_cmd_linux): Likewise.
2783
cf24ed9e 27842009-06-17 Vladimir Serbinenko <phcoder@gmail.com>
2785
2786 Fix newline handling
2787
2788 * include/grub/script_sh.h (grub_lexer_param): new field was_newline
dd74360c 2789 * script/sh/lexer.c (grub_script_lexer_init): initialize was_newline
cf24ed9e 2790 (grub_script_yylex): don't segfault on unterminated script
2791 newline terminates command and variable
2792
74aa8e4b 27932009-06-17 Vladimir Serbinenko <phcoder@gmail.com>
2794
2795 avoid double grub_adjust_range call. Bug reported by David Simner
2796
2797 * kern/disk.c (grub_disk_write): change to raw disk access before
2798 calling disk_read
2799
1bd265f3 28002009-06-17 Colin Watson <cjwatson@ubuntu.com>
2801
2802 * util/elf/grub-mkimage.c (usage): Prefix each option line with two
2803 spaces, for the benefit of help2man.
2804 * util/i386/efi/grub-mkimage.c (usage): Likewise.
2805
a2d08c06 28062009-06-16 Pavel Roskin <proski@gnu.org>
2807
2808 * kern/i386/halt.c: Include grub/machine/init.h.
2809 * kern/i386/reboot.c: Include grub/cpu/reboot.h.
2810
b97bcb19 28112009-06-16 Felix Zielcke <fzielcke@z-51.de>
2812
2813 * util/grub.d/30_os-prober.in: Use ${root} in the generated
2814 drivemap menuentry.
2815
0644f96c 28162009-06-16 James Jarvis <James.Jarvis@ed.ac.uk>
2817
2818 * commands/help.c GRUB_MOD_INIT(echo): Fix the help output of
2819 `echo' command.
2820
3ef17a2e 28212009-06-16 Pavel Roskin <proski@gnu.org>
2822
2823 * boot/i386/pc/boot.S: Remove root_drive. Assert offset of
2824 boot_drive_check by using GRUB_BOOT_MACHINE_DRIVE_CHECK. Don't
2825 save %dx, we only need %dl and we never change it.
2826 * boot/i386/pc/cdboot.S: Don't set the root drive.
2827 * boot/i386/pc/pxeboot.S: Likewise.
2828 * include/grub/i386/pc/boot.h: Remove
2829 GRUB_BOOT_MACHINE_ROOT_DRIVE, adjust
2830 GRUB_BOOT_MACHINE_DRIVE_CHECK.
2831 * include/grub/i386/pc/kernel.h: Remove grub_root_drive.
2832 * kern/i386/pc/init.c (make_install_device): Remove references
2833 to grub_root_drive.
2834 * kern/i386/pc/startup.S: Likewise.
2835 * util/i386/pc/grub-setup.c (setup): Don't set root_drive.
2836
693fe637 28372009-06-16 Vladimir Serbinenko <phcoder@gmail.com>
2838
2839 xnu_uuid command
2840
2841 * commands/xnu_uuid.c: new file
2842 * conf/common.rmk (pkglib_MODULES): add xnu_uuid.mod
2843 (xnu_uuid_mod_SOURCES): new variable
2844 (xnu_uuid_mod_CFLAGS): likewise
2845 (xnu_uuid_mod_LDFLAGS): likewise
2846 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/probe.c
2847 * conf/i386-ieee1275.rmk: likewise
2848 * conf/i386-pc.rmk: likewise
2849 * conf/powerpc-ieee1275.rmk: likewise
2850 * conf/sparc64-ieee1275.rmk: likewise
2851 * util/grub.d/30_os-prober.in: use UUID for Mac OS X/Darwin
2852
c9da87d0 28532009-06-16 Pavel Roskin <proski@gnu.org>
2854
2855 * configure.ac: Avoid '==' in test command, it's not portable.
2856
9c6f4596 28572009-06-16 Vladimir Serbinenko <phcoder@gmail.com>
2858
2859 Probe command
2860
2861 * commands/probe.c: new file
2862 * conf/common.rmk (pkglib_MODULES): add probe.mod
2863 (probe_mod_SOURCES): new variable
2864 (probe_mod_CFLAGS): likewise
2865 (probe_mod_LDFLAGS): likewise
2866 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/probe.c
2867 * conf/i386-ieee1275.rmk: likewise
2868 * conf/i386-pc.rmk: likewise
2869 * conf/powerpc-ieee1275.rmk: likewise
2870 * conf/sparc64-ieee1275.rmk: likewise
2871
70b7f9fd 28722009-06-15 Vladimir Serbinenko <phcoder@gmail.com>
2873
2874 Fix handling of string like \"hello\" and "a
2875 b"
2876
2877 * script/sh/lexer.c (check_textstate): accept GRUB_PARSER_STATE_ESC
2878 (grub_script_yylex): fix parsing of quoting, escaping and newline
2879
71c79a6b 28802009-06-13 Vladimir Serbinenko <phcoder@gmail.com>
2881
dd74360c 2882 * loader/i386/multiboot.c (grub_multiboot_get_bootdev): fix partition
71c79a6b 2883 handling
dd74360c 2884
0644f96c 28852009-06-13 Jun Inoue <jun.lambda@gmail.com>
880fc3c4 2886
2887 * util/grub-mkconfig.in: Fix parsing of --output option.
2888
e40893c3 28892009-06-12 Pavel Roskin <proski@gnu.org>
2890
2891 * Makefile.in (pkgdata_SRCDIR): Remove. genmodsrc.sh and
2892 genmk.rb don't need to be generated or installed.
2893
3a1acfe2 28942009-06-12 Vladimir Serbinenko <phcoder@gmail.com>
2895
2896 * commands/i386/pc/drivemap_int13h.S: add more comments
2897
3a4575d4 28982009-06-11 Pavel Roskin <proski@gnu.org>
2899
0658e928 2900 * Makefile.in (uninstall): Uninstall manuals.
2901
ca0388f0 2902 * Makefile.in: Rename lib_DATA to lib_SCRIPTS, move it from
2903 PKGLIB to SCRIPTS. This fixes installation of grub-mkconfig_lib
2904 and update-grub_lib in two places.
2905 * conf/common.rmk: Rename lib_DATA to lib_SCRIPTS.
2906
e3b27c39 2907 * disk/usbms.c (grub_usbms_transfer): Initialize `err' to fix
2908 a compiler warning.
2909
3a4575d4 2910 * loader/i386/bsd.c (grub_freebsd_boot): Rename `entry' to
2911 `entry_lo' to fix variable shadowing.
2912
af1f4f55 29132009-06-11 Christian Franke <franke@computer.org>
2914
2915 * kern/misc.c (__enable_execute_stack): Add missing return type
2916 to prevent gcc warning.
2917
5225e649 29182009-06-11 Felix Zielcke <fzielcke@z-51.de>
2919
2920 * conf/i386-ieee1275.rmk (COMMON_LDFLAGS): Remove `-static -lgcc'.
2921
7d83bd47 29222009-06-11 Pavel Roskin <proski@gnu.org>
2923
c1cb63ba 2924 * Makefile.in: Don't rely on any scripts being executable.
2925 Always use $(SHELL) to run shell scripts.
2926
7d83bd47 2927 * configure.ac: Always define ___main if using -nostdlib. This
2928 fixes tests on Cygwin.
2929
948f48e7 29302009-06-11 Giuseppe Caizzone <acaizzo@gmail.com>
2931
2932 UDF fix
2933
7d83bd47 2934 * fs/udf.c (grub_udf_read_block): handle the fact that ad->length
948f48e7 2935 is in bytes and not in blocks
7d83bd47 2936
8ada9bc1 29372009-06-11 Pavel Roskin <proski@gnu.org>
2938
2939 * kern/i386/halt.c (grub_halt): Make `i' unsigned to fix a
2940 warning.
2941
25ad2323 29422009-06-11 Felix Zielcke <fzielcke@z-51.de>
2943
2944 * util/grub.d/30_os-prober.in: Fix a comment. Source
2945 ${libdir}/grub/grub-mkconfig_lib. Use prepare_grub_to_access_device
2946 to set the root device. Place drivemap command in the generated
2947 chain entry.
2948
e65acb0c 29492009-06-11 Pavel Roskin <proski@gnu.org>
2950
2951 * configure.ac: Remove host_m32. Issues with 64-bit utilities
2952 have long been resolved.
2953
f285fe2d 29542009-06-11 Colin Watson <cjwatson@ubuntu.com>
2955
bd47b0b5 2956 * util/grub.d/10_linux.in: Capitalise "Linux".
2957
f285fe2d 2958 * util/grub-pe2elf.c (usage): Fix references to grub-editenv.
2959
a0c62e4e 29602009-06-11 Pavel Roskin <proski@gnu.org>
2961
b6783cb2 2962 * kern/efi/efi.c (grub_exit): Add infinite loop at the end to
2963 fix a gcc warning and ensure that the function won't ever exit.
2964
dde032e8 2965 * kern/i386/ieee1275/init.c: Add missing prototype for
2966 grub_stop_floppy().
2967
22cd079d 2968 * loader/ieee1275/multiboot2.c [__i386__]: Include
2969 grub/cpu/multiboot.h.
2970
a0c62e4e 2971 * term/i386/pc/serial.c (serial_translate_key_sequence): Avoid
2972 casts to short - they are not portable and cause warnings. Fix
2973 use of uninitialized values in input_buf. Use ARRAY_SIZE.
2974
63963d17 29752009-06-11 Vladimir Serbinenko <phcoder@gmail.com>
2976
2977 Drivemap fixes
2978
2979 * commands/i386/pc/drivemap.c (grub_get_root_biosnumber_drivemap):
2980 new function
2981 (grub_get_root_biosnumber_saved): new variable
2982 (GRUB_MOD_INIT): register grub_get_root_biosnumber_drivemap
2983 (GRUB_MOD_FINI): unregister grub_get_root_biosnumber_drivemap
775dbc4d 2984 * commands/i386/pc/drivemap_int13h.S (grub_drivemap_handler): restore
63963d17 2985 %dx after the call if necessary
2986 * conf/common.rmk (pkglib_MODULES): remove boot.mod
2987 (boot_mod_SOURCES): remove
2988 (boot_mod_CFLAGS): remove
2989 (boot_mod_LDFLAGS): remove
2990 * conf/i386-coreboot.rmk (pkglib_MODULES): add boot.mod
2991 (boot_mod_SOURCES): new variable
2992 (boot_mod_CFLAGS): likewise
2993 (boot_mod_LDFLAGS): likewise
2994 * conf/i386-efi.rmk: likewise
2995 * conf/i386-ieee1275.rmk: likewise
2996 * conf/i386-pc.rmk: likewise
2997 * conf/powerpc-ieee1275.rmk: likewise
2998 * conf/sparc64-ieee1275.rmk: likewise
2999 * conf/x86_64-efi.rmk: likewise
3000 * include/grub/i386/pc/biosnum.h: new file
3001 * lib/i386/pc/biosnum.c: likewise
3002 * loader/i386/bsd.c (grub_bsd_get_device): use grub_get_root_biosnumber
3003 * loader/i386/multiboot.c (grub_multiboot_get_bootdev): likewise
3004 * loader/i386/pc/chainloader.c (grub_chainloader_cmd): likewise
775dbc4d 3005
33abf7ae 30062009-06-10 Pavel Roskin <proski@gnu.org>
3007
5ac35b35 3008 * io/gzio.c (test_header): Don't reuse one buffer for all data.
3009 Use separate variables. Read only the file size at the end, but
3010 not the checksum that we don't use.
3011
5c5215d5 3012 * kern/file.c (grub_file_read): Use void pointer for the buffer.
3013 Adjust all callers.
3014
27d5fef7 3015 * kern/ieee1275/openfw.c: Remove libc includes.
3016 * kern/ieee1275/cmain.c: Likewise.
3017 * include/grub/ieee1275/ieee1275.h: Likewise.
3018
33abf7ae 3019 * kern/i386/coreboot/init.c: Include grub/cpu/tsc.h to fix
3020 compiler warnings.
3021
19d50c2b 30222009-06-10 Felix Zielcke <fzielcke@z-51.de>
3023
3024 * Makefile.in: Remove all trailing whitespace.
3025 * conf/i386-pc.rmk: Likewise.
3026 * conf/powerpc-ieee1275.rmk: Likewise.
3027 * conf/sparc64-ieee1275.rmk: Likewise.
3028 * docs/grub.texi: Likewise.
3029 * docs/texinfo.tex: Likewise.
3030 * disk/fs_uuid.c: Likewise.
3031 * disk/lvm.c: Likewise.
3032 * disk/scsi.c: Likewise.
3033 * disk/ata.c: Likewise.
3034 * disk/ieee1275/ofdisk.c: Likewise.
3035 * disk/i386/pc/biosdisk.c: Likewise.
3036 * disk/host.c: Likewise.
3037 * disk/raid.c: Likewise.
3038 * disk/efi/efidisk.c: Likewise.
3039 * disk/usbms.c: Likewise.
3040 * disk/memdisk.c: Likewise.
3041 * disk/loopback.c: Likewise.
3042 * kern/powerpc/dl.c: Likewise.
3043 * kern/device.c: Likewise.
3044 * kern/dl.c: Likewise.
3045 * kern/sparc64/dl.c: Likewise.
3046 * kern/ieee1275/ieee1275.c: Likewise.
3047 * kern/term.c: Likewise.
3048 * kern/fs.c: Likewise.
3049 * kern/i386/dl.c: Likewise.
3050 * kern/i386/pc/startup.S: Likewise.
3051 * kern/i386/pc/init.c: Likewise.
3052 * kern/i386/pc/mmap.c: Likewise.
3053 * kern/i386/pc/lzo1x.S: Likewise.
3054 * kern/i386/ieee1275/init.c: Likewise.
3055 * kern/i386/realmode.S: Likewise.
3056 * kern/i386/tsc.c: Likewise.
3057 * kern/partition.c: Likewise.
3058 * kern/corecmd.c: Likewise.
3059 * kern/file.c: Likewise.
3060 * kern/efi/efi.c: Likewise.
3061 * kern/efi/init.c: Likewise.
3062 * kern/efi/mm.c: Likewise.
3063 * kern/main.c: Likewise.
3064 * kern/err.c: Likewise.
3065 * kern/env.c: Likewise.
3066 * kern/disk.c: Likewise.
3067 * kern/generic/millisleep.c: Likewise.
3068 * kern/generic/rtc_get_time_ms.c: Likewise.
3069 * kern/misc.c: Likewise.
3070 * kern/parser.c: Likewise.
3071 * genmk.rb: Likewise.
3072 * configure.ac: Likewise.
3073 * boot/i386/pc/diskboot.S: Likewise.
3074 * boot/i386/pc/pxeboot.S: Likewise.
3075 * boot/i386/pc/boot.S: Likewise.
3076 * boot/i386/pc/lnxboot.S: Likewise.
3077 * boot/i386/pc/cdboot.S: Likewise.
3078 * parttool/pcpart.c: Likewise.
3079 * video/readers/tga.c: Likewise.
3080 * video/video.c: Likewise.
3081 * video/bitmap.c: Likewise.
3082 * lib/envblk.c: Likewise.
3083 * lib/i386/setjmp.S: Likewise.
3084 * fs/xfs.c: Likewise.
3085 * fs/afs.c: Likewise.
3086 * fs/fat.c: Likewise.
3087 * fs/ntfs.c: Likewise.
3088 * fs/udf.c: Likewise.
3089 * fs/affs.c: Likewise.
3090 * fs/iso9660.c: Likewise.
3091 * fs/hfs.c: Likewise.
3092 * fs/fshelp.c: Likewise.
3093 * fs/ext2.c: Likewise.
3094 * fs/jfs.c: Likewise.
3095 * fs/reiserfs.c: Likewise.
3096 * fs/hfsplus.c: Likewise.
3097 * fs/minix.c: Likewise.
3098 * fs/cpio.c: Likewise.
3099 * fs/sfs.c: Likewise.
3100 * fs/ufs.c: Likewise.
3101 * efiemu/prepare.c: Likewise.
3102 * efiemu/loadcore_common.c: Likewise.
3103 * efiemu/runtime/efiemu.sh: Likewise.
3104 * efiemu/runtime/efiemu.S: Likewise.
3105 * efiemu/runtime/efiemu.c: Likewise.
3106 * efiemu/pnvram.c: Likewise.
3107 * efiemu/main.c: Likewise.
3108 * efiemu/i386/pc/cfgtables.c: Likewise.
3109 * efiemu/i386/loadcore64.c: Likewise.
3110 * efiemu/i386/loadcore32.c: Likewise.
3111 * efiemu/loadcore.c: Likewise.
3112 * efiemu/symbols.c: Likewise.
3113 * efiemu/mm.c: Likewise.
3114 * include/grub/autoefi.h: Likewise.
3115 * include/grub/datetime.h: Likewise.
3116 * include/grub/term.h: Likewise.
3117 * include/grub/hfs.h: Likewise.
3118 * include/grub/lvm.h: Likewise.
3119 * include/grub/i386/tsc.h: Likewise.
3120 * include/grub/i386/linux.h: Likewise.
3121 * include/grub/i386/xnu.h: Likewise.
3122 * include/grub/i386/efiemu.h: Likewise.
3123 * include/grub/i386/pc/biosdisk.h: Likewise.
3124 * include/grub/i386/pc/memory.h: Likewise.
3125 * include/grub/i386/pc/vbe.h: Likewise.
3126 * include/grub/parttool.h: Likewise.
3127 * include/grub/video.h: Likewise.
3128 * include/grub/memory.h: Likewise.
3129 * include/grub/fs.h: Likewise.
3130 * include/grub/partition.h: Likewise.
3131 * include/grub/xnu.h: Likewise.
3132 * include/grub/efi/api.h: Likewise.
3133 * include/grub/efi/pe32.h: Likewise.
3134 * include/grub/efi/memory.h: Likewise.
3135 * include/grub/multiboot.h: Likewise.
3136 * include/grub/usbdesc.h: Likewise.
3137 * include/grub/multiboot2.h: Likewise.
3138 * include/grub/acpi.h: Likewise.
3139 * include/grub/efiemu/efiemu.h: Likewise.
3140 * include/grub/disk.h: Likewise.
3141 * include/grub/ieee1275/ieee1275.h: Likewise.
3142 * include/grub/net.h: Likewise.
3143 * include/grub/machoload.h: Likewise.
3144 * include/grub/macho.h: Likewise.
3145 * include/multiboot.h: Likewise.
3146 * genmoddep.awk: Likewise.
3147 * normal/main.c: Likewise.
3148 * normal/menu_entry.c: Likewise.
3149 * normal/menu_viewer.c: Likewise.
3150 * normal/completion.c: Likewise.
3151 * normal/cmdline.c: Likewise.
3152 * normal/misc.c: Likewise.
3153 * normal/datetime.c: Likewise.
3154 * bus/usb/usbtrans.c: Likewise.
3155 * bus/usb/ohci.c: Likewise.
3156 * bus/usb/uhci.c: Likewise.
3157 * bus/usb/usb.c: Likewise.
3158 * mmap/efi/mmap.c: Likewise.
3159 * mmap/i386/pc/mmap_helper.S: Likewise.
3160 * mmap/i386/pc/mmap.c: Likewise.
3161 * mmap/i386/mmap.c: Likewise.
3162 * mmap/i386/uppermem.c: Likewise.
3163 * mmap/mmap.c: Likewise.
3164 * commands/acpi.c: Likewise.
3165 * commands/echo.c: Likewise.
3166 * commands/blocklist.c: Likewise.
3167 * commands/loadenv.c: Likewise.
3168 * commands/usbtest.c: Likewise.
3169 * commands/boot.c: Likewise.
3170 * commands/parttool.c: Likewise.
3171 * commands/search.c: Likewise.
3172 * commands/cat.c: Likewise.
3173 * commands/i386/pc/play.c: Likewise.
3174 * commands/i386/pc/drivemap.c: Likewise.
3175 * commands/i386/pc/vbeinfo.c: Likewise.
3176 * commands/i386/pc/acpi.c: Likewise.
3177 * commands/i386/pc/vbetest.c: Likewise.
3178 * commands/ls.c: Likewise.
3179 * commands/cmp.c: Likewise.
3180 * commands/test.c: Likewise.
3181 * commands/efi/acpi.c: Likewise.
3182 * commands/gptsync.c: Likewise.
3183 * commands/help.c: Likewise.
3184 * partmap/amiga.c: Likewise.
3185 * partmap/apple.c: Likewise.
3186 * partmap/acorn.c: Likewise.
3187 * partmap/pc.c: Likewise.
3188 * partmap/sun.c: Likewise.
3189 * partmap/gpt.c: Likewise.
3190 * script/sh/lexer.c: Likewise.
3191 * script/sh/function.c: Likewise.
3192 * font/font.c: Likewise.
3193 * font/font_cmd.c: Likewise.
3194 * loader/powerpc/ieee1275/linux.c: Likewise.
3195 * loader/efi/chainloader.c: Likewise.
3196 * loader/multiboot_loader.c: Likewise.
3197 * loader/macho.c: Likewise.
3198 * loader/i386/multiboot.c: Likewise.
3199 * loader/i386/linux.c: Likewise.
3200 * loader/i386/pc/linux.c: Likewise.
3201 * loader/i386/pc/multiboot2.c: Likewise.
3202 * loader/i386/pc/chainloader.c: Likewise.
3203 * loader/i386/pc/xnu.c: Likewise.
3204 * loader/i386/bsd_trampoline.S: Likewise.
3205 * loader/i386/efi/linux.c: Likewise.
3206 * loader/i386/multiboot_elfxx.c: Likewise.
3207 * loader/i386/bsd_helper.S: Likewise.
3208 * loader/i386/bsd.c: Likewise.
3209 * loader/i386/linux_trampoline.S: Likewise.
3210 * loader/i386/xnu_helper.S: Likewise.
3211 * loader/i386/xnu.c: Likewise.
3212 * loader/i386/bsd_pagetable.c: Likewise.
3213 * loader/i386/multiboot_helper.S: Likewise.
3214 * loader/xnu.c: Likewise.
3215 * loader/xnu_resume.c: Likewise.
3216 * io/gzio.c: Likewise.
3217 * term/efi/console.c: Likewise.
3218 * term/terminfo.c: Likewise.
3219 * term/ieee1275/ofconsole.c: Likewise.
3220 * term/i386/pc/serial.c: Likewise.
3221 * term/i386/pc/vesafb.c: Likewise.
3222 * term/i386/pc/vga.c: Likewise.
3223 * term/usb_keyboard.c: Likewise.
3224 * term/gfxterm.c: Likewise.
3225 * aclocal.m4: Likewise.
3226 * util/lvm.c: Likewise.
3227 * util/grub.d/30_os-prober.in: Likewise.
3228 * util/grub.d/10_hurd.in: Likewise.
3229 * util/console.c: Likewise.
3230 * util/grub-macho2img.c: Likewise.
3231 * util/grub-probe.c: Likewise.
3232 * util/hostfs.c: Likewise.
3233 * util/i386/pc/grub-mkimage.c: Likewise.
3234 * util/i386/pc/grub-setup.c: Likewise.
3235 * util/i386/efi/grub-mkimage.c: Likewise.
3236 * util/grub-mkconfig.in: Likewise.
3237 * util/raid.c: Likewise.
3238 * util/resolve.c: Likewise.
3239 * util/grub-mkdevicemap.c: Likewise.
3240 * util/grub-emu.c: Likewise.
3241 * util/getroot.c: Likewise.
3242 * util/hostdisk.c: Likewise.
3243 * util/usb.c: Likewise.
3244 * util/grub-editenv.c: Likewise.
3245 * util/misc.c: Likewise.
3246
d2d49665 32472009-06-10 Felix Zielcke <fzielcke@z-51.de>
3248
3249 * gendistlist.sh (EXTRA_DISTFILES): Add `genhandlerlist.sh' and
3250 `genparttoollist.sh'.
3251 (DISTDIRS): Add `efiemu', `mmap', `parttool' and `script'.
3252 Add `*.sh' to the list find searches for and change `mdate.sh'
3253 to `mdate-sh'.
3254
fe052e37 32552009-06-10 Pavel Roskin <proski@gnu.org>
3256
2763ac18 3257 * include/grub/multiboot2.h: Provide compatibility defines for
3258 multiboot2.h.
3259 * include/multiboot2.h: Include stdint.h only if needed, using
3260 angle brackets.
3261 * loader/i386/pc/multiboot2.c: Include multiboot2.h after
3262 grub/multiboot2.h.
3263 * loader/ieee1275/multiboot2.c: Likewise.
3264 * loader/multiboot2.c: Likewise.
3265 * loader/multiboot_loader.c: Likewise.
3266
437e6adc 3267 * configure.ac: Use -nostdlib when probing for the target. It
3268 should not be required to have libc for the target.
3269
06a6836c 3270 * configure.ac: Remove checks for __bswapsi2 and __bswapdi2,
3271 they fail without libc headers for the target.
3272 * include/grub/powerpc/libgcc.h: Use weak attribute for all
3273 exports.
3274 * include/grub/sparc64/libgcc.h: Likewise. Don't use
3275 preprocessor conditionals.
3276
fe052e37 3277 * conf/common.rmk: Compile tar.mod from tar.c, not cpio.c. The
3278 build system doesn't need to be aware of the tar.c internals.
3279
afd22553 32802009-06-09 Michel Hermier <michel.hermier@gmail.com>
87b8f28c 3281
afd22553 3282 * fs/i386/pc/pxe.c (grub_pxefs_read): Fix returned values.
8ec4a6d0 3283
6b787c4f 32842009-06-09 Robert Millan <rmh.grub@aybabtu.com>
3285
3286 * util/deviceiter.c (grub_util_iterate_devices): Increase number of
3287 disk limit to 26 for IDE, Virtio, Xen and SCSI.
3288
32892009-06-09 Felix Zielcke <fzielcke@z-51.de>
3290
3291 * util/i386/pc/grub-install.in: Change the error message if UUIDs
473d1e45 3292 aren't available if ata.mod gets used.
6b787c4f 3293
473d1e45 32942009-06-09 Oliver Henshaw <oliver.henshaw@gmail.com>
e23721e8 3295
473d1e45 3296 * bus/usb/ohci.c (grub_ohci_pci_iter): Link struct only after
e23721e8 3297 initialising controller.
473d1e45 3298 * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
e23721e8 3299
255a27d4 33002009-06-08 Felix Zielcke <fzielcke@z-51.de>
3301
3302 * util/i386/pc/grub-install.in: Add a parameter --disk-module
3303 to choose between ata and biosdisk module on i386-pc.
3304
473d1e45 33052009-06-08 Oliver Henshaw <oliver.henshaw@gmail.com>
69da8877 3306
d55842d8 3307 * bus/usb/ohci.c (grub_ohci_pci_iter): Define the Class,
3308 Subclass and Programming Interface fields in terms of the 3 byte
3309 Class Code register.
3310 * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
3311
fa5db0b1 3312 * bus/usb/ohci.c (grub_ohci_pci_iter): Check that programming
3313 interface is OHCI. Add grub_dprintf for symmetry with
3314 bus/usb/uhci.c.
3315 * bus/usb/uhci.c (grub_uhci_pci_iter): Check that programming
3316 interface is UHCI. Add interf variable for programming
3317 interface. Print interface with class/subclass.
3318
c0947beb 3319 * bus/usb/ohci.c: Set interf with correct field.
3320
69da8877 3321 * bus/usb/uhci.c: Remove unneeded doubled lines.
3322 * bus/usb/ohci.c: Likewise. Change interf to grub_uint32_t.
3323 Remove whitespace inside comment.
3324
9e172e30 33252009-06-08 Robert Millan <rmh.grub@aybabtu.com>
3326
3327 * loader/i386/linux.c (grub_cmd_linux): When processing `vga=', use
3328 as fallback an equivalent option without depth.
3329
de65ee2b 33302009-06-08 Vladimir Serbinenko <phcoder@gmail.com>
3331
3332 Not fail if unable to retrieve C/H/S on LBA disks
3333
473d1e45 3334 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): behave gracefully
de65ee2b 3335 if unable to retrieve C/H/S on LBA disks
3336
b57ea2c9 33372009-06-08 Pavel Roskin <proski@gnu.org>
3338
3339 * fs/hfs.c (grub_hfs_find_dir): Use union to avoid a warning
3340 about aliasing.
3341
af361263 33422009-06-08 Felix Zielcke <fzielcke@z-51.de>
3343
3344 * Makefile.in (uninstall): Remove all $lib_DATA files.
3345
4c9ec6b3 33462009-06-08 Vladimir Serbinenko <phcoder@gmail.com>
3347
3348 Bugfix: install on partitionless device
3349
3350 * util/hostdisk.c (grub_util_biosdisk_get_grub_dev): check if os_dev
3351 is a whole disk
3352
e76fc924 33532009-06-08 Felix Zielcke <fzielcke@z-51.de>
3354
3355 * Makefile.in (uninstall): Remove all $include_DATA files.
3356
ba5a0d05 33572009-06-08 Felix Zielcke <fzielcke@z-51.de>
3358
3359 * commands/true.c: New file. Implement the true and false commands.
3360 * conf/common.rmk.c (pkglib_MODULES): Add `true.mod'.
3361 (true_mod_SOURCES): New variable.
3362 (true_mod_CFLAGS): Likewise.
3363 (true_mod_LDFLAGS): Likewise.
3364
c8048e32 33652009-06-05 Colin D Bennett <colin@gibibit.com>
3366
3367 Optimized font character lookup using binary search instead of linear
3368 search. Fonts now are required to have the character index ordered by
3369 code point.
3370
3371 * font/font.c (load_font_index): Verify that fonts have ordered
3372 character indices.
3373 (find_glyph): Use binary search instead of linear search to find a
3374 character in a font.
3375
408305be 33762009-06-05 Michael Scherer <misc@mandriva.org>
3377
3378 * fs/hfsplus.c (grub_hfsplus_mount): Determine if the filesystem
3379 uses case sensitive btree.
3380 (grub_hfsplus_iterate_dir): Use GRUB_FSHELP_CASE_INSENSITIVE
3381 only for case insensitive filesystems.
3382
8ee1e0d9 33832009-06-05 Vladimir Serbinenko <phcoder@gmail.com>
3384
3385 * conf/i386-pc.rmk (efiemu_mod_CFLAGS): remove -Werror -Wall
3386 * conf/common.rmk (search_mod_CFLAGS): likewise
3387
a9966eb1 33882009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3389
473d1e45 3390 * kern/i386/pc/startup.S [APPLE_CC]: block of nops to
a9966eb1 3391 compensate a compiler bug
3392
9e7100fb 33932009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3394
473d1e45 3395 * include/grub/term.h (GRUB_TERM_BACKSPACE): explicitly define as 8
9e7100fb 3396 instead of '\b'
473d1e45 3397
ede21d71 33982009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3399
3400 Definitions for creating asm symbols with Apple's CC
3401
3402 * include/grub/symbol.h [APPLE_CC] (FUNCTION): new macro
3403 [APPLE_CC] (VARIABLE): likewise
3404
9dbf7653 34052009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3406
3407 Disable lnxboot.img when compiled
3408 with Apple's CC
3409
3410 * conf/i386-pc.rmk (pkglib_IMAGES): remove lnxboot.img
3411 pkglib_IMAGES [! TARGET_APPLE_CC] (pkglib_IMAGES): add lnxboot.img
3412 * boot/i386/pc/lnxboot.S [APPLE_CC]: define an #error
3413 [! APPLE_CC] (CODE_LENG): skip
3414 [! APPLE_CC] (setup_sects): likewise
3415 [! APPLE_CC]: skip filling
473d1e45 3416
e93cdc3d 34172009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3418
3419 Address in trampolines based on 32-bit registers when compiled
3420 with Apple's CC
3421
473d1e45 3422 * loader/i386/xnu_helper.S [APPLE_CC]: use 32-bit registers
e93cdc3d 3423 for addresses
3424 * loader/i386/linux_trampoline.S [APPLE_CC]: likewise
3425
6c688477 34262009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3427
3428 Avoid aliases when compiling with Apple's CC for PCBIOS machine
3429
3430 * kern/misc.c [APPLE_CC] (memcpy): new function
3431 [APPLE_CC] (memmove): likewise
3432 [APPLE_CC && !GRUB_UTIL] (grub_err_printf): likewise
473d1e45 3433 (memcpy): define alias conditionally on !APPLE_CC
6c688477 3434 (memset): likewise
3435 (abort): likewise
3436 * include/grub/misc.h (memove): don't define when both GRUB_UTIL and
3437 APPLE_CC are defined
3438 * include/grub/list.h [APPLE_CC] (grub_assert_fail): new function
3439 (grub_assert_fail): make prototype conditional
3440
e37ffc5c 34412009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3442
3443 Use grub-macho2img when compiling with Apple's CC for PCBIOS machine
3444
473d1e45 3445 * conf/common.rmk (bin_UTILITIES): add (on false on condition)
3446 grub-macho2img
e37ffc5c 3447 (CLEANFILES): add grub-macho2img
3448 (grub_macho2img_SOURCES): new variable
3449 * kern/i386/pc/startup.S (bss_start): new variable
3450 (bss_end): likewise
3451 * genmk.rb: use grub-macho2img for *.img when compiled with Apple's CC
3452 * util/grub-macho2img.c: new file
3453
cf00df31 34542009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3455
3456 Use objconv when compiling with Apple's CC
3457
3458 * conf/i386-pc.rmk (efiemu32.o): use OBJCONV if defined
3459 (efiemu64.o): likewise
3460 (efiemu64_c.o): omit -mcmodel=large and add -DAPPLE_CC=1
3461 when compiling with Apple's CC
3462 (efiemu64_s.o): likewise
3463 * configure.ac: check for objconv when compiling with Apple's CC
3464 * genmk.rb: use objconv for modules when compiled with Apple's CC
473d1e45 3465
d119a20c 34662009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3467
3468 Define segment as well as section when compiling with
3469 Apple's CC
3470
3471 * efiemu/runtime/efiemu.c (PHYSICAL_ATTRIBUTE): new definition
3472 (efiemu_set_virtual_address_map): declare with PHYSICAL_ATTRIBUTE
3473 (efiemu_convert_pointer): likewise
3474 (efiemu_set_virtual_address_map): likewise
3475 (efiemu_convert_pointer): likewise
3476 (efiemu_getcrc32): likewise
3477 (init_crc32_table): likewise
3478 (reflect): likewise
3479 * include/grub/dl.h (GRUB_MOD_NAME): define segment with Apple's CC
3480 (GRUB_MOD_DEP): likewise
473d1e45 3481
c8600122 34822009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3483
3484 Allow a compilation without -mcmodel=large
3485
3486 * kern/efi/mm.c (grub_efi_allocate_pages): don't allocate >4GiB
3487 when compiled without -mcmodel=large
473d1e45 3488 (filter_memory_map): remove memory post 4 GiB when compiled
c8600122 3489 without -mcmodel=large
473d1e45 3490 * configure.ac: fail gracefully and add -DMCMODEL_SMALL=1 to
c8600122 3491 TARGET_CFLAGS when -mcmodel=large isn't supported
473d1e45 3492
e8df1d4e 34932009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3494
3495 Remove nested functions in efiemu core
3496
3497 * efiemu/runtime/efiemu.c (reflect): make static instead of nested
473d1e45 3498
cc6c3ac1 34992009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3500
3501 Avoid clobbering %ebx/%rbx in inline assembly with Apple's CC
3502
3503 * efiemu/runtime/efiemu.c (write_cmos): use %cl instead of %bl as
3504 temporary storage
473d1e45 3505 * include/grub/i386/tsc.h (grub_get_tsc): restore %rbx/%ebx when
3506 using Apple's CC
cc6c3ac1 3507 (grub_cpu_is_tsc_supported): likewise
3508 * loader/i386/xnu.c (guessfsb): restore %rbx/%ebx in inline assembly
473d1e45 3509
3e325901 35102009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3511
3512 Absolute addressing through constant with Apple's cc
3513
3514 * kern/i386/pc/startup.S: Define necessary constants
3515 and address through it when using ABS with Apple's CC
3516 * boot/i386/pc/diskboot.S: likewise
3517 * boot/i386/pc/boot.S: likewise
3518 * boot/i386/pc/lnxboot.S: likewise
3519 * boot/i386/pc/cdboot.S: likewise
3520 * mmap/i386/pc/mmap_helper.S: likewise
3521 * commands/i386/pc/drivemap_int13h.S: likewise
3522
2b167a72 35232009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3524
3525 Check if compiler is apple cc
3526
3527 * Makefile.in (ASFLAGS): new variable
3528 (TARGET_ASFLAGS): likewise
3529 (TARGET_MODULE_FORMAT): likewise
3530 (TARGET_APPLE_CC): likewise
3531 (OBJCONV): likewise
3532 (TARGET_IMG_CFLAGS): likewise
3533 (TARGET_CPPFLAGS): add includedir
3534 * configure.ac: call grub_apple_cc and grub_apple_target_cc
3535 (TARGET_IMG_LDFLAGS): Add -Wl,-Ttext,. All users updated
3536 Check for linker script only if compiler isn't Apple's CC
3537 (TARGET_MODULE_FORMAT): set
3538 (TARGET_APPLE_CC): likewise
3539 (TARGET_ASFLAGS): likewise
3540 (ASFLAGS): likewise
3541 Check for objcopy only if compiler isn't Apple's CC
3542 Check for BSS symbol only if compiler isn't Apple's CC
3543 * genmk.rb: adapt nm options if we use Apple's utils
3544 * aclocal.m4 (grub_apple_cc): new test
3545 (grub_apple_target_cc): likewise
473d1e45 3546
fb14123e 35472009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3548
3549 Simplify sed expressions and improve awk
3550
3551 * Makefile.in (install-local): simplify sed expression
3552 * gencmdlist.sh: likewise
3553 * genmoddep.awk: avoid adding module as a dependency of itself
3554
5b889789 35552009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3556
3557 Add missing start symbols
3558
3559 * boot/i386/pc/boot.S: add start
fb14123e 3560 * boot/i386/pc/pxeboot.S: likewise
473d1e45 3561
fd2bf2e3 35622009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3563
3564 Fix wrong assumptions with grub-mkimage on EFI
473d1e45 3565
3566 * i386/efi/grub-mkimage.c (read_kernel_module): don't write prefix here
fd2bf2e3 3567 (relocate_addresses): consider both r_addend and value at offset
3568 (make_mods_section): zerofill modinfo and header
3569 (convert_elf): write prefix here
473d1e45 3570
5389763d 35712009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3572
3573 Use .asciz instead of .string
3574
3575 * i386/pc/diskboot.S: use .asciz instead of .string
3576 * i386/pc/boot.S: likewise
3577 * include/grub/dl.h (GRUB_MOD_DEP): likewise
3578 (GRUB_MOD_NAME): likewise
473d1e45 3579
3eb5ed4e 35802009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3581
3582 gfxpayload support
3583
3584 * commands/videotest.c (grub_cmd_videotest): use grub_video_set_mode
3585 * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_PURE_TEXT): new definition
3586 (grub_video_setup): remove
3587 (grub_video_set_mode): new prototype
3588 * loader/i386/linux.c (DEFAULT_VIDEO_MODE): new definition
3589 (vid_mode): remove
3590 (linux_vesafb_res): compile only on PCBIOS
3591 (grub_linux_boot): support gfxpayload
3592 * loader/i386/pc/xnu.c (video_hook): new function
3593 (grub_xnu_set_video): support gfxpayload
3594 * term/gfxterm.c (DEFAULT_VIDEO_WIDTH): removed
3595 (DEFAULT_VIDEO_HEIGHT): likewise
3596 (DEFAULT_VIDEO_FLAGS): likewise
3597 (DEFAULT_VIDEO_MODE): new definition
3598 (video_hook): new function
3599 (grub_gfxterm_init): use grub_video_set_mode
473d1e45 3600 * util/grub.d/30_os-prober.in: remove explicit modesetting before
3eb5ed4e 3601 loading xnu
3602 * video/video.c (grub_video_setup): removed
473d1e45 3603 (grub_video_set_mode): new function based on grub_gfxterm_init and
3eb5ed4e 3604 grub_video_setup
3605
4b0e1143 36062009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3607
3608 Avoid calling biosdisk in drivemap
3609
3610 * commands/i386/pc/drivemap.c (parse_biosdisk): remove
3611 (revparse_biosdisk): likewise
3612 (list_mappings): derive name from id directly
3613 (grub_cmd_drivemap): use tryparse_diskstring
473d1e45 3614
fda6cb98 36152009-06-04 Vladimir Serbinenko <phcoder@gmail.com>
3616
3617 Script fixes
3618
3619 * include/grub/script_sh.h (grub_script_cmdline): remove cmdline
3620 (grub_lexer_param): add tokenonhold
3621 (grub_script_create_cmdline): remove cmdline. All callers updated
3622 (grub_script_function_create): make functionname
3623 grub_script_arg. All callers updated
3624 (grub_script_execute_argument_to_string): new prototype
3625 * kern/parser.c (state_transitions): reorder
3626 (grub_parser_cmdline_state): fix a bug and make more compact
473d1e45 3627 * script/sh/execute.c (grub_script_execute_argument_to_string):
fda6cb98 3628 make global
3629 (grub_script_execute_cmdline): use new format
3630 * script/sh/function.c (grub_script_function_create): make functionname
3631 grub_script_arg. All callers updated
473d1e45 3632 * script/sh/lexer.c (grub_script_lexer_init): initialize tokenonhold
fda6cb98 3633 (grub_script_yylex): remove
3634 (grub_script_yylex2): renamed to ...
3635 (grub_script_yylex): ...renamed
3636 parse the expressions like a${b}c
3637 * script/sh/parser.y (GRUB_PARSER_TOKEN_ARG): new typed terminal
3638 (GRUB_PARSER_TOKEN_VAR): remove
3639 (GRUB_PARSER_TOKEN_NAME): likewise
3640 ("if"): declare as typeless
3641 ("while"): likewise
3642 ("function"): likewise
3643 ("else"): likewise
3644 ("then"): likewise
3645 ("fi"): likewise
3646 (text): remove
3647 (argument): likewise
3648 (script): accept empty scripts and make exit on error
3649 (arguments): use GRUB_PARSER_TOKEN_ARG
3650 (function): likewise
3651 (command): move error handling to script
3652 (menuentry): move grub_script_lexer_ref before
473d1e45 3653 * script/sh/script.c (grub_script_create_cmdline): remove cmdline
fda6cb98 3654 argument. All callers updated
3655
f4448a07 36562009-06-04 Robert Millan <rmh.grub@aybabtu.com>
3657
3658 Prevent GRUB from probing floppies during boot.
3659
3660 * conf/common.rmk (search_mod_CFLAGS): Use `-Werror -Wall'.
3661 * commands/search.c (options): Add --no-floppy.
3662 (search_fs, search_file, grub_cmd_search): Support --no-floppy.
3663 * util/grub-mkconfig_lib.in (prepare_grub_to_access_device): Use
3664 --no-floppy when searching for UUIDs.
3665
2bf5885a 36662009-06-04 Robert Millan <rmh.grub@aybabtu.com>
3667
3668 Simplify the code duplication in commands/search.c.
3669
3670 * commands/search.c (search_label, search_fs_uuid): Merge into ...
3671 (search_fs): ... this. Update all users.
3672
f6fd460a 36732009-06-03 Felix Zielcke <fzielcke@z-51.de>
3674
3675 * util/grub-mkconfig.in (update_grub_dir): Rename to grub_mkconfig_dir.
3676
cbb3c83e 36772009-05-28 Pavel Roskin <proski@gnu.org>
3678
57788cfd 3679 * Makefile.in: Don't use "cp -d", it doesn't work on FreeBSD.
3680 Remove the original symlink explicitly.
3681
cbb3c83e 3682 * fs/hfs.c (grub_hfs_find_dir): Skip sequences of slashes, not
3683 just one slash. That's how grub_fshelp_find_file() does it.
3684
cd0d5e30 36852009-05-26 Pavel Roskin <proski@gnu.org>
3686
f0f8bbe2 3687 * genmk.rb: Avoid shadowing variable `s', rename the outer `s'
3688 to `str'.
3689
cd0d5e30 3690 * util/getroot.c (grub_util_get_dev_abstraction): Mark os_dev as
3691 possibly unused.
3692
8c2cab51 36932009-05-25 Christian Franke <franke@computer.org>
3694
3695 * disk/ata.c (grub_ata_wait_not_busy): Add debug output of status
3696 register.
3697 (grub_atapi_identify): Add wait after drive select.
3698 (grub_ata_identify): Do more strict status register check before
3699 calling grub_atapi_identify (). Suppress error message if status
3700 register is 0x00 after command failure. Add status register
3701 check after PIO read to avoid bogus identify due to stuck DRQ.
3702 Thanks to Pavel Roskin for testing.
3703 (grub_device_initialize): Remove unsafe status register check.
3704 Thanks to 'phcoder' for problem report and patch.
3705 Prevent sign extension in debug message.
3706
230c0ad6 37072009-05-23 Colin D Bennett <colin@gibibit.com>
3708
3709 Cleaned up `include/grub/normal.h'. Grouped prototypes by
3710 definition file, and functions defined in `normal/menu.c' have had
3711 their prototypes moved to `include/grub/menu.h' for consistency.
3712
3713 * include/grub/menu.h (grub_menu_execute_callback): Added; moved
3714 from normal.h.
3715 (grub_menu_get_entry): Likewise.
3716 (grub_menu_get_timeout): Likewise.
3717 (grub_menu_set_timeout): Likewise.
3718 (grub_menu_execute_entry): Likewise.
3719 (grub_menu_execute_with_fallback): Likewise.
3720 (grub_menu_entry_run): Likewise.
3721
3722 * include/grub/normal.h: Re-ordered and grouped function
3723 prototypes by file that the function is defined in.
3724 (grub_menu_execute_callback): Removed; moved to menu.h.
3725 (grub_menu_get_entry): Likewise.
3726 (grub_menu_get_timeout): Likewise.
3727 (grub_menu_set_timeout): Likewise.
3728 (grub_menu_execute_entry): Likewise.
3729 (grub_menu_execute_with_fallback): Likewise.
3730 (grub_menu_entry_run): Likewise.
3731 (grub_menu_addentry): Renamed from this ...
3732 (grub_normal_add_menu_entry): ... to this.
3733
3734 * normal/main.c (grub_menu_addentry): Renamed from this ...
3735 (grub_normal_add_menu_entry): ... to this.
3736
3737 * script/sh/execute.c (grub_script_execute_menuentry): Update
3738 reference to renamed grub_menu_addentry function.
3739
861f03a5 37402009-05-23 Felix Zielcke <fzielcke@z-51.de>
3741
3742 * commands/i386/pc/drivemap.c (MODNAME): Remove. Update all users.
3743
96b1619a 37442009-05-22 Pavel Roskin <proski@gnu.org>
3745
bf6a5fb2 3746 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Remove.
3747 * configure.ac: Don't call grub_I386_CHECK_REGPARM_BUG. Define
3748 NESTED_FUNC_ATTR using AH_BOTTOM. Use regparm(1) only when
3749 compiling for the i386 targets, but not for the utilities.
3750
96b1619a 3751 * include/grub/i386/pc/kernel.h (grub_boot_drive): Change type
3752 to grub_uint8_t.
3753 (grub_root_drive): Likewise.
3754 * kern/i386/pc/startup.S (grub_boot_drive): Change size to byte,
3755 remove alignment.
3756 (grub_root_drive): Change size to byte.
3757 (grub_start_addr): Remove.
3758 (grub_end_addr): Likewise.
3759 (grub_apm_bios_info): Likewise.
3760
b729776b 37612009-05-21 Felix Zielcke <fzielcke@z-51.de>
3762
3763 * normal/i386: Remove.
3764 * normal/powerpc: Likewise.
3765 * normal/sparc64: Likewise.
3766 * normal/x86_64: Likewise.
3767
0a15ce80 37682009-05-19 Vladimir Serbinenko <phcoder@gmail.com>
3769
3770 * conf/x86_64-efi.rmk (linux_mod_ASFLAGS): Add missing variable
473d1e45 3771 * loader/i386/linux_trampoline.S: Fix indentation
0a15ce80 3772 * loader/i386/xnu_helper.S: Likewise
d6da58e6 3773
33db9015 37742009-05-18 Colin D Bennett <colin@gibibit.com>
3775
d6da58e6 3776 Display error messages when parsing a Lua statement fails.
3777 Previously, executing a syntactically invalid statement like
3778 ")foo" or "bar;" would silently fail.
33db9015 3779
3780 * script/lua/grub_main.c (handle_lua_error): New function.
d6da58e6 3781 (grub_lua_parse_line): Improved reporting of Lua parser and
3782 execution errors.
33db9015 3783
46422c89 37842009-05-17 Vladimir Serbinenko <phcoder@gmail.com>
3785
3786 Remove -Werror which causes build to fail on some systems
3787
3788 * conf/i386-pc.rmk (xnu_mod_CFLAGS): Remove -Werror -Wall
3789 * conf/i386-efi.rmk (xnu_mod_CFLAGS): Likewise
3790 * conf/x86_64-efi.rmk (xnu_mod_CFLAGS): Likewise
18f547ad 3791
22f53a96 37922009-05-17 Vladimir Serbinenko <phcoder@gmail.com>
3793
3794 trampoline for linux on 64-bit platform
3795
18f547ad 3796 * conf/x86_64-efi.rmk (linux_mod_SOURCES): added
3797 loader/i386/efi/linux_trampoline.S
3798 * include/grub/x86_64/efi/loader.h (grub_linux_real_boot): removed
473d1e45 3799 declaration
d6da58e6 3800 * kern/x86_64/efi/startup.S (grub_linux_real_boot): moved from
3801 here
22f53a96 3802 * loader/i386/linux_trampoline.S: moved here
d6da58e6 3803 * loader/i386/efi/linux.c (allocate_pages): reserve space for
3804 trampoline
22f53a96 3805 (jumpvector): removed
3806 (grub_linux_trampoline_start): new declaration
3807 (grub_linux_trampoline_end): likewise
3808 (grub_linux_boot): use trampoline when on 64-bit platform
3809 * loader/i386/linux.c: likewise
3810
cb5a0f40 38112009-05-16 Pavel Roskin <proski@gnu.org>
3812
3813 * script/lua/grub_lib.c (grub_lua_getenv): Make name and value
3814 const to avoid a warning.
3815 (grub_lua_setenv): Likewise.
3816 * script/lua/grub_main.c (grub_lua_parse_line): Use size_t for
3817 lmsg to fix a warning.
3818
334f2c28 38192009-05-16 Felix Zielcke <fzielcke@z-51.de>
3820
3821 * conf/i386.rmk (setjmp_mod_CFLAGS): Rename to ...
7dd10fce 3822 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
3823 * conf/x86_64-efi.rmk (setjmp_mod_CFLAGS): Rename to ...
3824 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
3825 * conf/powerpc-ieee1275.rmk (setjmp_mod_CFLAGS): Rename to ...
3826 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
3827 * conf/sparc64-ieee1275.rmk (setjmp_mod_CFLAGS): Rename to ...
3828 (setjmp_mod_ASFLAGS): ... this. Set to $(COMMON_ASFLAGS).
334f2c28 3829
59e5d3ec 38302009-05-16 Felix Zielcke <fzielcke@z-51.de>
3831
3832 * util/grub-mkconfig.in: Export GRUB_TERMINAL_INPUT.
3833
9d87a1ba 38342009-05-16 Bean <bean123ch@gmail.com>
3835
3836 * conf/common.rmk (pkglib_MODULES): Add lua.mod.
3837 (lua_mod_SOURCES): New variable.
3838 (lua_mod_CFLAGS): Likewise.
3839 (lua_mod_LDFLAGS): Likewise.
3840
3841 * conf/i386.rmk (pkglib_MODULES): Add setjmp.mod.
3842 (setjmp_mod_SOURCES): New variable.
3843 (setjmp_mod_CFLAGS): Likewise.
3844 (setjmp_LDFLAGS): Likewise.
3845
3846 * conf/x86_64-efi.rmk (pkglib_MODULES): Add setjmp.mod.
3847 (setjmp_mod_SOURCES): New variable.
3848 (setjmp_mod_CFLAGS): Likewise.
3849 (setjmp_LDFLAGS): Likewise.
3850
3851 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add setjmp.mod.
3852 (setjmp_mod_SOURCES): New variable.
3853 (setjmp_mod_CFLAGS): Likewise.
3854 (setjmp_LDFLAGS): Likewise.
3855
3856 * conf/sparc64-ieee1275.rmk (pkglib_MODULES): Add setjmp.mod.
3857 (setjmp_mod_SOURCES): New variable.
3858 (setjmp_mod_CFLAGS): Likewise.
3859 (setjmp_LDFLAGS): Likewise.
3860
3861 * normal/i386/setjmp.S: Moved from here ...
3862 * lib/i386/setjmp.S: ... Moved here
3863 * normal/x86_64/setjmp.S: Moved from here ...
3864 * lib/x86_64/setjmp.S: ... Moved here
3865 * normal/powerpc/setjmp.S: Moved from here ...
3866 * lib/powerpc/setjmp.S: ... Moved here
3867 * normal/sparc64/setjmp.S: Moved from here ...
3868 * lib/sparc64/setjmp.S: ... Moved here
3869
3870 * include/grub/i386/setjmp.h (grub_setjmp): Don't use attribute
3871 returns_twice in mingw.
3872
3873 * script/lua/grub_lib.c: New file.
3874 * script/lua/grub_lib.h: Likewise.
3875 * script/lua/grub_lua.h: Likewise.
3876 * script/lua/grub_main.c: Likewise.
3877 * script/lua/lapi.c: Likewise.
3878 * script/lua/lapi.h: Likewise.
3879 * script/lua/lauxlib.c: Likewise.
3880 * script/lua/lauxlib.h: Likewise.
3881 * script/lua/lbaselib.c: Likewise.
3882 * script/lua/lcode.c: Likewise.
3883 * script/lua/lcode.h: Likewise.
3884 * script/lua/ldblib.c: Likewise.
3885 * script/lua/ldebug.c: Likewise.
3886 * script/lua/ldebug.h: Likewise.
3887 * script/lua/ldo.c: Likewise.
3888 * script/lua/ldo.h: Likewise.
3889 * script/lua/ldump.c: Likewise.
3890 * script/lua/lfunc.c: Likewise.
3891 * script/lua/lfunc.h: Likewise.
3892 * script/lua/lgc.c: Likewise.
3893 * script/lua/lgc.h: Likewise.
3894 * script/lua/linit.c: Likewise.
3895 * script/lua/liolib.c: Likewise.
3896 * script/lua/llex.c: Likewise.
3897 * script/lua/llex.h: Likewise.
3898 * script/lua/llimits.h: Likewise.
3899 * script/lua/lmathlib.c: Likewise.
3900 * script/lua/lmem.c: Likewise.
3901 * script/lua/lmem.h: Likewise.
3902 * script/lua/loadlib.c: Likewise.
3903 * script/lua/lobject.c: Likewise.
3904 * script/lua/lobject.h: Likewise.
3905 * script/lua/lopcodes.c: Likewise.
3906 * script/lua/lopcodes.h: Likewise.
3907 * script/lua/loslib.c: Likewise.
3908 * script/lua/lparser.c: Likewise.
3909 * script/lua/lparser.h: Likewise.
3910 * script/lua/lstate.c: Likewise.
3911 * script/lua/lstate.h: Likewise.
3912 * script/lua/lstring.c: Likewise.
3913 * script/lua/lstring.h: Likewise.
3914 * script/lua/lstrlib.c: Likewise.
3915 * script/lua/ltable.c: Likewise.
3916 * script/lua/ltable.h: Likewise.
3917 * script/lua/ltablib.c: Likewise.
3918 * script/lua/ltm.c: Likewise.
3919 * script/lua/ltm.h: Likewise.
3920 * script/lua/lua.h: Likewise.
3921 * script/lua/luaconf.h: Likewise.
3922 * script/lua/lualib.h: Likewise.
3923 * script/lua/lundump.c: Likewise.
3924 * script/lua/lundump.h: Likewise.
3925 * script/lua/lvm.c: Likewise.
3926 * script/lua/lvm.h: Likewise.
3927 * script/lua/lzio.c: Likewise.
3928 * script/lua/lzio.h: Likewise.
3929
5e898c9d 39302009-05-16 Bean <bean123ch@gmail.com>
3931
3932 * include/grub/kernel.h (grub_module_header_types): Add type
3933 OBJ_TYPE_CONFIG.
3934
3935 * kern/main.c (grub_load_config): New function.
3936 (grub_main): Call grub_load_config to read boot config.
3937
3938 * grub-mkimage (generate_image): New parameter config_path.
3939 (options): New option --config.
3940 (main): Parse --config option, and pass it to generate_image.
3941
cf353a47 39422009-05-14 Christian Franke <franke@computer.org>
3943
3944 * commands/i386/pc/drivemap_int13h.S: Add missing EXT_C for symbols.
3945 This fixes build on Cygwin.
3946
3834887f 39472009-05-14 Pavel Roskin <proski@gnu.org>
3948
3949 * commands/i386/pc/drivemap_int13h.S: Eliminate unconditional
3950 jump. This saves two bytes, so the typical case of 2 swapped
3951 drives would fit 32 bytes.
3952
8090fc01 39532009-05-13 Pavel Roskin <proski@gnu.org>
3954
ac963883 3955 * loader/i386/multiboot.c (grub_multiboot): Cast mmap_addr to
3956 grub_uint32_t to avoid a warning.
3957
8090fc01 3958 * loader/i386/linux.c (allocate_pages): When assigning
3959 real_mode_mem, cast through grub_size_t to fix a warning. The
3960 code already makes sure that the value would fit a pointer.
3961 (grub_linux_setup_video): Cast render_target->data to
3962 grub_size_t to fix a warning.
3963
18f547ad 39642009-05-13 Javier Martín <lordhabbit@gmail.com>
4246b8a9 3965
3966 * commands/i386/pc/drivemap.c: New file - implement drivemap
3967 command.
3968 * commands/i386/pc/drivemap_int13h.S: New file - int13 handler.
3969 * conf/i386-pc.rmk: Add drivemap.c and drivemap_int13h.S.
3970
6f6a8b28 39712009-05-13 Pavel Roskin <proski@gnu.org>
3972
3973 * util/i386/pc/grub-setup.c (setup): Remove unused variable
3974 embedding_area_exists.
3975
15fbf4c4 39762009-05-13 Robert Millan <rmh.grub@aybabtu.com>
3977
3978 * util/i386/pc/grub-setup.c (setup): Restructure code flow to make
3979 it easier to understand / work with.
59978c8a 3980 Improve warning messages for cases where there's no embedding area,
3981 or when it is too small (or core.img too large).
15fbf4c4 3982
238e871f 39832009-05-13 Pavel Roskin <proski@gnu.org>
3984
0ab3a9a4 3985 * loader/i386/pc/multiboot2.c: Add necessary includes for
3986 grub_multiboot2_real_boot().
3987
a2c8c5f8 3988 * fs/iso9660.c (grub_iso9660_iterate_dir): The file mode in the
3989 PX record is always little-endian. We only need the lower 2
3990 bytes of the mode.
3991
faec96af 3992 * fs/cpio.c: Use the same name "struct head" for tar and cpio to
3993 facilitate code reuse.
3994 (grub_cpio_mount): Use "struct head", not a char buffer. This
3995 fixes a warning reported by gcc 4.4.
3996
238e871f 3997 * kernel/disk.c (grub_disk_read): Use void pointer for the
3998 buffer.
3999 (grub_disk_write): Use const void pointer for the buffer.
4000 Adjust all callers. Remove unnecessary casts.
4001
901d2f0c 40022009-05-10 Robert Millan <rmh.grub@aybabtu.com>
4003
4004 * util/i386/pc/grub-install.in: Update copyright year.
4005
18f547ad 40062009-05-09 Vladimir Serbinenko <phcoder@gmail.com>
2eac4c16 4007
4008 gptsync
4009
4010 * commands/gptsync.c: new file
4011 * conf/common.rmk (pkglib_MODULES): add gptsync.mod
4012 (gptsync_mod_SOURCES): new variable
4013 (gptsync_mod_CFLAGS): likewise
4014 (gptsync_mod_LDFLAGS): likewise
18f547ad 4015 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_NTFS):
2eac4c16 4016 new definition
4017 (GRUB_PC_PARTITION_TYPE_HFS): likewise
4018 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add commands/gptsync.c
4019 * conf/i386-ieee1275.rmk: likewise
4020 * conf/i386-pc.rmk: likewise
4021 * conf/powerpc-ieee1275.rmk: likewise
4022
b4ba690a 40232009-05-09 Vladimir Serbinenko <phcoder@gmail.com>
4024
4025 Fixed grub-emu
4026
4027 * kern/dl.c (grub_dl_ref): omit when compiling grub-emu
4028 (grub_dl_ref): likewise
4029
317e1a44 40302009-05-08 Robert Millan <rmh.grub@aybabtu.com>
4031
4032 * util/i386/pc/grub-setup.c (setup): Factorize find_usable_region(),
4033 split in two functions (one for msdos and one for gpt).
4034
041b8094 40352009-05-08 Pavel Roskin <proski@gnu.org>
4036
752473c2 4037 * disk/raid.c (grub_raid_block_xor): Make buf2 constant, it's
4038 not modified.
4039
041b8094 4040 * disk/raid6_recover.c (grub_raid6_recover): Fix warnings about
4041 uninitialized err[0] and err[1]. Rename them to bad1 and bad2.
4042 Initialize them with -1. Add sanity check for bad1. Eliminate
4043 nerr variable.
4044
172800ce 40452009-05-08 David S. Miller <davem@davemloft.net>
4046
4047 * util/sparc64/ieee1275/grub-ofpathname.c (main): Set progname.
4048
29aa5e81 40492009-05-06 Robert Millan <rmh.grub@aybabtu.com>
4050
4051 * util/i386/pc/grub-setup.c (setup): Fix check for embed region
473d1e45 4052 existence.
29aa5e81 4053
96613b62 40542009-05-05 Felix Zielcke <fzielcke@z-51.de>
4055
4056 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
1905c57b 4057 `kern/rescue_reader.c', `kern/rescue_parser.c' and `normal/autofs.c'.
96613b62 4058
eef73c8a 40592009-05-05 David S. Miller <davem@davemloft.net>
4060
4061 * util/sparc64/ieee1275/grub-install.in: Fix sed arg quoting.
4062
119494b5 40632009-05-05 Pavel Roskin <proski@gnu.org>
4064
4065 * include/grub/dl.h [GRUB_UTIL]: Provide inline implementations
4066 of grub_dl_ref() and grub_dl_unref().
4067 * commands/parttool.c: Remove preprocessor conditionals around
4068 grub_dl_ref() and grub_dl_unref().
4069 * fs/affs.c: Likewise.
4070 * fs/afs.c: Likewise.
4071 * fs/cpio.c: Likewise.
4072 * fs/ext2.c: Likewise.
4073 * fs/fat.c: Likewise.
4074 * fs/hfs.c: Likewise.
4075 * fs/hfsplus.c: Likewise.
4076 * fs/iso9660.c: Likewise.
4077 * fs/jfs.c: Likewise.
4078 * fs/minix.c: Likewise.
4079 * fs/ntfs.c: Likewise.
4080 * fs/reiserfs.c: Likewise.
4081 * fs/sfs.c: Likewise.
4082 * fs/udf.c: Likewise.
4083 * fs/ufs.c: Likewise.
4084 * fs/xfs.c: Likewise.
4085 * include/grub/dl.h: Likewise.
4086 * loader/xnu.c: Likewise.
4087
de5fd76e 40882009-05-04 Pavel Roskin <proski@gnu.org>
4089
4090 * commands/acpi.c: Remove unused variable my_mod.
4091 * partmap/amiga.c: Likewise.
4092 * partmap/apple.c: Likewise.
4093 * partmap/gpt.c: Likewise.
4094 * partmap/pc.c: Likewise.
4095 * partmap/sun.c: Likewise.
4096 * term/gfxterm.c: Likewise.
4097 * term/i386/pc/vesafb.c: Likewise.
4098 * term/i386/pc/vga.c: Likewise.
4099
983598ad 41002009-05-04 David S. Miller <davem@davemloft.net>
4101
4102 * kern/ieee1275/openfw.c (grub_children_iterate): Fix string
4103 pointer args to grub_ieee1275_get_property().
4104
8aadec43 4105 * conf/sparc64-ieee1275.rmk: Fix build due to missing '\'.
4106
9554b15e 4107 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Bypass cdrom
4108 devices, and do not traverse down under controller nodes.
4109
67e23c90 4110 * disk/ieee1275/ofdisk.c (compute_dev_path): New.
4111 (grub_ofdisk_open): Use it to un-escape "," characters.
4112 * kern/disk.c (find_part_sep): New.
4113 (grub_disk_open): Use it to find the first non-escaped ','
4114 character in the disk name.
4115 * util/ieee1275/devicemap.c (escape_of_path): New.
4116 (grub_util_emit_devicemap_entry): Use it.
4117 * util/sparc64/ieee1275/grub-install.in: Update script to
4118 strip partition specifiers properly by not triggering on
4119 '\' escaped ',' characters.
4120
74bfdd2f 41212009-05-04 Robert Millan <rmh.grub@aybabtu.com>
4122
4123 * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START): Set
4124 to 0x300.
4125 * loader/i386/linux.c (vga_modes, linux_vesafb_res): Add a few
4126 resolutions.
4127 (linux_vesafb_modes): Add a lot of additional modes to the list (based
4128 on documentation from Wikipedia).
4129
4241d2b1 41302009-05-04 Pavel Roskin <proski@gnu.org>
4131
4132 * disk/ata.c: Spelling fixes.
4133 * disk/raid.c: Likewise.
4134 * disk/usbms.c: Likewise.
4135 * disk/dmraid_nvidia.c: Likewise.
4136 * kern/ieee1275/openfw.c: Likewise.
4137 * kern/ieee1275/init.c: Likewise.
4138 * kern/ieee1275/cmain.c: Likewise.
4139 * boot/i386/pc/cdboot.S: Likewise.
4140 * video/readers/png.c: Likewise.
4141 * video/i386/pc/vbe.c: Likewise.
4142 * fs/udf.c: Likewise.
4143 * fs/hfs.c: Likewise.
4144 * fs/reiserfs.c: Likewise.
4145 * efiemu/runtime/efiemu.c: Likewise.
4146 * efiemu/main.c: Likewise.
4147 * efiemu/mm.c: Likewise.
4148 * include/grub/elf.h: Likewise.
4149 * include/grub/xnu.h: Likewise.
4150 * include/grub/usbdesc.h: Likewise.
4151 * include/grub/usb.h: Likewise.
4152 * include/grub/script_sh.h: Likewise.
4153 * include/grub/lib/LzmaEnc.h: Likewise.
4154 * include/grub/efiemu/efiemu.h: Likewise.
4155 * include/grub/command.h: Likewise.
4156 * normal/menu.c: Likewise.
4157 * normal/main.c: Likewise.
4158 * normal/datetime.c: Likewise.
4159 * bus/usb/uhci.c: Likewise.
4160 * mmap/i386/uppermem.c: Likewise.
4161 * mmap/mmap.c: Likewise.
4162 * commands/acpi.c: Likewise.
4163 * commands/test.c: Likewise.
4164 * partmap/apple.c: Likewise.
4165 * font/font.c: Likewise.
4166 * loader/sparc64/ieee1275/linux.c: Likewise.
4167 * loader/macho.c: Likewise.
4168 * loader/i386/bsd_trampoline.S: Likewise.
4169 * loader/i386/bsd.c: Likewise.
4170 * loader/xnu.c: Likewise.
4171 * term/i386/pc/vesafb.c: Likewise.
4172 * term/usb_keyboard.c: Likewise.
4173 * util/resolve.c: Likewise.
4174 * util/getroot.c: Likewise.
4175
0cfc0083 41762009-05-04 Felix Zielcke <fzielcke@z-51.de>
4177
4178 * conf/i386-pc.rmk (libpkg_DATA): Rename to pkglib_DATA.
4179
7c1d00cd 41802009-05-04 Robert Millan <rmh.grub@aybabtu.com>
4181
4182 * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (grub_cmd_linux): Fix
4183 build error.
4184
b01f0548 41852009-05-04 Robert Millan <rmh.grub@aybabtu.com>
4186
4187 * loader/i386/linux.c (grub_cmd_linux): Make "vga=" compatibility
4188 parameter only available on BIOS.
4189
ecc3eb22 41902009-05-04 Vladimir Serbinenko <phcoder@gmail.com>
4191
4192 Removed wrong semicolon in declaration
4193
4194 * grub/misc.h (grub_dprintf): remove semicolon
4195
112972a9 41962009-05-04 Robert Millan <rmh.grub@aybabtu.com>
4197
4198 * loader/i386/linux.c (GRUB_ASSUME_LINUX_HAS_FB_SUPPORT): New macro.
4199 (grub_linux_boot): Don't check for `linux_vesafb_modes' bounds (this
4200 is done by grub_cmd_linux() now).
4201 [! GRUB_ASSUME_LINUX_HAS_FB_SUPPORT]: If "vga=" parameter wasn't set,
4202 restore video to text mode.
4203 (grub_cmd_linux): Default `vid_mode' initialization to 0, which
4204 indicates lack of "vga=" parameter. "vga=0" is mapped to
4205 `GRUB_LINUX_VID_MODE_NORMAL'.
4206
afd5c115 42072009-05-04 Felix Zielcke <fzielcke@z-51.de>
4208
4209 * conf/i386-efi.rmk (grub_emu_SOURCES): Remove `normal/execute.c',
4210 `normal/lexer.c', `kern/rescue.c', `normal/function.c', `normal/misc.c'
4211 and `normal/script.c'. Add `kern/rescue_reader.c',
18f547ad 4212 `kern/rescue_parser.c', `script/sh/main.c', `script/sh/execute.c',
afd5c115 4213 `script/sh/function.c', `script/sh/lexer.c', `script/sh/script.c' and
4214 `grub_script.tab.c'.
4215
4216 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4217 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
4218 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4219 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
4220 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4221
faa517ce 4222 * Makefile.in: Remove duplicated 2008 in Copyright line.
4223
ae0c0bdc 42242009-05-04 Robert Millan <rmh.grub@aybabtu.com>
4225
473d1e45 4226 * util/misc.c (grub_util_warn): New function. Emits a warning
ae0c0bdc 4227 unconditionally.
4228 * include/grub/util/misc.h (grub_util_warn): New declaration.
4229
4230 * util/i386/pc/grub-install.in: Understand --force and pass it down
4231 to grub-setup.
4232
4233 * util/i386/pc/grub-setup.c (main): Understand --force and pass it
4234 down to setup().
4235 (setup): Improve error messages and add warnings when requested to
4236 install in odd layouts. Refuse to install using blocklists unless
4237 --force was set.
4238
18f547ad 42392009-05-04 martin f. krafft <madduck@madduck.net>
c149b500 4240
4241 * disk/raid.c (grub_raid_scan_device): Improve debug message.
4242
6d260daa 42432009-05-04 Vladimir Serbinenko <phcoder@gmail.com>
4244
4245 Updated copyright year
4246
4247 * fs/hfsplus.c: updated copyright year
18f547ad 4248
69f853f8 42492009-05-04 Vladimir Serbinenko <phcoder@gmail.com>
4250
4251 HFS+ UUID
4252
18f547ad 4253 * fs/hfsplus.c (grub_hfsplus_volheader): added num_serial field
69f853f8 4254 in the space previously used by unused3
4255 (grub_hfsplus_uuid): new function
4256 (grub_hfsplus_fs): added uuid field
4257
4c402e73 42582009-05-03 Pavel Roskin <proski@gnu.org>
4259
4260 * disk/ata.c: Don't cast mod to void in GRUB_MOD_INIT to
4261 suppress warnings. It's no longer needed.
4262 * disk/host.c: Likewise.
4263 * disk/ata_pthru.c: Likewise.
4264 * disk/loopback.c: Likewise.
4265 * hook/datehook.c: Likewise.
4266 * parttool/pcpart.c: Likewise.
4267 * fs/i386/pc/pxe.c: Likewise.
4268 * fs/ntfscomp.c: Likewise.
4269 * efiemu/main.c: Likewise.
4270 * mmap/mmap.c: Likewise.
4271 * commands/crc.c: Likewise.
4272 * commands/hexdump.c: Likewise.
4273 * commands/hdparm.c: Likewise.
4274 * commands/acpi.c: Likewise.
4275 * commands/echo.c: Likewise.
4276 * commands/minicmd.c: Likewise.
4277 * commands/blocklist.c: Likewise.
4278 * commands/memrw.c: Likewise.
4279 * commands/loadenv.c: Likewise.
4280 * commands/usbtest.c: Likewise.
4281 * commands/lsmmap.c: Likewise.
4282 * commands/boot.c: Likewise.
4283 * commands/parttool.c: Likewise.
4284 * commands/configfile.c: Likewise.
4285 * commands/search.c: Likewise.
4286 * commands/ieee1275/suspend.c: Likewise.
4287 * commands/cat.c: Likewise.
4288 * commands/i386/pc/pxecmd.c: Likewise.
4289 * commands/i386/pc/play.c: Likewise.
4290 * commands/i386/pc/halt.c: Likewise.
4291 * commands/i386/pc/vbeinfo.c: Likewise.
4292 * commands/i386/pc/vbetest.c: Likewise.
4293 * commands/lspci.c: Likewise.
4294 * commands/date.c: Likewise.
4295 * commands/handler.c: Likewise.
4296 * commands/ls.c: Likewise.
4297 * commands/test.c: Likewise.
4298 * commands/cmp.c: Likewise.
4299 * commands/efi/loadbios.c: Likewise.
4300 * commands/efi/fixvideo.c: Likewise.
4301 * commands/halt.c: Likewise.
4302 * commands/help.c: Likewise.
4303 * commands/reboot.c: Likewise.
4304 * hello/hello.c: Likewise.
4305 * script/sh/main.c: Likewise.
4306 * loader/xnu.c: Likewise.
4307 * term/terminfo.c: Likewise.
4308 * term/i386/pc/serial.c: Likewise.
4309 * term/usb_keyboard.c: Likewise.
4310
515b5079 43112009-05-03 David S. Miller <davem@davemloft.net>
4312
4313 * normal/menu.c: Include grub/parser.h
4314
dfc31a22 43152009-05-03 Pavel Roskin <proski@gnu.org>
4316
2fee74f1 4317 * mmap/efi/mmap.c (grub_mmap_malign_and_register): Return void*,
4318 not char*.
4319 * mmap/i386/mmap.c (grub_mmap_malign_and_register): Likewise.
4320 Suggested by Javier Martín <lordhabbit@gmail.com>
4321
dfc31a22 4322 * util/i386/pc/grub-mkrescue.in: Allow for the case when
4323 efiemu??.o doesn't exist.
4324 * util/i386/pc/grub-install.in: Likewise. Use "cp -f" for
4325 copying.
4326
18f547ad 43272009-05-03 Bean <bean123ch@gmail.com> Vladimir Serbinenko <phcoder@gmail.com>
cef17233 4328
4329 FreeBSD 64-bit support
4330
18f547ad 4331 * conf/i386-pc.rmk (bsd_mod_SOURCES): add loader/i386/bsd_helper.S
cef17233 4332 and loader/i386/bsd_trampoline.S
4333 (bsd_mod_ASFLAGS): new variable
4334 * include/grub/i386/bsd.h (FREEBSD_MODINFOMD_SMAP): new definition
4335 (FREEBSD_MODTYPE_KERNEL64): likewise
4336 (grub_bsd64_trampoline_start): likewise
4337 (grub_bsd64_trampoline_end): likewise
4338 (grub_bsd64_trampoline_selfjump): likewise
4339 (grub_bsd64_trampoline_gdt): likewise
4340 * include/grub/i386/loader.h (grub_unix_real_boot): moved from here ...
4341 * include/grub/i386/bsd.h (grub_unix_real_boot): ... moved here
4342 * kern/i386/loader.S (grub_unix_real_boot): moved from here ...
4343 * loader/i386/bsd_helper.S (grub_unix_real_boot): moved here
18f547ad 4344 * include/grub/gpt_partition.h (grub_gpt_partentry): Corrected the type
cef17233 4345 of "attrib" member
4346 * loader/i386/bsd_pagetable.c: new file
4347 * loader/i386/bsd_trampoline.S: likewise
4348 * loader/i386/bsd.c (ALIGN_QWORD): new macro
4349 (ALIGN_VAR): likewise
4350 (entry_hi): new variable
4351 (kern_end_mdofs): likewise
4352 (is_64bit): likewise
4353 (grub_freebsd_add_meta): use ALIGN_VAR
4354 (grub_e820_mmap): new declaration
4355 (grub_freebsd_add_mmap): new function
4356 (grub_freebsd_add_meta_module): support 64 bit kernels
4357 (grub_freebsd_list_modules): use ALIGN_VAR
4358 (gdt_descriptor): new declaration
4359 (grub_freebsd_boot): support 64 bit kernels
4360 (grub_bsd_elf64_hook): new function
4361 (grub_bsd_load_elf): support elf64
4362
038c5720 43632009-05-03 Bean <bean123ch@gmail.com>
4364
4365 * script/sh/execute.c (grub_script_execute_cmdif): Reset grub_errno
4366 after we get the result of if statement.
4367
fc45fb58 43682009-05-03 Bean <bean123ch@gmail.com>
4369
4370 * Makefile.in (enable_efiemu): New variable.
4371
4372 * conf/i386-pc.rmk: Only compile efiemu runtimes when enable_efiemu is
4373 set.
4374 (efiemu32.o): Use macro $< for source file, add $(srcdir) to include
4375 path.
4376 (efi64_c.o): Use macro $< for source file, add $(srcdir) to include
4377 path, add -mno-red-zone option.
4378 (efiemu64_s.o): Likewise.
4379 (efiemu64.o): Use macro $^ for source file.
4380
4381 * configure.ac (--enable-efiemu): New option.
4382
bbee0f2b 43832009-05-03 Vladimir Serbinenko <phcoder@gmail.com>
4384
4385 xnu support
4386
4387 * conf/i386-efi.rmk (kernel_mod_HEADERS): added i386/pit.h
4388 (pkglib_MODULES): add xnu.mod
4389 (xnu_mod_SOURCES): new variable
4390 (xnu_mod_CFLAGS): likewise
4391 (xnu_mod_LDFLAGS): likewise
4392 (xnu_mod_ASFLAGS): likewise
4393 * conf/i386-pc.rmk: likewise
4394 * conf/x86_64-efi.rmk: likewise
7dd4a573 4395 * include/grub/efi/efi.h (grub_efi_finish_boot_services):
bbee0f2b 4396 new declaration
4397 * include/grub/i386/macho.h: new file
4398 * include/grub/i386/xnu.h: likewise
4399 * include/grub/macho.h: likewise
4400 * include/grub/machoload.h: likewise
4401 * include/grub/x86_64/macho.h: likewise
4402 * include/grub/x86_64/xnu.h: likewise
4403 * include/grub/xnu.h: likewise
4404 * kern/efi/efi.c (grub_efi_finish_boot_services): new function
4405 * kern/efi/mm.c (MAX_HEAP_SIZE): increase
4406 * loader/i386/efi/xnu.c: new file
4407 * loader/i386/pc/xnu.c: likewise
4408 * loader/i386/xnu.c: likewise
4409 * loader/i386/xnu_helper.S: likewise
4410 * loader/macho.c: likewise
4411 * loader/xnu.c: likewise
4412 * loader/xnu_resume.c: likewise
4413 * util/grub-dumpdevtree: likewise
4414 * include/grub/i386/pit.h: include grub/err.h
4415 (grub_pit_wait): export
4416 * util/grub.d/30_os-prober.in: support Darwin/Mac OS X
7dd4a573 4417
5caf964d 44182009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
4419
4420 Efiemu
7dd4a573 4421
5caf964d 4422 * conf/i386-pc.rmk: new modules efiemu, efiemu_acpi, efiemu_pnvram,
7dd4a573 4423 _linux_efi, linux_efi.
4424 new files in grub-emu
5caf964d 4425 new targets efiemu32.o and efiemu64.o
4426 * loader/linux_normal_efiemu.c: likewise
4427 * loader/i386/efi/linux.c: added preliminary efiemu support
7dd4a573 4428 * util/i386/pc/grub-install.in: add efiemu??.o to the list of
5caf964d 4429 files to copy
4430 * include/grub/autoefi.h: new file
7dd4a573 4431 * include/grub/i386/efiemu.h: likewise
5caf964d 4432 * include/grub/i386/pc/efiemu.h: likewise
4433 * include/grub/efi/api.h: add LL suffix when necessary
4434 new definitions relating to tables
4435 * include/grub/efiemu/efiemu.h: new file
4436 * include/grub/efiemu/runtime.h: likewise
4437 * efiemu/prepare.c: likewise
4438 * efiemu/loadcore_common.c: likewise
4439 * efiemu/loadcore64.c: likewise
4440 * efiemu/runtime/efiemu.sh: likewise
4441 * efiemu/runtime/efiemu.S: likewise
4442 * efiemu/runtime/efiemu.c: likewise
4443 * efiemu/runtime/config.h: likewise
4444 * efiemu/prepare32.c: likewise
4445 * efiemu/main.c: likewise
4446 * efiemu/modules/pnvram.c: likewise
4447 * efiemu/modules/i386: likewise
4448 * efiemu/modules/i386/pc: likewise
4449 * efiemu/modules/acpi.c: likewise
4450 * efiemu/i386/pc/cfgtables.c: likewise
4451 * efiemu/i386/loadcore64.c: likewise
4452 * efiemu/i386/loadcore32.c: likewise
4453 * efiemu/prepare64.c: likewise
4454 * efiemu/loadcore.c: likewise
4455 * efiemu/symbols.c: likewise
4456 * efiemu/mm.c: likewise
4457 * efiemu/loadcore32.c: likewise
7dd4a573 4458
44592009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
f8efe3ad 4460
4461 ACPI spoofing
4462
4463 * commands/acpi.c: new file
4464 * commands/i386/pc/acpi.c: likewise
4465 * commands/efi/acpi.c: likewise
4466 * include/grub/acpi.h: likewise
4467 * conf/i386-pc.rmk (pkglib_MODULES): added acpi.mod
4468 (acpi_mod_SOURCES): new variable
4469 (acpi_mod_CFLAGS): likewise
4470 (acpi_mod_LDFLAGS): likewise
4471 * conf/i386-efi.rmk: likewise
4472 * conf/x86_64-efi.rmk: likewise
4473
7dd4a573 44742009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
28a85665 4475
4476 Missing part from mmap patch
4477
4478 * mmap/efi/mmap.c (grub_machine_mmap_unregister): renamed to
4479 (grub_mmap_unregister)
4480 (grub_mmap_free_and_unregister): use grub_mmap_register
4481
7dd4a573 44822009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
09d842b9 4483
4484 Mmap services
4485
4486 * loader/i386/efi/linux.c (grub_linux_boot): use grub_mmap_iterate
4487 * loader/i386/linux.c (find_mmap_size): likewise
4488 (allocate_pages): likewise
4489 * loader/i386/multiboot.c (grub_get_multiboot_mmap_len): likewise
4490 (grub_fill_multiboot_mmap): likewise
4491 (grub_multiboot): use grub_mmap_get_lower and grub_mmap_get_upper
4492 * loader/i386/pc/linux.c (grub_cmd_linux): use grub_mmap_get_lower
4493 * include/grub/i386/bsd.h (OPENBSD_MMAP_AVAILABLE): new definition
4494 (OPENBSD_MMAP_RESERVED): likewise
4495 * include/grub/i386/pc/memory.h: include grub/memory.h
4496 (grub_lower_mem): removed
4497 (grub_upper_mem): likewise
4498 (GRUB_MACHINE_MEMORY_ACPI): new definition
4499 (GRUB_MACHINE_MEMORY_NVS): likewise
4500 (GRUB_MACHINE_MEMORY_MAX_TYPE): likewise
4501 (GRUB_MACHINE_MEMORY_HOLE): likewise
4502 (grub_machine_mmap_register): likewise
4503 (grub_machine_mmap_unregister): likewise
4504 (grub_machine_get_upper): likewise
4505 (grub_machine_get_lower): likewise
4506 (grub_machine_get_post64): likewise
4507 * include/grub/i386/efi/memory.h: new file
4508 * include/grub/x86_64/efi/memory.h: likewise
4509 * include/grub/efi/memory.h: likewise
4510 * conf/i386-pc.rmk (pkglib_MODULES): added mmap.mod
4511 (mmap_mod_SOURCES): new variable
4512 (mmap_mod_LDFLAGS): likewise
4513 (mmap_mod_ASFLAGS): likewise
4514 * conf/i386-coreboot.rmk: likewise
4515 * conf/i386-ieee1275.rmk: likewise
4516 * conf/i386-efi.rmk: likewise
4517 * conf/x86_64-efi.rmk: likewise
4518 * include/grub/types.h (UINT_TO_PTR): new macro
4519 (PTR_TO_UINT32): likewise
4520 (PTR_TO_UINT64): likewise
4521 * include/grub/memory.h: new file
4522 * mmap/i386/pc/mmap.c: likewise
4523 * mmap/i386/pc/mmap_helper.S: likewise
4524 * mmap/i386/uppermem.c: likewise
4525 * mmap/mmap.c: likewise
4526 * mmap/efi/mmap.c: likewise
7dd4a573 4527 * kern/i386/coreboot/init.c (grub_machine_init): don't use
09d842b9 4528 grub_upper_mem
4529 * kern/i386/pc/init.c (grub_lower_mem): removed variable
4530 (grub_upper_mem): likewise
4531 (grub_machine_init): don't use grub_upper_mem,
4532 make grub_lower_mem local
4533 * loader/i386/bsd.c (grub_openbsd_boot): use grub_mmap_get_lower,
4534 grub_mmap_iterate and grub_mmap_get_upper
4535 (grub_netbsd_boot): use grub_mmap_get_lower and grub_mmap_get_upper
4536
d558e6b5 45372009-05-02 Bean <bean123ch@gmail.com>
4538
4539 * conf/common.rmk (grub_script.tab.c): Change normal/parser.y to
4540 script/sh/parser.y.
4541 (pkglib_MODULES): Add normal.mod and sh.mod.
4542 (normal_SOURCES): New variable.
4543 (normal_mod_CFLAGS): Likewise.
4544 (normal_mod_LDFLAGS): Likewise.
4545 (sh_mod_SOURCES): Likewise.
4546 (sh_mod_CFLAGS): Likewise.
4547 (sh_mod_LDFLAGS): Likewise.
4548
4549 * conf/i386-pc.rmk (normal/lexer.c_DEPENDENCIES): Changed to
4550 script/sh/lexer.c_DEPENDENCIES.
4551 (kernel_img_SOURCES): Remove kern/rescue.c, and kern/reader.c,
4552 kern/rescue_reader.c and kern/rescue_parser.c.
4553 (kernel_img_HEADERS): Remove rescue.h, add reader.h.
4554 (grub_emu_SOURCES): Change source files.
4555 (pkglib_MODULES): Remove normal.mod.
4556 (normal_SOURCES): Removed.
4557 (normal_mod_CFLAGS): Likewise.
4558 (normal_mod_LDFLAGS): Likewise.
4559 * conf/i386-coreboot.rmk: Likewise.
4560 * conf/i386-efi.rmk: Likewise.
4561 * conf/i386-ieee1276.rmk: Likewise.
4562 * conf/powerpc-ieee1275.rmk: Likewise.
4563 * conf/sparc64-ieee1275.rmk: Likewise.
4564 * conf/x86_64-efi.rmk: Likewise.
4565
4566 * include/grub/command.h (grub_command_execute): New inline function.
4567
4568 * include/grub/menu.h (grub_menu_entry): Removed commands field.
4569
4570 * include/grub/normal.h: Remove <grub/setjmp.h>.
4571 (grub_fs_module_list): Moved to normal/autofs.c.
4572 (grub_exit_env): Removed.
4573 (grub_command_execute): Likewise.
4574 (grub_normal_menu_addentry): Renamed to grub_menu_addentry, removed
4575 parameter script.
4576 (read_command_list): New function declaration.
4577 (read_fs_list): Likewise.
4578
4579 * include/parser.h: Include <grub/reader.h>.
4580 (grub_parser_split_cmdline): Change type of getline parameter.
4581 (grub_parser): New structure.
4582 (grub_parser_class): New variable.
4583 (grub_parser_execute): New function declaration.
4584 (grub_register_rescue_parser): Likewise.
4585 (grub_parser_register): New inline function.
4586 (grub_parser_unregister): Likewise.
4587 (grub_parser_get_current): Likewise.
4588 (grub_parser_set_current): Likewise.
4589
4590 * include/grub/reader.h: New file.
4591 * kern/reader.c: Likewise.
4592 * kern/rescue_parser.c: Likewise.
4593 * kern/rescue_reader.c: Likewise.
4594 * normal/autofs.c: Likewise.
4595 * normal/dyncmd.c: Likewise.
4596
4597 * include/grub/rescue.h: Removed.
4598 * normal/command.h: Likewise.
4599
4600 * include/grub/script.h: Moved to ...
4601 * include/grub/script_sh.h: ... Moved here.
4602 * normal/execute.c: Moved to ...
4603 * script/sh/execute.c: ... Moved here.
4604 * normal/function.c: Moved to ...
4605 * script/sh/function.c: ... Moved here.
4606 * normal/lexer.c: Moved to ...
4607 * script/sh/lexer.c: ... Moved here.
4608 * normal/parser.y: Moved to ...
4609 * script/sh/parser.y: ... Moved here.
4610 * normal/script.c: Moved to ...
4611 * script/sh/script.c: ... Moved here.
4612
4613 * normal/main.c: Remove <grub/rescue.h> and <grub/script.h>, include
4614 <grub/reader.h>.
4615 (grub_exit_env): Removed.
4616 (fs_module_list): Moved to normal/autofs.c.
4617 (grub_file_getline): Don't handle comment here.
4618 (free_menu): Skip removed field entry->commands.
4619 (grub_normal_menu_addentry): Removed as grub_menu_entry, removed
4620 script parameter.
4621 (read_config_file): Removed nested parameter, change getline function.
4622 (grub_enter_normal_mode): Removed.
4623 (grub_dyncmd_dispatcher): Moved to normal/dyncmd.c.
4624 (read_command_list): Likewise.
4625 (autoload_fs_module): Moved to normal/autofs.c.
4626 (read_fs_list): Likewise.
4627 (reader_nested): New variable.
4628 (grub_normal_execute): Run parser.sh to switch to sh parser.
4629 (grub_cmd_rescue): Removed.
4630 (cmd_normal): Removed.
4631 (grub_cmd_normal): Unregister itself at the beginning. Don't register
4632 rescue command.
4633 (grub_cmdline_run): New function.
4634 (grub_normal_reader_init): Likewise.
4635 (grub_normal_read_line): Likewise.
4636 (grub_env_write_pager): Likewise.
4637 (cmdline): New variable.
4638 (grub_normal_reader): Likewise.
4639 (GRUB_MOD_INIT): Register normal reader and set as current, register
4640 pager hook, register normal command with grub_register_command_prio,
4641 so that it won't show up in command.lst.
4642 (GRUB_MOD_FINI): Unregister normal reader, unhook pager, clear
4643 grub_fs_autoload_hook.
4644
4645 * normal/menu.c: Remove <grub/script.h>, add <grub/command.h>.
4646 (grub_menu_execute_entry): Replace grub_script_execute with
4647 grub_parser_execute, change parameter to grub_command_execute.
4648
4649 * normal/menu_text.c: Remove <grub/script.h>.
4650
4651 * normal/menu_entry.c: Remove <grub/script.h>, add <grub/command.h>
4652 and <grub/parser.h>.
4653 (run): Change editor_getline to use new parser interface. Change
4654 parameter to grub_command_execute.
4655
4656 * kern/main.c: Remove <grub/rescue.h>, include <grub/command.h>,
4657 <grub/reader.h> and <grub/parser.h>.
4658 (grub_load_normal_mode): Execute normal command.
4659 (grub_main): Call grub_register_core_commands,
4660 grub_register_rescue_parser and grub_register_rescue_reader, use
4661 grub_reader_loop to enter input loop.
4662
7dd4a573 4663 * kern/parser.c (grub_parser_split_cmdline): Change type of
4664 getline parameter.
d558e6b5 4665 (grub_parser_class): New variable.
4666 (grub_parser_execute): New function.
4667
4668 * loader/i386/multiboot.c: Remove <grub/rescue.h>.
4669 * loader/multiboot2.c: Likewise.
4670 * loader/sparc64/ieee1275/linux.c: Likewise.
4671
4672 * util/grub-emu.c (read_command_list): New dummy function.
4673
18db813d 46742009-05-02 Robert Millan <rmh.grub@aybabtu.com>
4675
4676 * util/deviceiter.c (grub_util_iterate_devices): Increase max drive
4677 count to 16 for CCISS and IDA.
4678
6c67de15 46792009-05-02 Robert Millan <rmh.grub@aybabtu.com>
4680
4681 * normal/menu_text.c (grub_wait_after_message): Print a newline
4682 after waiting for user input.
4683
4684 * loader/i386/linux.c: Include `<grub/normal.h>'.
4685 (grub_cmd_linux): Improve the error message about `ask' mode, by
4686 waiting for user input so it's not missed (we can do this, since
4687 user requested interaction).
4688
d9dc87b0 46892009-05-02 Vladimir Serbinenko <phcoder@gmail.com>
4690
4691 Added missing lst to grub-mkrescue
4692
4693 * util/i386/pc/grub-mkrescue.in: added ${input_dir}/handler.lst
4694 and ${input_dir}/parttool.lst
4695
ac8a2baa 46962009-04-30 David S. Miller <davem@davemloft.net>
4697
ad22a610 4698 * util/hostdisk.c (device_is_wholedisk): New function.
4699 (grub_util_biosdisk_get_grub_dev): Shortcut when hdg.start is
4700 zero only if device_is_wholedisk() returns true.
4701
6966215d 4702 * util/hostdisk.c (convert_system_partition_to_system_disk):
4703 Handle virtual disk devices named /dev/vdiskX as found on sparc
4704 and powerpc.
4705
ac8a2baa 4706 * kern/sparc64/ieee1275/init.c (grub_machine_set_prefix): If
4707 lettered partition specifier is found, convert to numbered.
4708
979b4fb4 47092009-04-29 David S. Miller <davem@davemloft.net>
4710
e2bf39b2 4711 * include/grub/powerpc/ieee1275/memory.h: Include ieee1275.h.
4712 * include/grub/sparc64/ieee1275/memory.h: Likewise.
4713
3c64e104 4714 * normal/command.c: Add missing newline at end of file.
4715
979b4fb4 4716 * commands/lsmmap.c (grub_cmd_lsmmap): Add casts to avoid printf
4717 warnings.
4718 * kern/ieee1275/openfw.c (grub_claimmap): Likewise.
4719 * disk/ieee1275/ofdisk.c (grub_ofdisk_open, grub_ofdisk_close,
4720 grub_ofdisk_read): Likewise, and deal similarly with the fact that
4721 ihandles have a 32-bit type but need to be stored in a "void *".
4722
136d9f82 47232009-04-28 Pavel Roskin <proski@gnu.org>
4724
9459c306 4725 * disk/fs_uuid.c (grub_fs_uuid_open): Use parent->data for dev,
4726 not disk. Adjust all dependencies.
2e08a26a 4727 (grub_fs_uuid_close): Use grub_device_close(), not
9459c306 4728 grub_disk_close().
4729
136d9f82 4730 * disk/fs_uuid.c (grub_fs_uuid_open): Allocate memory to copy
4731 parent's partition, don't copy it by reference, as it gets freed
4732 on close.
4733
7dd4a573 47342009-04-27 Vladimir Serbinenko <phcoder@gmail.com>
75a807cf 4735
4736 Preboot hooks support
4737
4738 * commands/boot.c (struct grub_preboot_t): new declaration
4739 (preboots_head): new variable
4740 (preboots_tail): likewise
4741 (grub_loader_register_preboot_hook): new function
4742 (grub_loader_unregister_preboot_hook): likewise
4743 (grub_loader_set): launch preboot hooks
4744 * include/grub/loader.h (grub_loader_preboot_hook_prio_t): new type
4745 (grub_loader_register_preboot_hook): new declaration
4746 (grub_loader_unregister_preboot_hook): likewise
4747
5af922b5 47482009-04-27 Vladimir Serbinenko <phcoder@gmail.com>
4749
4750 Warning fix
4751
7dd4a573 4752 * disk/scsi.c (grub_scsi_open): added missing cast when
5af922b5 4753 calling grub_dprintf
4754
a5562c30 47552009-04-26 Vladimir Serbinenko <phcoder@gmail.com>
4756
4757 Bug and warning fixes
4758
7dd4a573 4759 * include/grub/i386/pc/init.h (grub_stop_floppy): added missing
a5562c30 4760 declaration
4761 * commands/test.c (test_parse): fixed bug with file tests and corrected
4762 declaration of find_file
4763
4006f85c 47642009-04-26 Pavel Roskin <proski@gnu.org>
4765
4766 * Makefile.in: Don't install empty manual pages if help2man is
4767 missing. Use help2man option for output, not shell redirection.
4768
5c77c3de 47692009-04-26 David S. Miller <davem@davemloft.net>
4770
4771 * util/grub-mkdevicemap.c (make_device_map): Add missing
4772 NESTED_FUNC_ATTR to process_device().
4773
033b10a8 47742009-04-25 Vladimir Serbinenko <phcoder@gmail.com>
4775
4776 Test command
4777
4778 * commands/test.c: rewritten to use bash-like test
4779
e4343593 47802009-04-25 Vladimir Serbinenko <phcoder@gmail.com>
4781
4782 Parttool autoloading and improvements
4783
7dd4a573 4784 * Makefile.in (pkglib_DATA): add parttool.lst
e4343593 4785 (parttool.lst): new target
4786 * genmk.rb: generate parttool-*
4787 (CLEANFILES): add #{parttool}
4788 (PARTTOOLFILES): new variable
4789 * genparttoollist.sh: new file
7dd4a573 4790 * parttool/pcpart.c (grub_pcpart_boot): more feedback
e4343593 4791 (grub_pcpart_type): likewise
4792 * commands/parttool.c (helpmsg): new variable
4793 (grub_cmd_parttool): output help if not enough arguments are supplied
4794 autoload modules
4795 (GRUB_MOD_INIT(parttool)): use helpmsg
4796
0d312500 47972009-04-24 David S. Miller <davem@davemloft.net>
4798
7dd4a573 4799 Avoiding opening same device multiple times in device iterator.
0d312500 4800
4801 * kern/device.c: (grub_device_iterate): Define struct part_ent,
7dd4a573 4802 and use it to build a list of partitions in iterate_disk() and
0d312500 4803 iterate_partition().
4804
ac20caff 4805 * disk/fs_uuid.c (grub_fs_uuid_close): Call grub_disk_close()
4806 on disk->data.
4807
0dcf7495 4808 * disk/ieee1275/nand.c (grub_nand_iterate): Return
4809 grub_devalias_iterate() result instead of unconditional 0.
4810 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Likewise.
4811 Also, capture hook return value, either directly or via
4812 grub_children_iterate(), and propagate to caller.
4813 * include/grub/ieee1275/ieee1275.h (grub_devalias_iterate,
4814 grub_children_iterate): Return value is now 'int' instead of
4815 'grub_err_t'.
4816 * kern/ieee1275/openfw.c (grub_children_iterate): Fix to behave
4817 like a proper iterator, stopping when hooks return non-zero.
4818 (grub_devalias_iterate): Likewise.
4819
c8c08833 48202009-04-23 David S. Miller <davem@davemloft.net>
4821
4822 * kern/sparc64/ieee1275/openfw.c: Unused, delete.
4823
f01005a8 48242009-04-22 David S. Miller <davem@davemloft.net>
4825
4826 * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): If size_cells
4827 is larger than address_cells, use that value for address_cells too.
4828
4e8269da 4829 * include/grub/ieee1275/ieee1275.h (IEEE1275_MAX_PROP_LEN,
4830 IEEE1275_MAX_PATH_LEN): Define.
4831 * kern/ieee1275/openfw.c (grub_children_iterate): Dynamically
4832 allocate 'childtype', 'childpath', 'childname', and 'fullname'.
4833 (grub_devalias_iterate): Dynamically allocate 'aliasname' and
4834 'devtype'. Explicitly NULL terminate devalias expansion.
4835
a1447506 4836 * util/sparc64/ieee1275/misc.c: New file.
4837 * util/sparc64/ieee1275/grub-setup.c: New file.
4838 * util/sparc64/ieee1275/grub-ofpathname.c: New file.
4839 * util/sparc64/ieee1275/grub-mkimage.c: New file.
4840 * util/sparc64/ieee1275/grub-install.in: New file.
4841 * util/ieee1275/ofpath.c: New file.
4842 * util/ieee1275/devicemap.c: New file.
4843 * util/devicemap.c: New file.
4844 * util/deviceiter.c: New file.
4845 * kern/sparc64/ieee1275/init.c: New file.
4846 * include/grub/util/ofpath.h: New file.
4847 * include/grub/util/deviceiter.h: New file.
4848 * util/grub-mkdevicemap.c: Include deviceiter.h.
4849 Implement using grub_util_emit_devicemap_entry and
4850 grub_util_iterate_devices.
4851 * conf/i386-corebook.rmk: Build util/deviceiter.c and
4852 util/devicemap.c into grub-mkdevicemap
4853 * conf/i386-efi.rmk: Likewise.
4854 * conf/i386-ieee1275.rmk: Likewise.
4855 * conf/i386-pc.rmk: Likewise.
4856 * conf/powerpc-ieee1275.rmk: Likewise.
4857 * conf/sparc64-ieee1275.rmk: Add rules to build boot block
4858 images and installation utilities. Build kernel as image
4859 instead of as elf binary. Use common rules as much as possible.
4860
7dd4a573 48612009-04-19 Vladimir Serbinenko <phcoder@gmail.com>
0aefc632 4862
4863 Correct GPT definition
4864
7dd4a573 4865 * include/grub/gpt_partition.h (grub_gpt_partentry): Corrected the type
0aefc632 4866 of "attrib" member
4867
c6c5219f 48682009-04-19 Felix Zielcke <fzielcke@z-51.de>
4869
4870 * INSTALL: Replace `autogen.sh' with `./autogen.sh'.
4871
0552ff9f 48722009-04-19 David S. Miller <davem@davemloft.net>
4873
4874 * loader/sparc64/ieee1275/linux.c: Include grub/command.h
4875 (grub_rescue_cmd_linux): Rename to...
4876 (grub_cmd_linux): and fix prototype.
4877 (grub_rescue_cmd_initrd): Rename to...
4878 (grub_cmd_initrd): and fix prototype.
4879 (cmd_linux, cmd_initrd): New.
4880 (GRUB_MOD_INIT(linux)): Use grub_register_command().
4881 (GRUB_MOD_FINI(linux): Use grub_unregister_command().
4882
d1a282fc 48832009-04-17 Pavel Roskin <proski@gnu.org>
4884
07c5039f 4885 * bus/usb/ohci.c (grub_ohci_transaction): Fix incorrect printf
4886 format.
4887 (grub_ohci_transfer): Likewise.
4888
b012002d 4889 * bus/usb/usbtrans.c (grub_usb_control_msg): Warning fix.
4890
1bc09c35 4891 * loader/multiboot_loader.c (grub_cmd_multiboot_loader): Fix
4892 return without a value. Fix inconsistent indentation.
4893
e0ff9126 4894 * fs/i386/pc/pxe.c (grub_pxefs_dir): Fix function prototype to
4895 match struct grub_fs.
4896
d1a282fc 4897 * disk/ata.c (grub_ata_pciinit): Use NESTED_FUNC_ATTR.
4898 * bus/usb/ohci.c (grub_ohci_pci_iter): Likewise.
4899 * bus/usb/uhci.c (grub_uhci_pci_iter): Likewise.
4900 * commands/lspci.c (grub_lspci_iter): Likewise.
4901
a96df3f2 49022009-04-16 Bean <bean123ch@gmail.com>
4903
4904 * commands/efi/loadbios.c (grub_cmd_fakebios): Add missing return
4905 value.
4906
41bb0fe9 49072009-04-15 Pavel Roskin <proski@gnu.org>
4908
4909 * include/grub/types.h: Rename ULONG_MAX to GRUB_ULONG_MAX and
4910 LONG_MAX to GRUB_LONG_MAX. Introduce GRUB_LONG_MIN. Update all
4911 users of ULONG_MAX, LONG_MAX and LONG_MIN to use the new
4912 definitions.
4913
596c6970 49142009-04-15 Felix Zielcke <fzielcke@z-51.de>
4915
4916 * disk/lvm.c (grub_lvm_scan_device): Add `LVM' to the error messages,
7dd4a573 4917 that no multiple data or metadata areas are supported and `Unknown
596c6970 4918 metadata header'.
4919
7dd4a573 49202009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
0d5d5653 4921
4922 Move loader out of the kernel
4923
4924 * kern/loader.c: moved to ...
4925 * commands/boot.c: ... moved here
4926 * commands/minicmd.c (grub_mini_cmd_boot): moved to ...
4927 * commands/boot.c (grub_cmd_boot): moved here. All users updated
4928 * include/grub/kernel.h (grub_machine_fini): export
4929 * include/grub/loader.h (grub_loader_is_loaded): update declaration
4930 (grub_loader_set): likewise
4931 (grub_loader_unset): likewise
4932 (grub_loader_boot): likewise
4933 * conf/common.rmk: new module boot.mod
4934 (pkglib_MODULES): add boot.mod
4935 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): remove kern/loader.c
4936 (grub_emu_SOURCES): likewise
4937 * conf/i386-efi.rmk (kernel_elf_SOURCES): likewise
4938 (grub_emu_SOURCES): likewise
4939 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): likewise
4940 (grub_emu_SOURCES): likewise
4941 * conf/i386-pc.rmk (kernel_elf_SOURCES): likewise
4942 (grub_emu_SOURCES): likewise
4943 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): likewise
4944 (grub_emu_SOURCES): likewise
7dd4a573 4945 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): likewise
4946 (grub_emu_SOURCES): likewise
0d5d5653 4947 * conf/x86_64-efi.rmk (kernel_elf_SOURCES): likewise
7dd4a573 4948 (grub_emu_SOURCES): likewise
0d5d5653 4949
7dd4a573 49502009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
5999d619 4951
4952 use grub_lltoa instead of grub_itoa and grub_ltoa for all purposes
7dd4a573 4953
5999d619 4954 * kern/misc.c (grub_itoa): Removed function
4955 (grub_ltoa): likewise
4956 (grub_vsprintf): use grub_lltoa
4957
7dd4a573 49582009-04-15 Vladimir Serbinenko <phcoder@gmail.com>
13c00781 4959
4960 Restore grub-emu
4961
4962 * conf/i386-pc.rmk (grub_emu_SOURCES): add normal/handler.c
4963 * conf/i386-coreboot.rmk: likewise
4964 * conf/i386-ieee1275.rmk: likewise
4965 * conf/powerpc-ieee1275.rmk: likewise
7dd4a573 4966
20318222 49672009-04-15 Felix Zielcke <fzielcke@z-51.de>
4968
4969 * INSTALL: Add that `./autogen.sh' needs to be run before
4970 `./configure.'.
4971
d05f0df3 49722009-04-14 Bean <bean123ch@gmail.com>
4973
4974 * Makefile.in (pkglib_DATA): Add handler.lst.
4975 (handler.lst): New rule.
4976
4977 * conf/i386-pc.rmk (normal_mod_SOURCES): Add normal/handler.c.
4978 * conf/i386-coreboot.rmk: Likewise.
4979 * conf/i386-ieee1275.rmk: Likewise.
4980 * conf/i386-efi.rmk: Likewise.
4981 * conf/x86_64-efi.rmk: Likewise.
4982 * conf/powerpc-ieee1275.rmk: Likewise.
4983 * conf/sparc64-ieee1275.rmk: Likewise.
4984
4985 * genhandlerlist.sh: New file.
4986
4987 * genmk.rb: Add rules to generate handler.lst.
4988
4989 * include/grub/normal.h (grub_file_getline): New function definition.
4990 (read_handler_list): Likewise.
4991 (free_handler_list): Likewise.
4992
4993 * include/grub/term.h (grub_term_register_input): Add name parameter
4994 for auto generation of handler.lst.
4995 (grub_term_register_output): Likewise.
4996
4997 * normal/handler.c: New file.
4998
4999 * normal/main.c (get_line): Renamed to grub_file_getline.
5000 (read_config_file): Use the newly renamed grub_file_getline.
5001 (read_command_list): Likewise.
5002 (read_fs_list): Likewise.
5003 (grub_normal_execute): Call read_handler_list to parse handler.lst.
5004 (GRUB_MOD_FINI): Call free_handler_list to free handler list.
5005
5006 * term/efi/console.c (grub_console_init): Add name parameter for auto
5007 generation of handler.lst.
5008 * term/gfxterm.c: Likewise.
5009 * term/i386/pc/at_keyboard.c: Likewise.
5010 * term/i386/pc/console.c: Likewise.
5011 * term/i386/pc/serial.c: Likewise.
5012 * term/i386/pc/vesafb.c: Likewise.
5013 * term/i386/pc/vga.c: Likewise.
5014 * term/i386/pc/vga_text.c: Likewise.
5015 * term/ieee1275/ofconsole.c: Likewise.
5016 * term/usb_keyboard.c: Likewise.
5017
33c846be 50182009-04-14 Bean <bean123ch@gmail.com>
5019
5020 * util/grub-pe2elf.c (write_symbol_table): Terminate short name symbol
5021 properly with null character.
5022
4484e01e 50232009-04-14 Felix Zielcke <fzielcke@z-51.de>
5024
5025 * configure: Remove.
5026 * config.h.in: Likewise.
f93d668e 5027 * stamp-h.in: Likewise.
4484e01e 5028 * DISTLIST: Likewise.
5029 * conf/common.mk: Likewise.
5030 * conf/i386-coreboot.mk: Likewise.
5031 * conf/i386-efi.mk: Likewise.
5032 * conf/i386-ieee1275.mk: Likewise.
5033 * conf/i386.mk: Likewise.
5034 * conf/i386-pc.mk: Likewise.
5035 * conf/powerpc-ieee1275.mk: Likewise.
5036 * conf/sparc64-ieee1275.mk: Likewise.
5037 * conf/x86_64-efi.mk: Likewise.
5038
5039 * INSTALL: Remove the sentence that Ruby and autoconf are only required if you
5040 develop on GRUB.
5041
7dd4a573 50422009-04-14 John Stanley <jpsinthemix@verizon.net>
5c5bf96a 5043 David S. Miller <davem@davemloft.net>
5044
5045 * util/hostdisk.c (make_device_name): Fix buffer length
5046 calculations.
5047
e25b5a8c 50482009-04-14 Felix Zielcke <fzielcke@z-51.de>
5049
5050 * util/hostdisk.c [__FreeBSD__ || __FreeBSD_kernel__]: Include
5051 <sys/param.h> and <sys/sysctl.h>.
5052 (open_device) [__FreeBSD__ || __FreeBSD_kernel_]: Use sysctlgetbyname()
5053 to add 0x10 to `kern.geom.debugflags' if it's not already set, before
5054 opening the device and reset them afterwards.
5055
1f1f580c 50562009-04-13 Pavel Roskin <proski@gnu.org>
5057
5058 * conf/common.rmk (grub_fstest_SOURCES): Add normal/datetime.c.
5059 Reported by John Stanley <jpsinthemix@verizon.net>
5060
7ebc2d6b 50612009-04-13 Robert Millan <rmh@aybabtu.com>
5062
5063 * util/grub.d/10_freebsd.in: Detect Debian GNU/kFreeBSD and use
7dd4a573 5064 that name for menuentries when appropriate.
7ebc2d6b 5065
d8ba3667 50662009-04-13 Felix Zielcke <fzielcke@z-51.de>
5067
5068 * util/grub.d/10_freebsd.in: Add a missing `fi'.
5069
cba416eb 50702009-04-13 Robert Millan <rmh@aybabtu.com>
5071
5072 * loader/i386/linux.c (grub_cmd_linux): Don't pass `vga=ask' parameter
5073 to Linux, simply abort telling the user it's no longer supported.
5074
a547a745 50752009-04-13 Felix Zielcke <fzielcke@z-51.de>
5076
5077 * util/grub.d/10_freebsd.in: Don't exit if /boot/devices.hints
7dd4a573 5078 doesn't exist. Check also for /boot/kernel/kernel.gz. Print
a547a745 5079 `freebsd_loadenv' only when devices.hints exist.
5080
232a769c 50812009-04-13 Pavel Roskin <proski@gnu.org>
5082
5083 * term/usb_keyboard.c (grub_usb_keyboard_getkey): Warning fixes.
5084
c3012039 50852009-04-13 Felix Zielcke <fzielcke@z-51.de>
5086
5087 * util/i386/pc/grub-install.in (install_drive): Remove the BSD
5088 partition number.
5089 (grub_drive): Likewise.
5090
234022fe 50912009-04-13 David S. Miller <davem@davemloft.net>
5092
5093 * kern/sparc64/ieee1275/ieee1275.c: New file.
5094 * include/grub/sparc64/ieee1275/ieee1275.h (IEEE1275_MAP_WRITE,
5095 IEEE1275_MAP_READ, IEEE1275_MAP_EXEC, IEEE1275_MAP_LOCKED,
5096 IEEE1275_MAP_CACHED, IEEE1275_MAP_SE, IEEE1275_MAP_GLOBAL,
5097 IEEE1275_MAP_IE, IEEE1275_MAP_DEFAULT): Define.
5098 (grub_ieee1275_map_physical, grub_ieee1275_claim_vaddr,
5099 grub_ieee1275_alloc_physmem): Declare new exported functions.
5100
d8e1836c 5101 * include/grub/sparc64/ieee1275/loader.h: New file.
5102 * include/grub/sparc64/ieee1275/memory.h: Likewise.
5103 * include/grub/sparc64/kernel.h: Likewise.
5104 * loader/sparc64/ieee1275/linux.c: Likewise.
5105
96bd81ec 5106 * conf/common.rmk (grub_probe_SOURCES): Add Sun partition module.
5107 (grub_fstest_SOURCES): Likewise.
5108
6a4737e5 5109 * util/hostdisk.c (make_device_name): Do not make any assumptions
5110 about the length of drive names.
5111
1d7a72fd 5112 * kern/dl.c (grub_dl_load_file): Close file immediately when
5113 we are done using it.
5114
56bc2471 51152009-04-12 David S. Miller <davem@davemloft.net>
5116
5117 * kern/misc.c (grub_ltoa): Fix cast when handling negative
5118 values. Noticed by Pavel Roskin.
5119
df38d0bb 5120 * configure.ac: Check for __bswapsi2 and__bswapdi2 using
5121 target compiler.
7dd4a573 5122
e382e93a 5123 * genmk.rb: Add more flexible image type specification, also
5124 pass --strip-unneeded to objcopy.
5125 * conf/i386-pc.rmk: Use *_FORMAT.
5126 * conf/i386-pc.mk: Rebuilt.
5127
f5dbbca9 5128 * disk/ieee1275/ofdisk.c (struct ofdisk_hash_ent): New struct.
5129 (OFDISK_HASH_SZ): Define.
5130 (ofdisk_hash): New hash table.
5131 (ofdisk_hash_fn, ofdisk_hash_find, ofdisk_hash_add): New functions.
5132 (grub_ofdisk_open): Use ofdisk_hash_ent address as disk->id
5133 instead of device phandle which is not unique.
5134
91c88b12 5135 * kern/sparc64/ieee1275/init.c: Delete, replace with...
5136 * kern/sparc64/ieee1275/crt0.S: assembler implementation.
5137 * include/grub/sparc64/ieee1275/kernel.h: Declare grub_prefix[].
5138 (GRUB_MOD_ALIGN, GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_TOTAL_MODULE_SIZE,
5139 GRUB_KERNEL_MACHINE_KERNEL_IMAGE_SIZE,
5140 GRUB_KERNEL_MACHINE_COMPRESSED_SIZE, GRUB_KERNEL_MACHINE_PREFIX,
5141 GRUB_KERNEL_MACHINE_DATA_END): Define.
5142 (grub_kernel_image_size, grub_total_module_size): Declare.
5143
5b5d4aa5 51442009-04-12 Pavel Roskin <proski@gnu.org>
5145
7dd4a573 5146 * configure.ac: Change the logic when we check for target tools.
5147 Do it when the target is specified and it's different from the
5148 specified value of the host.
5b5d4aa5 5149
c91e1793 51502009-04-11 Felix Zielcke <fzielcke@z-51.de>
5151
5152 * util/hostdisk.c [__FreeBSD_kernel__]: Include sys/disk.h.
5153 (grub_util_biosdisk_open) [__FreeBSD_kernel__]: Add support for
5154 GNU/kFreeBSD. Check if a device is a character device. Use
5155 DIOCGMEDIASIZE to get the size.
5156 (convert_system_partition_to_system_disk) [__FreeBSD_kernel__]: Add
5157 support for GNU/kFreeBSD.
5158 (grub_util_biosdisk_get_grub_dev) [__FreeBSD_kernel__]: Check if OS_DEV
5159 is a character device instead of a block device. Add support for
5160 FreeBSD device names.
5161
5162 * util/getroot.c (find_root_device) [__FreeBSD_kernel__]: Check if ENT
5163 is a character device instead of a block device.
5164
5165 * util/grub-probe.c (probe) [__FreeBSD_kernel__]: Check if DEVICE_NAME
5166 is a character device instead of a block device.
5167
b1ac8644 51682009-04-11 Andrey Shuvikov <mr_hyro@yahoo.com>
5169
5170 * util/hostdisk.c [__FreeBSD__]: Include sys/disk.h.
5171 (grub_util_biosdisk_open) [__FreeBSD__]: Add support for
5172 FreeBSD. Check if a device is a character device. Use
5173 DIOCGMEDIASIZE to get the size.
5174 (convert_system_partition_to_system_disk) [__FreeBSD__]: Add
5175 support for FreeBSD.
5176 (grub_util_biosdisk_get_grub_dev) [__FreeBSD__]: Check if OS_DEV
5177 is a character device instead of a block device. Add support for
5178 FreeBSD device names.
5179
5180 * util/getroot.c (find_root_device) [__FreeBSD__]: Check if ENT is
5181 a character device instead of a block device.
5182 (grub_util_check_char_device): New function.
5183
5184 * util/grub-probe.c (probe) [__FreeBSD__]: Check if DEVICE_NAME is
5185 a character device instead of a block device.
5186
5187 * include/grub/util/getroot.h (grub_util_check_char_device): New
5188 prototype.
5189
a3f7515a 51902009-04-11 David S. Miller <davem@davemloft.net>
5191
5192 * conf/sparc64-ieee1275.rmk (kernel_img_LDFLAGS): Link with
5193 static libgcc.
5194 * configure.ac: Check for __bswapsi2 and __bswapdi2 presence.
5195 * include/grub/sparc64/libgcc.h (__bswapsi2): Export libgcc
5196 function, if present.
5197 (__bswapdi2): Likewise.
5198
0d44993d 5199 * include/grub/sparc64/ieee1275/boot.h: New file.
5200 * boot/sparc64/ieee1275/boot.S: Likewise.
5201 * boot/sparc64/ieee1275/diskboot.S: Likewise.
5202
ed3d2bc2 5203 * kern/misc.c (grub_ltoa): New function.
5204 (grub_vsprintf): Use it to format 'long' integers.
5205
d3bfb59c 52062009-04-10 David S. Miller <davem@davemloft.net>
5207
5208 * disk/ieee1275/nand.c (grub_nand_open): All ieee1275 call arg
5209 slots are of type grub_ieee1275_cell_t.
5210 (grub_nand_read): Likewise.
5211 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_INVALID,
5212 IEEE1275_IHANDLE_INVALID): Use grub_ieee1275_cell_t since these
5213 macros are used to compare values in arg/ret block of the call.
5214 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
5215 grub_ieee1275_next_property, grub_ieee1275_get_property_length,
5216 grub_ieee1275_instance_to_package, grub_ieee1275_package_to_path,
5217 grub_ieee1275_instance_to_path, grub_ieee1275_write,
5218 grub_ieee1275_read, grub_ieee1275_seek, grub_ieee1275_peer,
5219 grub_ieee1275_child, grub_ieee1275_parent, grub_ieee1275_open,
5220 grub_ieee1275_close, grub_ieee1275_set_property,
5221 grub_ieee1275_set_color): All ieee1275 call arg slots are of type
5222 grub_ieee1275_cell_t.
5223 * kern/ieee1275/openfw.c (grub_map): Likewise.
5224 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_ihandle_t,
5225 grub_ieee1275_phandle_t): Define as grub_unit32_t type.
5226
450e2238 5227 * kern/ieee1275/init.c (grub_machine_init): Make 'actual' grub_ssize_t.
5228 * kern/ieee1275/openfw.c (grub_children_iterate): Likewise.
5229 (grub_devalias_iterate): Likewise.
5230
7dd4a573 52312009-04-10 Vladimir Serbinenko <phcoder@gmail.com>
6df8cc76 5232
5233 UFS improvements
5234
5235 * fs/ufs.c (INODE_NBLOCKS): new definition
5236 (struct grub_ufs_dirent): added fields for non-BSD dirents
5237 (grub_ufs_get_file_block): fixed double indirect handling
5238 (grub_ufs_lookup_symlink): use more robust way to determine whether
5239 symlink is inline
5240 (grub_ufs_find_file): support for non-BSD dirents
5241 (grub_ufs_dir): support for non-BSD dirents
5242
e7e6862a 52432009-04-10 Bean <bean123ch@gnail.com>
5244
5245 * include/grub/efi/api.h (grub_efi_configuration_table): Add packed
5246 attribute, otherwise the size would be wrong for i386 platform.
5247
5248 * include/grub/pci.h (grub_pci_read_word): New inline function.
5249 (grub_pci_read_byte): Likewise.
5250 (grub_pci_write): Likewise.
5251 (grub_pci_write_word): Likewise.
5252 (grub_pci_write_byte): Likewise.
5253
5254 * include/grub/pci.h (grub_pci_iteratefunc_t): Add NESTED_FUNC_ATTR.
5255
5256 * loader/i386/efi/linux.c (fake_bios_data): Moved to loadbios module.
5257 (find_framebuf): Scan pci to locate the frame buffer address.
5258
5259 * commands/efi/fixvideo.c: New file.
5260
5261 * commands/efi/loadbios.c: Likewise.
5262
5263 * commands/memrw.c: Likewise.
5264
5265 * util/grub-dumpbios.in: Likewise.
5266
5267 * conf/common.rmk (grub-dumpbios): New utility.
5268 (pkglib_MODULES): New module memrw.mod.
5269 (memrw_mod_SOURCE): New macro.
5270 (memrw_mod_CFLAGS): Likewise.
5271 (memrw_mod_LDFLAGS): Likewise.
5272
7dd4a573 5273 * conf/i386-efi.rmk (pkglib_MODULES): New module loadbios.mod and
e7e6862a 5274 fixvideo.mod.
5275 (loadbios_mod_SOURCE): New macro.
5276 (loadbios_mod_CFLAGS): Likewise.
5277 (loadbios_mod_LDFLAGS): Likewise.
5278 (fixvideo_mod_SOURCE): Likewise.
5279 (fixvideo_mod_CFLAGS): Likewise.
5280 (fixvideo_mod_LDFLAGS): Likewise.
5281
7dd4a573 5282 * conf/x86_64.rmk (pkglib_MODULES): New module loadbios.mod and
e7e6862a 5283 fixvideo.mod.
5284 (loadbios_mod_SOURCE): New macro.
5285 (loadbios_mod_CFLAGS): Likewise.
5286 (loadbios_mod_LDFLAGS): Likewise.
5287 (fixvideo_mod_SOURCE): Likewise.
5288 (fixvideo_mod_CFLAGS): Likewise.
5289 (fixvideo_mod_LDFLAGS): Likewise.
5290
af63ada2 52912009-04-08 Felix Zielcke <fzielcke@z-51.de>
5292
5293 * disk/lvm.c (grub_lvm_scan_device): Add a missing NULL check.
5294
c2cdde70 52952009-04-07 David S. Miller <davem@davemloft.net>
5296
5297 * kern/sparc64/dl.c (grub_arch_dl_relocate_symbols): Add
5298 support for R_SPARC_OLO10 relocations. Fix compile warning for
5299 R_SPARC_WDISP30 case.
ea3f72cf 5300 * kern/sparc64/cache.S: Fix grub_arch_sync_caches implementation.
c2cdde70 5301
761319cf 53022009-04-06 Pavel Roskin <proski@gnu.org>
5303
1007d1f5 5304 * include/grub/misc.h (ARRAY_SIZE): New macro.
5305 * include/grub/i386/linux.h (GRUB_LINUX_VID_MODE_VESA_START):
5306 New macro.
5307 * loader/i386/linux.c (allocate_pages): Use free_pages().
5308 (grub_linux_unload): Don't use free_pages().
5309 (grub_linux_boot): Prevent accessing linux_vesafb_modes with a
5310 wrong index. Treat all other modes as text modes.
5311 (grub_cmd_linux): Initialize vid_mode unconditionally to
5312 GRUB_LINUX_VID_MODE_NORMAL. Recognize and support "vga=ask".
5313
761319cf 5314 * commands/help.c (print_command_help): Use cmd->prio, not
5315 cmd->flags to check for GRUB_PRIO_LIST_FLAG_ACTIVE.
5316
ea761d40 53172009-04-06 Vladimir Serbinenko <phcoder@gmail.com>
7dd4a573 5318
ea761d40 5319 Parttool
5320
5321 * parttool/pcpart.c: new file
5322 * commands/parttool.c: likewise
5323 * conf/common.rmk (pkglib_MODULES): Added parttool.mod and pcpart.mod
5324 (parttool_mod_SOURCES): new variable
5325 (parttool_mod_CFLAGS): likewise
5326 (parttool_mod_LDFLAGS): likewise
5327 (pcpart_mod_SOURCES): likewise
5328 (pcpart_mod_CFLAGS): likewise
5329 (pcpart_mod_LDFLAGS): likewise
7dd4a573 5330 * conf/i386-coreboot.rmk (grub_emu_SOURCES): added commands/parttool.c
ea761d40 5331 and parttool/pcpart.c
5332 * conf/i386-efi.rmk: likewise
5333 * conf/i386-ieee1275.rmk: likewise
5334 * conf/i386-pc.rmk: likewise
5335 * conf/powerpc-ieee1275.rmk: likewise
5336 * conf/sparc64-ieee1275.rmk: likewise
5337 * conf/x86_64-ieee1275.rmk: likewise
5338
05aaebfb 53392009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
5340
5341 Support for mtime and further expandability of dir command
5342
5343 * include/grub/lib/datetime.h: moved to ...
7dd4a573 5344 * include/grub/datetime.h: ... moved here and added
05aaebfb 5345 declaration of grub_unixtime2datetime. All users updated
7dd4a573 5346 * include/grub/fs.h: new syntax for dir and mtime functions in
5347 struct grub_fs
05aaebfb 5348 * include/grub/fshelp.h: new declarations of GRUB_FSHELP_TYPE_MASK
5349 and GRUB_FSHELP_FLAGS_MASK
5350 * commands/ls.c (grub_ls_list_files): Write mtime in long format
5351 * fs/ext2.c (grub_ext2_dir): use new dir syntax and supply mtime
5352 (grub_ext2_mtime): new function
5353 * fs/hfsplus.c (grub_hfsplus_dir): use new dir syntax and supply mtime
5354 (grub_hfsplus_mtime): new function
5355 * fs/ufs.c (GRUB_UFS_ATTR_TYPE): new definition
5356 (GRUB_UFS_ATTR_FILE): likewise
5357 (GRUB_UFS_ATTR_LNK): likewise
5358 (struct grub_ufs_sblock): new fields mtime
5359 (grub_ufs_read_inode): new parameter to read inode to a separate buffer
5360 all users updated
5361 (grub_ufs_dir): mtime support
5362 (grub_ufs_mtime): new function
5363 * fs/affs.c (grub_affs_dir): use new dir syntax
5364 * fs/afs.c (grub_afs_dir): likewise
5365 * fs/cpio.c (grub_cpio_dir): likewise
5366 * fs/fat.c (grub_fat_find_dir): likewise
5367 * fs/hfs.c (grub_hfs_dir): likewise
5368 * fs/iso9660.c (grub_iso9660_dir): likewise
5369 * fs/jfs.c (grub_jfs_dir): likewise
5370 * fs/minix.c (grub_minix_dir): likewise
5371 * fs/ntfs.c (grub_ntfs_dir): likewise
5372 * fs/reiserfs.c (grub_reiserfs_dir): likewise
5373 * fs/sfs.c (grub_sfs_dir): likewise
5374 * fs/xfs.c (grub_xfs_dir): likewise
5375 * util/hostfs.c (grub_hostfs_dir): likewise
5376 * lib/datetime.c: moved to ...
5377 * normal/datetime.c: ... moved here
5378 (grub_unixtime2datetime): new function
5379 * kern/rescue.c (grub_rescue_print_files): use new dir syntax
7dd4a573 5380 * normal/completion.c (iterate_dir): use new dir syntax
5381 * normal/misc.c (grub_normal_print_device_info): tell the
05aaebfb 5382 last modification time of a volume
7dd4a573 5383 * kern/fs.c (grub_fs_probe): updated dummy function to use new syntax
05aaebfb 5384 * conf/common.rmk: added lib/datetime.c to ls.mod
7dd4a573 5385 * conf/i386-coreboot.rmk (grub_emu_SOURCES): add normal/datetime.c
05aaebfb 5386 (normal_mod_SOURCES): likewise
5387 (datetime_mod_SOURCES): Removed lib/datetime.c
5388 * conf/i386-efi.rmk: likewise
7dd4a573 5389 * conf/i386-ieee1275.rmk: likewise
05aaebfb 5390 * conf/i386-pc.rmk: likewise
5391 * conf/powerpc-ieee1275.rmk: likewise
7dd4a573 5392 * conf/sparc64-ieee1275.rmk: likewise
5393 * conf/x86_64-efi.rmk: likewise
05aaebfb 5394
8a7e1a14 53952009-04-05 Vladimir Serbinenko <phcoder@gmail.com>
5396
5397 Trim trailing spaces in FAT label and support mtools-like labels
7dd4a573 5398
5399 * fs/fat.c (grub_fat_iterate_dir): New function based
8a7e1a14 5400 on grub_fat_find_dir
5401 (grub_fat_find_dir): use grub_fat_iterate_dir
5402 (grub_fat_label): likewise
5403
04186a9c 54042009-04-04 Vladimir Serbinenko <phcoder@gmail.com>
5405
7dd4a573 5406 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): add list.h
04186a9c 5407 and command.h
5408 remove extraneous kernel_elf_HEADERS
5409
da4c0bb6 54102009-04-04 Bean <bean123ch@gnail.com>
5411
5412 * include/grub/util/misc.h: Add dummy function fsync for mingw.
5413
5414 * util/misc.c: Likewise.
5415
54ad9555 54162009-04-04 Yoshinori K. Okuji <okuji@enbug.org>
5417
5418 * loader/i386/efi/linux.c (fake_bios_data): Use grub_dprintf
5419 instead of grub_printf.
5420
7a6bf9f2 54212009-04-03 Robert Millan <rmh@aybabtu.com>
5422
5423 * loader/i386/linux.c (grub_linux_setup_video): Fill
5424 `params->{red,green,blue,reserved}_{mask_size,field_pos}' with
5425 values from `mode info' structure instead of hardcoded
5426 values.
5427
3fcc2083 54282009-04-01 Pavel Roskin <proski@gnu.org>
5429
5430 * Makefile.in: Remove all references to MODULE_LDFLAGS, it's
5431 unused now.
5432 * genmk.rb: Likewise.
5433 * configure.ac: Likewise.
5434
5ec9740b 54352009-04-01 Manoel Abranches <mrabran@linux.vnet.ibm.com>
5436
5437 * aclocal.m4: Move --build-id=none from MODULE_LDFLAGS to
5438 TARGET_LDFLAGS. This corrects a problem with grub-mkelfimage.
5439
5270cec8 54402009-04-01 David S. Miller <davem@davemloft.net>
5441
5442 * normal/sparc64/setjmp.S: Fix setjmp implementation.
7dd4a573 5443 * include/grub/sparc64/setjmp.h (grub_jmp_buf): Update.
5270cec8 5444 (grub_setjmp): Mark with 'returns_twice' attribute.
5445 * include/grub/i386/setjmp.h (grub_setjmp): Likewise
5446 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise.
5447 * include/grub/x86_64/setjmp.h (grub_setjmp): Likewise.
5448
9c3dd854 54492009-04-01 Robert Millan <rmh@aybabtu.com>
5450
5451 Reapply fix from 2008-07-28 which was accidentally reverted; also
5452 perform the same fix to a similar check in same function.
5453
5454 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
5455 with the same number are found, just use issue a warning with
5456 grub_dprintf(), as this error has been reported to be non-fatal.
5457
0d818b7e 54582009-03-31 Pavel Roskin <proski@gnu.org>
5459
5460 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Provide safe default
5461 for cross-compilation.
5462
95646d92 54632009-03-30 Robert Millan <rmh@aybabtu.com>
5464
5465 Fix i386-ieee1275 build.
5466
5467 * include/grub/i386/ieee1275/loader.h (grub_multiboot2_real_boot):
5468 Remove declaration.
5469
6a003ed1 54702009-03-30 Pavel Roskin <proski@gnu.org>
5471
5472 * fs/hfs.c (grub_hfs_strncasecmp): Integrate into ...
5473 (grub_hfs_cmp_catkeys): ... this. Don't assume strings to be
5474 zero-terminated, rely only on the strlen value. Fix comparison
5475 of strings differing in length.
5476
92f33540 54772009-03-30 Robert Millan <rmh@aybabtu.com>
5478
5479 * loader/i386/linux.c (grub_cmd_linux): Check for zImage before
5480 checking for abi version. Improve error messages on BIOS to notify
5481 user about `linux16' command.
5482
a8c48fd5 54832009-03-29 Vladimir Serbinenko <phcoder@gmail.com>
5484
f968172e 5485 Leak fixes
a8c48fd5 5486
f968172e 5487 * kern/disk.c (grub_disk_cache_store): Invalidate previous cache
5488 in case of collision
5489 * disk/scsi.c (grub_scsi_open): free scsi in case of error
a8c48fd5 5490
9c323f09 54912009-03-29 Robert Millan <rmh@aybabtu.com>
5492
5493 * loader/i386/linux.c (grub_cmd_linux): Parse "vga=" parameter and
5494 set `vid_mode' accordingly.
5495 (grub_linux_boot): Process `vid_mode' and set video mode.
5496
ae68f423 54972009-03-29 Robert Millan <rmh@aybabtu.com>
5498
5499 * util/grub.d/10_linux.in (linux_entry): New function.
5500 Factorize generation of Linux boot entries.
5501
5709cfc4 55022009-03-29 Yoshinori K. Okuji <okuji@enbug.org>
5503
5504 Make the format of Environment Block plain text. The boot loader
5505 part is not tested well yet.
7dd4a573 5506
5709cfc4 5507 * util/grub-editenv.c (DEFAULT_ENVBLK_SIZE): New macro.
5508 (buffer): Removed.
5509 (envblk): Likewise.
5510 (usage): Remove "info" and "clear". Add "unset". Update the
5511 description of "set", as this does not delete variables any
5512 longer.
5513 (create_envblk_file): Complete rewrite.
5514 (open_envblk_file): Likewise.
5515 (cmd_info): Removed.
5516 (cmd_list): Likewise.
5517 (cmd_set): Likewise.
5518 (cmd_clear): Likewise.
5519 (list_variables): New function.
5520 (write_envblk): Likewise.
5521 (set_variables): Likewise.
5522 (unset_variables): Likewise.
5523 (main): Complete rewrite.
5524
5525 * commands/loadenv.c (buffer): Removed.
5526 (envblk): Likewise.
5527 (open_envblk_file): New function.
5528 (read_envblk_file): Complete rewrite.
5529 (grub_cmd_load_env): Likewise.
5530 (grub_cmd_list_env): Likewise.
5531 (struct blocklist): New struct.
5532 (free_blocklists): New function.
5533 (check_blocklists): Likewise.
5534 (write_blocklists): Likewise.
5535 (grub_cmd_save_env): Complete rewrite.
5536
5537 * include/grub/lib/envblk.h (GRUB_ENVBLK_SIGNATURE): Replaced with
5538 a plain text signature.
5539 (GRUB_ENVBLK_MAXLEN): Removed.
5540 (struct grub_envblk): Complete rewrite.
5541 (grub_envblk_find): Removed.
5542 (grub_envblk_insert): Likewise.
5543 (grub_envblk_open): New prototype.
5544 (grub_envblk_set): Likewise.
5545 (grub_envblk_delete): Put const to VALUE.
5546 (grub_envblk_iterate): Put const to NAME and VALUE.
5547 (grub_envblk_close): New prototype.
5548 (grub_envblk_buffer): New inline function.
5549 (grub_envblk_size): Likewise.
5550
5551 * lib/envblk.c: Include grub/mm.h.
5552 (grub_env_find): Removed.
5553 (grub_envblk_open): New function.
5554 (grub_envblk_close): Likewise.
5555 (escaped_value_len): Likewise.
5556 (find_next_line): Likewise.
5557 (grub_envblk_insert): Removed.
5558 (grub_envblk_set): New function.
5559 (grub_envblk_delete): Complete rewrite.
5560 (grub_envblk_iterate): Likewise.
5561
a9368fd3 55622009-03-28 Robert Millan <rmh@aybabtu.com>
5563
5564 * conf/i386-pc.rmk (pkglib_MODULES): Add `linux16.mod'.
5565 (linux16_mod_SOURCES, linux16_mod_CFLAGS, linux16_mod_LDFLAGS): New
5566 variables. Use 16-bit loader.
5567 (linux_mod_SOURCES, linux_mod_CFLAGS, linux_mod_LDFLAGS): Use 32-bit
5568 loader.
5569 * kern/i386/loader.S (grub_linux_boot): Rename to ...
5570 (grub_linux16_boot): ... this. Update all users.
5571 * loader/i386/linux.c (grub_linux32_boot): Rename to ...
5572 (grub_linux_boot): ... this. Update all users.
5573
5574 * loader/i386/pc/linux.c (GRUB_MOD_INIT(linux)): Rename to ...
5575 (GRUB_MOD_INIT(linux16)): ... this. Rename `linux' and `initrd'
5576 commands to `linux16' and `initrd16'.
5577 (GRUB_MOD_FINI(linux)): Rename to ...
5578 (GRUB_MOD_FINI(linux16)): ... this.
5579
e4dd5a7e 55802009-03-24 Pavel Roskin <proski@gnu.org>
5581
5582 * genmk.rb: Define ASM_FILE for *.S files for *.lst generation,
5583 not just for compilation.
5584
c04d6e05 55852009-03-22 Vladimir Serbinenko <phcoder@gmail.com>
5586
5587 Move multiboot helper out of kernel
5588
5589 * conf/i386-pc.rmk (multiboot_mod_SOURCES): Add
5590 `loader/i386/multiboot_helper.S'.
5591 * conf/i386-coreboot.rmk: Likewise
5592 * conf/i386-ieee1275.rmk: Likewise
5593
5594 * kern/i386/loader.S: Move multiboot helpers from here...
5595 * loader/i386/multiboot_helper.S: ...moved here
5596 * include/grub/i386/loader.h: Move declarations of multiboot
5597 helpers from here...
5598 * include/grub/i386/multiboot.h: ...moved here
5599 * loader/i386/multiboot.c: Added include of grub/cpu/multiboot.h
5600
42a5b3fc 56012009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
5602
5603 * kern/env.c (grub_env_context_open): Added an argument to specify
5604 whether a new context inherits exported variables from current
5605 one. This is useful when making a sandbox to interpret a config
5606 file.
5607 All callers updated.
5608
5609 * include/grub/env.h (grub_env_context_open): Updated the prototype.
5610
b28bbc4e 56112009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
5612
5613 * kern/env.c (grub_env_context_close): Fix memory leaks.
5614
f04f02e4 56152009-03-22 Yoshinori K. Okuji <okuji@enbug.org>
5616
5617 * normal/main.c (grub_normal_execute): Added an argument
5618 BATCH to specify if an interactive interface should be provided
5619 after reading a config file.
5620 All callers updated.
5621 (read_command_list): Prevent being executed twice.
5622 (read_fs_list): Likewise.
5623
42a5b3fc 5624 * include/grub/normal.h (grub_normal_execute): Updated the
5625 prototype.
f04f02e4 5626
41473ac2 56272009-03-22 Pavel Roskin <proski@gno.org>
5628
fbc00b0c 5629 * kern/powerpc/ieee1275/startup.S: Replace EXT_C(start) with
5630 _start.
5631 * kern/i386/pc/startup.S: Likewise.
5632 * kern/i386/efi/startup.S: Likewise.
5633 * kern/i386/ieee1275/startup.S: Likewise.
5634 * kern/i386/coreboot/startup.S: Likewise.
5635 * kern/x86_64/efi/startup.S: Likewise.
5636
41473ac2 5637 * aclocal.m4 (grub_CHECK_START_SYMBOL): Remove.
5638 * configure.ac: Don't call grub_CHECK_START_SYMBOL.
5639 * kern/i386/pc/startup.S: Use _start instead of START_SYMBOL.
5640
2274cc8f 56412009-03-21 Vladimir Serbinenko <phcoder@gmail.com>
5642
5643 Bugfixes in multiboot for bugs uncovered by solaris kernel.
5644
5645 * loader/i386/multiboot_elfxx.c (grub_multiboot_load_elf): Corrected
5646 limit detection.
5647 Use vaddr of correct segment for entry_point.
5648
b1b797cb 56492009-03-21 Bean <bean123ch@gmail.com>
5650
5651 * commands/blocklist.c: Add include file <grub/command.h>, remove
5652 <grub/normal.h> and <grub/arg.h>.
5653 (grub_cmd_blocklist): Use the new command interface.
5654 (GRUB_MOD_INIT): Likewise.
5655 (GRUB_MOD_FINI): Likewise.
5656 * commands/boot.c: Likewise.
5657 * commands/cat.c: Likewise.
5658 * commands/cmp.c: Likewise.
5659 * commands/configfile.c: Likewise.
5660 * commands/crc.c: Likewise.
5661 * commands/echo.c: Likewise.
5662 * commands/halt.c: Likewise.
5663 * commands/handler.c: Likewise.
5664 * commands/hdparm.c: Likewise.
5665 * commands/help.c: Likewise.
5666 * commands/hexdump.c: Likewise.
5667 * commands/loadenv.c: Likewise.
5668 * commands/ls.c: Likewise.
5669 * commands/lsmmap.c: Likewise.
5670 * commands/lspci.c: Likewise.
5671 * commands/loadenv.c: Likewise.
5672 * commands/read.c: Likewise.
5673 * commands/reboot.c: Likewise.
5674 * commands/search.c: Likewise.
5675 * commands/sleep.c: Likewise.
5676 * commands/test.c: Likewise.
5677 * commands/usbtest.c: Likewise.
5678 * commands/videotest.c: Likewise.
5679 * commands/i386/cpuid.c: Likewise.
5680 * commands/i386/pc/halt.c: Likewise.
5681 * commands/i386/pc/play.c: Likewise.
5682 * commands/i386/pc/pxecmd.c: Likewise.
5683 * commands/i386/pc/vbeinfo.c: Likewise.
5684 * commands/i386/pc/vbetest.c: Likewise.
5685 * commands/ieee1275/suspend.c: Likewise.
5686 * disk/loopback.c: Likewise.
5687 * font/font_cmd.c: Likewise.
5688 * hello/hello.c: Likewise.
5689 * loader/efi/appleloader.c: Likewise.
5690 * loader/efi/chainloader.c: Likewise.
5691 * loader/i386/bsd.c: Likewise.
5692 * loader/i386/efi/linux.c: Likewise.
5693 * loader/i386/ieee1275/linux.c: Likewise.
5694 * loader/i386/linux.c: Likewise.
5695 * loader/i386/pc/chainloader.c: Likewise.
5696 * loader/i386/pc/linux.c: Likewise.
5697 * loader/powerpc/ieee1275/linux.c: Likewise.
5698 * loader/multiboot_loader.c: Likewise.
5699 * term/gfxterm.c: Likewise.
5700 * term/i386/pc/serial.c: Likewise.
5701 * term/terminfo.c: Likewise.
5702
5703 * term/i386/pc/vesafb.c: Removed <grub/arg.h>.
5704 * term/i386/pc/vga.c: Likewise.
5705 * video/readers/jpeg.c: Likewise.
5706 * video/readers/png.c: Likewise.
5707 * video/readers/tga.c: Likewise.
5708
5709 * util/grub-fstest (cmd_loopback): Removed.
5710 (cmd_blocklist): Likewise.
5711 (cmd_ls): Likewise.
5712 (grub_register_command): Likewise.
5713 (grub_unregister_command): Likewise.
5714 (execute_command): Use grub_command_find to locate command and execute
5715 it.
5716
5717 * include/grub/efi/chainloader.h: Removed.
5718 * loader/efi/chainloader_normal.c: Likewise.
5719 * loader/i386/bsd_normal.c: Likewise.
5720 * loader/i386/pc/chainloader_normal.c: Likewise.
5721 * loader/i386/pc/multiboot_normal.c: Likewise.
5722 * loader/linux_normal.c: Likewise.
5723 * loader/multiboot_loader_normal.c: Likewise.
5724 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
5725
5726 * gencmdlist.sh: Scan new registration command grub_register_extcmd
5727 and grub_register_command_p1.
5728
5729 * conf/common.rmk (grub_fstest_SOURCES): Add kern/list.c,
5730 kern/command.c, lib/arg.c and commands/extcmd.c.
5731 (pkglib_MODULES): Remove boot.mod, and minicmd.mod and extcmd.mod.
5732 (minicmd_mod_SOURCES): New variable.
5733 (minicmd_mod_CFLAGS): Likewise.
5734 (minicmd_mod_LDFLAGS): Likewise.
5735 (extcmd_mod_SOURCES): Likewise.
5736 (extcmd_mod_CFLAGS): Likewise.
5737 (extcmd_mod_LDFLAGS): Likewise.
5738 (boot_mod_SOURCES): Removed.
5739 (boot_mod_CFLAGS): Likewise.
5740 (boot_mod_LDFLAGS): Likewise.
5741
5742 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/command.c and
5743 kern/corecmd.c.
5744 (kernel_img_HEADERS): Add command.h.
5745 (grub_emu_SOURCES): Remove commands/boot.c and normal/arg.c, add
5746 commands/minicmd.c, kern/command.c, kern/corecmd.c, commands/extcmd.c
5747 and lib/arg.c.
5748 (pkglib_MODULES): Change _linux.mod, _chain.mod, _bsd.mod and
5749 _multiboot.mod as linux.mod, chain.mod, bsd.mod and multiboot.mod,
5750 remove the corresponding normal mode command.
5751 (normal_mod_SOURCES): Remove normal/arg.c.
5752 * conf/i386-coreboot.rmk: Likewise.
5753 * conf/i386-efi.rmk: Likewise.
5754 * conf/i386-ieee1275.rmk: Likewise.
5755 * conf/powerpc-ieee1275.rmk: Likewise.
5756 * conf/x86_64-efi.rmk: Likewise.
5757
5758 * include/grub/arg.h: Move from here ...
5759 * include/grub/lib/arg.h: ... to here.
5760
5761 * normal/arg.c: Move from here ...
5762 * lib/arg.c: ... to here.
5763
5764 * commands/extcmd.c: New file.
5765 * commands/minicmd.c: Likewise.
5766 * include/grub/command.h: Likewise.
5767 * include/grub/extcmd.h: Likewise.
5768 * kern/command.c: Likewise.
5769 * kern/corecmd.c: Likewise.
5770
5771 * kern/list.c (grub_list_iterate): Return int instead of void.
5772 (grub_list_insert): New function.
5773 (grub_prio_list_insert): Likewise.
5774
5775 * kern/rescue.c (grub_rescue_command): Removed.
5776 (grub_rescue_command_list): Likewise.
5777 (grub_rescue_register_command): Likewise.
5778 (grub_rescue_unregister_command): Likewise.
5779 (grub_rescue_cmd_boot): Move to minicmd.c
5780 (grub_rescue_cmd_help): Likewise.
5781 (grub_rescue_cmd_info): Likewise.
5782 (grub_rescue_cmd_boot): Likewise.
5783 (grub_rescue_cmd_testload): Likewise.
5784 (grub_rescue_cmd_dump): Likewise.
5785 (grub_rescue_cmd_rmmod): Likewise.
5786 (grub_rescue_cmd_lsmod): Likewise.
5787 (grub_rescue_cmd_exit): Likewise.
5788 (grub_rescue_print_devices): Moved to corecmd.c.
5789 (grub_rescue_print_files): Likewise.
5790 (grub_rescue_cmd_ls): Likewise.
5791 (grub_rescue_cmd_insmod): Likewise.
5792 (grub_rescue_cmd_set): Likewise.
5793 (grub_rescue_cmd_unset): Likewise.
7d074e3c 5794 (attempt_normal_mode): Use grub_command_find to get normal module.
b1b797cb 5795 (grub_enter_rescue_mode): Use grub_register_core_commands to register
7d074e3c 5796 commands, remove grub_rescue_register_command calls.
b1b797cb 5797
7d074e3c 5798 * normal/command.c (grub_register_command): Removed.
b1b797cb 5799 (grub_unregister_command): Likewise.
5800 (grub_command_find): Likewise.
5801 (grub_iterate_commands): Likewise.
5802 (rescue_command): Likewise.
5803 (export_command): Moved to corecmd.c.
5804 (set_command): Removed.
5805 (unset_command): Likewise.
5806 (insmod_command): Likewise.
5807 (rmmod_command): Likewise.
5808 (lsmod_command): Likewise.
5809 (grub_command_init): Likewise.
5810
5811 * normal/completion.c (iterate_command): Use cmd->prio to check for
5812 active command.
5813 (complete_arguments): Use grub_extcmd_t structure to find options.
5814 (grub_normal_do_completion): Change function grub_iterate_commands to
5815 grub_command_iterate.
5816
5817 * normal/execute.c (grub_script_execute_cmd): No need to parse
5818 argument here.
5819
5820 * normal/main.c (grub_dyncmd_dispatcher): New function.
5821 (read_command_list): Register unload commands as dyncmd.
5822 (grub_cmd_normal): Use new command interface, register rescue,
5823 unregister normal at entry, register normal, unregister rescue at exit.
5824
5825 * include/grub/list.h (grub_list_test_t): New type.
5826 (grub_list_iterate): Return int instead of void.
5827 (grub_list_insert): New function.
5828 (GRUB_AS_NAMED_LIST_P): New macro.
5829 (GRUB_AS_PRIO_LIST): Likewise.
5830 (GRUB_AS_PRIO_LIST_P): Likewise.
5831 (GRUB_PRIO_LIST_PRIO_MASK): New constant.
5832 (GRUB_PRIO_LIST_FLAG_ACTIVE): Likewise.
5833 (grub_prio_list): New structure.
5834 (grub_prio_list_insert): New function.
5835 (grub_prio_list_remove): New inline function.
5836
5837 * include/grub/normal.h: Remove <grub/arg.h>, add <grub/command.h>.
5838 (GRUB_COMMAND_FLAG_CMDLINE): Moved to command.h.
5839 (GRUB_COMMAND_FLAG_MENU): Likewise.
5840 (GRUB_COMMAND_FLAG_BOTH): Likewise.
5841 (GRUB_COMMAND_FLAG_TITLE): Likewise.
5842 (GRUB_COMMAND_FLAG_NO_ECHO): Likewise.
5843 (GRUB_COMMAND_FLAG_NO_ARG_PARSE): Removed.
5844 (GRUB_COMMAND_FLAG_NOT_LOADED): Likewise.
5845 (grub_command): Likewise.
5846 (grub_register_command): Likewise.
5847 (grub_command_find): Likewise.
5848 (grub_iterate_commands): Likewise.
5849 (grub_command_init): Likewise.
5850 (grub_arg_parse): Likewise.
5851 (grub_arg_show_help): Likewise.
5852
5853 * include/grub/rescue.h (grub_rescue_register_command): Removed.
5854 (grub_rescue_unregister_command): Likewise.
5855
5856 * include/grub/i386/bsd.h: Remove grub_rescue_cmd_freebsd,
5857 grub_rescue_cmd_openbsd, grub_rescue_cmd_netbsd,
5858 grub_rescue_cmd_freebsd_loadenv and grub_rescue_cmd_freebsd_module.
5859
5860 * include/grub/i386/efi/loader.h: Remove grub_rescue_cmd_linux and
5861 grub_rescue_cmd_initrd.
5862 * include/grub/i386/loader.h: Likewise.
5863 * include/grub/x86_64/loader.h: Likewise.
5864
5865 * include/grub/i386/pc/chainloader.h: Remove grub_chainloader_cmd.
5866
1f4147aa 58672009-03-21 Bean <bean123ch@gmail.com>
5868
5869 * util/hostdisk.c (read_device_map): Use grub_util_get_disk_size
5870 instead of stat in mingw environment.
5871
5872 * util/misc.c (grub_millisleep): Use Sleep in mingw environment.
5873
5874 * aclocal.m4 (grub_CHECK_LINK_DIR): New function.
5875
5876 * configure.ac: Use grub_CHECK_LINK_DIR to determine whether to use
5877 AC_CONFIG_LINKS.
5878
2156d5ba 58792009-03-21 Bean <bean123ch@gmail.com>
5880
5881 * fs/ext2.c (grub_ext2_mount): Change errno to GRUB_ERR_BAD_FS for
5882 out of range error.
5883
177b82ca 58842009-03-18 Michel Dänzer <michel@daenzer.net>
5885
5886 * fs/ext2.c (grub_ext2_read_block): Take endianness into account when
5887 checking inode flags for EXT4_EXTENTS_FLAG.
5888
14aad807 58892009-03-18 Robert Millan <rmh@aybabtu.com>
5890
5891 * loader/i386/linux.c: Include `<grub/video.h>' and
5892 `<grub/i386/pc/vbe.h>'..
5893 (grub_linux_setup_video): New function. Loosely based on the EFI one.
5894 (grub_linux32_boot): Attempt to configure video settings with
5895 grub_linux_setup_video().
5896 (grub_rescue_cmd_linux): Set noreturn=0 in grub_loader_set, in order
5897 to avoid grub_console_fini() which would step out of graphical mode
5898 unconditionally.
5899
8cf83a27 59002009-03-14 Robert Millan <rmh@aybabtu.com>
5901
5902 Fix build on powerpc.
5903 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Add `handler.h'.
5904
40164e75 59052009-03-12 Vladimir Serbinenko <phcoder@gmail.com>
5906
5907 * term/gfxterm.c (GRUB_MOD_FINI(term_gfxterm)): Correct name of
5908 background image command.
5909
c58bc32a 59102009-03-12 Colin D Bennett <colin@gibibit.com>
5911
5912 * term/gfxterm.c (draw_cursor): Ensure character is redrawn.
5913 (grub_gfxterm_putchar): Extract pairs of identical calls to
5914 draw_cursor out of conditional blocks.
5915
5415144a 59162009-03-11 Pavel Roskin <proski@gnu.org>
5917
5918 * fs/hfs.c (grub_hfs_strncasecmp): New function.
5919 (grub_hfs_cmp_catkeys): Use HFS specific string comparison.
5920
6394042e 59212009-03-11 Robert Millan <rmh@aybabtu.com>
5922
5923 * loader/i386/multiboot_elfxx.c
5924 (CONCAT(grub_multiboot_load_elf, XX)): Do not reject ET_DYN files.
5925
b7b50e5f 59262009-03-11 Felix Zielcke <fzielcke@z-51.de>
5927
5928 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add `kern/list.c' and
5929 `kern/handler.c'.
5930
1ca7fc96 59312009-03-11 Robert Millan <rmh@aybabtu.com>
5932
5933 * loader/i386/multiboot.c (code_size): New variable.
5934 (grub_multiboot): Define offsets by adding to `code_size' rather
7d074e3c 5935 than subtracting from `grub_multiboot_payload_size'. Provide
1ca7fc96 5936 4-byte alignment to MBI and others by increasing
7d074e3c 5937 `boot_loader_name_length' appropriately.
1ca7fc96 5938
5939 * loader/i386/multiboot_elfxx.c
5940 (CONCAT(grub_multiboot_load_elf, XX)): Initialize `code_size'.
5941
a83ea1d2 59422009-03-09 Felix Zielcke <fzielcke@z-51.de>
5943
5944 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove duplicated
5945 `fs/ext2.c'.
5946
aa9f3bff 59472009-03-08 Robert Millan <rmh@aybabtu.com>
5948
5949 Make loader/i386/linux.c usable on i386-pc again.
5950
5951 * kern/i386/pc/init.c (grub_machine_init): Disable addition of low
5952 memory to heap.
5953 * loader/i386/linux.c [GRUB_MACHINE_PCBIOS] (allocate_pages): Remove
5954 `#error' stanza.
5955
d8b3b60e 59562009-03-07 Bean <bean123ch@gmail.com>
5957
5958 * loader/i386/efi/linux.c (grub_rescue_cmd_initrd): Fix a bug in initrd
5959 allocation.
5960
b362c9e9 59612009-03-06 Robert Millan <rmh@aybabtu.com>
5962
5963 Fix display issue on terminals with screen size other than 80x25
5964 (e.g. gfxterm with resolution higher than 640x480).
5965
5966 * normal/main.c (grub_normal_init_page): Display title text in a
7d074e3c 5967 position relative to the center of the terminal instead of relying
b362c9e9 5968 on a hardcoded offset.
5969
9304eef1 59702009-03-04 Robert Millan <rmh@aybabtu.com>
5971
5972 Filter /etc/grub.d/10_* so that only add-ons for native kernels are
5973 installed.
5974
5975 * Makefile.in (host_kernel): New variable.
5976 * conf/common.rmk (grub-mkconfig_SCRIPTS): Conditionalize all 10_*.in
5977 scripts instead of just the windows one.
5978 * configure.ac: Initialize and AC_SUBST `host_kernel'.
5979
eabc95fb 59802009-03-04 Felix Zielcke <fzielcke@z-51.de>
2ba60b62 5981
5982 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `kern/list.c' and
5983 `kern/handler.c'.
5984 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
5985 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
5986 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
5987 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5988 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5989 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5990
ceb1223c 59912009-03-04 Felix Zielcke <fzielcke@z-51.de>
5992
5993 * partmap/pc.c (pc_partition_map_iterate): Skip over invalid BSD partitions
5994 or if there's no space for the disk label and print the partition number on a
5995 invalid magic.
5996
4910684a 59972009-03-04 Felix Zielcke <fzielcke@z-51.de>
5998
5999 * util/misc.c: Include <time.h>.
6000 (grub_millisleep): New function.
6001
7e9ca17a 60022009-03-04 Bean <bean123ch@gmail.com>
6003
6004 * configure.ac: Only test -mcmodel=large option in x86_64-efi, also add
6005 another option -mno-red-zone.
6006
6007 * commands/handler.c: Change module description.
6008
6009 * kern/handler.c: Add missing space at the end of description line.
6010
6011 * kern/list.c: Likewise.
6012
f501677c 60132009-03-03 Robert Millan <rmh@aybabtu.com>
6014
6015 Move more components to the relocation area, and fix mbi pointer
6016 handling to use the destination rather than the origin (thanks to
6017 Vladimir Serbinenko for spotting).
6018
6019 * loader/i386/multiboot.c (mbi_dest): New variable.
6020 (grub_multiboot_boot): Use `mbi_dest' instead of `mbi'.
6021 (grub_multiboot): Put cmdline, boot_loader_name and mbi in the
6022 relocation area.
6023
9902d047 60242009-03-01 Bean <bean123ch@gmail.com>
6025
50fb7002 6026 * include/grub/efi/api.h (GRUB_EFI_MPS_TABLE_GUID): New constant.
9902d047 6027 (GRUB_EFI_ACPI_TABLE_GUID): Likewise.
6028 (GRUB_EFI_ACPI_20_TABLE_GUID): Likewise.
6029 (GRUB_EFI_SMBIOS_TABLE_GUID): Likewise.
6030
6031 * loader/i386/efi/linux.c (acpi_guid): New variable.
6032 (acpi_guid): Likewise.
6033 (EBDA_SEG_ADDR): New constant.
6034 (LOW_MEM_ADDR): Likewise.
6035 (FAKE_EBDA_SEG): Likewise.
6036 (fake_bios_data): New function.
6037 (grub_linux_boot): Call fake_bios_data.
6038
71b9f361 60392009-03-01 Bean <bean123ch@gmail.com>
6040
6041 * commands/terminal.c: Removed.
6042
6043 * commands/handler.c: New file.
6044
6045 * include/grub/list.h: Likewise.
6046
6047 * include/grub/handler.h: Likewise.
6048
6049 * kern/list.c: Likewise.
6050
6051 * kern/handler.c: Likewise.
6052
6053 * kern/term.h: Include header file <grub/handler.h>.
6054 (grub_term_input): Move next field to the beginning.
6055 (grub_term_output): Likewise.
6056 (grub_term_input_class): New variable.
6057 (grub_term_output_class): Likewise.
6058 (grub_term_register_input): Changed to inline function.
6059 (grub_term_register_output): Likewise.
6060 (grub_term_unregister_input): Likewise.
6061 (grub_term_unregister_output): Likewise.
6062 (grub_term_set_current_input): Likewise.
6063 (grub_term_set_current_output): Likewise.
6064 (grub_term_get_current_input): Likewise.
6065 (grub_term_get_current_output): Likewise.
6066 (grub_term_iterate_input): Removed.
6067 (grub_term_iterate_output): Likewise.
6068
6069 * kern/term.c (grub_term_list_input): Removed.
6070 (grub_term_list_output): Likewise.
6071 (grub_term_input_class): New variable.
6072 (grub_term_output_class): Likewise.
50fb7002 6073 (grub_cur_term_input): Change variable as macro.
71b9f361 6074 (grub_cur_term_output): Likewise.
6075 (grub_term_register_input): Removed.
6076 (grub_term_register_output): Likewise.
6077 (grub_term_unregister_input): Likewise.
6078 (grub_term_unregister_output): Likewise.
6079 (grub_term_set_current_input): Likewise.
6080 (grub_term_set_current_output): Likewise.
6081 (grub_term_iterate_input): Likewise.
6082 (grub_term_iterate_output): Likewise.
6083 (grub_term_get_current_input): Likewise.
6084 (grub_term_get_current_output): Likewise.
6085
6086 * util/grub-editenv.c: Include header file <grub/handler.h>.
6087 (grub_term_get_current_input): Removed.
6088 (grub_term_get_current_output): Likewise.
6089 (grub_term_input_class): New variable.
50fb7002 6090 (grub_term_output_class): Likewise.
71b9f361 6091
6092 * util/grub-fstest.c (grub_term_get_current_input): Removed.
6093 (grub_term_get_current_output): Likewise.
6094 (grub_term_input_class): New variable.
50fb7002 6095 (grub_term_output_class): Likewise.
71b9f361 6096
6097 * util/grub-probe.c (grub_term_get_current_input): Removed.
6098 (grub_term_get_current_output): Likewise.
6099 (grub_term_input_class): New variable.
50fb7002 6100 (grub_term_output_class): Likewise.
71b9f361 6101
6102 * util/i386/pc/grub-setup.c (grub_term_get_current_input): Removed.
6103 (grub_term_get_current_output): Likewise.
6104 (grub_term_input_class): New variable.
50fb7002 6105 (grub_term_output_class): Likewise.
71b9f361 6106
6107 * conf/common.rmk (pkglib_MODULES): Replace terminal with handler.
6108 (terminal_mod_SOURCES): Likewise.
6109 (terminal_mod_CFLAGS): Likewise.
6110 (terminal_mod_LDFLAGS): Likewise.
6111
6112 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace terminal.c with
6113 handler.c.
6114 (kernel_img_SOURCES): Add list.c and handler.c.
6115 (kernel_img_HEADERS): Add list.h and handler.h.
6116
6117 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
6118 handler.c.
6119 (kernel_mod_SOURCES): Add list.c and handler.c.
6120 (kernel_mod_HEADERS): Add list.h and handler.h.
6121
6122 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Replace terminal.c with
6123 handler.c.
6124 (kernel_elf_SOURCES): Add list.c and handler.c.
6125 (kernel_elf_HEADERS): Add list.h and handler.h.
6126
6127 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
6128 handler.c.
6129 (kernel_elf_SOURCES): Add list.c and handler.c.
6130 (kernel_elf_HEADERS): Add list.h and handler.h.
6131
6132 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Replace terminal.c with
6133 handler.c.
6134 (kernel_mod_SOURCES): Add list.c and handler.c.
6135 (kernel_mod_HEADERS): Add list.h and handler.h.
6136
6137 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace terminal.c with
6138 handler.c.
6139 (kernel_elf_SOURCES): Add list.c and handler.c.
6140 (kernel_elf_HEADERS): Add list.h and handler.h.
6141
8a31787f 61422009-02-27 Robert Millan <rmh@aybabtu.com>
6143
6144 Factorize elf32 / elf64 code in Multiboot loader. This will
6145 prevent it from getting out of sync again.
6146
6147 * loader/i386/multiboot.c (grub_multiboot_is_elf32,
6148 grub_multiboot_load_elf32, grub_multiboot_is_elf64,
6149 grub_multiboot_load_elf64): Move from here ...
6150 * loader/i386/multiboot_elfxx.c (grub_multiboot_is_elf,
6151 grub_multiboot_load_elf): ... to here (new file).
6152
51cd3dfc 61532009-02-27 Robert Millan <rmh@aybabtu.com>
6154
6155 * util/grub.d/10_linux.in: Rename "single-user mode" to
6156 "recovery mode".
6157
6e8c9c3a 61582009-02-27 Vladimir Serbinenko <phcoder@gmail.com>
6159
6160 Don't leak in SCSI code.
6161 * disk/scsi.c (grub_scsi_close): free `scsi'.
6162
4b6bf4f9 61632009-02-27 Robert Millan <rmh@aybabtu.com>
6164
6165 * loader/i386/pc/multiboot.c: Move from here ...
6166 * loader/i386/multiboot.c: ... to here. Update all users.
6167
b9413424 61682009-02-27 Robert Millan <rmh@aybabtu.com>
6169
6170 Patch from Alexandre Bique <bique.alexandre@gmail.com>
6171 * util/i386/pc/grub-setup.c (setup): Fix directory path.
6172
50fb7002 61732009-02-27 Krzysztof Smiechowicz <deadwood@wp.pl>
34519c3f 6174
6175 * fs/sfs.c (grub_sfs_read_extent): Correction to traversing extent
6176 b-tree.
6177
8cc50345 61782009-02-27 Robert Millan <rmh@aybabtu.com>
6179
6180 * kern/misc.c (grub_strtoull): Fix bug (it mistakenly parsed the
6181 `0x' qualifier as 0 when base is specified as parameter).
6182
6e09b8b7 61832009-02-24 Bean <bean123ch@gmail.com>
6184
6185 * configure.ac: Check for -mcmodel=large in x86_64 target.
6186
6187 * include/grub/efi/api.h (efi_call_10): New macro.
6188 (efi_wrap_10): New function.
6189
6190 * include/grub/efi/pe32.h (GRUB_PE32_REL_BASE_HIGH): New macro.
6191 (GRUB_PE32_REL_BASED_HIGH): Likewise.
6192 (GRUB_PE32_REL_BASED_LOW): Likewise.
6193 (GRUB_PE32_REL_BASED_HIGHLOW): Likewise.
6194 (GRUB_PE32_REL_BASED_HIGHADJ): Likewise.
6195 (GRUB_PE32_REL_BASED_MIPS_JMPADDR): Likewise.
6196 (GRUB_PE32_REL_BASED_SECTION): Likewise.
6197 (GRUB_PE32_REL_BASED_REL): Likewise.
6198 (GRUB_PE32_REL_BASED_IA64_IMM64): Likewise.
6199 (GRUB_PE32_REL_BASED_DIR64): Likewise.
6200 (GRUB_PE32_REL_BASED_HIGH3ADJ): Likewise.
6201
6202 * kern/x86_64/dl.c (grub_arch_dl_relocate_symbols): Fixed relocation
6203 issue.
6204
6205 * kern/x86_64/efi/callwrap.S (efi_wrap_6): Bug fix.
6206 (efi_wrap_10): New function.
6207
6208 * kern/x86_64/efi/startup.S (codestart): Use relative addressing.
6209
6210 * loader/efi/appleloader.c (devpath_5): Add support for late 2008
6211 MB/MBP model (NV chipset).
6212 (devdata_devs): Add devpath_5 to the list.
6213
6214 * load/i386/efi/linux.c (video_base): Remove variable.
6215 (RGB_MASK): New macro.
6216 (RGB_MAGIC): Likewise.
6217 (LINE_MIN): Likewise.
6218 (LINE_MAX): Likewise.
6219 (FBTEST_STEP): Likewise.
6220 (FBTEST_COUNT): Likewise.
6221 (fb_list): New variable.
6222 (grub_find_video_card): Remove function.
6223 (find_framebuf): New function.
6224 (grub_linux_setup_video): Use find_framebuf to get frame buffer and
6225 line length.
6226
6227 * util/i386/efi/grub-mkimage.c (grub_reloc_section): Fix relocation
6228 problem for x86_64.
6229
74b21bee 62302009-02-22 Vesa Jääskeläinen <chaac@nic.fi>
6231
6232 Patch #25624 by Kevin Lacquement <kevin@lacqui>.
6233
6234 * util/grub-mkconfig.in: Use ${grub_mkdevicemap} instead of hard
6235 coding tool name.
6236
a455f472 62372009-02-22 Robert Millan <rmh@aybabtu.com>
6238
6239 * include/multiboot.h (MULTIBOOT_INFO_ALIGN): New macro.
6240 * loader/i386/pc/multiboot.c (grub_multiboot): Include the MBI
6241 in our relocation, instead of using it directly from heap. Also
6242 use `MULTIBOOT_INFO_ALIGN' to ensure it is aligned.
6243
6374daf3 62442009-02-21 Robert Millan <rmh@aybabtu.com>
6245
6246 Implement USB keyboard support (based on patch by Marco Gerards)
6247
6248 * conf/i386-pc.rmk (pkglib_MODULES): Add `usb_keyboard.mod'.
6249 (usb_keyboard_mod_SOURCES, usb_keyboard_mod_CFLAGS)
6250 (usb_keyboard_mod_LDFLAGS): New variables.
6251
6252 * term/usb_keyboard.c: New file.
6253
8fa4ea70 62542009-02-14 Vladimir Serbinenko <phcoder@gmail.com>
6255
6256 Corrected wrong declaration
6257
6258 * kern/disk.c: corrected declaration of grub_disk_ata_pass_through.
6259
353976ac 62602009-02-14 Christian Franke <franke@computer.org>
6261
6262 * commands/lspci.c (grub_pci_classes): Add `SATA Controller'.
6263 (grub_lspci_iter): Print class code and programming interface byte.
6264
6aa1169b 62652009-02-14 Christian Franke <franke@computer.org>
6266
6267 * gendistlist.sh: Ignore `.svn' directories.
6268
265372ca 62692009-02-14 Felix Zielcke <fzielcke@z-51.de>
6270
6271 * fs/fat.c: Add 2009 to Copyright line.
6272
9ff516f3 62732009-02-14 Christian Franke <franke@computer.org>
6274
6275 * commands/hdparm.c: New file. Provides `hdparm' command
6276 which sends ATA commands via grub_disk_ata_pass_through ().
6277
6278 * conf/i386-pc.rmk: Add ata_pthru.mod and hdparm.mod.
6279
6280 * disk/ata.c: Include <grub/ata.h>. Move <grub/misc.h>
6281 and <grub/cpu/io.h> to include/grub/ata.h.
6282 (enum grub_ata_addressing_t): Move to include/grub/ata.h.
6283 (GRUB_CDROM_SECTOR_SIZE): Remove.
6284 (GRUB_ATA_*): Move to include/grub/ata.h.
6285 (GRUB_ATAPI_*): Likewise.
6286 (enum grub_ata_commands): Likewise.
6287 (enum grub_ata_timeout_milliseconds): Likewise.
6288 (struct grub_ata_device): Likewise.
6289 (grub_ata_regset): Likewise.
6290 (grub_ata_regget): Likewise.
6291 (grub_ata_regset2): Likewise.
6292 (grub_ata_regget2): Likewise.
6293 (grub_ata_check_ready): Likewise.
6294 (grub_ata_wait_not_busy): Remove static, exported in
6295 include/grub/ata.h.
6296 (grub_ata_wait_drq): Likewise.
6297 (grub_ata_pio_read): Likewise.
6298
6299 * disk/ata_pthru.c: New file. Provides grub_ata_pass_through ()
6300 function for hdparm.mod.
6301
6302 * include/grub/ata.h: New file, contains declarations from
6303 disk/ata.c.
6304 (enum grub_ata_commands): Add new commands for commands/hdparm.c.
6305
6306 * include/grub/disk.h (grub_disk_ata_pass_through_parms): New struct.
6307 (grub_disk_ata_pass_through): New exported variable.
6308
6309 * kern/disk.c (grub_disk_ata_pass_through): New variable.
6310
772e23da 63112009-02-13 Colin D Bennett <colin@gibibit.com>
6312
6313 Support multiple fallback entries, and provide an API to support
6314 executing default+fallback menu entries. Renamed the `terminal' menu
6315 viewer to `text'.
6316
6317 * include/grub/normal.h (grub_normal_text_menu_viewer): New global
6318 variable declaration.
6319 (grub_menu_execute_callback): New structure declaration.
6320 (grub_menu_execute_callback_t): New typedef.
6321 (grub_menu_execute_with_fallback): New function declaration.
6322 (grub_menu_get_entry): Likewise.
6323 (grub_menu_get_timeout): Likewise.
6324 (grub_menu_set_timeout): Likewise.
6325
6326 * normal/main.c (GRUB_MOD_INIT(normal)): Refer to new variable name.
6327
6328 * normal/menu.c (grub_wait_after_message): Moved to
6329 `normal/menu_text.c'.
6330 (draw_border): Likewise.
6331 (print_message): Likewise.
6332 (print_entry): Likewise.
6333 (print_entries): Likewise.
6334 (grub_menu_init_page): Likewise.
6335 (get_entry_number): Likewise.
6336 (print_timeout): Likewise.
6337 (run_menu): Likewise.
6338 (grub_menu_execute_entry): Likewise.
6339 (show_text_menu): Likewise.
6340 (get_and_remove_first_entry_number): New function.
6341 (grub_menu_execute_with_fallback): Likewise.
6342 (get_entry): Renamed to ...
6343 (grub_menu_get_entry): .. this and made it global.
6344 (get_timeout): Renamed to ...
6345 (grub_menu_get_timeout): ... this and made it global.
6346 (set_timeout): Renamed to ...
6347 (grub_menu_set_timeout): ... this and made it global.
6348 (grub_normal_terminal_menu_viewer): Renamed to ...
6349 (grub_normal_text_menu_viewer): ... this.
6350
6351 * normal/menu_text.c: New file. Extracted text-menu-specific code
6352 from normal/menu.c.
6353
6354 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add `normal/menu_text.c'.
6355 (normal_mod_SOURCES): Likewise.
6356
6357 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
6358 (normal_mod_SOURCES): Likewise.
6359
6360 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6361 (normal_mod_SOURCES): Likewise.
6362
6363 * conf/i386-pc.rmk, (grub_emu_SOURCES): Likewise.
6364 (normal_mod_SOURCES): Likewise.
6365
6366 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6367 (normal_mod_SOURCES): Likewise.
6368
6369 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6370 (normal_mod_SOURCES): Likewise.
6371
6372 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
6373 (normal_mod_SOURCES): Likewise.
6374
16ac430e 63752009-02-11 Robert Millan <rmh@aybabtu.com>
6376
6377 * util/grub.d/00_header.in: Update old reference to `font' command.
6378
06ff20fc 63792009-02-10 Felix Zielcke <fzielcke@z-51.de>
6380
6381 * fs/fat.c (grub_fat_mount): Fix wrong comparison.
6382
6383 Based on patch from Javier Martín.
6384
96da9407 63852009-02-09 Felix Zielcke <fzielcke@z-51.de>
6386
6387 * conf/common.rmk (grub_probe_SOURCES): Move fs/ext2.c before fs/fat.c
50fb7002 6388 to avoid false positives with FAT.
96da9407 6389 (grub_fstest_SOURCES): Likewise.
6390 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
6391 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
6392 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6393 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
6394 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6395 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6396
6dca6fe4 63972009-02-09 Felix Zielcke <fzielcke@z-51.de>
6398
06ff20fc 6399 * fs/fat.c (grub_fat_mount): Try to avoid false positives by checking
6dca6fe4 6400 bpb.version_specific.fat12_or_fat16.fstype and
6401 bpb.version_specific.fat32.fstype.
6402
2550c62f 64032009-02-08 Robert Millan <rmh@aybabtu.com>
6404
be110b30 6405 * fs/tar.c: Replace "fs/cpio.c" with "cpio.c".
2550c62f 6406
56978920 64072009-02-08 Robert Millan <rmh@aybabtu.com>
6408
6409 * Makefile.in (host_os, host_cpu): New variables.
6410 (target_os): Remove. Update all users.
6411
d64399b5 64122009-02-08 Marco Gerards <marco@gnu.org>
6413
6414 * Makefile.in (enable_grub_emu_usb): New variable.
6415 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/scsi.c'.
6416 (grub_emu_SOURCES) [grub_emu_SOURCES]: Add `disk/usbms.c',
6417 `util/usb.c', `bus/usb/usb.c' and `commands/usbtest.c'.
6418 (grub_emu_LDFLAGS): Add `$(LIBUSB)'.
6419 (pkglib_MODULES): Add `usb.mod', `uhci.mod', `ohci.mod',
6420 `usbtest.mod' and `usbms.mod'.
6421 (usb_mod_SOURCES, usb_mod_CFLAGS, usb_mod_LDFLAGS)
6422 (usbtest_mod_SOURCES, usbtest_mod_CFLAGS, usbtest_mod_LDFLAGS)
6423 (uhci_mod_SOURCES, uhci_mod_CFLAGS, uhci_mod_LDFLAGS,
6424 (ohci_mod_SOURCES, ohci_mod_CFLAGS, ohci_mod_LDFLAGS)
6425 (usbms_mod_SOURCES, usbms_mod_CFLAGS, usbms_mod_LDFLAGS): New
6426 variables.
6427
6428 * disk/usbms.c: New file.
6429
6430 * include/grub/usb.h: Likewise.
6431
6432 * include/grub/usbtrans.h: Likewise.
6433
6434 * include/grub/usbdesc.h: Likewise.
6435
6436 * bus/usb/usbtrans.c: Likewise.
6437
6438 * bus/usb/ohci.c: Likewise.
6439
6440 * bus/usb/uhci.c: Likewise.
6441
6442 * bus/usb/usbhub.c: Likewise.
6443
6444 * bus/usb/usb.c: Likewise.
6445
6446 * commands/usbtest.c: Likewise.
6447
6448 * util/usb.c: Likewise.
50fb7002 6449
d64399b5 6450 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_IO'.
6451
6452 * configure.ac: Test for libusb presence.
50fb7002 6453
d64399b5 6454 * util/grub-emu.c (main) [HAVE_LIBUSB_H]: Call `grub_libusb_init'.
6455
2b40d6bb 64562009-02-08 Vesa Jääskeläinen <chaac@nic.fi>
6457
6458 * kern/mm.c: Add more comments.
6459
73a4ce81 64602009-02-08 Robert Millan <rmh@aybabtu.com>
6461
6462 Patch from Javier Martín.
6463 * fs/ext2.c (EXT2_DRIVER_SUPPORTED_INCOMPAT): Add
6464 `EXT4_FEATURE_INCOMPAT_FLEX_BG'.
6465
f821ce59 64662009-02-08 Robert Millan <rmh@aybabtu.com>
6467
6468 * fs/cpio.c: Split tar functionality to ...
6469 * fs/tar.c: ... here (new file). Update all users.
6470
aebfc4b0 64712009-02-07 Robert Millan <rmh@aybabtu.com>
6472
6473 * fs/ext2.c (grub_ext2_mount): Avoid mounting filesystems with
6474 backward-incompatible features.
6475
6476 Based on patch from Javier Martín, with some adjustments.
6477
50fb7002 64782009-02-07 Michael Scherer <misc@mandriva.org>
cea15bca 6479
6480 * fs/hfs.c (grub_hfsplus_iterate_dir): Treat hfs+ as case insensitive.
6481
0bb5115e 64822009-02-07 Robert Millan <rmh@aybabtu.com>
6483
6484 * conf/common.rmk (grub_probe_SOURCES, grub_fstest_SOURCES): Move
6485 position of `disk/lvm.c' to ensure grub_init_all() always picks it
6486 after the RAID stuff.
6487
38a0f8e7 64882009-02-05 Vesa Jääskeläinen <chaac@nic.fi>
6489
50fb7002 6490 Fixes problem when running vbetest command as reported by
38a0f8e7 6491 Vladimir Serbinenko <phcoder@gmail.com>.
6492
6493 * (grub_vbe_set_video_mode): Fixed problem with text modes.
6494
3143cc1c 64952009-02-04 Felix Zielcke <fzielcke@z-51.de>
6496
6497 util/getroot.c (grub_util_get_grub_dev): Add support for /dev/mdNpN and
6498 /dev/md/NpN style mdraid devices.
6499
9cba6fce 65002009-02-03 Felix Zielcke <fzielcke@z-51.de>
6501
6502 * util/unifont2pff.rb: Remove.
6503
e507a2c1 65042009-02-03 Felix Zielcke <fzielcke@z-51.de>
6505
6506 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add a missing trailing
6507 `#'.
6508
d2c2b4cd 65092009-02-03 Felix Zielcke <fzielcke@z-51.de>
6510
6511 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/menu_viewer.c'.
6512 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
6513 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
6514 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Likewise.
6515 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6516 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6517 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6518
b4315fb0 65192009-02-02 Christian Franke <franke@computer.org>
6520
6521 * lib/hexdump.c (hexdump): Print at most 3 lines if data is identical.
6522
de3aa260 65232009-02-01 Felix Zielcke <fzielcke@z-51.de>
6524
7c3ff286 6525 * INSTALL: Note that we now require at least autoconf 2.59 and
6526 that LZO is optional.
de3aa260 6527
825a182b 65282009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
6529
6530 Base on patch on bug #24154 created by Tomas Tintera
6531 <trosos@seznam.cz>.
6532
6533 * video/i386/pc/vbe.c (grub_video_vbe_scroll): Fix downward scrolling.
6534
a69ef770 65352009-02-01 Vesa Jääskeläinen <chaac@nic.fi>
6536
7c3ff286 6537 Based on patch on bug #25318 created by Bernhard Rosenkraenzer
a69ef770 6538 <bero@arklinux.org>.
6539
6540 * normal/parser.y (script_init): Add missing semicolon.
6541
6fa42fa6 65422009-01-31 Colin D Bennett <colin@gibibit.com>
6543
7c3ff286 6544 * normal/main.c: Add include to grub/menu_viewer.h.
6fa42fa6 6545 (free_menu_entry_classes): Added.
6546 (grub_normal_menu_addentry): Added class property handling.
6547 (grub_normal_execute): Changed to use new menu viewer for menu viewing.
6548 (GRUB_MOD_INIT(normal)): Added register for text based menu viewer.
6549
6550 * normal/menu_viewer.c: New file.
6551
6552 * normal/menu.c (run_menu_entry): Renamed to ...
6553 (grub_menu_execute_entry): ... this and made it as global.
6554 (grub_menu_run): Renamed to ...
6555 (show_text_menu): ... this and made it local.
6556 (show_text_menu): Adapt to new function names.
6557 (grub_normal_terminal_menu_viewer): New global variable.
6558
6559 * include/grub/menu.h: New file.
6560
6561 * include/grub/menu_viewer.h: New file.
6562
6563 * include/grub/normal.h: Added include to grub/menu.h.
6564 (grub_menu_entry): Moved to include/grub/menu.h.
6565 (grub_menu_entry_t): Likewise.
6566 (grub_menu): Likewise.
6567 (grub_menu_t): Likewise.
6568 (grub_normal_terminal_menu_viewer): Added.
6569 (grub_menu_execute_entry): Likewise.
6570 (grub_menu_run): Removed.
6571
6572 * DISTLIST: Added include/grub/menu.h.
6573 Added include/grub/menu_viewer.h.
6574 Added normal/menu_viewer.c.
6575
65762009-01-31 Vesa Jääskeläinen <chaac@nic.fi>
6577
6578 * normal/execute.c (grub_script_execute_menuentry): Changed to use
6579 arglist for menutitle arguments.
6580
6581 * normal/main.c (grub_normal_menu_addentry): Likewise.
6582
6583 * normal/parser.y (menuentry): Likewise.
6584
6585 * normal/script.c (grub_script_create_cmdmenu): Likewise.
6586
6587 * include/grub/script.h (grub_script_cmd_menuentry): Likewise.
6588 (grub_script_create_cmdmenu): Likewise.
6589
6590 * include/grub/normal.h (grub_normal_menu_addentry): Likewise.
6591
6592 * conf/i386-pc.rmk (normal_mod_SOURCES): Adapt Colin D Bennett's
6593 changes.
6594
6595 * conf/x86_64-efi.rmk (normal_mod_SOURCES): Likewise.
6596
6597 * conf/i386-coreboot.rmk (normal_mod_SOURCES): Likewise.
6598
6599 * conf/i386-efi.rmk (normal_mod_SOURCES): Likewise.
6600
6601 * conf/i386-ieee1275.rmk (normal_mod_SOURCES): Likewise.
6602
6603 * conf/powerpc-ieee1275.rmk (normal_mod_SOURCES): Likewise.
6604
6605 * conf/sparc64-ieee1275.rmk (normal_mod_SOURCES): Likewise.
6606
56192c23 66072009-01-30 Christian Franke <franke@computer.org>
6608
6609 * normal/arg.c (grub_arg_show_help): Add indentation if '\n' appears
6610 in option help text.
6611
d72521b3 66122009-01-27 Pavel Roskin <proski@gnu.org>
6613
6614 * disk/fs_uuid.c (search_fs_uuid): Ignore case of the UUID.
6615
994b5e84 66162009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
6617
6618 * commands/lsmmap.c: Add include to grub/machine/memory.h.
6619
6620 * fs/i386/pc/pxe.c (grub_pxefs_open): Fix sign problem.
6621
6622 * term/i386/pc/at_keyboard.c (GRUB_MOD_FINI(at_keyboard)): Use proper
6623 unregister function.
6624
6a7eab2c 66252009-01-27 Vesa Jääskeläinen <chaac@nic.fi>
6626
6627 * disk/scsi.c (grub_scsi_read): Fix sign problem.
6628
6629 * term/i386/pc/vga_text.c (grub_vga_text_init_fini). Fix declaration.
6630
6631 * util/grub-mkfont.c (usage): Fix typo.
6632
6633 * util/elf/grub-mkimage.c (load_modules): Fix warning.
6634
1806b56e 66352009-01-26 Daniel Mierswa <impulze@impulze.org>
6636
3fb18f09 6637 * fs/fat.c (grub_fat_uuid): Fix shift of the first two bytes.
6638
336e1fb9 6639 * commands/search.c (search_fs_uuid): Ignore case of the UUID.
6640
1806b56e 6641 * kern/misc.c (grub_strcasecmp): New function.
6642 (grub_strcasecmp): Use grub_size_t instead of int for length.
6643 Fix return value.
6644 * include/grub/misc.h: Update function prototypes.
6645
580b2a0f 66462009-01-26 Robert Millan <rmh@aybabtu.com>
6647
6648 * configure.ac: Fix cross-compilation check.
ef257b36 6649
d31c24f1 66502009-01-22 Christian Franke <franke@computer.org>
6651
6652 * kern/misc.c (grub_vsprintf): Fix size and termination of `format2'
6653 (precision) digit string. Allow `.format2' without `format1' (width).
6654 Limit input chars for `%s' output to `format2' if specified. This is
6655 compatible with standard printf ().
6656
3138b44c 66572009-01-22 Christian Franke <franke@computer.org>
6658
6659 * disk/ata.c (grub_ata_wait_status): Replace by ...
6660 (grub_ata_wait_not_busy): ... this function. Checks only BSY bit,
6661 other status bits may be invalid while BSY is asserted.
6662 (grub_ata_check_ready): New function.
6663 (grub_ata_cmd): Removed.
6664 (grub_ata_wait_drq): New function.
6665 (grub_ata_strncpy): Remove inline.
6666 (grub_ata_pio_read): Reduce to actual block transfer. BSY wait
6667 and error check now done by grub_ata_wait_drq ().
6668 (grub_ata_pio_write): Likewise.
6669 (grub_atapi_identify): Set DEV before check for !BSY. Use
6670 grub_ata_wait_drq () to wait for data.
6671 (grub_ata_device_initialize): Add status register check to
6672 detect missing SATA slave devices. Add debug messages.
6673 (grub_atapi_wait_drq): Use grub_ata_wait_not_busy ().
6674 (grub_atapi_packet): Set DEV before check for !BSY. Replace
6675 transfer loop by grub_ata_pio_write ().
6676 (grub_ata_identify): Set DEV before check for !BSY. Use
6677 grub_ata_wait_drq () to wait for data.
ef257b36 6678 (grub_ata_setaddress): Set DEV before check for !BSY.
3138b44c 6679 (grub_ata_readwrite): Remove duplicate code, handle batch/rest and
6680 read/write in one loop. Fix invalid command on write. Fix incomplete
6681 command on (size % batch) == 0. Add missing error check after write of
6682 last block. Add debug messages.
6683 (grub_atapi_read): Replace transfer loop by grub_ata_pio_read ().
6684
59a64ef6 66852009-01-19 Christian Franke <franke@computer.org>
6686
6687 * disk/ata.c (GRUB_ATAPI_REG_*): New defines.
6688 (GRUB_ATAPI_IREASON_*): Likewise.
6689 (grub_ata_pio_write): Fix timeout error return.
6690 (grub_atapi_identify): Add grub_ata_wait () after cmd.
6691 (grub_atapi_wait_drq): New function.
6692 (grub_atapi_packet): New parameter `size'.
6693 Use grub_atapi_wait_drq () and direct write instead of
6694 grub_ata_pio_write ().
6695 (grub_atapi_read): Replace grub_ata_pio_read () by a loop which
6696 reads the number of bytes requested by the device for each DRQ
6697 assertion.
6698 (grub_atapi_write): Remove old implementation, return not
6699 implemented instead.
6700
1cfe20b3 67012009-01-19 Christian Franke <franke@computer.org>
6702
6703 * disk/scsi.c (grub_scsi_read10): Use scsi->blocksize instead
6704 of 512 to calculate data size.
6705 (grub_scsi_read12): Likewise.
6706 (grub_scsi_write10): Likewise.
6707 (grub_scsi_write12): Likewise.
6708 (grub_scsi_read): Adjust size according to blocksize.
6709 Add checks for invalid blocksize and unaligned transfer.
6710
bee5fe5d 67112009-01-19 Vesa Jääskeläinen <chaac@nic.fi>
6712
6713 * font/font.c (grub_font_loader_init): Re-position unknown glyph.
6714
ef257b36 6715 * term/gfxterm.c (write_char): Fix background rendering for wide
bee5fe5d 6716 width glyphs.
6717
3e643f8c 67182009-01-19 Robert Millan <rmh@aybabtu.com>
6719
6720 * config.guess: Update to latest version from config git.
6721 * config.sub: Likewise.
6722
4fa80998 67232009-01-17 Felix Zielcke <fzielcke@z-51.de>
6724
6725 * Makefile.in: Change font compilation to use new grub-mkfont instead
6726 of java version.
6727
6728 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: Remove.
6729 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
6730 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
6731 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
6732 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
6733 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
6734 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
6735 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
6736 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
6737
7086085b 67382009-01-16 Christian Franke <franke@computer.org>
6739
6740 * disk/ata.c (enum grub_ata_commands): Remove EXEC_DEV_DIAGNOSTICS.
6741 (enum grub_ata_timeout_milliseconds): New enum.
6742 (grub_ata_wait_status): Add parameter milliseconds.
6743 (grub_ata_cmd): Remove variable `err'. Remove wait for !DRQ to allow
6744 recovery from timed-out commands.
6745 (grub_ata_pio_read): Add parameter milliseconds. Fix error return,
6746 return grub_errno instead of REG_ERROR.
6747 (grub_ata_pio_write): Add parameter milliseconds.
6748 (grub_atapi_identify): Fix size of ATAPI IDENTIFY sector.
6749 Pass milliseconds to grub_ata_wait_status () and
6750 grub_ata_pio_read ().
6751 (grub_atapi_packet): Pass milliseconds to grub_ata_pio_write ().
6752 (grub_ata_identify): Remove variable `ataerr'. Pass milliseconds to
6753 grub_ata_wait_status (). Fix IDENTIFY timeout check.
6754 (grub_ata_device_initialize): Remove EXECUTE DEVICE DIAGNOSTICS.
6755 It is not suitable for device detection, because DEV bit is ignored,
6756 the command may run too long, and not all devices set the signature
6757 properly.
6758 (grub_ata_pciinit): Clear grub_errno before grub_ata_device_initialize ().
6759 (grub_ata_setaddress): Pass milliseconds to grub_ata_wait_status ().
6760 Fix device selection, DEV bit must be set first to address the registers
6761 of the correct device.
6762 (grub_ata_readwrite): Pass milliseconds to grub_ata_wait_status () and
6763 grub_ata_pio_read/write ().
6764 (grub_atapi_read): Pass milliseconds to grub_ata_pio_read ().
6765 (grub_atapi_write): Pass milliseconds to grub_ata_pio_write ().
6766
4a412913 67672009-01-13 Carles Pina i Estany <carles@pina.cat>
6768
6769 * util/grub-editenv.c (main): Use fseeko(), not fseek().
6770
7795c55e 67712009-01-13 Bean <bean123ch@gmail.com>
d913988c 6772
6773 * util/grub-mkfont.c (write_font): forget to remove some debug code.
6774
7795c55e 67752009-01-13 Bean <bean123ch@gmail.com>
e52db1f7 6776
6777 * Makefile.in: (enable_grub_mkfont): New variable.
6778 (freetype_cflags): Likewise.
6779 (freetype_libs): Likewise.
6780
6781 * common.rmk (bin_UTILITIES): Add `grub-mkfont' if requested.
6782 (grub_mkfont_SOURCES): New variable.
6783 (grub_mkfont_CFLAGS): Likewise.
6784 (grub_mkfont_LDFLAGS): Likewise.
6785
6786 * configure.ac (--enable-grub-mkfont): New option. Check for freetype2
6787 library if `--enable-grub-mkfont' is requested.
6788 (enable_grub_mkfont): New variable.
6789 (freetype_cflags): Likewise.
6790 (freetype_libs): Likewise.
6791
6792 * util/grub-mkfont.c: New file.
6793
093af1fe 67942009-01-12 Christian Franke <franke@computer.org>
6795
6796 * disk/ata.c (grub_ata_pciinit): Fix bit numbers of compatibility
6797 mode check. Fix setting of compat_use[].
6798
f36cc108 67992009-01-10 Robert Millan <rmh@aybabtu.com>
6800
6801 Update a few copyright years which we forgot to do in 2008 (only for
6802 files whose changes made in 2008 were copyright-significant)
6803
6804 * Makefile.in: Add 2008 to Copyright line.
6805 * disk/ieee1275/ofdisk.c: Likewise.
6806 * disk/efi/efidisk.c: Likewise.
6807 * kern/dl.c: Likewise.
6808 * kern/sparc64/ieee1275/init.c: Likewise.
6809 * kern/mm.c: Likewise.
6810 * kern/efi/mm.c: Likewise.
6811 * boot/i386/pc/boot.S: Likewise.
6812 * genfslist.sh: Likewise.
6813 * fs/iso9660.c: Likewise.
6814 * fs/hfs.c: Likewise.
6815 * fs/jfs.c: Likewise.
6816 * fs/minix.c: Likewise.
6817 * fs/ufs.c: Likewise.
6818 * gensymlist.sh.in: Likewise.
6819 * genkernsyms.sh.in: Likewise.
6820 * include/grub/misc.h: Likewise.
6821 * include/grub/types.h: Likewise.
6822 * include/grub/symbol.h: Likewise.
6823 * include/grub/elf.h: Likewise.
6824 * include/grub/kernel.h: Likewise.
6825 * include/grub/disk.h: Likewise.
6826 * include/grub/dl.h: Likewise.
6827 * include/grub/i386/linux.h: Likewise.
6828 * include/grub/i386/pc/biosdisk.h: Likewise.
6829 * include/grub/efi/api.h: Likewise.
6830 * include/grub/efi/pe32.h: Likewise.
6831 * include/grub/util/misc.h: Likewise.
6832 * normal/execute.c: Likewise.
6833 * normal/arg.c: Likewise.
6834 * normal/completion.c: Likewise.
6835 * normal/lexer.c: Likewise.
6836 * normal/parser.y: Likewise.
6837 * normal/misc.c: Likewise.
6838 * commands/i386/pc/vbeinfo.c: Likewise.
6839 * commands/hexdump.c: Likewise.
6840 * commands/terminal.c: Likewise.
6841 * commands/ls.c: Likewise.
6842 * commands/help.c: Likewise.
6843 * partmap/pc.c: Likewise.
6844 * loader/efi/chainloader.c: Likewise.
6845 * loader/multiboot_loader.c: Likewise.
6846 * loader/i386/pc/multiboot2.c: Likewise.
6847 * term/efi/console.c: Likewise.
6848 * term/i386/pc/serial.c: Likewise.
6849 * util/lvm.c: Likewise.
6850 * util/console.c: Likewise.
6851 * util/i386/efi/grub-mkimage.c: Likewise.
6852 * util/raid.c: Likewise.
6853
7f02114b 68542009-01-06 Vesa Jääskeläinen <chaac@nic.fi>
6855
6856 * commands/videotest.c: Removed include to grub/machine/memory.h.
6857
6858 * conf/i386-pc.rmk (pkglib_MODULES): Removed video.mod, gfxterm.mod,
6859 videotest.mod, bitmap.mod, tga.mod, jpeg.mod, png.mod.
6860 (video_mod_SOURCES): Removed.
6861 (video_mod_CFLAGS): Likewise.
6862 (video_mod_LDFLAGS): Likewise.
6863 (gfxterm_mod_SOURCES): Likewise.
6864 (gfxterm_mod_CFLAGS): Likewise.
6865 (gfxterm_mod_LDFLAGS): Likewise.
6866 (videotest_mod_SOURCES): Likewise.
6867 (videotest_mod_CFLAGS): Likewise.
6868 (videotest_mod_LDFLAGS): Likewise.
6869 (bitmap_mod_SOURCES): Likewise.
6870 (bitmap_mod_CFLAGS): Likewise.
6871 (bitmap_mod_LDFLAGS): Likewise.
6872 (tga_mod_SOURCES): Likewise.
6873 (tga_mod_CFLAGS): Likewise.
6874 (tga_mod_LDFLAGS): Likewise.
6875 (jpeg_mod_SOURCES): Likewise.
6876 (jpeg_mod_CFLAGS): Likewise.
6877 (jpeg_mod_LDFLAGS): Likewise.
6878 (png_mod_SOURCES): Likewise.
6879 (png_mod_CFLAGS): Likewise.
6880 (png_mod_LDFLAGS): Likewise.
6881
6882 * conf/common.rmk (pkglib_MODULES): Added video.mod, videotest.mod,
6883 bitmap.mod, tga.mod, jpeg.mod, png.mod, font.mod, gfxterm.mod
6884 (video_mod_SOURCES): Added.
6885 (video_mod_CFLAGS): Likewise.
6886 (video_mod_LDFLAGS): Likewise.
6887 (videotest_mod_SOURCES): Likewise.
6888 (videotest_mod_CFLAGS): Likewise.
6889 (videotest_mod_LDFLAGS): Likewise.
6890 (bitmap_mod_SOURCES): Likewise.
6891 (bitmap_mod_CFLAGS): Likewise.
6892 (bitmap_mod_LDFLAGS): Likewise.
6893 (tga_mod_SOURCES): Likewise.
6894 (tga_mod_CFLAGS): Likewise.
6895 (tga_mod_LDFLAGS): Likewise.
6896 (jpeg_mod_SOURCES): Likewise.
6897 (jpeg_mod_CFLAGS): Likewise.
6898 (jpeg_mod_LDFLAGS): Likewise.
6899 (png_mod_SOURCES): Likewise.
6900 (png_mod_CFLAGS): Likewise.
6901 (png_mod_LDFLAGS): Likewise.
6902 (gfxterm_mod_SOURCES): Likewise.
6903 (gfxterm_mod_CFLAGS): Likewise.
7795c55e 6904 (gfxterm_mod_LDFLAGS): Likewise.
7f02114b 6905
6906 * term/gfxterm.c: Removed include to grub/machine/memory.h,
6907 grub/machine/console.h.
6908
644fff97 69092009-01-04 Jerone Young <jerone@gmail.com>
6910
6911 Make on screen instructions clearer
6912
6913 Based on patch created by Jidanni <jidanni@jidanni.org>
6914
6915 * normal/menu.c: print clearer instructions on the screen
6916
1e901a75 69172009-01-02 Colin D Bennett <colin@gibibit.com>
6918
6919 New font engine.
34c44600 6920
1e901a75 6921 Additional changes by Vesa Jääskeläinen <chaac@nic.fi> to adapt to
6922 build system and fixed gfxterm.c to work with different sized fonts.
6923
6924 * configure.ac: Changed UNIFONT_HEX to UNIFONT_BDF.
34c44600 6925
1e901a75 6926 * configure: Re-generated.
34c44600 6927
1e901a75 6928 * DISTLIST: Removed font/manager.c.
6929 Added font/font.c.
6930 Added font/font_cmd.c.
34c44600 6931
1e901a75 6932 * Makefile.in: Changed UNIFONT_HEX to UNIFONT_BDF. Added Font tool
6933 compilation.
34c44600 6934
1e901a75 6935 * include/grub/misc.h (grub_utf8_to_ucs4): Changed prototype. Changed users.
34c44600 6936
6937 * kern/misc.c (grub_utf8_to_ucs4): Changed prototype.
1e901a75 6938
6939 * kern/term.c: Changed users of grub_utf8_to_ucs4.
34c44600 6940
1e901a75 6941 * normal/menu.c: Likewise.
34c44600 6942
1e901a75 6943 * conf/common.rmk (font_mod_SOURCES): Removed font/manager.c.
6944 (font_mod_SOURCES): Added font/font_cmd.c, font/font.c.
34c44600 6945
1e901a75 6946 * include/grub/font.h: Replaced with new file.
34c44600 6947
1e901a75 6948 * include/grub/video.h (GRUB_VIDEO_MODE_TYPE_ALPHA): Changed value.
6949 (GRUB_VIDEO_MODE_TYPE_DOUBLE_BUFFERED): Likewise.
6950 (GRUB_VIDEO_MODE_TYPE_COLOR_MASK): Likewise.
6951 (GRUB_VIDEO_MODE_TYPE_1BIT_BITMAP): Added.
6952 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_1BIT_PACKED.
34c44600 6953 (grub_video_mode_info): Added bg_red, bg_green, bg_blue, bg_alpha,
1e901a75 6954 fg_red, fg_green, fg_blue, fg_alpha.
6955 (grub_video_adapter): Removed blit_glyph.
34c44600 6956 (grub_video_blit_glyph): Removed.
6957
1e901a75 6958 * font/manager.c: Removed file.
34c44600 6959
6960 * font/font.c: New file.
6961
1e901a75 6962 * font/font_cmd.c: Likewise.
34c44600 6963
1e901a75 6964 * video/video.c (grub_video_blit_glyph): Removed.
34c44600 6965
1e901a75 6966 * video/i386/pc/vbe.c (grub_video_vbe_map_rgb): Added 1-bit support.
6967 (grub_video_vbe_map_rgba): Likewise.
6968 (grub_video_vbe_unmap_color_int): Likewise.
6969 (grub_video_vbe_blit_glyph): Removed.
6970 (grub_video_vbe_adapter): Removed blit_glyph.
34c44600 6971
1e901a75 6972 * video/i386/pc/vbeutil.c (get_data_ptr): Added 1-bit support.
6973 (get_pixel): Likewise.
34c44600 6974 (set_pixel): Likewise.
6975
1e901a75 6976 * commands/videotest.c (grub_cmd_videotest): Added more tests for fonts.
34c44600 6977
1e901a75 6978 * term/gfxterm.c: Adapted to new font engine.
34c44600 6979
1e901a75 6980 * term/i386/pc/vesafb.c: Marked as deprecated. Made it compile.
34c44600 6981
1e901a75 6982 * term/i386/pc/vga.c: Likewise.
34c44600 6983
1e901a75 6984 * util/fonttool/src/org/gnu/grub/fonttool/BDFLoader.java: New file.
34c44600 6985
1e901a75 6986 * util/fonttool/src/org/gnu/grub/fonttool/CharDefs.java: Likewise.
34c44600 6987
1e901a75 6988 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
34c44600 6989
1e901a75 6990 * util/fonttool/src/org/gnu/grub/fonttool/CharacterRange.java: Likewise.
34c44600 6991
1e901a75 6992 * util/fonttool/src/org/gnu/grub/fonttool/Converter.java: Likewise.
34c44600 6993
1e901a75 6994 * util/fonttool/src/org/gnu/grub/fonttool/Font.java: Likewise.
34c44600 6995
1e901a75 6996 * util/fonttool/src/org/gnu/grub/fonttool/Glyph.java: Likewise.
34c44600 6997
1e901a75 6998 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Sections.java: Likewise.
34c44600 6999
1e901a75 7000 * util/fonttool/src/org/gnu/grub/fonttool/PFF2Writer.java: Likewise.
7001
7002 * util/grub.d/00_header.in: Changed to use new loadfont command.
34c44600 7003
1e901a75 7004 * util/grub-mkconfig_lib.in: Changed font extension.
7005
278922e8 70062008-12-28 Felix Zielcke <fzielcke@z-51.de>
7007
7008 * util/getroot.c (grub_util_get_grub_dev): Add support for
7009 /dev/md/dNNpNN style partitionable mdraid devices.
7010
3ced05cf 70112008-12-12 Alex Smith <alex@alex-smith.me.uk>
7012
7013 * fs/i386/pc/pxe.c (grub_pxefs_open): Handle the one open connection
7014 at a time limit of the PXE TFTP API correctly.
7015 (grub_pxefs_close): Likewise.
7016
7fd0ee30 70172008-11-29 Robert Millan <rmh@aybabtu.com>
7018
34c44600 7019 * disk/ata.c (grub_ata_pciinit): Handle errors raised by
7fd0ee30 7020 grub_ata_device_initialize() calls.
7021
34c44600 70222008-11-28 Krzysztof Smiechowicz <deadwood@wp.pl>
0c5e79ab 7023
7024 * fs/affs.c (grub_affs_iterate_dir): Return failure when directory
7025 iteration failed.
7026 * fs/sfs.c (grub_sfs_iterate_dir): Likewise.
7027
89313780 70282008-11-28 Robert Millan <rmh@aybabtu.com>
7029
7030 Fix build on powerpc-ieee1275. Based on patch created by
7031 Manoel Abranches <mrabran@linux.vnet.ibm.com>.
7032 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
7033 `kern/ieee1275/mmap.c'.
7034 * include/grub/powerpc/ieee1275/memory.h: New file.
7035
15257703 7036 Provide grub-install on coreboot.
7037 * conf/i386-coreboot.rmk (sbin_SCRIPTS): Add `grub-install'.
7038 (grub_install_SOURCES): New variable.
7039 * util/i386/pc/grub-install.in: Add a few condition checks to make it
7040 usable on coreboot.
7041
9fc5388a 70422008-11-25 Felix Zielcke <fzielcke@z-51.de>
7043
7044 * util/grub-fstest.c (grub_term_get_current_input): Change return type
7045 to `grub_term_input_t'.
7046 (grub_term_get_current_output): Change return type to
7047 `grub_term_output_t'.
7048
bc3a2f31 70492008-11-22 Robert Millan <rmh@aybabtu.com>
7050
34c44600 7051 Fix breakage on coreboot due to declaration mismatch.
bc3a2f31 7052 * term/i386/pc/vga_text.c (grub_vga_text_init_fini): New function.
7053 (grub_vga_text_term): Use grub_vga_text_init_fini() instead of
7054 grub_vga_text_cls().
7055
80fc88f2 7056 * kern/i386/loader.S (grub_multiboot_backward_relocator): Improve
34c44600 7057 comments. Avoid copying one more byte than necessary (just in case).
80fc88f2 7058
cbf36fd3 7059 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Change link address
7060 to 0x200000 (avoids trouble with some OFW implementations, and matches
7061 with the one in Yaboot).
7062 Reported by Manoel Abranches
7063
73e8e268 70642008-11-20 Robert Millan <rmh@aybabtu.com>
3cf6ac19 7065
7066 * kern/i386/coreboot/init.c (grub_time_tics): Remove variable.
7067 (grub_get_rtc, grub_exit): Abort with grub_fatal() if called.
7068
73e8e268 7069 * util/grub-mkconfig_lib.in (grub_warn): New function.
7070 (convert_system_path_to_grub_path): Use grub_warn() when issuing
7071 warnings, to obtain consistent formatting.
7072 * util/grub.d/00_header.in: Likewise.
7073 * util/update-grub_lib.in: Likewise.
7074
e94045a1 7075 * loader/i386/linux.c (allocate_pages): Fix a warning.
40f9faa4 7076 Move comment text to `#error' stanza.
e94045a1 7077
79d29fd7 7078 Harmonize ieee1275's grub_available_iterate() with the generic
7079 grub_machine_mmap_iterate() interface (fixes a recently-introduced
7080 build problem on i386-ieee1275):
7081 * kern/ieee1275/openfw.c (grub_available_iterate): Moved from here ...
7082 * kern/ieee1275/mmap.c (grub_machine_mmap_iterate): ... here. Add third
7083 parameter `type'. Update all users of this function.
7084 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
7085 `kern/ieee1275/mmap.c'.
7086 * kern/ieee1275/init.c
7087 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): Replace
7088 with ...
7089 (grub_machine_mmap_iterate): ... this.
7090 * include/grub/i386/pc/memory.h (grub_machine_mmap_iterate): Change
7091 return type to `grub_err_t'. Update all implementations of this
7092 function prototype.
7093 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_iterate):
7094 Likewise.
7095
60d6b16e 7096 Add `lsmmap' command (lists firmware-provided memory map):
7097 * commands/lsmmap.c: New file.
7098 * conf/i386-pc.rmk (pkglib_MODULES): Add `lsmmap.mod'.
7099 (lsmmap_mod_SOURCES, lsmmap_mod_CFLAGS, lsmmap_mod_LDFLAGS): New
7100 variables.
7101 * conf/powerpc-ieee1275.rmk: Likewise.
7102 * conf/i386-coreboot.rmk: Likewise.
7103 * conf/i386-ieee1275.rmk: Likewise.
7104
ebaaf49b 71052008-11-19 Robert Millan <rmh@aybabtu.com>
7106
7107 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Fix a typo.
92907110 7108 * loader/i386/linux.c (grub_rescue_cmd_initrd): Implement a few needed
7109 constraints to initrd allocation (based on code from
7110 loader/i386/pc/linux.c). Without them, initrd was allocated too high
7111 for Linux to find it.
ebaaf49b 7112
dfab719f 71132008-11-14 Robert Millan <rmh@aybabtu.com>
7114
7115 * fs/cpio.c (grub_cpio_open): Compare `name' and `fn' by hand in
7116 order to cope with duplicate slashes.
7117
10fc3eb9 71182008-11-14 Robert Millan <rmh@aybabtu.com>
7119
7120 * include/grub/i386/coreboot/memory.h (GRUB_MEMORY_MACHINE_LOWER_SIZE):
7121 Redefine to match with GRUB_MEMORY_MACHINE_UPPER_START (0x100000). We
7122 don't want to mess with lower memory, because it is used in the Linux
7123 loader.
7124
7125 * loader/i386/linux.c (allocate_pages): Allocate `real_mode_mem' in
34c44600 7126 an appropriate place in lower memory, between 0x10000 and 0x90000,
10fc3eb9 7127 like loader/i386/efi/linux.c does. Linux often panics if real_mode_mem
7128 is in our heap (probably as a result of it being corrupted during
2f2a3442 7129 decompression). Add #error instance with comment to explain why this
7130 loader isn't currently usable on PC/BIOS.
10fc3eb9 7131
e2e07847 71322008-11-14 Robert Millan <rmh@aybabtu.com>
7133
7134 * term/i386/pc/serial.c [! GRUB_MACHINE_PCBIOS]
34c44600 7135 (GRUB_SERIAL_PORT_NUM): Fix miscalculation.
e2e07847 7136
fe8e8d69 71372008-11-12 Robert Millan <rmh@aybabtu.com>
7138
7139 Make loader/i386/linux.c buildable on i386-pc (although disabled).
7140
7141 * include/grub/i386/pc/init.h: Include `<grub/machine/memory.h>'.
7142 (struct grub_machine_mmap_entry, grub_machine_mmap_iterate): Move
7143 from here ...
7144 * include/grub/i386/pc/memory.h: ... to here.
7145
976b07d0 71462008-11-12 Robert Millan <rmh@aybabtu.com>
7147
7148 Fix build problems on i386-ieee1275 and *-efi (introduced by vga_text
7149 split).
7150
7151 * include/grub/i386/pc/console.h: Include `<grub/i386/vga_common.h>'.
7152 (grub_console_cur_color, grub_console_real_putchar)
7153 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
7154 (grub_console_setcolorstate, grub_console_setcolor)
7155 (grub_console_getcolor): Move from here ...
7156 * include/grub/i386/vga_common.h: ... to here (new file).
7157
7158 * term/i386/pc/vga_text.c: Replace `<grub/machine/console.h>' with
7159 `<grub/i386/vga_common.h>' and `<grub/cpu/io.h>' with
7160 `<grub/i386/io.h>'.
7161 * term/i386/vga_common.c: Replace `<grub/machine/console.h>' with
7162 `<grub/i386/vga_common.h>'.
7163
76679cd3 71642008-11-12 Robert Millan <rmh@aybabtu.com>
7165
7166 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `term/i386/vga_common.c'.
7167 * conf/i386.rmk (pkglib_MODULES): Add `vga_text.mod'.
7168 (vga_text_mod_SOURCES, vga_text_mod_CFLAGS, vga_text_mod_LDFLAGS): New
7169 variables.
7170 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
7171 `term/i386/pc/console.c' with `term/i386/vga_common.c'.
7172
7173 * kern/i386/coreboot/init.c (grub_machine_init): Replace call to
7174 grub_console_init() with call to grub_vga_text_init().
7175 (grub_machine_fini): Replace call to
7176 grub_console_fini() with call to grub_vga_text_fini() and
7177 grub_at_keyboard_fini().
7178
7179 * include/grub/i386/pc/console.h: Include `<grub/term.h>'.
7180 (grub_console_putchar, grub_console_getcharwidth, grub_console_getwh)
7181 (grub_console_setcolorstate, grub_console_setcolor)
7182 (grub_console_getcolor): New function prototypes.
7183
7184 * term/i386/pc/vga_text.c: Include `<grub/dl.h>'.
7185 (grub_vga_text_getxy, grub_vga_text_gotoxy, grub_vga_text_cls)
7186 (grub_vga_text_setcursor): Static-ize.
7187 (grub_vga_text_term): New structure.
7188 (GRUB_MOD_INIT(vga_text), GRUB_MOD_FINI(vga_text)): New functions.
7189
7190 * term/i386/pc/console.c: Remove `<grub/machine/machine.h>'.
7191 (grub_console_cur_color, grub_console_standard_color)
7192 (grub_console_normal_color, grub_console_highlight_color)
7193 (map_char, grub_console_putchar, grub_console_getcharwidth)
7194 (grub_console_getwh, grub_console_setcolorstate, grub_console_setcolor)
7195 (grub_console_getcolor): Move from here ...
7196 * term/i386/vga_common.c: ... to here (same function names).
7197
95b841d3 71982008-11-12 Robert Millan <rmh@aybabtu.com>
7199
7200 Use newly-added Multiboot support in coreboot.
7201
7202 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Replace
7203 `kern/i386/coreboot/mmap.c' with `kern/i386/multiboot_mmap.c'.
7204
7205 * kern/i386/coreboot/startup.S: Enable Multiboot header, fix its
7206 alignment, set `MULTIBOOT_MEMORY_INFO' flag.
7207 (codestart): Store the MBI in `startup_multiboot_info' when we're
7208 being loaded using Multiboot.
7209
7210 * kern/i386/coreboot/init.c (grub_machine_init): Move
7211 grub_at_keyboard_init() call to beginning of function (useful for
7212 debugging). Call grub_machine_mmap_init() before attempting to use
7213 grub_machine_mmap_iterate().
7214 (grub_lower_mem, grub_upper_mem): Move from here ...
7215 * kern/i386/multiboot_mmap.c (grub_lower_mem, grub_upper_mem): ... to
7216 here (new file).
7217
7218 * include/grub/i386/coreboot/memory.h (grub_machine_mmap_init): New
7219 function prototype.
7220
761ca975 72212008-11-12 Robert Millan <rmh@aybabtu.com>
7222
7223 Fix a regression introduced by the at_keyboard.mod split. Because
7224 some terminals are default on some platforms and non-default on
7225 others, the first terminal being registered determines which is
7226 going to be default.
7227
7228 * kern/term.c (grub_term_register_input): If this is the first
7229 terminal being registered, set it as the current one.
7230 (grub_term_register_output): Likewise.
7231
7232 * term/efi/console.c (grub_console_init): Do not call
7233 grub_term_set_current_output() or grub_term_set_current_input().
7234 * term/ieee1275/ofconsole.c (grub_console_init): Likewise.
7235 * term/i386/pc/console.c (grub_console_init): Likewise.
7236 (grub_console_fini): Do not call grub_term_set_current_input()
7237 (but leave grub_term_set_current_output() to restore text mode).
7238
6c529df7 72392008-11-10 Robert Millan <rmh@aybabtu.com>
7240
7241 * util/grub.d/00_header.in: Add backward compatibility check for
7242 versions of terminal.mod that don't understand `terminal_input' or
7243 `terminal_output'.
7244
132e4113 72452008-11-09 Robert Millan <rmh@aybabtu.com>
7246
7247 * commands/terminal.c (GRUB_MOD_FINI(terminal)): Unregister
7248 `terminal_input' / `terminal_output', not `terminal'.
7249
ac293d50 72502008-11-08 Robert Millan <rmh@aybabtu.com>
7251
7252 * Makefile.in (include_DATA): Fix srcdir=. assumption.
2a9c5940 7253 (DISTCLEANFILES): Add `build_env.mk'.
ac293d50 7254
0025933a 72552008-11-08 Robert Millan <rmh@aybabtu.com>
7256
7257 * term/i386/pc/vesafb.c (grub_vesafb_term): Change type to
dba3f844 7258 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
0025933a 7259 members. Update all users.
7260 * util/console.c (grub_ncurses_term): Split in ...
7261 (grub_ncurses_term_input): ... this, and ...
7262 (grub_ncurses_term_output): ... this. Update all users.
dcb6fa0a 7263 * term/ieee1275/ofconsole.c: Remove stale `#endif'.
0025933a 7264
37c86336 72652008-11-08 Robert Millan <rmh@aybabtu.com>
7266
7267 * Makefile.in (PKGLIB): Add $(pkglib_BUILDDIR).
7268 (PKGDATA): Add $(pkgdata_SRCDIR).
7269 (pkglib_BUILDDIR): New variable.
7270 (pkgdata_SRCDIR): New variable.
7271 (build_env.mk): New target.
7272 (include_DATA): New variable.
7273 (install-local): Install $(include_DATA) files in $(includedir).
7274
b6c15a2d 72752008-11-07 Pavel Roskin <proski@gnu.org>
7276
d99d46f1 7277 * gendistlist.sh: Use C locale for sorting to ensure consistent
7278 output on all systems.
7279
b6c15a2d 7280 * util/grub.d/00_header.in: Remove incorrect space before
7281 "serial".
7282
c32ee8c9 72832008-11-07 Robert Millan <rmh@aybabtu.com>
7284
7285 * include/multiboot2.h (struct multiboot_header): Add `flags' member as
7286 per specification.
7287 * loader/multiboot2.c (grub_multiboot2): Fix Multiboot2 header check.
7288 * loader/multiboot_loader.c (find_multi_boot2_header): New function
7289 (based on find_multi_boot1_header).
7290 (grub_rescue_cmd_multiboot_loader): Check for Multiboot2 header,
7291 using find_multi_boot2_header(), and abort if neither Multiboot or
7292 Multiboot headers were found.
7293
651c29b7 72942008-11-07 Robert Millan <rmh@aybabtu.com>
7295
7296 Modularize at_keyboard.mod:
7297
7298 * conf/i386.rmk (pkglib_MODULES): Add `at_keyboard.mod'.
7299 (at_keyboard_mod_SOURCES, at_keyboard_mod_CFLAGS)
7300 (at_keyboard_mod_LDFLAGS): New variables.
7301
7302 Actual terminal split:
7303
7304 * include/grub/term.h (struct grub_term): Split in ...
7305 (struct grub_term_input): ... this, and ...
7306 (struct grub_term_output): ... this. Update all users.
7307 (grub_term_set_current): Split in ...
7308 (grub_term_set_current_input): ... this, and ...
7309 (grub_term_set_current_output): ... this.
7310 (grub_term_get_current): Split in ...
7311 (grub_term_get_current_input): ... this, and ...
7312 (grub_term_get_current_output): ... this.
7313 (grub_term_register): Split in ...
7314 (grub_term_register_input): ... this, and ...
7315 (grub_term_register_output): ... this.
7316 (grub_term_unregister): Split in ...
7317 (grub_term_unregister_input): ... this, and ...
7318 (grub_term_unregister_output): ... this.
7319 (grub_term_iterate): Split in ...
7320 (grub_term_iterate_input): ... this, and ...
7321 (grub_term_iterate_output): ... this.
7322
7323 * kern/term.c (grub_term_list): Split in ...
7324 (grub_term_list_input): ... this, and ...
7325 (grub_term_list_output): ... this. Update all users.
7326 (grub_cur_term): Split in ...
7327 (grub_cur_term_input): ... this, and ...
7328 (grub_cur_term_output): ... this. Update all users.
7329 (grub_term_set_current): Split in ...
7330 (grub_term_set_current_input): ... this, and ...
7331 (grub_term_set_current_output): ... this.
7332 (grub_term_get_current): Split in ...
7333 (grub_term_get_current_input): ... this, and ...
7334 (grub_term_get_current_output): ... this.
7335 (grub_term_register): Split in ...
7336 (grub_term_register_input): ... this, and ...
7337 (grub_term_register_output): ... this.
7338 (grub_term_unregister): Split in ...
7339 (grub_term_unregister_input): ... this, and ...
7340 (grub_term_unregister_output): ... this.
7341 (grub_term_iterate): Split in ...
7342 (grub_term_iterate_input): ... this, and ...
7343 (grub_term_iterate_output): ... this.
7344
7345 * kern/misc.c (grub_abort): Split use of grub_term_get_current() into
7346 a check for input and one for output (and only attempt to get keys
7347 from user when input works).
7348
7349 * util/grub-probe.c (grub_term_get_current): Split in ...
7350 (grub_term_get_current_input): ... this, and ...
7351 (grub_term_get_current_output): ... this.
7352 * util/grub-fstest.c: Likewise.
7353 * util/i386/pc/grub-setup.c: Likewise.
7354 * util/grub-editenv.c: Likewise.
7355
7356 Portability adjustments:
7357
7358 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Remove
7359 `term/i386/pc/at_keyboard.c'.
7360 * kern/ieee1275/init.c [__i386__] (grub_machine_init): Remove call to
7361 grub_keyboard_controller_init() (now handled by terminal .init).
7362 * kern/i386/coreboot/init.c (grub_machine_init): Add call to
7363 grub_at_keyboard_init().
7364 * include/grub/i386/ieee1275/console.h (grub_keyboard_controller_init)
7365 (grub_console_checkkey, grub_console_getkey): Remove (now provided by
7366 at_keyboard.mod via input terminal interface).
7367 * include/grub/i386/coreboot/console.h: Convert into a stub for
7368 `<grub/i386/pc/console.h>'.
7369
7370 Migrate full terminals to new API:
7371
7372 * term/efi/console.c (grub_console_term): Split into ...
7373 (grub_console_term_input): ... this, and ...
7374 (grub_console_term_output): ... this. Update all users.
7375 * term/ieee1275/ofconsole.c: Remove __i386__ hack.
7376 (grub_ofconsole_init): Split into ...
7377 (grub_ofconsole_init_input): ... this, and ...
7378 (grub_ofconsole_init_output): ... this.
7379 (grub_ofconsole_term): Split into ...
7380 (grub_ofconsole_term_input): ... this, and ...
7381 (grub_ofconsole_term_output): ... this. Update all users.
7382 * term/i386/pc/serial.c (grub_serial_term): Split into ...
7383 (grub_serial_term_input): ... this, and ...
7384 (grub_serial_term_output): ... this. Update all users.
7385 * term/i386/pc/console.c (grub_console_term): Split into ...
7386 (grub_console_term_input): ... this, and ...
7387 (grub_console_term_output): ... this. Update all users.
7388 (grub_console_term_input): Only enable it on PC/BIOS platform.
7389 (grub_console_init): Remove grub_keyboard_controller_init() call.
7390
7391 Migrate input terminals to new API:
7392
7393 * term/i386/pc/at_keyboard.c: Replace `cpu' and `machine' with
7394 `i386' and `i386/pc' to enable build on x86_64 (this driver is
7395 i386-specific anyway).
7396 (grub_console_checkkey): Rename to ...
7397 (grub_at_keyboard_checkkey): ... this. Static-ize. Update all
7398 users.
7399 (grub_keyboard_controller_orig): New variable.
7400 (grub_console_getkey): Rename to ...
7401 (grub_at_keyboard_getkey): ... this. Static-ize. Update all
7402 users.
7403 (grub_keyboard_controller_init): Static-ize. Save original
7404 controller value so that it can be restored ...
7405 (grub_keyboard_controller_fini): ... here (new function).
7406 (grub_at_keyboard_term): New structure.
7407 (GRUB_MOD_INIT(at_keyboard), GRUB_MOD_FINI(at_keyboard)): New
7408 functions.
7409
7410 Migrate output terminals to new API:
7411
7412 * term/i386/pc/vga.c (grub_vga_term): Change type to
7413 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
7414 members. Update all users.
7415 * term/gfxterm.c (grub_video_term): Change type to
7416 `struct grub_term_output'. Remove `.checkkey' and `.getkey'
7417 members. Update all users.
7418 * include/grub/i386/pc/console.h (grub_console_checkkey)
7419 (grub_console_getkey): Do not export (no longer needed by gfxterm,
7420 etc).
7421
7422 Migrate `terminal' command and userland tools to new API:
7423
7424 * commands/terminal.c (grub_cmd_terminal): Split into ...
7425 (grub_cmd_terminal_input): ... this, and ...
7426 (grub_cmd_terminal_output): ... this.
7427 (GRUB_MOD_INIT(terminal)): Split `terminal' command in two commands:
7428 `terminal_input' and `terminal_output'.
7429 * util/grub.d/00_header.in: Adjust `terminal' calls to new
7430 `terminal_input' / `terminal_output' API.
7431 * util/grub-mkconfig.in: Export ${GRUB_TERMINAL_INPUT} and
7432 ${GRUB_TERMINAL_OUTPUT} instead of ${GRUB_TERMINAL} (and if user
7433 provided ${GRUB_TERMINAL}, convert it).
7434
96e5d876 74352008-11-04 Robert Millan <rmh@aybabtu.com>
7436
7437 * util/grub.d/10_freebsd.in: New file. Generate grub configuration
7438 for FreeBSD.
7439 * conf/common.rmk (grub-mkconfig_SCRIPTS): Add 10_freebsd.
7440
556f3775 74412008-11-03 Bean <bean123ch@gmail.com>
7442
7443 * kern/elf.c (grub_elf32_load): Revert to previous code.
7444 (grub_elf64_load): Likewise.
7445
7446 * loader/i386/bsd.c (grub_bsd_elf32_hook): Change return address.
7447
926b9823 74482008-11-01 Robert Millan <rmh@aybabtu.com>
7449
7450 * Makefile.in (CPPFLAGS): Fix builddir=. assumption.
7451 (TARGET_CPPFLAGS): Likewise.
7452 * genmk.rb (mod_src): Fix builddir=. and srcdir=. assumptions.
7453
1432e958 74542008-11-01 Carles Pina i Estany <carles@pina.cat>
7455
7456 * normal/menu.c (run_menu): Add Previous and Next Page keys in menu.
7457
dba3f844 74582008-10-29 Guillem Jover <guillem.jover@nokia.com>
de4fa71c 7459
7460 * disk/lvm.c (grub_lvm_scan_device): Fix error recovery by delaying the
7461 addition of objects until the code is not going to be able to fail.
7462
dba3f844 74632008-10-29 Guillem Jover <guillem.jover@nokia.com>
b7279447 7464
7465 * disk/lvm.c (grub_lvm_scan_device): Fix possible NULL value handling
7466 (add a missing NULL check, and correct them by moving the pointer
7467 operations after the actual check).
7468
7ab28c21 74692008-10-29 Robert Millan <rmh@aybabtu.com>
7470
7471 * util/i386/pc/grub-install.in: Handle empty string as output from
7472 make_system_path_relative_to_its_root().
7473
1b7748eb 74742008-10-05 Hans Lambermont <hans@lambermont.dyndns.org>
7475
7476 * disk/lvm.c (grub_lvm_scan_device): Allocate buffer space for the
7477 circular metadata worst case scenario. If the metadata is circular
7478 then copy the wrap in place.
7479 * include/grub/lvm.h: Add GRUB_LVM_MDA_HEADER_SIZE, from the LVM2
7480 project lib/format_text/layout.h
7481 Circular metadata bug found and patch debugged by Jan Derk Gerlings.
7482
c9618ab2 74832008-10-03 Felix Zielcke <fzielcke@z-51.de>
7484
7a36edca 7485 * util/i386/pc/grub-install.in: Source grub-mkconfig_lib instead of update-grub_lib.
c9618ab2 7486
bf981c62 74872008-10-03 Felix Zielcke <fzielcke@z-51.de>
7488
7489 * util/update-grub_lib.in: Mention filename in warning message.
7490
6d994591 74912008-09-29 Felix Zielcke <fzielcke@z-51.de>
7492
7493 * NEWS: Update for rename of update-grub to grub-mkconfig.
7494
18ade780 74952008-09-29 Felix Zielcke <fzielcke@z-51.de>
7496
7497 * util/update-grub_lib.in: Copy to ...
7498 * util/grub-mkconfig_lib.in: ... this. Update all users.
7c3ff286 7499 * util/update-grub_lib.in: Make it a stub to `grub-mkconfig_lib.in'.
18ade780 7500 * util/update-grub.in: Rename to ...
7501 * util/grub-mkconfig.in: ... this. Update all users. Remove `-y'
7502 option. Add `--output' option to allow users to specify the generated
7503 configuration file. Default to stdout.
7504 (update_grub_dir): Rename to ...
7505 (grub_mkconfig_dir): ... this.
7506 (grub_cfg): Default to an empty string.
7507 * conf/common.rmk (update-grub): Rename to ...
7508 (grub-mkconfig): ... this.
7509 (update-grub_lib): Copy to ...
7510 (grub-mkconfig_lib): ... this.
7511 (update-grub_SCRIPTS): Copy to ...
7512 (grub-mkconfig_SCRIPTS): ... this. Update all users.
7513 (update-grub_DATA): Rename to ...
7514 (grub-mkconfig_DATA): ... this.
7515
556ce6ac 75162008-09-28 Robert Millan <rmh@aybabtu.com>
7517
7518 * fs/iso9660.c (struct grub_iso9660_primary_voldesc): Rename `created'
7519 to `modified'. Add the real `created' field.
7520 (grub_iso9660_uuid): Use `modified' rather than `created' for
7521 constructing the UUID.
7522
75232008-09-28 Felix Zielcke <fzielcke@z-51.de>
eb079ba9 7524
7525 fs/jfs.c (grub_jfs_find_file): Treat multiple slashes like one.
7526 Based on code from Tomas Ebenlendr <ebik@ucw.cz>.
7527
92274e85 75282008-09-28 Bean <bean123ch@gmail.com>
7529
7530 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a bug in the previous patch.
7531 Thanks to Christian Franke for finding this bug.
7532
add6f17a 75332008-09-25 Robert Millan <rmh@aybabtu.com>
7534
7535 * util/grub-mkdevicemap.c (make_device_map): Actually replace all
7536 instances of grub_util_get_disk_name() (see previous commit).
7537
d2a367b8 75382008-09-25 Robert Millan <rmh@aybabtu.com>
7539
7540 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Remove
7541 `util/i386/get_disk_name.c'.
7542 * conf/i386-efi.rmk: Likewise.
7543 * conf/x86_64-efi.rmk: Likewise.
7544 * conf/i386-coreboot.rmk: Likewise.
7545 * conf/i386-ieee1275.rmk: Likewise.
7546 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Remove
7547 `util/ieee1275/get_disk_name.c'.
7548 * include/grub/util/misc.h (grub_util_get_disk_name): Remove.
7549 * util/ieee1275/get_disk_name.c: Remove file.
7550 * util/i386/get_disk_name.c: Remove file.
7551 * util/grub-mkdevicemap.c (make_device_map): Back to hardcoding
7552 "hd%d" for device.map entries, rather than using
7553 grub_util_get_disk_name().
7554
81a06771 75552008-09-24 Carles Pina i Estany <carles@pina.cat>
b0c301f7 7556
7557 * disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Fix `unused parameter'
7558 warning.
7559 * commands/i386/pc/pxecmd.c (dmraid_nvidia): Likewise.
7560
5a004279 75612008-09-24 Carles Pina i Estany <carles@pina.cat>
7562
7563 * include/grub/i386/pc/console.h (GRUB_TERM_NPAGE):
7564 Changed to 0x5100.
7565 (GRUB_TERM_PPAGE): Changed to 0x4900.
7566
397093d3 75672008-09-24 Robert Millan <rmh@aybabtu.com>
7568
7569 * include/grub/powerpc/ieee1275/console.h (GRUB_CONSOLE_KEY_*): Remove
7570 macros (they were i386-pc specific).
7571 * include/grub/sparc64/ieee1275/console.h: Likewise.
7572 * include/grub/efi/console.h: Likewise.
7573
a91b6c7c 75742008-09-22 Bean <bean123ch@gmail.com>
7575
7576 * fs/ntfs.c (grub_ntfs_iterate_dir): Fix a rare case where $BITMAP is
7577 resident and in attribute list.
7578
7579 * include/grub/ntfs.h (BMP_LEN): Removed.
7580
c40fd116 75812008-09-22 Bean <bean123ch@gmail.com>
7582
81a06771 7583 * disk/ata.c (grub_atapi_open): Initialize devfnd, no need to set
c40fd116 7584 scsi->name and scsi->luns, as they will be set in grub_scsi_open.
7585
7586 * disk/scsi.c (grub_scsi_open): Don't call p->close (scsi) here when
7587 error occurs, as grub_disk_open will call grub_disk_close, which will
7588 call p->close (scsi).
7589
81a06771 75902008-09-21 Felix Zielcke <fzielcke@z-51.de>
eb73121d 7591
7592 * configure.ac (AC_INIT): Quote `GRUB' string and version number.
7593 (AC_PREREQ): Bumped to 2.59.
7594 (AC_TRY_COMPILE): Replace obsolete macro with ...
7595 (AC_COMPILE_IFELSE): ... this.
7596 * aclocal.m4 (AC_TRY_LINK): Replace obsolete macro with ...
7597 (AC_LINK_IFELSE): ... this.
7598
5dc43410 75992008-09-21 Felix Zielcke <fzielcke@z-51.de>
7600
7601 * autogen.sh: Add a call to `gendistlist.sh'.
7602
9035dce4 76032008-09-19 Christian Franke <franke@computer.org>
7604
7605 * aclocal.m4 (grub_CHECK_ENABLE_EXECUTE_STACK): New function.
7606 * configure.ac: Call grub_CHECK_ENABLE_EXECUTE_STACK.
7607 * include/grub/misc.h [NEED_ENABLE_EXECUTE_STACK]:
7608 Export __enable_execute_stack() to modules.
7609 * kern/misc.c [NEED_ENABLE_EXECUTE_STACK] (__enable_execute_stack):
7610 New function.
7611
7fd75377 76122008-09-09 Felix Zielcke <fzielcke@z-51.de>
7613
040030b3 7614 * Makefile.in (RMKFILES): Add `i386.rmk' and `x86_64-efi.rmk'.
7615 Sort the list.
7616
76172008-09-09 Felix Zielcke <fzielcke@z-51.de>
7618
7619 * util/hostdisk.c: Replace #include <grub/util/biosdisk.h> with
7fd75377 7620 #include <grub/util/hostdisk.h>.
7621
89d5ffcf 76222008-09-08 Robert Millan <rmh@aybabtu.com>
7623
7624 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Skip
7625 segments when their filesz is zero (grub_file_read() interprets
81a06771 7626 zero-size as "read until EOF", which results in memory corruption).
89d5ffcf 7627 Use `lowest_segment' rather than 0 for calculating the current
7628 segment load address.
7629
40da438f 76302008-09-08 Robert Millan <rmh@aybabtu.com>
7631
7632 * util/hostdisk.c (open_device): Replace a grub_util_info() call
7633 with grub_dprintf("hostdisk", ...), as it was so verbose that it
7634 clobbered useful information.
7635
ddbf5556 76362008-09-08 Robert Millan <rmh@aybabtu.com>
7637
7638 * include/grub/util/biosdisk.h: Move to ...
7639 * include/grub/util/hostdisk.h: ... here. Update all users.
7640 * util/biosdisk.c: Move to ...
7641 * util/hostdisk.c: ... here. Update all users.
7642
783d0f48 76432008-09-07 Robert Millan <rmh@aybabtu.com>
7644
7645 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): Remove
7646 variables.
7647 (grub_multiboot): Move `mbi' allocation upwards, so that mmap address
7648 and length can be stored directly in the `mbi->mmap_addr' and
7649 `mbi->mmap_length' struct fields.
7650
548e2ea5 76512008-09-07 Robert Millan <rmh@aybabtu.com>
7652
7653 * conf/i386.rmk: New file. Provides declaration for building
7654 `cpuid.mod'.
7655 * conf/i386-pc.rmk (pkglib_MODULES): Remove `cpuid.mod'.
7656 (cpuid_mod_SOURCES, cpuid_mod_CFLAGS, cpuid_mod_LDFLAGS): Remove
7657 variables.
7658 Include `conf/i386.mk'.
7659 * conf/i386-efi.rmk: Likewise.
7660 * conf/x86_64-efi.rmk: Likewise.
7661 * conf/i386-coreboot.rmk: Likewise.
7662 * conf/i386-ieee1275.rmk: Likewise.
7663
0ea85a37 76642008-09-07 Vesa Jääskeläinen <chaac@nic.fi>
7665
7666 Based on patch created by Colin D Bennett <colin@gibibit.com>.
7667 Adds optimization support for BGR based modes.
7668
7669 * include/grub/i386/pc/vbeblit.h (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8) Removed.
7670 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
7671 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
7672 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
7673 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
7674 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
7675 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
7676 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
7677 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
7678 (grub_video_i386_vbeblit_index_index): Likewise.
7679 (grub_video_i386_vbeblit_replace_directN): Added.
7680 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
7681 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
7682 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
7683 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
7684 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
7685 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
81a06771 7686 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
0ea85a37 7687 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
7688 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
7689 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
7690 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
7691 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
7692 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
7693
7694 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8) Removed.
7695 (grub_video_i386_vbefill_R8G8B8): Likewise.
7696 (grub_video_i386_vbefill_index): Likewise.
7697 (grub_video_i386_vbefill_direct32): Added.
7698 (grub_video_i386_vbefill_direct24): Likewise.
7699 (grub_video_i386_vbefill_direct16): Likewise.
7700 (grub_video_i386_vbefill_direct8): Likewise.
7701
81a06771 7702 * include/grub/video.h (grub_video_blit_format): Removed
0ea85a37 7703 GRUB_VIDEO_BLIT_FORMAT_R8G8B8A8, GRUB_VIDEO_BLIT_FORMAT_R8G8B8.
7704 (grub_video_blit_format): Added GRUB_VIDEO_BLIT_FORMAT_RGBA_8888,
7705 GRUB_VIDEO_BLIT_FORMAT_BGRA_8888, GRUB_VIDEO_BLIT_FORMAT_RGB_888,
7706 GRUB_VIDEO_BLIT_FORMAT_BGR_888, GRUB_VIDEO_BLIT_FORMAT_RGB_565,
7707 GRUB_VIDEO_BLIT_FORMAT_BGR_565.
81a06771 7708
0ea85a37 7709 * video/video.c (grub_video_get_blit_format): Updated to use new
7710 blit formats. Added handling for 16 bit color modes.
81a06771 7711
7712 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Updated to use new
0ea85a37 7713 fillers.
7714 (common_blitter): Updated to use new blitters.
7715
7716 * video/i386/pc/vbeblit.c (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8):
7717 Removed.
7718 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): Likewise.
7719 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
7720 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
7721 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
7722 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
7723 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
7724 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
7725 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
7726 (grub_video_i386_vbeblit_index_index): Likewise.
7727 (grub_video_i386_vbeblit_replace_directN): Added.
7728 (grub_video_i386_vbeblit_replace_BGRX8888_RGBX8888): Likewise.
7729 (grub_video_i386_vbeblit_replace_BGRX8888_RGB888): Likewise.
7730 (grub_video_i386_vbeblit_replace_BGR888_RGBX8888): Likewise.
7731 (grub_video_i386_vbeblit_replace_BGR888_RGB888): Likewise.
7732 (grub_video_i386_vbeblit_replace_RGBX8888_RGB888): Likewise.
7733 (grub_video_i386_vbeblit_replace_RGB888_RGBX8888): Likewise.
7734 (grub_video_i386_vbeblit_replace_index_RGBX8888): Likewise.
7735 (grub_video_i386_vbeblit_replace_index_RGB888): Likewise.
7736 (grub_video_i386_vbeblit_blend_BGRA8888_RGBA8888): Likewise.
7737 (grub_video_i386_vbeblit_blend_BGR888_RGBA8888): Likewise.
7738 (grub_video_i386_vbeblit_blend_RGBA8888_RGBA8888): Likewise.
7739 (grub_video_i386_vbeblit_blend_RGB888_RGBA8888): Likewise.
7740 (grub_video_i386_vbeblit_blend_index_RGBA8888): Likewise.
81a06771 7741
0ea85a37 7742 * video/i386/pc/vbefill.c (grub_video_i386_vbefill_R8G8B8A8): Removed.
7743 (grub_video_i386_vbefill_R8G8B8): Likewise.
7744 (grub_video_i386_vbefill_index): Likewise.
7745 (grub_video_i386_vbefill_direct32): Added.
7746 (grub_video_i386_vbefill_direct24): Likewise.
7747 (grub_video_i386_vbefill_direct16): Likewise.
7748 (grub_video_i386_vbefill_direct8): Likewise.
81a06771 7749
0ea85a37 7750 * video/readers/jpeg.c (grub_jpeg_decode_sos): Adapt to new blitter
7751 types.
81a06771 7752
0ea85a37 7753 * video/readers/tga.c (grub_video_reader_tga): Adapt to new blitter
7754 types.
81a06771 7755
0ea85a37 7756 * video/readers/png.c (grub_png_decode_image_header): Adapt to new
7757 blitter types.
81a06771 7758
0ea85a37 7759 * video/bitmap.c (grub_video_bitmap_create): Adapt to new blitter
7760 types.
7761
e8a83df6 77622008-09-06 Felix Zielcke <fzielcke@z-51.de>
7763
7764 * disk/raid.c (insert_array): Set `array->chunk_size' to 64 for
7765 RAID level 1.
7766
6bcd8ee5 77672008-09-06 Felix Zielcke <fzielcke@z-51.de>
c375ae58 7768
6bcd8ee5 7769 * fs/iso9660.c (grub_iso9660_date): New structure.
7770 (grub_iso9660_primary_voldesc): Add `grub_iso9660_date' member.
7771 (grub_iso9660_uuid): New function.
c375ae58 7772
59261157 77732008-09-05 Bean <bean123ch@gmail.com>
7774
7775 * fs/fshelp.c (grub_fshelp_find_file): Handle case insensitive names.
7776
7777 * fs/ntfs.c (list_file): Ignore names in DOS namespace, set the case
7778 insensitive bit for names in Win32 and Win32 & DOS namespace.
7779
7780 * include/grub/fshelp.h (GRUB_FSHELP_CASE_INSENSITIVE): New macro.
7781
7782 * include/grub/types.h (LONG_MAX): Likewise.
7783
58b6645a 77842008-09-04 Felix Zielcke <fzielcke@z-51.de>
7785
4ee55921 7786 * util/getroot.c: Include <config.h>.
7787 (grub_util_get_grub_dev): Rewrite to use asprintf for mdraid devices,
7788 add support for /dev/md/N devices and handle LVM double dash escaping.
7789
77902008-09-04 Felix Zielcke <fzielcke@z-51.de>
7791
7792 * config.guess: Update to latest version from config git.
7793 * config.sub: Likewise.
58b6645a 7794
9124f65d 77952008-09-03 Robert Millan <rmh@aybabtu.com>
7796
7797 * disk/scsi.c (grub_scsi_open): Remove size limit when printing
7798 `disk->total_sectors'.
7799
81a06771 78002008-09-01 Colin D Bennett <colin@gibibit.com>
a0224a4e 7801
7802 * include/grub/normal.h: Fixed incorrect comment for
7803 GRUB_COMMAND_FLAG_NO_ARG_PARSE.
7804
81a06771 78052008-09-01 Colin D Bennett <colin@gibibit.com>
f0619958 7806
7807 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Replaced constant
7808 values with defines.
7809
7810 * include/grub/i386/pc/vbe.h (GRUB_VBE_MODEATTR_SUPPORTED): Added.
7811 (GRUB_VBE_MODEATTR_RESERVED_1): Likewise.
7812 (GRUB_VBE_MODEATTR_BIOS_TTY_OUTPUT_SUPPORT): Likewise.
7813 (GRUB_VBE_MODEATTR_COLOR): Likewise.
7814 (GRUB_VBE_MODEATTR_GRAPHICS): Likewise.
7815 (GRUB_VBE_MODEATTR_VGA_COMPATIBLE): Likewise.
7816 (GRUB_VBE_MODEATTR_VGA_WINDOWED_AVAIL): Likewise.
7817 (GRUB_VBE_MODEATTR_LFB_AVAIL): Likewise.
7818 (GRUB_VBE_MODEATTR_DOUBLE_SCAN_AVAIL): Likewise.
7819 (GRUB_VBE_MODEATTR_INTERLACED_AVAIL): Likewise.
7820 (GRUB_VBE_MODEATTR_TRIPLE_BUF_AVAIL): Likewise.
7821 (GRUB_VBE_MODEATTR_STEREO_AVAIL): Likewise.
7822 (GRUB_VBE_MODEATTR_DUAL_DISPLAY_START): Likewise.
7823 (GRUB_VBE_MEMORY_MODEL_TEXT): Likewise.
7824 (GRUB_VBE_MEMORY_MODEL_CGA): Likewise.
7825 (GRUB_VBE_MEMORY_MODEL_HERCULES): Likewise.
7826 (GRUB_VBE_MEMORY_MODEL_PLANAR): Likewise.
7827 (GRUB_VBE_MEMORY_MODEL_NONCHAIN4_256): Likewise.
7828 (GRUB_VBE_MEMORY_MODEL_YUV): Likewise.
7829
93d5cbf8 78302008-08-31 Robert Millan <rmh@aybabtu.com>
7831
7832 * loader/i386/pc/multiboot.c (grub_get_multiboot_mmap_len): Fix
7833 declaration.
7834 (grub_multiboot): Fix a few warnings.
7835
21751d50 78362008-08-31 Robert Millan <rmh@aybabtu.com>
7837
7838 * loader/i386/pc/multiboot.c: Update comment not to say that
7839 boot_device support is unimplemented.
7840
e27a75c5 78412008-08-31 Robert Millan <rmh@aybabtu.com>
7842
7843 * loader/i386/pc/multiboot.c: Update comment not to say that a.out
7844 or memory map support are unimplemented.
7845
81a06771 78462008-08-31 Colin D Bennett <colin@gibibit.com>
64d2d53c 7847
7848 * util/i386/pc/grub-mkrescue.in: Support multiple overlay directories.
7849
81a06771 78502008-08-31 Colin D Bennett <colin@gibibit.com>
c08a6c18 7851
7852 * commands/i386/pc/vbeinfo.c (grub_cmd_vbeinfo): Show VBE version and
7853 total video memory in 'vbeinfo' output; show color format details for
7854 each video mode.
7855
7c5d8d95 78562008-08-30 Pavel Roskin <proski@gnu.org>
7857
7858 * util/genmoddep.c: Remove for real this time.
7859 * DISTLIST: Remove util/genmoddep.c.
7860
4cebd25a 78612008-08-30 Robert Millan <rmh@aybabtu.com>
7862
7863 * kern/i386/pc/startup.S (multiboot_header): Force 4-byte alignment
7864 as required by Multiboot spec (it was already 4-byte aligned, but
7865 only by chance).
7866
b497a269 78672008-08-29 Pavel Roskin <proski@gnu.org>
7868
e3925185 7869 * kern/powerpc/ieee1275/crt0.S: Rename to ...
7870 * kern/powerpc/ieee1275/startup.S: ... this.
7871 * conf/powerpc-ieee1275.rmk: Adjust for the above.
7872 * DISTLIST: Likewise.
7873
b497a269 7874 * kern/powerpc/ieee1275/crt0.S: Include grub/symbol.h and
7875 grub/cpu/kernel.h. Add start label for consistency with other
7876 platforms. Add grub_prefix immediately after start. Add jump
7877 to the code after grub_prefix.
7878 * include/grub/powerpc/kernel.h: Provide valid values for
7879 GRUB_KERNEL_CPU_PREFIX and GRUB_KERNEL_CPU_DATA_END.
7880
6e5a42fe 78812008-08-29 Bean <bean123ch@gmail.com>
7882
7883 * configure.ac: Change host_os to cygwin for mingw.
7884 (asprintf): New check for function.
7885
7886 * include/grub/symbol.h: Replace #ifndef __CYGWIN__ with
7887 #if ! defined (__CYGWIN__) && ! defined (__MINGW32__).
7888
7889 * include/grub/util/misc.h: #include <config.h> and <grub/types.h>,
81a06771 7890 declare asprintf if HAVE_ASPRINTF is not set, declare fseeko, ftello,
6e5a42fe 7891 sync, sleep and grub_util_get_disk_size for mingw.
7892
7893 * util/biosdisk.c (grub_util_biosdisk_open): Use grub_util_get_disk_size
7894 to get size in mingw.
7895 (open_device): Use flag O_BINARY if it's defined.
7896 (find_root_device): Add dummy code for mingw.
7897
7898 * util/grub-mkdevicemap.c (get_floppy_disk_name): Return 0 for mingw.
7899 (get_ide_disk_name): Return //./PHYSICALDRIVE%d for mingw.
7900 (get_scsi_disk_name): Return 0 for mingw.
7901
7902 * util/hostfs.c: #include <grub/util/misc.h>.
7903 (grub_hostfs_open): Use "rb" flag to open file, use
7904 grub_util_get_disk_size to get disk size for mingw.
7905
7906 * util/misc.c: #include <windows.h> and <winioctl.h> in mingw.
7907 (asprintf): New function if HAVE_ASPRINTF is not set.
7908 (sync): New function for mingw.
7909 (sleep): Likewise.
7910 (grub_util_get_disk_size): Likewise.
7911
ab3f2673 79122008-08-28 Pavel Roskin <proski@gnu.org>
7913
7914 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
7915 kern/time.c.
7916
1c282483 79172008-08-28 Robert Millan <rmh@aybabtu.com>
7918
7919 * util/biosdisk.c (find_grub_drive): Declare missing `i' variable.
7920
678e849c 79212008-08-28 Robert Millan <rmh@aybabtu.com>
7922
7923 Change find_grub_drive() syntax so it doesn't prevent it from
7924 detecting NULL names as errors.
7925
7926 * util/biosdisk.c (find_grub_drive): Move free slot search code
7927 from here ...
7928 (find_free_slot): ... to here.
7929 (read_device_map): Use find_free_slot() to search for free slots.
7930
965c75ca 79312008-08-27 Marco Gerards <marco@gnu.org>
7932
7933 * conf/common.rmk (pkglib_MODULES): Add scsi.mod.
7934 (scsi_mod_SOURCES): New variable.
7935 (scsi_mod_CFLAGS): Likewise
7936 (scsi_mod_LDFLAGS): Likewise.
7937
7938 * disk/scsi.c: New file.
7939
7940 * include/grub/scsi.h: Likewise.
7941
7942 * include/grub/scsicmd.h: Likewise.
7943
7944 * disk/ata.c: Include <grub/scsi.h>.
7945 (grub_atapi_packet): Do not use grub_ata_cmd, use registers
7946 instead.
7947 (grub_ata_iterate): Skip ATAPI devices.
7948 (grub_ata_open): Only handle ATAPI devices.
7949 (struct grub_atapi_read): Removed.
7950 (grub_atapi_readsector): Likewise.
7951 (grub_ata_read): No longer handle ATAPI devices.
7952 (grub_ata_write): Likewise.
7953 (grub_atapi_iterate): New function.
7954 (grub_atapi_read): Likewise.
7955 (grub_atapi_write): Likewise.
7956 (grub_atapi_open): Likewise.
7957 (grub_atapi_close): Likewise.
7958 (grub_atapi_dev): New variable.
7959 (GRUB_MOD_INIT(ata)): Register ATAPI as SCSI device.
7960 (GRUB_MOD_FINI(ata)): Unregister ATAPI.
7961
7962 * include/grub/disk.h (enum grub_disk_dev_id): Add
7963 `GRUB_DISK_DEVICE_SCSI_ID'.
7964
c07ae501 79652008-08-26 Robert Millan <rmh@aybabtu.com>
7966
7967 * util/biosdisk.c (grub_util_biosdisk_open, open_device)
7968 (grub_util_biosdisk_get_grub_dev): Make error messages a bit more
7969 descriptive.
7970
5ed20adc 79712008-08-23 Bean <bean123ch@gmail.com>
7972
7973 * conf/common.rmk (grub_probe_SOURCES): Add disk/mdraid_linux.c.
7974 (grub_fstest_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
7975 disk/mdraid_linux.c and disk/dmraid_nvidia.c and lib/crc.c.
7976 (pkglib_MODULES): Add raid5rec.mod, raid6rec.mod, mdraid.mod and
7977 dm_nv.mod.
7978 (raid5rec_mod_SOURCES): New macro.
7979 (raid5rec_mod_CFLAGS): Likewise.
7980 (raid5rec_mod_LDFLAGS): Likewise.
7981 (raid6rec_mod_SOURCES): Likewise.
7982 (raid6rec_mod_CFLAGS): Likewise.
7983 (raid6rec_mod_LDFLAGS): Likewise.
7984 (mdraid_mod_SOURCES): Likewise.
7985 (mdraid_mod_CFLAGS): Likewise.
7986 (mdraid_mod_LDFLAGS): Likewise.
7987 (dm_nv_mod_SOURCES): Likewise.
7988 (dm_nv_mod_CFLAGS): Likewise.
7989 (dm_nv_mod_LDFLAGS): Likewise.
7990
7991 * conf/i386-pc.rmk (grub_setup_SOURCES): Add disk/mdraid_linux.c.
7992 (grub_emu_SOURCES): Add disk/raid5_recover.c, disk/raid6_recover.c,
7993 disk/mdraid_linux.c and disk/dmraid_nvidia.c.
7994
7995 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add disk/raid5_recover.c,
7996 disk/raid6_recover.c, disk/mdraid_linux.c and disk/dmraid_nvidia.c.
7997
7998 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
7999
8000 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
8001
8002 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8003
8004 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8005
8006 * disk/raid5_recover.c: New file.
8007
8008 * disk/raid6_recover.c: Likewise.
8009
8010 * disk/mdraid_linux.c: Likewise.
8011
8012 * disk/dmraid_nvidia.c: Likewise.
8013
8014 * disk/i386/pc/biosdisk.c: Set total_sectors of cdrom device to
8015 ULONG_MAX.
8016
8017 * disk/raid.c (grub_raid_open): Use the size of the smallest disk to
8018 calculate the size of raid device.
8019 (grub_raid_read): Simplify raid0 code. Support raid4, raid6 and four
8020 different layout of raid5.
8021 (grub_raid_scan_device): Remove code specific to mdraid.
8022 (grub_raid_list): New variable.
8023 (free_array): New function.
8024 (grub_raid_register): Likewise.
8025 (grub_raid_unregister): Likewise.
8026 (grub_raid_rescan): Likewise.
8027 (GRUB_MOD_INIT): Don't iterate device here.
8028 (GRUB_MOD_FINI): Use free_array to release resource.
8029
8030 * include/grub/raid.h: Remove macro and structure specific to mdraid.
8031 (grub_raid5_recover_func_t): New function variable type.
8032 (grub_raid6_recover_func_t): Likewise.
8033 (grub_raid5_recover_func): New variable.
8034 (grub_raid6_recover_func): Likewise.
8035 (grub_raid_register): New function.
8036 (grub_raid_unregister): Likewise.
8037 (grub_raid_rescan): Likewise.
8038 (grub_raid_block_xor): Likewise.
8039
8040 * util/grub-fstest.c: Add #include <grub/raid.h> and <grub/lib/crc.h>.
8041 (CMD_CRC): New macro.
8042 (part): Removed.
8043 (read_file): Handle device as well as file.
8044 (cmd_crc): New function.
8045 (fstest): Handle multiple disks.
8046 (options): Remove part, raw and long, add root and diskcount.
8047 (usage): Add crc, remove -p, -r, -l, add -r and -c.
dba3f844 8048 (main): Find the first non option entry and ignore subsequent options,
5ed20adc 8049 add handling for the new options, support multiple disks.
8050
8051 * util/grub-probe.c (probe): Add mdraid to abstraction_name.
8052
29c18915 80532008-08-23 Bean <bean123ch@gmail.com>
8054
8055 * normal/x86_64/setjmp.S (grub_longjmp): Return 1 when val = 0.
8056
8057 * genfslist.sh: Ignore kernel.mod.
8058
8059 * genpartmaplist.sh: Likewise.
8060
8415f261 80612008-08-23 Robert Millan <rmh@aybabtu.com>
8062
8063 * util/getroot.c (find_root_device): Skip anything that starts with
8064 a dot, not just directories. This avoids things like /dev/.tmp.md0.
8065
d5a7dc5b 80662008-08-22 Felix Zielcke <fzielcke@z-51.de>
81a06771 8067
d5a7dc5b 8068 * util/update-grub.in (GRUB_GFXMODE): Export variable.
8069 * util/grub.d/00_header.in: Allow the administrator to change default
8070 gfxmode via ${GRUB_GFXMODE}.
8071
380cfbb4 80722008-08-21 Felix Zielcke <fzielcke@z-51.de>
8073
8074 * fs/ntfs.c (grub_ntfs_mount): Fix a memory leak.
8075
c9baafe7 80762008-08-21 Robert Millan <rmh@aybabtu.com>
8077
8078 * loader/i386/linux.c: New file. Implements generic 32-bit Linux
8079 loader.
8080 * conf/i386-coreboot.rmk (_linux_mod_SOURCES): Replace
8081 `loader/i386/pc/linux.c' with `loader/i386/linux.c'.
8082
e290bef2 80832008-08-20 Carles Pina i Estany <carles@pina.cat>
8084
8085 * menu/normal.c (run_menu): Replace hardcoded numbers with macros
8086 (16 for GRUB_TERM_UP and 14 for GRUB_TERM_DOWN)
8087
f9dbfc96 80882008-08-19 Robert Millan <rmh@aybabtu.com>
8089
8090 * term/gfxterm.c (DEFAULT_CURSOR_COLOR): Remove.
8091 (struct grub_virtual_screen): Remove `cursor_color'.
8092 (grub_virtual_screen_setup): Remove `virtual_screen.cursor_color'
8093 initialization.
8094 (write_cursor): Use `virtual_screen.fg_color' to draw cursor.
8095
dd6bd6ab 80962008-08-18 Robert Millan <rmh@aybabtu.com>
8097
8098 Unify (identical) linux_normal.c files.
8099 * loader/i386/efi/linux_normal.c: Move from here ...
8100 * loader/linux_normal.c: ... to here. Update all users.
8101 * loader/i386/pc/linux_normal.c: Delete. Update all users.
8102 * loader/i386/ieee1275/linux_normal.c: Likewise.
8103
7f42f83e 81042008-08-18 Robert Millan <rmh@aybabtu.com>
8105
8106 * include/grub/i386/linux.h (LINUX_LOADER_ID_LILO)
8107 (LINUX_LOADER_ID_LOADLIN, LINUX_LOADER_ID_BOOTSECT)
8108 (LINUX_LOADER_ID_SYSLINUX, LINUX_LOADER_ID_ETHERBOOT)
8109 (LINUX_LOADER_ID_ELILO, LINUX_LOADER_ID_GRUB, LINUX_LOADER_ID_UBOOT)
8110 (LINUX_LOADER_ID_XEN, LINUX_LOADER_ID_GUJIN, LINUX_LOADER_ID_QEMU):
8111 New macros.
8112 (GRUB_LINUX_CL_OFFSET, GRUB_LINUX_CL_END_OFFSET): Move from here ...
8113 * loader/i386/pc/linux.c (GRUB_LINUX_CL_OFFSET)
8114 (GRUB_LINUX_CL_END_OFFSET): ... to here.
8115 * loader/i386/efi/linux.c (GRUB_EFI_CL_OFFSET): Rename to ...
8116 (GRUB_LINUX_CL_OFFSET): ... this. Update all users.
8117 (GRUB_EFI_CL_END_OFFSET): Rename to ...
8118 (GRUB_LINUX_CL_END_OFFSET): ... this. Update all users.
8119 (grub_rescue_cmd_linux): Macroify `type_of_loader' initialization.
8120 Initialize `params->video_cursor_x' and `params->video_cursor_y'
8121 portably using grub_getxy().
8122 Replace `-EFI' with `-bzImage' in boot message.
8123
38487ddb 81242008-08-17 Robert Millan <rmh@aybabtu.com>
8125
8126 * include/grub/x86_64/kernel.h: New file (<grub/i386/kernel.h> stub).
8127
deceb3ec 81282008-08-17 Robert Millan <rmh@aybabtu.com>
8129
8130 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pc/mmap.c'.
8131
8132 * include/grub/i386/pc/init.h (GRUB_MACHINE_MEMORY_AVAILABLE)
8133 (GRUB_MACHINE_MEMORY_RESERVED): New macros.
8134 (grub_machine_mmap_iterate): New function declaration.
8135 * include/grub/multiboot.h (struct grub_multiboot_mmap_entry): New
8136 structure.
8137 (GRUB_MMAP_MEMORY_AVAILABLE, GRUB_MMAP_MEMORY_RESERVED): New
8138 macros.
8139
8140 * kern/i386/pc/init.c (grub_machine_init): Replace hardcoded region
8141 type check value with `GRUB_MACHINE_MEMORY_AVAILABLE'.
8142 Move e820 parsing from here ...
8143 * kern/i386/pc/mmap.c: New file.
8144 (grub_machine_mmap_iterate): ... to here.
8145
8146 * include/grub/i386/coreboot/memory.h: Remove `<grub/err.h>'.
8147 (GRUB_LINUXBIOS_MEMORY_AVAILABLE): Rename (for consistency) to ...
8148 (GRUB_MACHINE_MEMORY_AVAILABLE): ... this. Update all users.
8149 (grub_available_iterate): Redeclare to return `void', and redeclare
8150 its hook to use grub_uint64_t as addr and size parameters, and rename
8151 to ...
8152 (grub_machine_mmap_iterate): ... this. Update all users.
8153
8154 * kern/i386/coreboot/mmap.c (grub_mmap_iterate): Simplify parser loop
8155 to make it more readable. Rename to ...
8156 (grub_machine_mmap_iterate): ... this.
8157
8158 * loader/i386/pc/multiboot.c (mmap_addr, mmap_length): New variables.
8159 (grub_get_multiboot_mmap_len, grub_fill_multiboot_mmap): New functions.
8160 (grub_multiboot): Allocate an extra region after the payload, and fill
8161 it with a Multiboot memory map. Adjust a.out loader to calculate size
8162 with the extra space.
8163 (grub_multiboot_load_elf32): Adjust elf32 loader to calculate size
8164 with the extra space.
8165
f8aa0f43 81662008-08-17 Carles Pina i Estany <carles@pina.cat>
8167
9807deb9 8168 * menu/normal.c (run_menu): Add Home and End keys in grub-menu.
f8aa0f43 8169
605f5bb6 81702008-08-17 Felix Zielcke <fzielcke@z-51.de>
8171
8172 * gendistlist.sh: Add *.y, *.tex, *.texi, grub.cfg, README, *.sc,
8173 mdate-sh to the list `find' searches for.
8174 * DISTLIST: Regenerated.
8175
210db6c6 81762008-08-16 Felix Zielcke <fzielcke@z-51.de>
8177
8178 * gendistlist.sh (EXTRA_DISTFILES): Remove gensymlist.sh,
8179 genkernsyms.sh. Add geninit.sh, geninitheader.sh, genkernsyms.sh.in,
48cdbfd4 8180 genmoddep.awk, gensymlist.sh.in.
8181 (DISTDIRS): Add bus, docs, hook, lib.
210db6c6 8182 * DISTLIST: Regenerated.
48cdbfd4 8183 * NEWS: Add cygwin support and change the `os-prober' entry a bit.
210db6c6 8184
1082b929 81852008-08-16 Robert Millan <rmh@aybabtu.com>
8186
8187 * disk/raid.c (grub_raid_init): Handle/report errors set by
8188 grub_device_iterate().
8189 * disk/lvm.c (grub_lvm_init): Likewise.
8190
42ce5170 81912008-08-15 Bean <bean123ch@gmail.com>
8192
8193 * conf/i386-pc.rmk (pkglib_MODULES): Add datetime.mod, date.mod
8194 and datehook.mod.
8195 (datetime_mod_SOURCES): New macro.
8196 (datetime_mod_CFLAGS): Likewise.
8197 (datetime_mod_LDFLAGS): Likewise.
8198 (date_mod_SOURCES): Likewise.
8199 (date_mod_CFLAGS): Likewise.
8200 (date_mod_LDFLAGS): Likewise.
8201 (datehook_mod_SOURCES): Likewise.
8202 (datehook_mod_CFLAGS): Likewise.
8203 (datehook_mod_LDFLAGS): Likewise.
8204
8205 * conf/i386-coreboot.rmk (pkglib_MODULES): Add datetime.mod, date.mod
8206 and datehook.mod.
8207 (datetime_mod_SOURCES): New macro.
8208 (datetime_mod_CFLAGS): Likewise.
8209 (datetime_mod_LDFLAGS): Likewise.
8210 (date_mod_SOURCES): Likewise.
8211 (date_mod_CFLAGS): Likewise.
8212 (date_mod_LDFLAGS): Likewise.
8213 (datehook_mod_SOURCES): Likewise.
8214 (datehook_mod_CFLAGS): Likewise.
8215 (datehook_mod_LDFLAGS): Likewise.
8216
8217 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add datetime.mod, date.mod
8218 and datehook.mod.
8219 (datetime_mod_SOURCES): New macro.
8220 (datetime_mod_CFLAGS): Likewise.
8221 (datetime_mod_LDFLAGS): Likewise.
8222 (date_mod_SOURCES): Likewise.
8223 (date_mod_CFLAGS): Likewise.
8224 (date_mod_LDFLAGS): Likewise.
8225 (datehook_mod_SOURCES): Likewise.
8226 (datehook_mod_CFLAGS): Likewise.
8227 (datehook_mod_LDFLAGS): Likewise.
8228
8229 * conf/i386-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
8230 and datehook.mod.
8231 (datetime_mod_SOURCES): New macro.
8232 (datetime_mod_CFLAGS): Likewise.
8233 (datetime_mod_LDFLAGS): Likewise.
8234 (date_mod_SOURCES): Likewise.
8235 (date_mod_CFLAGS): Likewise.
8236 (date_mod_LDFLAGS): Likewise.
8237 (datehook_mod_SOURCES): Likewise.
8238 (datehook_mod_CFLAGS): Likewise.
8239 (datehook_mod_LDFLAGS): Likewise.
8240
8241 * conf/x86_64-efi.rmk (pkglib_MODULES): Add datetime.mod, date.mod
8242 and datehook.mod.
8243 (datetime_mod_SOURCES): New macro.
8244 (datetime_mod_CFLAGS): Likewise.
8245 (datetime_mod_LDFLAGS): Likewise.
8246 (date_mod_SOURCES): Likewise.
8247 (date_mod_CFLAGS): Likewise.
8248 (date_mod_LDFLAGS): Likewise.
8249 (datehook_mod_SOURCES): Likewise.
8250 (datehook_mod_CFLAGS): Likewise.
8251 (datehook_mod_LDFLAGS): Likewise.
8252
8253 * kern/env.c (grub_env_insert): Fix a bug in prevp pointer.
8254
8255 * commands/date.c: New file.
8256
8257 * hook/datehook.c: Likewise.
8258
8259 * include/grub/lib/datetime.h: Likewise.
8260
8261 * include/grub/i386/cmos.h: Likewise.
8262
8263 * lib/datetime.c: Likewise.
8264
8265 * lib/i386/datetime.c: Likewise.
8266
8267 * lib/efi/datetime.c: Likewise.
8268
0e9242da 82692008-08-14 Robert Millan <rmh@aybabtu.com>
8270
8271 * conf/common.rmk (bin_UTILITIES): Add `grub-mkelfimage'.
8272 (grub_mkelfimage_SOURCES): New variable.
8273 (util/elf/grub-mkimage.c_DEPENDENCIES): Likewise.
8274
8275 * conf/i386-coreboot.rmk (bin_UTILITIES, grub_mkimage_SOURCES)
8276 (grub_mkimage_LDFLAGS, util/elf/grub-mkimage.c_DEPENDENCIES): Remove.
8277 * conf/powerpc-ieee1275.rmk: Likewise.
8278 * conf/i386-ieee1275.rmk: Likewise.
8279
8280 * kern/ieee1275/init.c: Include `<grub/cpu/kernel.h>'.
8281 * kern/i386/coreboot/init.c: Likewise.
8282
8283 * kern/i386/ieee1275/startup.S: Replace `<grub/machine/kernel.h>'
8284 with `<grub/cpu/kernel.h>'.
8285 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Renamed
8286 to ...
8287 (GRUB_KERNEL_CPU_PREFIX, GRUB_KERNEL_CPU_DATA_END): ... this.
8288 * kern/i386/coreboot/startup.S: Likewise.
8289
8290 * include/grub/powerpc/ieee1275/kernel.h (GRUB_MOD_ALIGN)
8291 (GRUB_MOD_GAP): Remove.
8292 * include/grub/powerpc/kernel.h: New file.
8293 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX)
8294 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
8295 * include/grub/i386/kernel.h: New file.
8296 * include/grub/i386/coreboot/kernel.h (GRUB_MOD_ALIGN)
8297 (GRUB_MOD_GAP, GRUB_KERNEL_MACHINE_PREFIX)
8298 (GRUB_KERNEL_MACHINE_DATA_END): Remove.
8299
8300 * util/ieee1275/grub-install.in (grub_mkimage): Initialize to use
8301 `grub-mkelfimage'.
8302 Use --directory when invoking grub_mkimage.
8303
8304 * util/elf/grub-mkimage.c: Include `<grub/cpu/kernel.h>'.
8305 (add_segments): Replace GRUB_KERNEL_MACHINE_DATA_END and
8306 GRUB_KERNEL_MACHINE_PREFIX with GRUB_KERNEL_CPU_DATA_END
8307 and GRUB_KERNEL_CPU_PREFIX.
8308
b86408f8 83092008-08-14 Felix Zielcke <fzielcke@z-51.de>
8310
d5e619ca 8311 * include/grub/err.h (grub_err_printf): New function prototype.
8312 * util/misc.c (grub_err_printf): New function.
8313 * kern/misc.c [! GRUB_UTIL] (grub_err_printf): New alias for
8314 grub_printf.
8315 * kern/err.c (grub_print_error): Use grub_err_printf.
b86408f8 8316
7161f0e0 83172008-08-13 Robert Millan <rmh@aybabtu.com>
8318
8319 * docs/grub.cfg: Remove `/dev/' prefix in GNU/Hurd boot entry.
8320
a1967522 83212008-08-13 Robert Millan <rmh@aybabtu.com>
8322
8323 * docs/grub.cfg: Use the native device name for the example GNU/Hurd
8324 boot entry.
8325
371458b5 83262008-08-12 Robert Millan <rmh@aybabtu.com>
8327
8328 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Move part
8329 of the relocation code from here ...
8330 (grub_multiboot): ... to here.
8331 (forward_relocator, backward_relocator): Move from here ...
8332 * kern/i386/loader.S (grub_multiboot_forward_relocator)
8333 (grub_multiboot_backward_relocator): ... to here.
8334 (grub_multiboot_real_boot): Use %edx for entry offset. Put Multiboot
8335 magic in %eax. Use %ebp for jumping (so %edx is not trashed).
8336 * include/grub/i386/loader.h (grub_multiboot_forward_relocator)
8337 (grub_multiboot_forward_relocator_end)
8338 (grub_multiboot_backward_relocator)
8339 (grub_multiboot_backward_relocator_end): New variables.
8340
05f9452b 83412008-08-12 Bean <bean123ch@gmail.com>
8342
8343 * disk/raid.c (grub_raid_read): Fix a bug in raid0 code.
8344
20024ab0 83452008-08-11 Robert Millan <rmh@aybabtu.com>
8346
8347 * kern/i386/linuxbios/startup.S: Move from here ...
8348 * kern/i386/coreboot/startup.S: ... to here.
8349
8350 * kern/i386/linuxbios/init.c: Move from here ...
8351 * kern/i386/coreboot/init.c: ... to here.
8352
8353 * kern/i386/linuxbios/table.c: Move from here ...
8354 * kern/i386/coreboot/mmap.c: ... to here.
8355
8356 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Update moved files.
8357
e352e9cd 83582008-08-11 Robert Millan <rmh@aybabtu.com>
8359
8360 * kern/device.c (grub_device_open): Do not handle grub_disk_open()
8361 errors. Leave it to the upper layer to handle them.
8362
2d05bc6a 83632008-08-09 Christian Franke <franke@computer.org>
8364
8365 * Makefile.in: Add `target_os' and `enable_grub_pe2elf'.
8366 * conf/common.rmk: Install `grub-pe2elf' only if requested.
8367 Install `grub.d/10_windows' only on Cygwin.
8368 * configure.ac: Add subst of `target_os'.
8369 Check `target_os' also before setting TARGET_OBJ2ELF.
8370 Add `--enable-grub-pe2elf'.
8371
042bd419 83722008-08-08 Robert Millan <rmh@aybabtu.com>
8373
8374 * kern/disk.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
8375 (grub_last_time): Change type to grub_uint64_t.
8376 (grub_disk_open): Migrate code from to using grub_get_time_ms().
8377 (grub_disk_close): Likewise.
8378
8379 * normal/menu.c: Replace `<grub/machine/time.h>' with `<grub/time.h>'.
8380 (run_menu): Migrate code from to using grub_get_time_ms().
8381
8382 * util/misc.c (grub_get_time_ms): New function.
8383
7f280db5 83842008-08-08 Marco Gerards <marco@gnu.org>
8385
8386 * disk/ata.c (grub_ata_regget): Change return type to
8387 `grub_uint8_t'.
8388 (grub_ata_regget2): Likewise.
8389 (grub_ata_wait_status): New function.
8390 (grub_ata_wait_busy): Removed function, updated all users to use
8391 `grub_ata_wait_status'.
8392 (grub_ata_wait_drq): Likewise.
8393 (grub_ata_cmd): New function.
8394 (grub_ata_pio_read): Change return type to `grub_uint8_t'. Add
8395 error handling.
8396 (grub_ata_pio_write): Add error handling.
8397 (grub_atapi_identify): Likewise.
8398 (grub_atapi_packet): Use `grub_ata_cmd' and improve error
8399 handling.
8400 (grub_ata_identify): Use `grub_ata_cmd' and improve error
8401 handling. Actually use the detected registers. Reorder the
8402 detection logic such that it is easier to read.
8403 (grub_ata_pciinit): Do not assign the same ID to each controller.
8404 (grub_ata_setaddress): Use `grub_ata_cmd' and improve error
8405 handling.
8406 (grub_atapi_readsector): Check the result of `grub_ata_pio_read'.
8407
8408 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TIMEOUT'.
8409
1fbc5e66 84102008-08-08 Marco Gerards <marco@gnu.org>
8411
8412 * NEWS: Update.
8413
819ce6c0 84142008-08-07 Bean <bean123ch@gmail.com>
8415
8416 * include/grub/x86_64/pci.h: New file.
8417
5c41d44d 84182008-08-07 Christian Franke <franke@computer.org>
8419
8420 * kern/i386/pit.c (TIMER2_SPEAKER): New define.
8421 (TIMER2_GATE): Likewise.
8422 (grub_pit_wait): Add enable/disable of the timer2 gate
8423 bit of port 0x61. This fixes a possible infinite loop.
8424
5ebc275d 84252008-08-07 Bean <bean123ch@gmail.com>
8426
8427 * conf/x86_64-efi.rmk (kernel_mod_SOURCES): Add kern/time.c,
8428 kern/i386/tsc.c and kern/i386/pit.c.
8429
8430 * include/grub/i386/tsc.h (grub_cpu_is_cpuid_supported): Handle
8431 x86_64 platform.
8432
8433 * kern/i386/efi/init.c: Replace <grub/cpu/tsc.h> with
8434 <grub/i386/tsc.h>.
8435
8436 * kern/i386/pit.c: Replace <grub/cpu/io.h> with <grub/i386/io.h>.
8437
e383b3d0 84382008-08-07 Bean <bean123ch@gmail.com>
8439
8440 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add kern/time.c.
8441
8442 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add kern/time.c,
8443
8444 * include/grub/i386/pit.h: Use macro KERNEL_CPU_PIT_HEADER to avoid
8445 multiple inclusion. Add #include <grub/types.h>.
8446
1cbb58ac 84472008-08-06 Christian Franke <franke@computer.org>
8448
8449 * conf/common.rmk: Build and install `10_windows'.
8450 * util/grub.d/10_windows.in: New script.
8451
337f5a1e 84522008-08-06 Pavel Roskin <proski@gnu.org>
8453
8454 * kern/i386/pit.c: Include `<grub/i386/pit.h>'.
8455
057bc4ac 84562008-08-06 Robert Millan <rmh@aybabtu.com>
8457
8458 * conf/i386-coreboot.rmk (kernel_elf_ASFLAGS): New variable.
8459 * kern/i386/tsc.c: Include `<grub/i386/pit.h>'.
8460
2b99f123 84612008-08-06 Bean <bean123ch@gmail.com>
8462
8463 * fs/i386/pc/pxe.c (grub_pxe_data): New member block_size.
8464 (grub_pxefs_fs_int): Remove dummy definition.
8465 (grub_pxefs_open): Use data->block_size to store the current block
8466 size setting.
8467 (grub_pxefs_read): Use block size stored in data->block_size. As the
8468 value of grub_pxe_blksize can be changed after the file is opened.
8469
9f0234cb 84702008-08-06 Bean <bean123ch@gmail.com>
8471
8472 * fs/i386/pc/pxe.c (curr_file): new variable.
8473 (grub_pxefs_open): Simply the handling of pxe file system. Don't
8474 require the dummy internal file system anymore.
8475 (grub_pxefs_read): Removed.
8476 (grub_pxefs_close): Likewise.
8477 (grub_pxefs_fs_int): Likewise.
8478 (grub_pxefs_read_int): Renamed to grub_pxefs_read. Reinitialize tftp
8479 connection when we switch file.
8480 (grub_pxefs_close_int): Renamed to grub_pxefs_close.
8481
a55d42e0 84822008-08-06 Robert Millan <rmh@aybabtu.com>
8483
8484 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `reboot.mod' and
8485 `halt.mod'.
8486 (reboot_mod_SOURCES, reboot_mod_CFLAGS, reboot_mod_LDFLAGS)
8487 (halt_mod_SOURCES, halt_mod_CFLAGS, halt_mod_LDFLAGS): New variables.
8488
8489 * kern/i386/halt.c: New file.
8490 * kern/i386/reboot.c: Likewise.
8491 * include/grub/i386/reboot.h: Likewise.
8492 * include/grub/i386/halt.h: Likewise.
8493
8494 * commands/halt.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]:
8495 Include `<grub/cpu/halt.h>'.
8496 * commands/reboot.c [! GRUB_MACHINE_IEEE1275 ! GRUB_MACHINE_EFI]
8497 [! GRUB_MACHINE_PCBIOS]: Include `<grub/cpu/reboot.h>'.
8498
8499 * term/i386/pc/at_keyboard.c: Include `<grub/cpu/at_keyboard.h>'.
8500 (SHIFT_L, SHIFT_R, CTRL, ALT, CAPS_LOCK, KEYBOARD_REG_DATA)
8501 (KEYBOARD_REG_STATUS, KEYBOARD_COMMAND_ISREADY, KEYBOARD_COMMAND_READ)
8502 (KEYBOARD_COMMAND_WRITE, KEYBOARD_COMMAND_REBOOT)
8503 (KEYBOARD_SCANCODE_SET1, KEYBOARD_ISMAKE, KEYBOARD_ISREADY)
8504 (KEYBOARD_SCANCODE, OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): Move
8505 from here ...
8506 * include/grub/i386/at_keyboard.h: ... to here.
8507
24371d26 85082008-08-05 Robert Millan <rmh@aybabtu.com>
8509
8510 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/i386/pit.c'.
8511 * conf/i386-efi.rmk (kernel_mod_SOURCES): Likewise.
8512 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Likewise. Also add
8513 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
8514 `kern/generic/millisleep.c'.
8515
8516 * kern/i386/tsc.c (calibrate_tsc): Rewrite using grub_pit_wait()
8517 instead of grub_get_rtc().
8518 (grub_tsc_init): Initialize `tsc_boot_time'.
8519
8520 * kern/i386/linuxbios/init.c (grub_millisleep): Remove stub.
8521 (grub_machine_init): Use grub_tsc_init() rather than
8522 installing an RTC-based handler via grub_install_get_time_ms().
8523
8524 * kern/i386/pit.c: New file.
8525 * include/grub/i386/pit.h: Likewise.
8526
9e7007b3 85272008-08-05 Bean <bean123ch@gmail.com>
8528
8529 * boot/i386/pc/pxeboot.S (_start): Use drive number 0x7F for pxe.
8530
8531 * conf/i386-pc.rmk (kernel_img_HEADERS): Add machine/pxe.h.
8532 (pkglib_MODULES): Add pxe.mod and pxecmd.mod.
8533 (pxe_mod_SOURCES): New macro.
8534 (pxe_mod_CFLAGS): Likewise.
8535 (pxe_mod_LDFLAGS): Likewise.
8536 (pxecmd_mod_SOURCES): Likewise.
8537 (pxecmd_mod_CFLAGS): Likewise.
8538 (pxecmd_mod_LDFLAGS): Likewise.
8539
8540 * kern/i386/pc/startup.S (grub_pxe_scan): New function.
8541 (grub_pxe_call): Likewise.
8542
8543 * include/grub/disk.h (grub_disk_dev_id): Add GRUB_DISK_DEVICE_PXE_ID.
8544
8545 * commands/i386/pc/pxecmd.c: New file.
8546
9f0234cb 8547 * fs/i386/pc/pxe.c: Likewise.
9e7007b3 8548
8549 * include/grub/i386/pc/pxe.h: Likewise.
8550
6977d49f 85512008-08-05 Bean <bean123ch@gmail.com>
8552
8553 * util/console.c (grub_console_cur_color): New variable.
8554 (grub_console_standard_color): Likewise.
8555 (grub_console_normal_color): Likewise.
8556 (grub_console_highlight_color): Likewise.
8557 (color_map): Likewise.
8558 (use_color): Likewise.
8559 (NUM_COLORS): New macro.
8560 (grub_ncurses_setcolorstate): Handle color properly.
8561 (grub_ncurses_setcolor): Don't change color here, just remember the
8562 settings, color will be set in grub_ncurses_setcolorstate.
8563 (grub_ncurses_getcolor): New function.
8564 (grub_ncurses_init): Initialize color pairs.
8565 (grub_ncurses_term): New member grub_ncurses_getcolor.
8566
9c2ff3ee 85672008-08-05 Colin D Bennett <colin@gibibit.com>
337f5a1e 8568
9c2ff3ee 8569 High resolution timer support. Implemented for x86 CPUs using TSC.
8570 Extracted generic grub_millisleep() so it's linked in only as needed.
8571 This requires a Pentium compatible CPU; if the RDTSC instruction is
8572 not supported, then it falls back on the generic grub_get_time_ms()
8573 implementation that uses the machine's RTC.
8574
8575 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/time.c',
8576 `kern/i386/tsc.c', `kern/generic/rtc_get_time_ms.c' and
8577 `kern/generic/millisleep.c'.
8578
8579 * conf/i386-efi.rmk (kernel_mod_SOURCES): Add `kern/i386/tsc.c',
8580 `kern/generic/rtc_get_time_ms.c' and `kern/generic/millisleep.c'.
8581
8582 * conf/x86_64-efi.rml (kernel_mod_SOURCES): Add
8583 `kern/generic/millisleep.c' and `kern/generic/rtc_get_time_ms.c'.
8584
8585 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
8586
8587 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Add
8588 `kern/generic/millisleep.c'.
8589
8590 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
8591
8592 * conf/i386-coreboot.rmk (kernel_elf_SOURCES): Add `kern/time.c'.
8593
8594 * kern/generic/rtc_get_time_ms.c: New file.
8595
8596 * kern/generic/millisleep.c: New file.
337f5a1e 8597
9c2ff3ee 8598 * kern/misc.c: Don't include
8599 <kern/time.h> anymore.
8600 (grub_millisleep_generic): Removed.
8601
8602 * commands/sleep.c (grub_interruptible_millisleep): Uses
8603 grub_get_time_ms() instead of grub_get_rtc().
8604
8605 * include/grub/i386/tsc.h (grub_get_tsc): New file. New inline
8606 function.
8607 (grub_cpu_is_cpuid_supported): New inline function.
8608 (grub_cpu_is_tsc_supported): New inline function.
8609 (grub_tsc_init): New function prototype.
8610 (grub_tsc_get_time_ms): New function prototype.
8611
8612 * kern/i386/tsc.c (grub_get_time_ms): New file.
8613
8614 * include/grub/time.h: Include <grub/types.h.
8615 (grub_millisleep_generic): Removed.
8616 (grub_get_time_ms): New prototype.
8617 (grub_install_get_time_ms): New prototype.
8618 (grub_rtc_get_time_ms): New prototype.
8619
8620 * kern/time.c (grub_get_time_ms): New function.
8621 (grub_install_get_time_ms): New function.
8622
8623 * kern/i386/efi/init.c: Include <grub/cpu/tsc.h>. Don't include
8624 <grub/time.h> anymore.
8625 (grub_millisleep): Removed.
8626 (grub_machine_init): Call grub_tsc_init.
8627
8628 * kern/i386/linuxbios/init.c (grub_machine_init): Install the RTC
8629 get_time_ms() implementation.
8630
8631 * kern/sparc64/ieee1275/init.c (grub_millisleep): Removed.
8632 (ieee1275_get_time_ms): New function.
8633 (grub_machine_init): Install get_time_ms() implementation.
8634
8635 * kern/i386/pc/init.c: Include <grub/cpu/tsc.h>.
8636 (grub_machine_init): Call grub_tsc_init().
8637 (grub_millisleep): Removed.
bf06a93f 8638
9c2ff3ee 8639 * kern/ieee1275/init.c (grub_millisleep): Removed.
8640 (grub_machine_init): Install ieee1275_get_time_ms()
8641 implementation.
8642 (ieee1275_get_time_ms): New function.
8643 (grub_get_rtc): Now calls ieee1275_get_time_ms(), which does the
8644 real work.
8645
9ec92aaf 86462008-08-05 Marco Gerards <marco@gnu.org>
8647
8648 * disk/ata.c: Include <grub/pci.h>.
8649 (enum grub_ata_commands): Add `GRUB_ATA_CMD_EXEC_DEV_DIAGNOSTICS'.
8650 (grub_ata_initialize): Rewritten.
8651 (grub_ata_device_initialize): New function.
8652
8d23f507 86532008-08-04 Pavel Roskin <proski@gnu.org>
8654
8655 * kern/main.c: Include grub/mm.h.
8656
5e15ee3d 86572008-08-04 Robert Millan <rmh@aybabtu.com>
8658
8659 * conf/i386-coreboot.rmk (COMMON_ASFLAGS, COMMON_CFLAGS)
8660 (COMMON_LDFLAGS): Harmonize with i386-pc version (fixes a code
8661 corruption problem).
8662
a9053f8f 86632008-08-04 Robert Millan <rmh@aybabtu.com>
8664
8665 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Fix misc
8666 warnings introduced in my last commit.
8667
dd19c7d7 86682008-08-03 Robert Millan <rmh@aybabtu.com>
8669
8670 Make PCI available on all i386 architectures.
8671
8672 * include/grub/i386/pc/pci.h: Move from here ...
8673 * include/grub/i386/pci.h: ... to here.
8674
8675 * include/grub/i386/pc/pci.h: Remove.
8676 * include/grub/i386/efi/pci.h: Remove.
8677 * include/grub/x86_64/efi/pci.h: Remove.
8678
8679 * include/grub/pci.h: Replace `<grub/machine/pci.h>' with
8680 `<grub/cpu/pci.h>'.
8681
8682 * conf/i386-coreboot.rmk (pkglib_MODULES): Add `pci' and `lspci'.
8683 (pci_mod_SOURCES, pci_mod_CFLAGS, pci_mod_LDFLAGS, lspci_mod_SOURCES)
8684 (lspci_mod_CFLAGS, lspci_mod_LDFLAGS): New variables.
8685
8686 * conf/i386-ieee1275.rmk: Likewise.
8687
e14a6184 86882008-08-03 Robert Millan <rmh@aybabtu.com>
8689
8690 * term/i386/pc/vga_text.c (CRTC_CURSOR_DISABLE): New macro.
8691 (grub_console_setcursor): Make it possible to set cursor off.
8692
52768e37 86932008-08-03 Robert Millan <rmh@aybabtu.com>
8694
8695 * util/grub.d/00_header.in: Be platform-agnostic. Probe for existence
8696 of modules instead of assuming which platform provides what.
8697 * util/update-grub.in: Likewise.
8698
2d52f57f 86992008-08-03 Robert Millan <rmh@aybabtu.com>
8700
8701 * kern/i386/pc/init.c (make_install_device): Check for `grub_prefix'
8702 instead of `grub_install_dos_part' to determine whether a drive needs
8703 to be prepended to prefix (`grub_install_dos_part' is not reliable,
825aa57a 8704 because it can be overridden when loading GRUB via Multiboot).
2d52f57f 8705
2a5cd121 87062008-08-02 Robert Millan <rmh@aybabtu.com>
8707
8708 * util/i386/pc/grub-install.in: Remove trailing slash from prefix.
8709
93808428 87102008-08-02 Robert Millan <rmh@aybabtu.com>
8711
8712 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Add a pair
8713 of informational grub_dprintf() calls.
8714
3bd0a12a 87152008-08-02 Robert Millan <rmh@aybabtu.com>
8716
8717 * disk/memdisk.c (memdisk_size): Don't initialize.
8718 (GRUB_MOD_INIT(memdisk)): Find memdisk using grub_module_iterate().
8719
8720 * include/grub/i386/pc/kernel.h
8721 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): Remove macro.
8722 (GRUB_KERNEL_MACHINE_PREFIX, GRUB_KERNEL_MACHINE_DATA_END): Shift.
8723 (grub_memdisk_image_size, grub_arch_memdisk_addr)
8724 (grub_arch_memdisk_size): Remove.
8725
8726 * include/grub/kernel.h (struct grub_module_header): Remove `offset'
8727 field (was only used to transfer a constant). Add `type' field to
8728 support multiple module types.
8729 (grub_module_iterate): New function.
8730
8731 * kern/device.c (grub_device_open): Do not hide error messages
8732 when grub_disk_open() fails. Use grub_print_error() instead.
8733
8734 * kern/i386/pc/init.c (grub_arch_modules_addr)
8735 (grub_arch_memdisk_size): Remove functions.
8736 (grub_arch_modules_addr): Return the module address in high memory
8737 (now that it isn't copied anymore).
8738
8739 * kern/i386/pc/startup.S (grub_memdisk_image_size): Remove variable.
8740 (codestart): Don't add grub_memdisk_image_size to %ecx in LZMA
8741 decompression routine (grub_total_module_size already includes that
8742 now). Don't copy modules back to low memory.
8743
8744 * kern/main.c: Include `<grub/mm.h>'.
8745 (grub_load_modules): Split out (and use) ...
8746 (grub_module_iterate): ... this function, which iterates through
8747 module objects and runs a hook.
8748 Comment out grub_mm_init_region() call, as it would cause non-ELF
8749 modules to be overwritten.
8750
8751 * util/i386/pc/grub-mkimage.c (generate_image): Instead of appending
8752 the memdisk image in its own region, make it part of the module list.
8753 * util/elf/grub-mkimage.c (options): Add "memdisk"|'m' option.
8754 (main): Parse --memdisk|-m option, and pass user-provided path as
8755 parameter to generate_image().
8756 (add_segments): Pass `memdisk_path' down to load_modules().
8757 (load_modules): Embed memdisk image in module section when requested.
8758 * util/i386/efi/grub-mkimage.c (make_mods_section): Initialize
8759 `header.type' instead of `header.offset'.
8760
8761 * conf/powerpc-ieee1275.rmk (pkglib_MODULES): Add `memdisk.mod'.
8762 (memdisk_mod_SOURCES, memdisk_mod_CFLAGS)
8763 (memdisk_mod_LDFLAGS): New variables.
8764 * conf/i386-coreboot.rmk: Likewise.
8765 * conf/i386-ieee1275.rmk: Likewise.
8766
a927cc73 87672008-08-02 Robert Millan <rmh@aybabtu.com>
8768
8769 * loader/i386/pc/multiboot.c (playground, forward_relocator)
8770 (backward_relocator): New variables. Used to allocate and relocate
8771 the payload, respectively.
8772 (grub_multiboot_load_elf32): Load into heap instead of requested
825aa57a 8773 address, install the appropriate relocator code in each bound of
a927cc73 8774 the payload, and set the entry point such that
8775 grub_multiboot_real_boot() will jump to one of them.
8776
8777 * kern/i386/loader.S (grub_multiboot_payload_size)
8778 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
8779 (grub_multiboot_payload_entry_offset): New variables.
8780 (grub_multiboot_real_boot): Set cpu context to what the relocator
8781 expects, and jump to the relocator instead of the payload.
8782
8783 * include/grub/i386/loader.h (grub_multiboot_payload_size)
8784 (grub_multiboot_payload_orig, grub_multiboot_payload_dest)
8785 (grub_multiboot_payload_entry_offset): Export.
8786
b15d8a0c 87872008-08-01 Bean <bean123ch@gmail.com>
8788
8789 * normal/menu_entry.c (editor_getline): Don't return the original
8790 string as result, as it will be released by lexer once it has done
8791 using it.
8792
cdfb3d22 87932008-08-01 Robert Millan <rmh@aybabtu.com>
8794
8795 * util/grub.d/10_linux.in: Use prepare_grub_to_access_device() from
8796 within menuentries, not before them.
8797 util/grub.d/10_hurd.in: Likewise.
8798
9175e93d 87992008-08-01 Bean <bean123ch@gmail.com>
8800
8801 * conf/common.rmk (pkglib_MODULES): Add bufio.mod.
8802 (bufio_mod_SOURCES): New macro.
8803 (bufio_mod_CFLAGS): Likewise.
8804 (bufio_mod_LDFLAGS): Likewise.
8805
8806 * include/grub/bufio.h: New file.
8807
8808 * io/bufio.c: Likewise.
8809
8810 * video/png.c: Replace <grub/file.h> with <grub/bufio.h>.
8811 (grub_video_reader_png): Use grub_buffile_open to open file.
8812
8813 * video/jpeg.c: Replace <grub/file.h> with <grub/bufio.h>.
8814 (grub_video_reader_jpeg): Use grub_buffile_open to open file.
8815
8816 * video/tga.c: Replace <grub/file.h> with <grub/bufio.h>.
8817 (grub_video_reader_tga): Use grub_buffile_open to open file.
8818
8819 * font/manager.c: Include <grub/bufio.h>.
8820 (add_font): Use grub_buffile_open to open file.
8821
3d8383e7 88222008-07-31 Robert Millan <rmh@aybabtu.com>
8823
8824 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): When loading
8825 ELF segments, use a macro for arbitrarily accessing any of them instead
8826 of preparing a pointer that allows access to one at a time.
8827 (grub_multiboot_load_elf64): Likewise.
8828
16e641b6 88292008-07-31 Bean <bean123ch@gmail.com>
8830
8831 * boot/i386/pc/lnxboot.S (real_code_2): Replace 0x50 with
8832 GRUB_KERNEL_MACHINE_DATA_END.
8833
59198b72 88342008-07-30 Robert Millan <rmh@aybabtu.com>
8835
8836 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_DATA_END):
8837 Increase from 0x50 to 0x60.
8838 * util/i386/pc/grub-install.in: Detect cross-disk installs, and
8839 use UUIDs to identify the root drive for them. If that's not
8840 possible, abort.
8841 * util/i386/pc/grub-setup.c (setup): Do not special-case, or even
8842 check, for cross-disk installs.
8843
ae88bca3 88442008-07-30 Robert Millan <rmh@aybabtu.com>
8845
8846 * kern/ieee1275/init.c (grub_machine_set_prefix): If `grub_prefix'
8847 is non-empty, use it to set the `prefix' environment variable instead
8848 of the usual approach.
8849 * kern/i386/linuxbios/init.c (make_install_device): Remove function.
8850 (grub_machine_set_prefix): Use `grub_prefix' to set the `prefix'
8851 environment variable instead of dummy make_install_device().
8852
8853 * kern/i386/ieee1275/startup.S: Include `<grub/machine/kernel.h>'.
8854 (start): Insert a data section, with `grub_prefix' variable.
825aa57a 8855 * kern/i386/linuxbios/startup.S: Likewise.
ae88bca3 8856
8857 * include/grub/powerpc/ieee1275/kernel.h [!ASM_FILE] (grub_prefix):
8858 New variable reference.
8859 * include/grub/i386/ieee1275/kernel.h (GRUB_KERNEL_MACHINE_PREFIX):
8860 New macro. Defines offset of `grub_prefix' within startup.S (relative
8861 to `start').
8862 (GRUB_KERNEL_MACHINE_DATA_END): New macro. Defines the end of data
8863 section within startup.S (relative to `start').
8864 * include/grub/i386/coreboot/kernel.h: Likewise.
8865
8866 * util/elf/grub-mkimage.c (add_segments): Receive `prefix' parameter.
8867 Overwrite grub_prefix with its contents, at the beginning of the
8868 first segment.
8869 (main): Understand -p|--prefix.
8870
14f41dd1 88712008-07-30 Robert Millan <rmh@aybabtu.com>
8872
8873 * util/grub.d/10_hurd.in: Source ${libdir}/grub/update-grub_lib.
8874
4ca049a3 88752008-07-30 Robert Millan <rmh@aybabtu.com>
8876
8877 * term/i386/pc/vga_text.c (grub_console_cls): Use
8878 grub_console_gotoxy() to go back to beginning of the screen.
8879 Found by Patrick Georgi <patrick.georgi@coresystems.de>
8880
2921d337 88812008-07-29 Christian Franke <franke@computer.org>
8882
8883 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
8884 Add conversion of emulated mount points on Cygwin.
8885
b609876d 88862008-07-29 Christian Franke <franke@computer.org>
8887
8888 * util/update-grub.in: Add a check for admin
8889 group on Cygwin.
8890 Remove old `grub.cfg.new' before creation.
8891 Add `-f' to `mv' to handle the different filesystem
8892 semantics of Windows.
8893
e93e4679 88942008-07-29 Bean <bean123ch@gmail.com>
8895
8896 * normal/main.c (get_line): Fix buffer overflow bug.
8897
41694fd0 88982008-07-28 Robert Millan <rmh@aybabtu.com>
8899
8900 * partmap/apple.c (GRUB_APPLE_HEADER_MAGIC): New macro.
8901 (struct grub_apple_header): New struct. Describes the layout of
8902 the partmap header.
8903 (apple_partition_map_iterate): Check the header magic as well as the
8904 partition magic (which was already being checked).
8905
cfd0b4e6 89062008-07-28 Pavel Roskin <proski@gnu.org>
8907
8908 * genmk.rb: Add a warning to the beginning of the output that
8909 it's a generated file and should not be edited.
8910
93cce016 89112008-07-28 Robert Millan <rmh@aybabtu.com>
8912
8913 * disk/raid.c (grub_raid_scan_device): Do not abort when two disks
8914 with the same number are found, just use issue a warning with
8915 grub_dprintf(), as this error has been reported to be non-fatal.
c298def0 8916
cd1df915 89172008-07-27 Robert Millan <rmh@aybabtu.com>
8918
8919 * disk/ata.c (grub_ata_dumpinfo): Use grub_dprintf() for debugging
8920 information.
8921
b70a8427 89222008-07-27 Bean <bean123ch@gmail.com>
8923
8924 * fs/fat.c (GRUB_FAT_MAXFILE): New constant.
8925 (grub_fat_find_dir): Ignore case when comparing filename.
8926
8f5e379f 89272008-07-27 Bean <bean123ch@gmail.com>
8928
8929 * fs/xfs.c (grub_xfs_dir_header): Change field i8count back to
8930 smallino, as it's more descriptive, and i8count can be confused with
8931 the other field count.
8932 (grub_xfs_iterate_dir): Adjust grub_xfs_dir_entry pointer for small
8933 inode type.
8934
a85cd5a0 89352008-07-27 Bean <bean123ch@gmail.com>
8936
8937 * commands/crc.c: New file.
8938
8939 * lib/crc.c: Likewise.
8940
8941 * include/grub/lib/crc.h: Likewise.
8942
8943 * util/grub-fstest.c: grub/hexdump.h => grub/lib/hexdump.h.
8944
8945 * commands/hexdump.c: grub/hexdump.h => grub/lib/hexdump.h.
8946 (hexdump): Move this function to ...
8947
8948 * lib/hexdump.c: ... here.
8949
8950 * include/grub/hexdump.h: Renamed to ...
8951
8952 * include/grub/lib/hexdump.h: ... this.
8953
8954 * commands/loadenv.c: grub/envblk.h => grub/lib/envblk.h
8955
8956 * util/grub-editenv.c: Likewise.
8957
8958 * include/envblk.h: Renamed to ...
8959
8960 * include/lib/envblk.h: ... this.
8961
8962 * util/envblk.c: Renamed to ...
8963
8964 * lib/envblk.c: ... this.
8965
8966 * conf/common.rmk (grub_fstest_SOURCES): commands/hexdump.c =>
8967 lib/hexdump.c.
8968 (grub_editenv_SOURCES): util/envblk.c => lib/envblk.c
8969 (pkglib_MODULES): Add crc.mod.
8970 (hexdump_mod_SOURCES): Add lib/hexdump.c.
8971 (loadenv_mod_SOURCES): util/envblk.c => lib/envblk.c.
8972 (crc_mod_SOURCES): New macro.
8973 (crc_mod_CFLAGS): Likewise.
8974 (crc_mod_LDFLAGS): Likewise.
8975
8976 * conf/i386-coreboot.rmk (grub_emu_SOURCES): Add lib/hexdump.c.
8977
8978 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
8979
8980 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
8981
8982 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8983
8984 * conf/x86_64-efi.rmk (grub_emu_SOURCES): Likewise.
8985
c298def0 89862008-07-27 Felix Zielcke <fzielcke@z-51.de>
8749e9e5 8987
8988 * commands/help.c: Include <grub/term.h>.
8989 (TERM_WIDTH): Removed. Updated all users.
8990
cc349fb3 89912008-07-27 Pavel Roskin <proski@gnu.org>
8992
8993 * util/getroot.c (find_root_device): Rephrase a comment to avoid
8994 spurious warnings about a comment within a comment.
8995
9051607e 89962008-07-25 Robert Millan <rmh@aybabtu.com>
8997
8998 * util/getroot.c (find_root_device): Skip devices that match
8999 /dev/dm-[0-9]. This lets the real device be found for any type of
9000 abstraction (LVM, EVMS, RAID..).
9001 (grub_guess_root_device): Do not traverse /dev/mapper (for LVM)
9002 and /dev/evms (for EVMS) before traversing /dev. If a /dev/dm-[0-9]
9003 device is found first, find_root_device() will now skip it.
9004
01453bfc 90052008-07-24 Pavel Roskin <proski@gnu.org>
9006
9007 * include/grub/types.h: Use __builtin_bswap32() and
9008 __builtin_bswap64() with gcc 4.3 and newer.
9009
6af9849f 90102008-07-24 Christian Franke <franke@computer.org>
9011
3a0fa256 9012 * util/i386/pc/grub-install.in: If `--debug' is specified,
9013 pass `--verbose' to grub-setup.
9014 Abort script if make_system_path_relative_to_its_root() fails.
9015
7810e747 90162008-07-24 Bean <bean123ch@gmail.com>
9017
9018 * configure.ac: Fixed a bug caused by the previous cygwin patch,
9019 variable `target_platform' should be `platform'.
9020
42290e17 90212008-07-24 Bean <bean123ch@gmail.com>
9022
51cc5193 9023 * video/reader/png.c (DEFLATE_HLIT_MAX): Change value.
42290e17 9024 (grub_png_init_fixed_block): New function.
9025 (grub_png_decode_image_data): Handle fixed huffman code compression.
9026
2a8a80e4 90272008-07-24 Bean <bean123ch@gmail.com>
9028
9029 * common.rmk (bin_UTILITIES): Add grub-pe2elf.
9030 (grub_pe2elf_SOURCES): New macro.
9031 (CLEANFILES): Add grub-pe2elf.
9032
9033 * include/grub/efi/pe32.h (GRUB_PE32_SCN_ALIGN_1BYTES): New constant.
9034 (GRUB_PE32_SCN_ALIGN_2BYTES): Likewise.
9035 (GRUB_PE32_SCN_ALIGN_4BYTES): Likewise.
9036 (GRUB_PE32_SCN_ALIGN_8BYTES): Likewise.
9037 (GRUB_PE32_SCN_ALIGN_16BYTES): Likewise.
9038 (GRUB_PE32_SCN_ALIGN_32BYTES): Likewise.
9039 (GRUB_PE32_SCN_ALIGN_64BYTES): Likewise.
9040 (GRUB_PE32_SCN_ALIGN_SHIFT): Likewise.
9041 (GRUB_PE32_SCN_ALIGN_MASK): Likewise.
9042 (GRUB_PE32_SYM_CLASS_EXTERNAL): Likewise.
9043 (GRUB_PE32_SYM_CLASS_STATIC): Likewise.
9044 (GRUB_PE32_SYM_CLASS_FILE): Likewise.
9045 (GRUB_PE32_DT_FUNCTION): Likewise.
9046 (GRUB_PE32_REL_I386_DIR32): Likewise.
9047 (GRUB_PE32_REL_I386_REL32): Likewise.
9048 (grub_pe32_symbol): New structure.
9049 (grub_pe32_reloc): Likewise.
9050
9051 * util/grub-pe2elf.c: New file.
9052
9053 * configure.ac: Set TARGET_OBJ2ELF if host os is cygwin. Don't test for
9054 start symbol in non pc platform.
9055
9056 * genmk.rb: Use TARGET_OBJ2ELF to convert native object format to elf.
9057
9058 The following patches are from Christian Franke.
9059
9060 * include/grub/dl.h: Remove .previous, gas supports this only
9061 for ELF format.
9062
9063 * include/grub/symbol.h [__CYGWIN__] (#define FUNCTION/VARIABLE):
9064 Remove .type, gas supports this only for ELF format.
9065
9066 * kern/dl.c (grub_dl_resolve_dependencies): Add check for trailing
9067 nullbytes in symbol table. This fixes an infinite loop if table is
9068 zero filled.
9069
9070 * Makefile.in: Add autoconf replacements TARGET_IMG_LDSCRIPT,
9071 TARGET_IMG_LDFLAGS and EXEEXT.
9072
9073 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Replace -Wl,-N by
9074 TARGET_IMG_LDFLAGS_AC.
9075 (grub_CHECK_STACK_ARG_PROBE): New function.
9076
9077 * conf/i386-pc.rmk: Replace -Wl,-N by TARGET_IMG_LDFLAGS.
9078
9079 * conf/i386-pc-cygwin-ld-img.sc: New linker script.
9080
9081 * configure.ac: Add check for linker script "conf/${target}-img-ld.c"
9082 to set TARGET_IMG_LD* accordingly.
9083 Add check for Cygwin to set TARGET_MOD_OBJCOPY accordingly.
9084 Add call to grub_CHECK_STACK_ARG_PROBE.
9085 Use TARGET_IMG_LDFLAGS to check start, bss_start, end symbols.
9086
9087 * genkernsyms.sh.in: Handle HAVE_ASM_USCORE case.
9088
9089 * genmk.rb: Add EXEEXT to CLEANFILES.
9090
12ccdb75 90912008-07-23 Robert Millan <rmh@aybabtu.com>
9092
9093 * Makefile.in (UNICODE_ARROWS, UNICODE_LINES): New variables (they
9094 define the codes for arrows and lines used for the menu).
9095 (ascii.pff): Generate fonts for $(UNICODE_ARROWS) and $(UNICODE_LINES)
9096 as well.
9097
9098 * util/update-grub_lib.in (font_path): Prefer ascii.pff over complete
9099 fonts, because the latter are too slow.
9100
18eeaf04 91012008-07-21 Bean <bean123ch@gmail.com>
9102
9103 * kern/i386/pc/startup.S (gate_a20_try_bios): Change test order for
9104 a20. Run keyboard test last, as it will cause macbook to halt.
9105
b095e2ad 91062008-07-18 Pavel Roskin <proski@gnu.org>
9107
9108 * kern/dl.c: Go back to using GRUB_CPU_SIZEOF_VOID_P. We cannot
9109 load foreign architecture modules correctly anyway. Keep
9110 support for loading host architecture modules, whether we
9111 compile them or not.
9112
737feb35 91132008-07-17 Pavel Roskin <proski@gnu.org>
9114
3f4ce737 9115 * configure.ac: Use -m32 or -m64 regardless of whether we had to
9116 change target_cpu. The compiler default can mismatch target_cpu
9117 in any case.
9118
4ad2d049 9119 * disk/efi/efidisk.c: Fix format warnings on x86_64.
9120 * kern/efi/efi.c: Likewise.
9121
f6130a12 9122 * aclocal.m4 (grub_PROG_TARGET_CC): New macro. Check if the
9123 target compiler is functional.
9124 * configure.ac: Call grub_PROG_TARGET_CC once all target flags
9125 are set up.
9126
58393a2d 9127 * configure.ac: Default to efi platform for x86_64-apple. Allow
9128 powerpc64 CPU, default to ieee1275 platform for it. Split CPU
9129 adjustments from the rest, only do them if target is not
9130 explicitly given. Merge other adjustments with the final sanity
9131 check. Remove an extraneous check for supported CPU. Be
9132 specific which CPU and which platform is not supported.
9133
737feb35 9134 * configure.ac: Default to pc platform for x86_64.
9135
546f966a 91362008-07-17 Robert Millan <rmh@aybabtu.com>
9137
9138 Partial LinuxBIOS -> Coreboot rename.
9139
9140 * conf/i386-linuxbios.rmk: Renamed to ...
9141 * conf/i386-coreboot.rmk: ... this.
9142 * Makefile.in (RMKFILES): s/i386-linuxbios.rmk/i386-coreboot.rmk/g.
9143 * configure.ac: Accept "coreboot" as input platform (but maintain
9144 compatibility with "linuxbios").
9145 * include/grub/i386/linuxbios: Renamed to ...
9146 * include/grub/i386/coreboot: ... this.
9147
20011694 91482008-07-17 Bean <bean123ch@gmail.com>
9149
9150 * conf/i386/efi.rmk (pkglib_MODULES): add pci.mod and lspci.mod.
c11f6d16 9151 (appleldr_mod_SOURCE): New variable.
20011694 9152 (appleldr_mod_CFLAGS): Likewise.
9153 (appleldr_mod_LDFLAGS): Likewise.
9154 (pci_mod_SOURCES): Likewise.
9155 (pci_mod_CFLAGS): Likewise.
9156 (pci_mod_LDFLAGS): Likewise.
9157 (lspci_mod_SOURCES): Likewise.
9158 (lspci_mod_CFLAGS): Likewise.
9159 (lspci_mod_LDFLAGS): Likewise.
9160
9161 * conf/x86_64-efi.rmk: New file.
9162
9163 * disk/efi/efidisk.c (grub_efidisk_read): Wrap efi calls with efi_call_N
9164 macro.
9165 (grub_efidisk_write): Likewise.
9166
9167 * include/efi/api.h (efi_call_0): New macro.
9168 (efi_call_1): Likewise.
9169 (efi_call_2): Likewise.
9170 (efi_call_3): Likewise.
9171 (efi_call_4): Likewise.
9172 (efi_call_5): Likewise.
9173 (efi_call_6): Likewise.
9174
9175 * include/grub/efi/chainloader.h (grub_chainloader_cmd): Rename to
9176 grub_rescue_cmd_chainloader.
9177
9178 * include/grub/efi/pe32.h (GRUB_PE32_MACHINE_X86_64): New macro.
9179 (grub_pe32_optional_header): Change some fields based on i386 or
9180 x86_64 platform.
9181 (GRUB_PE32_PE32_MAGIC): Likewise.
9182
9183 * include/grub/efi/uga_draw.h: New file.
9184
9185 * include/grub/elf.h (STN_ABS): New constant.
9186 (R_X86_64_NONE): Relocation constant for x86_64.
9187 (R_X86_64_64): Likewise.
9188 (R_X86_64_PC32): Likewise.
9189 (R_X86_64_GOT32): Likewise.
9190 (R_X86_64_PLT32): Likewise.
9191 (R_X86_64_COPY): Likewise.
9192 (R_X86_64_GLOB_DAT): Likewise.
9193 (R_X86_64_JUMP_SLOT): Likewise.
9194 (R_X86_64_RELATIVE): Likewise.
9195 (R_X86_64_GOTPCREL): Likewise.
9196 (R_X86_64_32): Likewise.
9197 (R_X86_64_32S): Likewise.
9198 (R_X86_64_16): Likewise.
9199 (R_X86_64_PC16): Likewise.
9200 (R_X86_64_8): Likewise.
9201 (R_X86_64_PC8): Likewise.
9202
9203 * include/grub/i386/efi/pci.h: New file.
9204
9205 * include/grub/i386/linux.h (GRUB_LINUX_EFI_SIGNATURE):
9206 Change it value based on platform.
9207 (GRUB_LINUX_EFI_SIGNATURE_0204): New constant.
9208 (GRUB_E820_RAM): Likewise.
9209 (GRUB_E820_RESERVED): Likewise.
9210 (GRUB_E820_ACPI): Likewise.
9211 (GRUB_E820_NVS): Likewise.
9212 (GRUB_E820_EXEC_CODE): Likewise.
9213 (GRUB_E820_MAX_ENTRY): Likewise.
9214 (grub_e820_mmap): New structure.
9215 (linux_kernel_header): Change the efi field according to different
9216 kernel version, also field from linux_kernel_header.
9217
9218 * include/grub/kernel.h (grub_module_info): Add padding for x86_64.
9219
9220 * include/grub/pci.h (GRUB_PCI_ADDR_SPACE_MASK): New constant.
9221 (GRUB_PCI_ADDR_SPACE_MEMORY): Likewise.
9222 (GRUB_PCI_ADDR_SPACE_IO): Likewise.
9223 (GRUB_PCI_ADDR_MEM_TYPE_MASK): Likewise.
9224 (GRUB_PCI_ADDR_MEM_TYPE_32): Likewise.
9225 (GRUB_PCI_ADDR_MEM_TYPE_1M): Likewise.
9226 (GRUB_PCI_ADDR_MEM_TYPE_64): Likewise.
9227 (GRUB_PCI_ADDR_MEM_PREFETCH): Likewise.
9228 (GRUB_PCI_ADDR_MEM_MASK): Likewise.
9229 (GRUB_PCI_ADDR_IO_MASK): Likewise.
9230
9231 * include/grub/x86_64/efi/kernel.h: New file.
9232
9233 * include/grub/x86_64/efi/loader.h: Likewise.
9234
9235 * include/grub/x86_64/efi/machine.h: Likewise.
9236
9237 * include/grub/x86_64/efi/pci.h: Likewise.
9238
9239 * include/grub/x86_64/efi/time.h: Likewise.
9240
9241 * include/grub/x86_64/linux.h: Likewise.
9242
9243 * include/grub/x86_64/setjmp.h: Likewise.
9244
9245 * include/grub/x86_64/time.h: Likewise.
9246
9247 * include/grub/x86_64/types.h: Likewise.
9248
9249 * kern/dl.c (GRUB_CPU_SIZEOF_VOID_P): Changed to
9250 GRUB_TARGET_SIZEOF_VOID_P.
9251
9252 * kern/efi/efi.c (grub_efi_locate_protocol): Wrap efi calls.
9253 (grub_efi_locate_handle): Likewise.
9254 (grub_efi_open_protocol): Likewise.
9255 (grub_efi_set_text_mode): Likewise.
9256 (grub_efi_stall): Likewise.
9257 (grub_exit): Likewise.
9258 (grub_reboot): Likewise.
9259 (grub_halt): Likewise.
9260 (grub_efi_exit_boot_services): Likewise.
9261 (grub_get_rtc): Likewise.
9262
9263 * kern/efi/mm.c (MEMORY_MAP_SIZE): Change to 0x3000 for new models.
9264 (GRUB_CPU_SIZEOF_VOID_P): Changed to GRUB_TARGET_SIZEOF_VOID_P.
9265 (grub_efi_allocate_pages): Wrap efi calls.
9266 (grub_efi_free_pages): Wrap efi calls.
9267 (grub_efi_get_memory_map): Wrap efi calls.
9268
9269 * kern/x86_64/dl.c: New file.
9270
9271 * kern/x86_64/efi/callwrap.S: Likewise.
9272
9273 * kern/x86_64/efi/startup.S: Likewise.
9274
9275 * loader/efi/appleloader.c: Likewise.
9276
9277 * loader/efi/chainloader.c (cmdline): New variable.
9278 (grub_chainloader_unload): Wrap efi calls.
9279 (grub_chainloader_boot): Likewise.
9280 (grub_rescue_cmd_chainloader): Wrap efi calls, handle
9281 command line.
9282
9283 * loader/efi/chainloader_normal.c (chainloader_command):
9284 Change grub_chainloader_cmd to grub_rescue_cmd_chainloader, pass
9285 command line.
9286
9287 * loader/i386/efi/linux.c (allocate_pages): Change allocation
9288 method.
9289 (grub_e820_add_region): New function.
9290 (grub_linux_boot): Construct e820 map from efi map, handle x86_64
9291 booting.
9292 (grub_find_video_card): New function.
9293 (grub_linux_setup_video): New function.
9294 (grub_rescue_cmd_linux): Probe for video information.
9295
9296 * normal/x86_64/setjmp.S: New file.
9297
9298 * term/efi/console.c (map_char): New function.
9299 (grub_console_putchar): Map unicode char.
9300 (grub_console_checkkey): Wrap efi calls.
9301 (grub_console_getkey): Likewise.
9302 (grub_console_getwh): Likewise.
9303 (grub_console_gotoxy): Likewise.
9304 (grub_console_cls): Likewise.
9305 (grub_console_setcolorstate): Likewise.
9306 (grub_console_setcursor): Likewise.
9307
9308 * util/i386/efi/grub-mkimage.c: Add support for x86_64.
9309
59652a20 93102008-07-16 Pavel Roskin <proski@gnu.org>
9311
ef294055 9312 * loader/i386/efi/linux.c (allocate_pages): Fix warnings in
9313 format strings.
9314
59652a20 9315 * util/i386/efi/grub-mkimage.c (get_target_address): Return a
9316 pointer, not an integer. This fixes a warning and prevents
9317 precision loss on 64-bit systems.
9318 (relocate_addresses): Remove unneeded cast.
9319
afc3b5d7 93202008-07-15 Pavel Roskin <proski@gnu.org>
9321
506b2b3e 9322 * kern/i386/ieee1275/init.c: Include grub/cache.h.
9323
62ead89c 9324 * term/ieee1275/ofconsole.c: Disable code unused on i386.
9325
c4cd51d7 9326 * kern/ieee1275/ieee1275.c (grub_ieee1275_get_integer_property):
9327 Fix comparison between signed and unsigned.
9328
0d3d8f28 9329 * include/grub/i386/ieee1275/console.h: Declare
9330 grub_console_init() and grub_console_fini().
9331
8804b286 9332 * loader/i386/ieee1275/linux.c (grub_set_bootpath): Remove.
9333 It's empty and unused.
9334
ee01cf35 9335 * fs/ext2.c (grub_ext2_read_block): Initialize blknr in the
9336 beginning to avoid warnings with some compilers.
9337
afc3b5d7 9338 * loader/ieee1275/multiboot2.c: Include grub/machine/loader.h.
9339 [__i386__] (grub_mb2_arch_boot): Avoid unnecessary cast.
9340
e4e8eaa5 93412008-07-14 Pavel Roskin <proski@gnu.org>
9342
407aceb4 9343 * kern/env.c (grub_register_variable_hook): Don't copy empty
9344 string, it leaks memory. Pass "" to grub_env_set(), it should
9345 handle constant strings.
9346
e4e8eaa5 9347 * commands/blocklist.c (grub_cmd_blocklist): Fix format warning.
9348 * commands/cmp.c (grub_cmd_cmp): Likewise.
9349 * kern/dl.c (grub_dl_flush_cache): Likewise.
9350 (grub_dl_load_core): Likewise.
9351 * kern/elf.c (grub_elf32_load_phdrs): Likewise.
9352 (grub_elf64_load_phdrs): Likewise.
9353
d4e2dad3 93542008-07-13 Pavel Roskin <proski@gnu.org>
9355
9356 * lib/LzmaEnc.c (LzmaEnc_SetProps): Fix warning about comparison
9357 between signed and unsigned.
9358 (LzmaEnc_Finish): Fix warning about an unused parameter.
9359
aa24b516 93602008-07-13 Bean <bean123ch@gmail.com>
9361
9362 * Makefile.in (enable_lzo): New rule.
9363
9364 * conf/i386-pc.rmk (grub_mkimage_SOURCES): New test with enable_lzo.
9365
9366 * configure.ac (ENABLE_LZO): New option --enable-lzo.
9367
9368 * boot/i386/pc/lnxboot.S: #include <config.h>.
9369
9370 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE): Change
fe987087 9371 its value according to the compression algorithm used, lzo or lzma.
aa24b516 9372
9373 * util/i386/pc/grub-mkimage.c (compress_kernel): Use different
9374 compression algorithm according to configure macro.
9375
9376 * kern/i386/pc/startup.S (codestart): Likewise.
9377
9378 * kern/i386/pc/lzma_decode.S: New file.
9379
9380 * include/grub/lib/LzFind.h: Likewise.
9381
9382 * include/grub/lib/LzHash.h: Likewise.
9383
9384 * include/grub/lib/LzmaDec.h: Likewise.
9385
9386 * include/grub/lib/LzmaEnc.h: Likewise.
9387
9388 * include/grub/lib/LzmaTypes.h: Likewise.
9389
9390 * lib/LzFind.c: Likewise.
9391
9392 * lib/LzmaDec.c: Likewise.
9393
9394 * lib/LzmaEnc.c: Likewise.
9395
4ae821ac 93962008-07-13 Bean <bean123ch@gmail.com>
9397
9398 * fs/ext2.c (EXT4_EXTENTS_FLAG): New macro.
9399 (grub_ext4_extent_header): New structure.
9400 (grub_ext4_extent): Likewise.
9401 (grub_ext4_extent_idx): Likewise.
9402 (grub_ext4_find_leaf): New function.
9403 (grub_ext2_read_block): Handle extents.
9404
9a745147 94052008-07-12 Robert Millan <rmh@aybabtu.com>
9406
9407 * util/i386/pc/grub-mkrescue.in: s/grub-install/grub-mkrescue/g.
9408
d49a4cf6 94092008-07-11 Robert Millan <rmh@aybabtu.com>
9410
9411 * util/grub.d/40_custom.in: New file. Example on how to add custom
9412 entries to /etc/grub.d.
9413 * conf/common.rmk (%, update-grub_SCRIPTS, CLEANFILES): Install
9414 40_custom (implicitly, by merging all the grub.d rules).
9415
947414b4 94162008-07-11 Pavel Roskin <proski@gnu.org>
9417
0059cf6f 9418 * commands/read.c (grub_getline): Fix invalid memory access.
9419 Don't add newline to the variable value.
9420
947414b4 9421 * term/i386/pc/serial.c (GRUB_SERIAL_PORT_NUM): New constant.
9422 [!GRUB_MACHINE_PCBIOS] (serial_hw_io_addr): Add COM2 and COM3.
9423 (serial_hw_get_port): Check validity of the port number.
9424 (grub_cmd_serial): Check return value of serial_hw_get_port().
9425
62a02d00 94262008-07-07 Pavel Roskin <proski@gnu.org>
9427
9428 * boot/i386/pc/diskboot.S (notification_string): Replace
9429 "Loading kernel" with just "loading". This is shorter, less
9430 confusing and saves a few bytes for possible future changes.
9431
3e5581b0 94322008-07-05 Pavel Roskin <proski@gnu.org>
9433
ea387a48 9434 * disk/ata.c (grub_ata_dumpinfo): Don't output addressing and
9435 size for ATAPI devices, they are undefined. Output sector
9436 number in decimal form.
9437
3e5581b0 9438 * disk/ata.c: Use named constants for status bits.
9439
fdecb8fd 94402008-07-04 Pavel Roskin <proski@gnu.org>
9441
bcd35b90 9442 * kern/i386/linuxbios/init.c (grub_machine_init): Cast addr to
9443 grub_addr_t before casting it to the void pointer to fix a
9444 warning. Non-addressable regions are discarded earlier.
9445 (grub_arch_modules_addr): Cast _end to grub_addr_t.
9446 * kern/i386/linuxbios/table.c: Include grub/misc.h.
9447 (check_signature): Don't shadow table_header.
9448 (grub_linuxbios_table_iterate): Cast numeric constants to
9449 grub_linuxbios_table_header_t.
9450 * include/grub/i386/linuxbios/init.h: Add noreturn attribute to
9451 grub_stop().
9452
af58ab3d 9453 * kern/ieee1275/init.c: Cast _start and _end to grub_addr_t to
9454 prevent warnings.
9455
1759aa57 9456 * include/grub/misc.h (ALIGN_UP): Avoid unnecessary cast to a
9457 pointer, which can cause warnings. Support 64-bit addresses.
9458
fdecb8fd 9459 * util/elf/grub-mkimage.c: Use GRUB_TARGET_SIZEOF_LONG instead
9460 of sizeof(long). This fixes PowerPC image generation on x86_64.
9461
8516d2a8 94622008-07-04 Robert Millan <rmh@aybabtu.com>
9463
9464 This fixes a performance issue when pc & gpt partmap iterators
9465 didn't abort iteration even after our hook found what it was
fe987087 9466 looking for (often causing expensive probes of non-existent drives).
8516d2a8 9467
9468 Some callers relied on previous buggy behaviour, since they would
34c44600 9469 raise an error when their own hooks caused early abortion of its
8516d2a8 9470 iteration.
9471
9472 * kern/device.c (grub_device_open): Improve error message.
9473 * disk/lvm.c (grub_lvm_open): Likewise.
9474 * disk/raid.c (grub_raid_open): Likewise.
9475
9476 * partmap/pc.c (pc_partition_map_iterate): Abort parent iteration
9477 when hook requests it, independently of grub_errno.
9478 (pc_partition_map_probe): Do not fail when find_func() caused
9479 early abortion of pc_partition_map_iterate().
9480
9481 * partmap/gpt.c (gpt_partition_map_iterate): Abort parent iteration
9482 when hook requests it, independently of grub_errno.
9483 (gpt_partition_map_probe): Do not fail when find_func() caused
9484 early abortion of gpt_partition_map_iterate().
9485
9486 * kern/partition.c (grub_partition_iterate): Abort parent iteration
9487 when hook requests it, independently of grub_errno. Do not fail when
9488 part_map_iterate_hook() caused early abortion of p->iterate().
9489
9490 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Do not fail
9491 when grub_partition_iterate() returned with non-zero.
9492
277d0de9 94932008-07-03 Pavel Roskin <proski@gnu.org>
9494
9495 * disk/ata.c (grub_ata_pio_write): Check status before writing,
9496 like we do in grub_ata_pio_read().
9497 (grub_ata_readwrite): Always write individual sectors. Fix the
9498 sector count for the remainder.
9499 (grub_ata_write): Enable writing to ATA devices. Correctly
9500 report error for ATAPI devices.
9501
d4c9b428 95022008-07-02 Pavel Roskin <proski@gnu.org>
9503
e43fc690 9504 * boot/i386/pc/cdboot.S: Add _start entry to fix a linker
9505 warning.
9506
f707af42 9507 * disk/ata.c (grub_ata_readwrite): Don't increment sector number
9508 for every read sector, we already increment it for the whole
9509 batch. This fixes reading more than 256 sectors at once.
9510
11e16b15 9511 * util/grub-editenv.c (cmd_info): Cast argument to long
9512 explicitly. ptrdiff_t reduces to int on i386.
9513
cbabfdd4 9514 * util/grub-editenv.c (main): Be specific which parameter is
9515 missing.
9516
b8fbce0a 9517 * disk/memdisk.c (memdisk_addr): Make a pointer to fix warnings.
9518 (memdisk): Make memdisk_orig_addr a pointer.
9519
c9c8e606 9520 * fs/reiserfs.c (grub_reiserfs_read): Fix misuse of grub_size_t
9521 for file offsets, use grub_off_t instead. Fix printf format
9522 warnings.
9523
ca62e598 9524 * fs/reiserfs.c: Remove #warning, TODO list items don't belong
9525 there. Real unexpected warnings should not drown in the noise
9526 about known problems.
9527
ce8d1766 9528 * commands/hexdump.c (grub_cmd_hexdump): Fix misuse of
9529 grub_disk_addr_t for memory addresses.
9530
00c7a56a 9531 * loader/aout.c (grub_aout_load): Cast load_addr to pointer
9532 explicitly to fix a warning.
9533
08d3ef09 9534 * util/grub-editenv.c (cmd_info): Fix warning in printf format.
9535
cb71ba20 9536 * Makefile.in (MODULE_LDFLAGS): New variable.
9537 * aclocal.m4 (grub_PROG_LD_BUILD_ID_NONE): New macro. Check if
9538 the linker accepts --build-id=none.
9539 * configure.ac: Call grub_PROG_LD_BUILD_ID_NONE. Substitute
9540 MODULE_LDFLAGS.
9541 * genmk.rb: Use MODULE_LDFLAGS when linking modules.
9542
d4c9b428 9543 * fs/xfs.c (struct grub_xfs_dir_header): Use names similar to
9544 those in Linux XFS code. Provide a way to access 64-bit parent
9545 inode.
9546 (grub_xfs_iterate_dir): Use the new names. Avoid reading past
9547 the end of struct grub_xfs_dir_header.
9548
d4156eee 95492008-07-02 Bean <bean123ch@gmail.com>
9550
9551 * include/grub/ieee1275.h (grub_ieee1275_flag): New constant
9552 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
9553 and GRUB_IEEE1275_FLAG_NO_ANSI.
9554
9555 * kern/ieee1275/cmain.c (grub_ieee1275_find_options): Set flag
9556 GRUB_IEEE1275_FLAG_CANNOT_INTERPRET, GRUB_IEEE1275_FLAG_FORCE_CLAIM
9557 and GRUB_IEEE1275_FLAG_NO_ANSI for Open Hackware.
9558
9559 * kern/ieee1275/ieee1275.c (grub_ieee1275_interpret): Return
9560 immediately if GRUB_IEEE1275_FLAG_CANNOT_INTERPRET is set.
9561
9562 * kern/ieee1275/init.c (grub_claim_heap): Claim memory directly if
9563 GRUB_IEEE1275_FLAG_FORCE_CLAIM is set.
9564
9565 * term/ieee1275/ofconsole.c (grub_ofconsole_writeesc): Don't output
9566 esc sequence on non ANSI terminal.
9567 (grub_ofconsole_gotoxy): Emulate backspace key on non ANSI terminal.
9568
9569 * util/elf/grub-mkimage.c (add_segments): Move ELF header to the
9570 beginning of file.
9571
2270f77b 95722008-07-02 Bean <bean123ch@gmail.com>
9573
9574 * conf/common.rmk (bin_UTILITIES): Add grub-editenv.
9575 (grub_editenv_SOURCES): New variable.
9576 (pkglib_MODULES): Add loadenv.mod.
9577 (loadenv_mod_SOURCES): New variable.
9578 (loadenv_mod_CFLAGS): Likewise.
9579 (loadenv_mod_LDFLAGS): Likewise.
9580
9581 * include/grub/envblk.h: New file.
9582
9583 * util/envblk.c: New file.
9584
9585 * util/grub-editenv.c: New file.
9586
9587 * commands/loadenv.c: New file.
9588
0e9e51ec 95892008-07-01 Pavel Roskin <proski@gnu.org>
9590
d89b7634 9591 * include/multiboot2.h (struct multiboot_tag_module): Use char,
9592 not unsigned char. This fixes warnings and is consistent with
9593 other tags.
9594
bf1835b1 9595 * disk/fs_uuid.c (search_fs_uuid): Correctly increment count.
9596
8222a04b 9597 * normal/parser.y: Define YYENABLE_NLS as 0 to fix warnings.
9598
6a42d99d 9599 * term/tparm.c (analyze): Always set *popcount.
9600
10b159d1 9601 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Remove useless
9602 cast to fix a warning.
9603
b8789f6c 9604 * loader/i386/pc/multiboot2.c (grub_mb2_arch_module_alloc): Use
9605 cast to suppress a warning.
9606
29d7e38a 9607 * fs/afs.c (grub_afs_read_block): Return grub_disk_addr_t, as
9608 grub_fshelp_read_file() expects.
9609
f341f669 9610 * fs/fat.c: Fix UUID calculation on big-endian systems. We
9611 write uuid as a 32-bit value in CPU byte order, so declare and
9612 use it as such.
9613
0e9e51ec 9614 * disk/raid.c: Cast grub_dprintf() arguments to unsigned long
9615 long if the format specifier expects it.
9616 * partmap/gpt.c (gpt_partition_map_iterate): Likewise.
9617 * partmap/pc.c (pc_partition_map_iterate): Likewise.
9618 * fs/ntfs.c (grub_ntfs_uuid): Cast data->uuid to unsigned long
9619 long to fix a warning.
9620 * fs/reiserfs.c (grub_reiserfs_read): Change casts in
9621 grub_dprintf() arguments to fix warnings.
9622
3aefa857 96232008-06-30 Pavel Roskin <proski@gnu.org>
9624
56c7668b 9625 * util/i386/pc/grub-setup.c (setup): Write install_dos_part and
9626 install_bsd_part immediately before core.img is embedded or
9627 modified on disk. This fixes core.img verification if core.img
9628 cannot be embedded.
9629
3aefa857 9630 * util/i386/pc/grub-setup.c (setup): Use core_path_dev, not
9631 core_path to calculate the blocklist.
9632 Patch from Javier Martín <lordhabbit@gmail.com>
9633
5444088d 96342008-06-29 Robert Millan <rmh@aybabtu.com>
9635
9636 * fs/xfs.c (GRUB_XFS_FSB_TO_BLOCK): New macro. Maps filesystem
9637 block to disk block.
9638 (grub_xfs_read_block): Use GRUB_XFS_FSB_TO_BLOCK() on result.
9639 Patch from Niels Böhm <bitbucket@arcor.de>
9640
674835c8 96412008-06-29 Robert Millan <rmh@aybabtu.com>
9642
9643 * util/update-grub_lib.in (font_path): Search for fonts in
9644 /boot/grub first, which is more likely to be readable (we aren't
9645 deciding where fonts live, just looking for them).
9646
f527dbc8 96472008-06-26 Pavel Roskin <proski@gnu.org>
9648
6c2d8df6 9649 * util/biosdisk.c (read_device_map): Don't leave dead map
9650 entries for devices failing stat() check.
9651
f527dbc8 9652 * util/i386/pc/grub-setup.c (setup): Don't reuse core_path, use
9653 core_path_dev for the core.img path on the target device.
9654
aebe3d13 96552008-06-26 Robert Millan <rmh@aybabtu.com>
9656
9657 * disk/fs_uuid.c: New file.
9658 * conf/common.rmk (pkglib_MODULES): Add `fs_uuid.mod'.
9659 (fs_uuid_mod_SOURCES, fs_uuid_mod_CFLAGS)
9660 (fs_uuid_mod_LDFLAGS): New variables.
9661 * include/grub/disk.h (grub_disk_dev_id): Add
9662 `GRUB_DISK_DEVICE_UUID_ID'.
9663 * kern/disk.c (grub_disk_dev_iterate): Allow disk devices not to
9664 implement iterate().
9665
37aaf354 96662008-06-26 Robert Millan <rmh@aybabtu.com>
9667
9668 * util/grub.d/10_linux.in: Avoid passing UUIDs to Linux when either
9669 "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" does not exist, or when a
9670 Linux image includes no initrd.
9671
25ff262a 96722008-06-21 Javier Martín <lordhabbit@gmail.com>
9673
9674 * util/i386/pc/grub-setup.c (setup): Remove literal "core.img" in a
9675 call to resolve the core image location that effectively appended the
9676 name twice.
9677
76a2bd44 96782008-06-21 Robert Millan <rmh@aybabtu.com>
9679
9680 * util/grub.d/00_header.in: Move last prepare_grub_to_access_device()
9681 call from here ...
9682
9683 * util/grub.d/10_hurd.in: ... to here ...
9684 * util/grub.d/10_linux.in: ... and here.
9685
650e1c79 96862008-06-19 Robert Millan <rmh@aybabtu.com>
9687
fe987087 9688 * kern/main.c (grub_main): Export `prefix' variable immediately
650e1c79 9689 after it has been set by grub_machine_set_prefix().
9690
6ce63911 96912008-06-19 Robert Millan <rmh@aybabtu.com>
9692
9693 * commands/search.c (search_label, search_fs_uuid, search_file): Print
9694 search result when not saving to variable, not the other way around.
9695 When saving to variable, abort iteration as soon as a match is found.
9696
73940cec 96972008-06-19 Robert Millan <rmh@aybabtu.com>
9698
9699 * util/update-grub_lib.in (prepare_grub_to_access_device): Remove
9700 check for partition that provides /boot/grub. Its logic is flawed,
9701 as it prevents prepare_grub_to_access_device() from being called
9702 multiple times.
9703
3c62a39d 97042008-06-19 Robert Millan <rmh@aybabtu.com>
9705
9706 * util/update-grub_lib.in (prepare_grub_to_access_device): Issue
9707 "insmod" command directly when abstraction modules are needed,
fe987087 9708 instead of relying on GRUB_PRELOAD_MODULES (which had no effect
3c62a39d 9709 since it had already been processed).
9710
47395a42 97112008-06-19 Pavel Roskin <proski@gnu.org>
9712
9713 * conf/i386-efi.rmk: Recompile grub-mkimage.c if Makefile has
9714 changed. This is needed in case GRUB_LIBDIR changes.
9715 * conf/i386-ieee1275.rmk: Likewise.
9716 * conf/i386-linuxbios.rmk: Likewise.
9717 * conf/i386-pc.rmk: Likewise.
9718 * conf/powerpc-ieee1275.rmk: Likewise.
9719
a145ac2d 97202008-06-18 Pavel Roskin <proski@gnu.org>
9721
9722 * conf/powerpc-ieee1275.rmk (kernel_elf_SOURCES): Rename
9723 kernel_elf_symlist.c to symlist.c for consistency with other
9724 architectures. Update all users.
9725 * conf/sparc64-ieee1275.rmk (kernel_elf_SOURCES): Likewise.
9726
7847c51e 97272008-06-18 Robert Millan <rmh@aybabtu.com>
9728
9729 * util/i386/pc/grub-install.in: If the drive is LVM or RAID, prepend
9730 it in prefix.
9731
9732 * util/i386/pc/grub-setup.c (main): Don't handle prefix at all. Set
9733 `must_embed' to 1 when root_dev is a RAID device. When dest_dev is
9734 a RAID device, run setup() for all members independently on whether
9735 LVM abstraction is being used.
9736 (setup): Don't handle prefix at all; let grub-mkimage take care of it.
9737 If grub-mkimage has set `*install_dos_part == -2', don't override this
9738 value.
9739 Perform *install_dos_part adjustments independently on whether
9740 we're embedding or not.
9741 Clarify error message when image is too big for embedding.
9742 Remove duplicate *install_dos_part stanza.
9743
b23e5644 97442008-06-17 Robert Millan <rmh@aybabtu.com>
9745
9746 * term/ieee1275/ofconsole.c (fgcolor, bgcolor): Remove variables.
9747 (grub_ofconsole_normal_color, grub_ofconsole_highlight_color): New
9748 variables.
9749 (grub_ofconsole_setcolor, grub_ofconsole_getcolor): Load/store
9750 values in grub_ofconsole_normal_color and
9751 grub_ofconsole_highlight_color (they're not directly related to
9752 background and foreground).
9753 (grub_ofconsole_setcolorstate): Extract background and foreground
9754 from grub_ofconsole_normal_color and grub_ofconsole_highlight_color.
9755
0aac2f79 97562008-06-17 Robert Millan <rmh@aybabtu.com>
9757
9758 * util/update-grub_lib.in (prepare_grub_to_access_device): Use
9759 /boot/grub for the check in last commit, not /boot (they could be
9760 different partitions).
9761
3cca7ef3 97622008-06-16 Robert Millan <rmh@aybabtu.com>
9763
9764 * util/update-grub_lib.in (prepare_grub_to_access_device): If we were
9765 asked to setup access for the same partition that provides /boot,
9766 don't bother using UUIDs since our root already has the value we
9767 want.
9768
347396d8 97692008-06-16 Robert Millan <rmh@aybabtu.com>
9770
9771 * util/biosdisk.c (convert_system_partition_to_system_disk): Detect
9772 I2O devices.
9773 Patch from Sven Mueller <sven@debian.org>.
9774
991477f8 97752008-06-16 Robert Millan <rmh@aybabtu.com>
9776
9777 * util/update-grub.in: Check for $EUID instead of $UID.
9778 Reported by Vincent Zweije.
9779
d31a32a1 97802008-06-16 Bean <bean123ch@gmail.com>
9781
fe987087 9782 * fs/ext2.c (grub_ext2_blockgroup): Revert to pre-journal state.
d31a32a1 9783 (grub_ext2_read_block): Likewise.
9784 (grub_ext2_read_inode): Likewise.
9785 (grub_ext2_mount): Likewise.
9786 (grub_ext2_close): Likewise.
9787 (grub_ext3_get_journal): Removed.
9788
fe987087 9789 * fs/reiserfs.c (grub_reiserfs_get_item): Revert to pre-journal state.
d31a32a1 9790 (grub_reiserfs_read_symlink): Likewise.
9791 (grub_reiserfs_mount): Likewise.
9792 (grub_reiserfs_open): Likewise.
9793 (grub_reiserfs_read): Likewise.
9794 (grub_reiserfs_close): Likewise.
9795 (grub_reiserfs_get_journal): Removed.
9796
9797 * fs/fshelp.c (grub_fshelp_read): Removed.
9798 (grub_fshelp_map_block): Likewise.
9799
9800 * include/grub/fshelp.h (grub_fshelp_journal_type): Removed.
9801 (grub_fshelp_journal): Likewise.
9802 (grub_fshelp_read): Likewise.
9803 (grub_fshelp_map_block): Likewise.
9804
3540a760 98052008-06-16 Pavel Roskin <proski@gnu.org>
9806
9807 * conf/powerpc-ieee1275.rmk: Remove -msoft-float, we don't use
9808 floating point anymore.
9809 * include/grub/powerpc/libgcc.h: Leave only necessary exports.
9810
95614c84 98112008-06-15 Pavel Roskin <proski@gnu.org>
9812
9813 * commands/ls.c (grub_ls_list_files): Use integer calculations
9814 for human readable format, avoid floating point use.
9815 * kern/misc.c (grub_ftoa): Remove.
9816 (grub_vsprintf): Remove floating point support.
9817
50465dd6 98182008-06-15 Robert Millan <rmh@aybabtu.com>
9819
fe6b695a 9820 * util/grub.d/10_linux.in: Use the underlying device for loop-AES
50465dd6 9821 devices.
9822 Reported by Max Vozeler.
9823
a9207284 98242008-06-15 Robert Millan <rmh@aybabtu.com>
9825
9826 * util/i386/pc/grub-mkimage.c (generate_image): If we included a drive
9827 in our prefix, set install_{dos,bsd}_part = -2 to indicate this can be
9828 skipped later.
9829 (main): If a memdisk was requested, add "(memdisk)" drive explicitly to
9830 the beginning of the prefix.
9831
9832 * kern/i386/pc/init.c (make_install_device): Remove memdisk check.
9833 It is assumed that if we have a memdisk, grub-mkimage has set
9834 grub_prefix to include the "(memdisk)" drive in it.
9835
a7cbd45a 98362008-06-15 Robert Millan <rmh@aybabtu.com>
9837
9838 * term/i386/pc/console.c [GRUB_MACHINE_LINUXBIOS] (grub_console_init):
9839 Initialize keyboard controller after registering the terminal, so that
9840 grub_printf() can be called from grub_keyboard_controller_init().
9841
21cf716a 98422008-06-15 Robert Millan <rmh@aybabtu.com>
9843
9844 * fs/sfs.c (grub_sfs_read_extent): Fix the count of nodes in
9845 extent-btree which is written as big endian on disk.
9846 Reported by Alain Greppin <al@chilibi.org>.
9847
23a64d8e 98482008-06-14 Robert Millan <rmh@aybabtu.com>
9849
9850 * util/i386/efi/grub-install.in (modules): Remove `_chain'.
9851 * util/i386/pc/grub-install.in (modules): Likewise.
9852
d687651c 98532008-06-13 Pavel Roskin <proski@gnu.org>
9854
9855 * commands/ls.c (grub_ls_list_files): Fix format warnings.
9856
dfe9ddd4 98572008-06-13 Bean <bean123ch@gmail.com>
9858
9859 * commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.
9860
9861 * fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling.
9862
9863 * fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
9864 to indicate sparse block.
9865
16ae7781 98662008-06-12 Pavel Roskin <proski@gnu.org>
9867
e6d1a308 9868 * fs/ext2.c (grub_ext2_read_inode): Don't normalize block
9869 number, grub_fshelp_read() does it for us.
9870
16ae7781 9871 * fs/fshelp.c (grub_fshelp_read): New function. Implement
9872 linear disk read with journal translation.
9873 * fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
9874 * include/grub/fshelp.h: Declare grub_fshelp_read().
9875
40fd3a2b 98762008-06-09 Pavel Roskin <proski@gnu.org>
9877
9878 * fs/minix.c (grub_minix_mount): Handle error reading
9879 superblock.
9880
f5679726 98812008-06-08 Robert Millan <rmh@aybabtu.com>
9882
9883 * util/i386/pc/grub-setup.c (main): If install drive is an LVM,
9884 don't append the RAID prefix afterwards.
9885 Reported by Clint Adams.
9886
ce525529 98872008-06-08 Robert Millan <rmh@aybabtu.com>
9888
9889 Based on description from Pavel:
9890 * kern/disk.c (grub_disk_check_range): Rename to ...
9891 (grub_disk_adjust_range): ... this. Add a comment explaining the
9892 tasks performed by this function.
9893
ad4936a0 98942008-06-08 Robert Millan <rmh@aybabtu.com>
9895
9896 * include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to
9897 `num_serial' (for consistency with other variables).
9898 (struct grub_ntfs_data): Add `uuid' member.
9899 * fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'.
9900 (grub_ntfs_uuid): New function.
9901 (grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member.
9902
dc20b0f9 99032008-06-07 Pavel Roskin <proski@gnu.org>
9904
9905 * util/biosdisk.c (open_device): Revert last change to the
9906 function, it broke installation. The sector needs to be
9907 different dependent on which device is opened.
9908
c5e3cfba 99092008-06-06 Robert Millan <rmh@aybabtu.com>
9910
9911 Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the
9912 rest of GRUB, and breakage doesn't happen if its value were modified.
9913
9914 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
9915 Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of
9916 a constant (same value).
9917 * kern/i386/pc/startup.S: Replace hardcoded `0x50' with
9918 `GRUB_KERNEL_MACHINE_DATA_END' (same value).
9919
26a1f8c4 99202008-06-06 Robert Millan <rmh@aybabtu.com>
9921
9922 * util/biosdisk.c (open_device): Do not modify sector offset when
9923 accessing a partition. kern/disk.c already handles this for us.
9924
25d6b327 99252008-06-06 Robert Millan <rmh@aybabtu.com>
9926
9927 * util/grub-emu.c (grub_machine_init): Move code in this function from
9928 here ...
9929 (main): ... to here (before grub_util_biosdisk_init() call, to prevent
9930 segfault in case grub_printf() is called).
9931
9932 * util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to
9933 grub_probe. Update all users not to explicitly add it again.
9934 (grub_device): New variable; contains corresponding device for grubdir.
9935 (fs_module, partmap_module, devabstraction_module): Pass
9936 `--device ${grub_device}' to grub_probe to avoid traversing /dev
9937 every time.
9938
9ece62fb 99392008-06-05 Robert Millan <rmh@aybabtu.com>
9940
9941 * normal/misc.c (grub_normal_print_device_info): When a filesystem UUID
9942 is found, print it (same layout as with labels).
9943
1ad36d37 99442008-06-04 Robert Millan <rmh@aybabtu.com>
9945
9946 * util/biosdisk.c (get_drive): Rename to ...
9947 (find_grub_drive): ... this. Update all users.
9948
9949 (get_os_disk): Rename to ...
9950 (convert_system_partition_to_system_disk): ... this. Update all users.
9951
9952 (find_drive): Rename to ...
9953 (find_system_device): ... this. Update all users.
9954
e6a30859 99552008-06-04 Robert Millan <rmh@aybabtu.com>
9956
9957 * util/biosdisk.c (get_os_disk): Handle IDA devices.
9958 * util/grub-mkdevicemap.c (get_mmc_disk_name)
9959 (make_device_map): Likewise.
9960
00c108a4 99612008-06-01 Robert Millan <rmh@aybabtu.com>
9962
9963 * util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL
9964 before dereferencing it.
9965
9966 * fs/fat.c (struct grub_fat_bpb): Move fat32-specific fields into a
9967 union with fat12/fat16-specific ones. Add some new fields, including
9968 `num_serial' for both versions.
9969 (struct grub_fat_data): Add `uuid' member.
9970 (grub_fat_mount): Refer to fat32-specific fields in `bpb' by their new
9971 names. Initialize `data->uuid' using `num_serial'.
9972 (grub_fat_uuid): New function.
9973 (grub_fat_fs): Reference grub_fat_uuid() in `uuid' struct member.
9974
9975 * fs/reiserfs.c (grub_reiserfs_superblock): Add `uuid' field.
9976 (grub_reiserfs_uuid): New function.
9977 (grub_reiserfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct
9978 member.
9979
9980 * fs/xfs.c (grub_xfs_sblock): Add `uuid' field.
9981 (grub_xfs_uuid): New function.
9982 (grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member.
9983
1385c5bb 99842008-06-01 Robert Millan <rmh@aybabtu.com>
9985
9986 * util/update-grub_lib.in (prepare_grub_to_access_device): Generate
9987 code that is backward compatible with pre-uuid search command.
9988
c682dfd7 99892008-05-31 Robert Millan <rmh@aybabtu.com>
9990
9991 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through
9992 floppies after everything else, to ensure floppy drive isn't accessed
9993 unnecessarily (patch from Bean).
9994
b7db5d47 99952008-05-31 Robert Millan <rmh@aybabtu.com>
9996
9997 * commands/search.c (search_label, search_fs_uuid, search_file): Do
9998 not print device names when we were asked to set a variable.
9999
6e037aa9 100002008-05-31 Robert Millan <rmh@aybabtu.com>
10001
10002 * term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement
10003 using "cursor-on" and "cursor-off" commands (understood at least by
10004 the Open Firmware flavour on OLPC).
10005
41305bc8 100062008-05-31 Michael Gorven <michael@gorven.za.net>
10007
10008 * term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor
10009 on and off sequences.
10010
69ba137e 100112008-05-31 Robert Millan <rmh@aybabtu.com>
10012
10013 * util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'.
10014 * util/update-grub.in: Likewise.
10015
520ae21b 100162008-05-30 Pavel Roskin <proski@gnu.org>
10017
10018 * util/biosdisk.c (linux_find_partition): Simplify logic and
10019 make the code more universal. Keep special processing for
10020 devfs, but use a simple rule for all other devices. If the
10021 device ends with a number, append 'p' and the partition number.
10022 Otherwise, append only the partition number.
10023
5786569b 100242008-05-30 Robert Millan <rmh@aybabtu.com>
10025
10026 * util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable.
10027 * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and
10028 GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as
10029 the `root' parameter to Linux.
10030
51500452 100312008-05-30 Robert Millan <rmh@aybabtu.com>
10032
10033 * commands/search.c (options): Rename --fs_uuid to --fs-uuid.
10034 * util/update-grub_lib.in (prepare_grub_to_access_device): Replace
10035 --fs_uuid with --fs-uuid.
10036 * util/update-grub.in: Allow filesystem UUID probes to fail (since not
10037 all filesystems support them).
10038
811d3878 100392008-05-30 Robert Millan <rmh@aybabtu.com>
10040
10041 * fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as
f19dbdb7 10042 grub_printf() flags, since we're printing in units of 2 bytes.
811d3878 10043
cab63c95 100442008-05-30 Robert Millan <rmh@aybabtu.com>
10045
10046 * util/grub.d/00_header.in: Remove obsolete comment referencing
10047 convert_system_path_to_grub_path().
10048 * util/update-grub.in: Likewise.
10049 * util/update-grub_lib.in (is_path_readable_by_grub): New function.
10050 (convert_system_path_to_grub_path): Add a warning message explaining
10051 that this function is deprecated. Rely on is_path_readable_by_grub()
10052 for the readability checks.
10053 (font_path): Use is_path_readable_by_grub() for the readability
10054 check rather than convert_system_path_to_grub_path().
10055
972e2f7a 100562008-05-30 Robert Millan <rmh@aybabtu.com>
10057
10058 * util/update-grub_lib.in (prepare_grub_to_access_device): New function.
10059 * util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without
10060 converting it first.
10061 * util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup
10062 grub.cfg for access to font file, and afterwards call it again to set
10063 the root device.
10064
62191274 100652008-05-30 Robert Millan <rmh@aybabtu.com>
10066
10067 * commands/search.c (options): Add --fs_uuid option.
10068 (search_fs_uuid): New function.
10069 (grub_cmd_search): Fix --set argument passing.
10070 Use search_fs_uuid() when requested via --fs_uuid.
10071 (grub_search_init): Update help message.
10072 * fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid'
10073 and redeclare it as an array of 16-bit words.
10074 (grub_ext2_uuid): New function.
10075 (grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member.
10076 * include/grub/fs.h (struct grub_fs): Add `uuid' struct member.
10077 * util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT)
10078 (GRUB_DEVICE_BOOT_UUID): New variables.
10079 (GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove.
10080 * util/grub.d/00_header.in: Set root using `search --fs_uuid' command
10081 whenever possible.
10082 * util/grub.d/10_hurd.in: Avoid explicit use of root drive. Instead,
10083 just assume `root' variable has the right value.
10084 * util/grub.d/10_linux.in: Likewise.
10085 * util/grub-probe.c (probe): Probe for filesystem UUID when requested
10086 via PRINT_FS_UUID.
10087 (main): Recognise `-t fs_uuid' argument.
10088
01b73ec8 100892008-05-30 Robert Millan <rmh@aybabtu.com>
10090
10091 * util/biosdisk.c (map): Redefine structure to hold information
10092 about GRUB drive name.
fe6b695a 10093 (get_drive): Reimplement without assuming (and verifying) BIOS-like
01b73ec8 10094 drive names.
10095 (call_hook): Remove.
10096 (grub_util_biosdisk_iterate): Access drive names via `.drive' struct
10097 member. Assume drive has partitions.
10098 (grub_util_biosdisk_open): Access device names via `.device' struct
10099 member.
10100 (open_device): Likewise.
10101 (find_drive): Likewise.
10102 (read_device_map): Adjust map[] usage to match the new struct
10103 definition. Don't check for duplicates (still possible, but not cheap
10104 anymore).
10105 (grub_util_biosdisk_fini): Free malloced buffers referenced by map[].
10106 (make_device_name): Remove assumption of BIOS-like drive names.
10107
22f16596 101082008-05-30 Pavel Roskin <proski@gnu.org>
10109
10110 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as
10111 compiling execute.c doesn't need grub_script.tab.h anymore.
10112 (normal/command.c_DEPENDENCIES): Likewise.
10113 (normal/function.c_DEPENDENCIES): Likewise.
10114 * conf/i386-ieee1275.rmk: Likewise.
10115 * conf/i386-linuxbios.rmk: Likewise.
10116 * conf/i386-pc.rmk: Likewise.
10117 * conf/powerpc-ieee1275.rmk: Likewise.
10118 * conf/sparc64-ieee1275.rmk: Likewise.
10119
528ad8f2 101202008-05-29 Pavel Roskin <proski@gnu.org>
10121
d1dff95d 10122 * disk/lvm.c (grub_lvm_scan_device): Check for the buffer end
10123 when scanning metadata for volume group name.
10124
528ad8f2 10125 * include/grub/script.h: Don't include grub_script.tab.h. It's
10126 a generated file, which may only be included from the files with
10127 DEPENDENCIES rules in the makefile. Don't use typedef YYSTYPE,
10128 use union YYSTYPE, as the later allows forward declaration.
10129 * normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.
10130
47248e08 101312008-05-29 Robert Millan <rmh@aybabtu.com>
10132
10133 * term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'.
10134 (OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros.
10135 [GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes
10136 (grub_console_checkkey): Add grub_dprintf() call to report unknown
10137 scan codes.
10138
ee632529 101392008-05-29 Robert Millan <rmh@aybabtu.com>
10140
10141 * term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for
10142 control key combinations.
10143
eee96e08 101442008-05-29 Robert Millan <rmh@aybabtu.com>
10145
10146 * util/powerpc/ieee1275/grub-install.in: Move from here ...
10147 * util/ieee1275/grub-install.in: ... to here.
10148 * powerpc-ieee1275.rmk (grub_install_SOURCES): Update location.
10149 * i386-ieee1275.rmk (sbin_SCRIPTS): New variable.
10150 (grub_install_SOURCES): Likewise.
10151
da9a6a94 101522008-05-29 Robert Millan <rmh@aybabtu.com>
10153
10154 * fs/affs.c: Update copyright year.
10155 * fs/ext2.c: Likewise.
10156 * fs/fshelp.c: Likewise.
10157 * fs/hfsplus.c: Likewise.
10158 * fs/ntfs.c: Likewise.
10159 * fs/xfs.c: Likewise.
10160 * include/grub/fshelp.h: Likewise.
10161 * util/grub-mkdevicemap.c: Likewise.
10162
12e65f3a 101632008-05-28 Robert Millan <rmh@aybabtu.com>
10164
10165 * util/update-grub.in: Allow chmod call to fail, since /boot/grub/
10166 might need to be fatfs to support some firmware implementations
10167 (e.g. OFW or EFI).
10168
23023641 101692008-05-28 Robert Millan <rmh@aybabtu.com>
10170
10171 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC
10172 devices.
10173 * util/grub-mkdevicemap.c (get_mmc_disk_name)
10174 (make_device_map): Likewise.
10175
887d2619 101762008-05-20 Bean <bean123ch@gmail.com>
10177
10178 * fs/fshelp.c (grub_fshelp_map_block): New function.
10179 (grub_fshelp_find_file): Use 64-bit type for pos and block address.
10180 Use `>>' and `&' operator to avoid 64-bit divide and modulo.
10181
10182 * include/grub/fshelp.h (grub_fshelp_journal_type): New enum.
10183 (GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro.
10184 (grub_fshelp_journal): New structure.
10185 (grub_fshelp_map_block): New function prototype.
10186 (grub_fshelp_read_file): Use grub_disk_addr_t as block type.
10187 (grub_fshelp_map_block): Likewise.
10188
10189 * fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro.
10190 (EXT3_JOURNAL_MAGIC_NUMBER): Likewise.
10191 (EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise.
10192 (EXT3_JOURNAL_COMMIT_BLOCK): Likewise.
10193 (EXT3_JOURNAL_SUPERBLOCK_V1): Likewise.
10194 (EXT3_JOURNAL_SUPERBLOCK_V2): Likewise.
10195 (EXT3_JOURNAL_REVOKE_BLOCK): Likewise.
10196 (EXT3_JOURNAL_FLAG_ESCAPE): Likewise.
10197 (EXT3_JOURNAL_FLAG_SAME_UUID): Likewise.
10198 (EXT3_JOURNAL_FLAG_DELETED): Likewise.
10199 (EXT3_JOURNAL_FLAG_LAST_TAG): Likewise.
10200 (grub_ext2_sblock): New members for journal support.
10201 (grub_ext3_journal_header): New structure.
10202 (grub_ext3_journal_revoke_header): Likewise.
10203 (grub_ext3_journal_block_tag): Likewise.
10204 (grub_ext3_journal_sblock): Likewise.
10205 (grub_fshelp_node): New members logfile and journal.
10206 (grub_ext2_read_block): Change block type to grub_disk_addr_t. Use
10207 grub_fshelp_map_block to get real block number.
10208 (grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block
10209 number.
10210 (grub_ext2_read_inode): Likewise.
10211 (grub_ext3_get_journal): New function.
10212 (grub_read_inode): Initialize journal using grub_ext3_get_journal.
10213 (grub_ext2_close): Release memory used by journal.
10214
10215 * fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr".
10216 (REISERFS_MAGIC_DESC_BLOCK): New macro.
10217 (grub_reiserfs_transaction_header): Renamed to
10218 grub_reiserfs_description_block, replace field data with real_blocks.
10219 (grub_reiserfs_commit_block): New structure.
10220 (grub_reiserfs_data): New member journal.
10221 (grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block
10222 number.
10223 (grub_reiserfs_read_symlink): Likewise.
10224 (grub_reiserfs_iterate_dir): Likewise.
10225 (grub_reiserfs_open): Likewise.
10226 (grub_reiserfs_read): Likewise.
10227 (grub_reiserfs_get_journal): New function.
10228 (grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are
10229 three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal
10230 using grub_reiserfs_get_journal.
10231 (grub_reiserfs_close): Release memory used by journal.
10232
10233 * fs/affs.c (grub_affs_read_block): Change block type to
10234 grub_disk_addr_t. Use grub_divmod64 to do 64-bit division.
10235
10236 * fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t.
10237
10238 * fs/hfsplus.c (grub_hfsplus_read_block): Likewise.
10239
10240 * fs/ntfs.c (grub_ntfs_read_block): Likewise.
10241
10242 * fs/udf.c (grub_udf_read_block): Change block type to
10243 grub_disk_addr_t. Use type cast to avoid warning.
10244
10245 * fs/xfs.c (grub_xfs_read_block): Likewise.
10246
b7c6bed5 102472008-05-16 Christian Franke <franke@computer.org>
10248
10249 * commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue
10250 to ensure that break with ESC will always work.
10251 * commands/sleep.c (grub_interruptible_millisleep): Likewise.
10252 Remove ESC from keyboard queue.
10253
eedf167f 102542008-05-16 Christian Franke <franke@computer.org>
10255
10256 * util/biosdisk.c: [__CYGWIN__] Add includes.
10257 (grub_util_biosdisk_open): Use Linux code also for Cygwin.
10258 (get_os_disk): Move variable declarations to OS specific
10259 parts to avoid warning.
10260 [__GNU__] (get_os_disk): Fix /dev/sdXsN case.
10261 [__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names.
10262 (grub_util_biosdisk_get_grub_dev): Use Linux code also for
10263 Cygwin.
10264 * util/getroot.c: [__CYGWIN__] Add includes.
10265 (strip_extra_slashes): Fix "/" case.
10266 [__CYGWIN__] (get_win32_path): New function.
10267 [__CYGWIN__] (grub_get_prefix): Add conversion to win32 path.
10268 [__CYGWIN__] (find_root_device): Disable.
10269 [__CYGWIN__] (get_bootsec_serial): New function.
10270 [__CYGWIN__] (find_cygwin_root_device): Likewise.
10271 [__linux__] (grub_guess_root_device): Add early returns to simplify
10272 structure.
10273 [__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device.
10274 [__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID
10275 check for Linux only.
10276
a079699e 102772008-05-15 Bean <bean123ch@gmail.com>
10278
10279 * kern/i386/pc/startup.S (grub_console_getkey): Workaround for the
10280 keyboard hang problem in apple's intel mac.
10281
1cf4059a 102822008-05-09 Robert Millan <rmh@aybabtu.com>
10283
10284 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio
10285 devices.
10286 * util/grub-mkdevicemap.c (get_virtio_disk_name)
10287 (make_device_map): Likewise.
10288 Reported by Aurelien Jarno <aurel32@debian.org>
10289
ed759390 102902008-05-07 Ian Campbell <ijc@hellion.org.uk>
10291
10292 * util/biosdisk.c (get_os_disk): Recognise xvd type disks.
10293 * util/grub-mkdevicemap.c (get_xvd_disk_name): New function.
10294 (make_device_map): Output entries for xvd type disks.
10295
b56c4eaa 102962008-05-07 Robert Millan <rmh@aybabtu.com>
10297
10298 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS
10299 devices.
10300 * util/grub-mkdevicemap.c (get_cciss_disk_name)
10301 (make_device_map): Likewise.
10302 Reported by Roland Dreier <rdreier@cisco.com>
10303
7f8866ed 103042008-05-07 Robert Millan <rmh@aybabtu.com>
10305
10306 * disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional
10307 grub_strstr() call. Correct a few mistakes in failure path handling.
10308
b0346e0f 103092008-05-06 Robert Millan <rmh@aybabtu.com>
10310
10311 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
10312 Do not print a trailing slash (therefore, the root directory is an
10313 empty string).
10314 (convert_system_path_to_grub_path): Do not remove trailing slash
10315 from make_system_path_relative_to_its_root() output.
10316
10317 * util/i386/pc/grub-install.in: Add trailing slash to output from
10318 make_system_path_relative_to_its_root().
10319
6cf12cbd 103202008-05-06 Robert Millan <rmh@aybabtu.com>
10321
10322 * util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'. This
10323 ensures that output lines aren't intermangled with those sent to
10324 stderr (via grub_util_info()).
10325 * util/grub-probe.c (grub_refresh): Likewise.
10326 * util/i386/pc/grub-setup.c (grub_refresh): Likewise.
10327
0fbb3117 103282008-05-05 Christian Franke <franke@computer.org>
10329
10330 * util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]:
10331 Add Cygwin device names.
10332 (get_ide_disk_name) [__CYGWIN__]: Likewise.
10333 (get_scsi_disk_name) [__CYGWIN__]: Likewise.
10334 (check_device): Return error instead of success on empty name.
10335 (make_device_map): Move label inside linux specific code to
10336 prevent compiler warning.
10337
8124cdb7 103382008-04-30 Robert Millan <rmh@aybabtu.com>
10339
10340 Based on patch from Fabian Greffrath <greffrath@leat.rub.de>
10341 * util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the
10342 first boot option.
10343 * util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT.
10344
094c01d0 103452008-04-29 Robert Millan <rmh@aybabtu.com>
10346
10347 * docs/grub.cfg: New file (example GRUB configuration).
10348
f4b1fc02 103492008-04-26 Robert Millan <rmh@aybabtu.com>
10350
329ce2a5 10351 * DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST). Add
10352 `loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c'
10353 and `disk/ieee1275/nand.c'.
f4b1fc02 10354
25f16ec1 103552008-04-25 Bean <bean123ch@gmail.com>
f19dbdb7 10356
25f16ec1 10357 * Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and
10358 i386-linuxbios.
10359
10360 * commands/hexdump.c (grub_cmd_hexdump): Support dumping of device,
10361 change the buffer size to 4096 for cdrom device.
10362
10363 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add _linux.mod, linux.mod
10364 and nand.mod.
10365 (_linux_mod_SOURCES): New variable.
10366 (_linux_mod_CFLAGS): Likewise.
10367 (_linux_mod_LDFLAGS): Likewise.
10368 (linux_mod_SOURCES): Likewise.
10369 (linux_mod_CFLAGS): Likewise.
10370 (linux_mod_LDFLAGS): Likewise.
10371 (nand_mod_SOURCES): Likewise.
10372 (nand_mod_CFLAGS): Likewise.
10373 (nand_mod_LDFLAGS): Likewise.
10374
10375 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Return
10376 GRUB_ERR_UNKNOWN_DEVICE instead of GRUB_ERR_BAD_DEVICE if no device
10377 type property. (nand device in olpc don't have this property)
10378
10379 * include/grub/disk.h (grub_disk_dev_id): New macro
10380 GRUB_DISK_DEVICE_NAND_ID.
10381
10382 * include/grub/i386/ieee1275/loader.h (grub_rescue_cmd_linux): New
10383 function prototype.
10384 (grub_rescue_cmd_initrd): Likewise.
10385
10386 * include/grub/i386/linux.h (GRUB_LINUX_OFW_SIGNATURE): New macro.
10387 (linux_kernel_params): Add new member ofw_signature, ofw_num_items,
10388 ofw_cif_handler and ofw_idt, adjust padding number.
f19dbdb7 10389
25f16ec1 10390 * include/grub/i386/pc/memory.h (grub_upper_mem): Export it if
10391 GRUB_MACHINE_IEEE1275 is defined.
10392
10393 * include/grub/ieee1275/ieee1275.h (grub_available_iterate):
10394 Use NESTED_FUNC_ATTR attribute on the hook parameter.
10395
10396 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Use NESTED_FUNC_ATTR
10397 on nested function heap_init.
10398 (grub_upper_mem): New variable for i386-ieee1275.
10399 (grub_get_extended_memory): New function for i386-ieee1275.
10400 (grub_machine_init): Call grub_get_extended_memory for i386-ieee1275.
10401
10402 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Use
10403 NESTED_FUNC_ATTR on the hook parameter. Don't quit if no device type
10404 property.
f19dbdb7 10405
25f16ec1 10406 * loader/i386/ieee1275/linux.c: New file.
10407
10408 * loader/i386/ieee1275/linux_normal.c: New file.
10409
10410 * disk/ieee1275/nand.c: New file.
10411
e89d61e9 104122008-04-18 Thomas Schwinge <tschwinge@gnu.org>
10413
10414 * util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct
10415 value.
10416 * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise.
10417
602566f6 104182008-04-18 Robert Millan <rmh@aybabtu.com>
10419
10420 Restructures early code path on ieee1275 to unify grub_main() as
10421 the first C function that is executed in every platform.
10422
10423 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype.
10424 * kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of
10425 cmain().
10426 * kern/powerpc/ieee1275/crt0.S (_start): Likewise.
10427 * kern/ieee1275/cmain.c (cmain): Rename to ...
10428 * kern/ieee1275/cmain.c (grub_ieee1275_init): ... this.
10429 * kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init()
10430 at the beginning.
10431
57490c2b 104322008-04-18 Robert Millan <rmh@aybabtu.com>
10433
10434 * util/update-grub.in: Fix syntax error when setting
10435 `GRUB_PRELOAD_MODULES'.
10436 Reported by Stephane Chazelas <stephane@artesyncp.com>
10437
1977517d 104382008-04-17 Lubomir Kundrak <lkundrak@redhat.com>
10439
10440 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text
10441 section into account, newer toolchains generate unique build ids
10442 * configure.ac: remove the test for --build-id=none acceptance,
e0c5dacb 10443 we want build ids to be preserved
1977517d 10444 * genmk.rb: add -R .note.gnu.build-id to objcopy, so build id
10445 far from other sections don't cause the raw binary images grow
10446 size
10447
bfb1f1a2 104482008-04-15 Robert Millan <rmh@aybabtu.com>
10449
10450 * disk/lvm.c: Update copyright year.
10451 * kern/misc.c: Likewise.
10452
01979850 104532008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
10454
10455 * disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when
f19dbdb7 10456 there is no memory left for physical volume name.
01979850 10457
0a1150e2 104582008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
10459
10460 * disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical
10461 volume name mapping to support bigger than 9 character names properly.
10462
82ead3fe 104632008-04-13 Robert Millan <rmh@aybabtu.com>
10464
10465 * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
10466 as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm
10467
e54a72f5 104682008-04-13 Christian Franke <franke@computer.org>
10469
10470 * util/i386/pc/grub-mkrescue.in: Add --emulation=floppy
10471 to create a floppy emulation boot CD when non emulation mode
10472 does not work.
10473 Enable Joliet CD filesystem extension.
10474
9fe86034 104752008-04-13 Robert Millan <rmh@aybabtu.com>
10476
10477 * kern/misc.c (grub_strncat): Fix off-by-one error.
10478 Reported by Zhang Huan <zhanghuan@nrchpc.ac.cn>
10479
10480 * kern/env.c (grub_env_context_close): Clear current context, not
10481 previous one.
10482 Patch from Zhang Huan <zhanghuan@nrchpc.ac.cn>
10483
10484 * kern/misc.c (grub_strcat): Minor speed optimization (same code size).
10485
7ceeee39 104862008-04-13 Robert Millan <rmh@aybabtu.com>
10487
10488 Improve robustness when handling LVM.
10489
10490 * disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL
f19dbdb7 10491 (and leave `*p' unmodified).
7ceeee39 10492 (grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating
10493 through it.
10494 (grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when
10495 iterating through it.
10496 (grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating
10497 through it.
fe6b695a 10498 (grub_lvm_scan_device): Check the return value (and fail gracefully
7ceeee39 10499 when due) on each grub_lvm_getvalue() or grub_strstr() call.
10500 Don't assume `vg->pvs != NULL' when iterating through it.
10501
58cd3d85 105022008-04-13 Robert Millan <rmh@aybabtu.com>
10503
10504 * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
10505 * genmk.rb (partmap): New variable.
10506 (CLEANFILES, PARTMAPFILES): Add #{partmap}.
10507 (#{partmap}): New target rule.
10508 * genpartmaplist.sh: New file.
10509 * Makefile.in (pkglib_DATA): Add partmap.lst.
10510 (partmap.lst): New target rule.
10511 * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
10512 modules (including all partition maps), instead of preloading them.
10513
78b51059 105142007-04-13 Fabian Greffrath <fabian.greffrath@web.de>
10515
10516 * util/grub.d/30_os-prober.in: New script. Use `os-prober' and
10517 `linux-boot-prober' (if installed) to detect other operating
10518 systems which are installed on the computer and add them to
10519 the boot menu.
10520 * conf/common.rmk: Build and install 30_os-prober.
10521
a91627b4 105222008-04-12 Robert Millan <rmh@aybabtu.com>
10523
10524 * kern/powerpc/ieee1275/init.c: Move from here ...
10525 * kern/ieee1275/init.c: ... to here. Update all users.
10526
10527 * kern/powerpc/ieee1275/cmain.c: Move from here ...
10528 * kern/ieee1275/cmain.c: ... to here. Update all users.
10529
10530 * kern/powerpc/ieee1275/openfw.c: Move from here ...
10531 * kern/ieee1275/openfw.c: ... to here. Update all users.
10532
10533 * loader/powerpc/ieee1275/multiboot2.c: Move from here ...
10534 * loader/ieee1275/multiboot2.c: ... to here. Update all users.
10535
322562ea 105362008-04-10 Pavel Roskin <proski@gnu.org>
10537
10538 * configure.ac: Always use "_cv_" in cache variables for
10539 compatibility with Autoconf 2.62.
10540
a02a73c5 105412008-04-07 Robert Millan <rmh@aybabtu.com>
10542
10543 Revert grub/machine/init.h addition by Pavel (since it breaks on
10544 i386-ieee1275 and others):
10545 * util/i386/pc/misc.c: Remove grub/machine/init.h.
10546 * util/powerpc/ieee1275/misc.c: Likewise.
10547
25c024b1 105482008-04-07 Robert Millan <rmh@aybabtu.com>
10549
10550 * util/grub-probe.c (probe): Improve error message.
10551
3cbd2f98 105522008-04-07 Robert Millan <rmh@aybabtu.com>
10553
10554 * util/biosdisk.c (read_device_map): Skip devices that don't exist
10555 (this prevents the presence of a bogus entry from ruining the whole
10556 thing).
10557
87a297bf 105582008-04-06 Pavel Roskin <proski@gnu.org>
10559
36747a62 10560 * util/biosdisk.c: Include grub/util/biosdisk.h.
10561 * util/grub-fstest.c (execute_command): Make static.
10562 * util/grub-mkdevicemap.c (check_device): Likewise.
10563 * util/i386/pc/misc.c: Include grub/machine/init.h.
10564 * util/powerpc/ieee1275/misc.c: Likewise.
10565 * util/lvm.c: Include grub/util/lvm.h.
10566 * util/misc.c: Include grub/kernel.h, grub/misc.h and
10567 grub/cache.h.
10568 * util/raid.c: Include grub/util/raid.h.
10569 (grub_util_getdiskname): Make static.
10570
87a297bf 10571 * util/grub-emu.c (main): Remove calls to grub_hostfs_init() and
10572 grub_hostfs_fini(), as they are called from grub_init_all() and
10573 grub_fini_all() respectively. This fixes an infinite loop in
10574 grub-fstest due to double registration of hostfs.
10575 Reported by Christian Franke <Christian.Franke@t-online.de>
10576
f6ce7629 105772008-04-05 Pavel Roskin <proski@gnu.org>
10578
10579 * bus/pci.c (grub_pci_iterate): For multifunction devices, probe
10580 all 8 functions. Otherwise, probe function 0 only.
10581
070e49e4 105822008-04-04 Pavel Roskin <proski@gnu.org>
10583
8b088a4c 10584 * commands/lspci.c (grub_lspci_iter): Print the bus number
10585 correctly.
10586
4f657021 10587 * commands/lspci.c (grub_pci_classes): Fix typos.
10588 (grub_lspci_iter): Don't print func twice. Print vendor ID
10589 before device ID, as it's normally done.
10590
070e49e4 10591 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
10592 Fix signedness warnings.
10593 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate):
10594 Likewise.
10595 * util/ieee1275/get_disk_name.c: Include config.h so that
10596 _GNU_SOURCE is defined and getline() is declared. Mark an
10597 unused argument as such. Fix a signedness warning.
10598
ba7328dc 105992008-04-02 Pavel Roskin <proski@gnu.org>
10600
26887f22 10601 * genkernsyms.sh.in: Use more robust assignments for CC and
10602 srcdir. Quote srcdir.
10603 * gensymlist.sh.in: Likewise. Assert at the compile time that
10604 the symbol table is not empty.
10605
ba7328dc 10606 * disk/raid.c (grub_raid_memberlist): Fix a signedness warning.
10607 * fs/cpio.c (grub_cpio_read): Likewise.
10608
0f582c6b 106092008-04-01 Pavel Roskin <proski@gnu.org>
10610
4b6e1995 10611 * disk/ata.c (grub_ata_open): Don't lose precision in disk->id.
10612 * disk/host.c (grub_host_open): Likewise.
10613 * disk/loopback.c (grub_loopback_open): Likewise.
10614 * disk/memdisk.c (grub_memdisk_open): Use a string pointer for
10615 disk->id as in disk/host.c, not a multi-character constant.
10616
828a2768 10617 * util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek(). The
10618 later is obsolete, potentially dangerous and sets a bad example.
10619 * util/i386/efi/grub-mkimage.c (make_header): Likewise.
10620 * util/misc.c (grub_util_get_image_size): Likewise.
10621
2bb4fb47 10622 * disk/loopback.c (options): Improve help for "--partitions".
10623
0f582c6b 10624 * normal/arg.c (grub_arg_show_help): Fix spacing of the long
10625 options to align them with the short options, e.g. "echo -e".
10626
a33224e0 106272008-03-31 Bean <bean123ch@gmail.com>
10628
10629 * video/reader/png.c (grub_png_data): New member is_16bit and
10630 image_data.
10631 (grub_png_decode_image_header): Detect 16 bit png image.
10632 (grub_png_convert_image): New function to convert 16 bit image to 8 bit.
10633 (grub_png_decode_png): Call grub_png_convert_image for 16 bit image.
10634 (grub_video_reader_png): Release memory occupied by image_data.
10635
10636 * fs/ntfs.c (find_attr): Handle non-resident attribute list larger than
10637 4096 bytes.
10638 (grub_nfs_mount): Skip the test for sector per cluster.
10639
10640 * include/grub/ntfs.h (MAX_SPC): Removed.
10641
86cb4f54 106422008-03-31 Bean <bean123ch@gmail.com>
10643
10644 * conf/common.rmk (pkgdata_MODULES): Add afs.mod.
10645 (grub_probe_SOURCES): Add fs/afs.c.
10646 (grub_fstest_SOURCES): Likewise.
10647 (afs_mod_SOURCES): New variable.
10648 (afs_mod_CFLAGS): Likewise.
10649 (afs_mod_LDFLAGS): Likewise.
10650
10651 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/afs.c.
10652 (grub_emu_SOURCES): Likewise.
10653
10654 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
10655
10656 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
10657
10658 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
10659
10660 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
10661
10662 * fs/afs.c: New file.
10663
17c74c21 106642008-03-30 Pavel Roskin <proski@gnu.org>
10665
4cb68e89 10666 * disk/host.c: Include grub/misc.h to fix a warning.
10667 * util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix
10668 warnings about implicit declarations.
10669
8790bb04 10670 * fs/udf.c (grub_udf_mount): Fix warning about a shadowing a
10671 variable.
10672 * include/grub/i386/loader.h: Change declaration of
10673 grub_linux_boot() to match what grub_loader_set() expects.
10674 * util/getroot.c (grub_guess_root_device): Return const char* to
10675 fix a warning.
10676 * util/grub-probe.c (probe): Fix a warning about uninitialized
10677 abstraction_name variable.
10678 * util/i386/get_disk_name.c (grub_util_get_disk_name): Mark
10679 second argument as unused to fix a warning.
10680
9a3f3296 10681 * loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add
10682 missing grub_error() call.
10683
0ecef90d 10684 * util/update-grub_lib.in: Define datarootdir, since Autoconf
10685 2.60 and newer uses it to define datadir.
10686
0bf6d401 10687 * commands/sleep.c: Fix warning about implicit declaration.
10688 * disk/memdisk.c: Likewise.
10689 * loader/aout.c: Likewise.
10690 * loader/i386/bsd_normal.c: Likewise.
10691 * util/grub-probe.c: Likewise.
10692
7cdacf97 10693 * commands/i386/cpuid.c (has_longmode): Make static.
10694 * disk/i386/pc/biosdisk.c (cd_drive): Likewise.
10695 * include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused.
10696
17c74c21 10697 * kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
10698 GDT. This is more robust, as %ds can change.
10699 (grub_biosdisk_rw_int13_extensions): Don't clear %ds before
10700 calling real_to_prot().
10701 (grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
10702
80a3e68b 107032008-03-28 Pavel Roskin <proski@gnu.org>
10704
10705 * kern/i386/pc/startup.S: Assert that uncompressed functions
10706 don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
10707 * kern/i386/pc/lzo1x.S: Remove all .align directives in the
10708 code, as they push parts of the code (error handlers) beyond
10709 GRUB_KERNEL_MACHINE_RAW_SIZE. Speed is not as important in this
10710 code as correctness and size.
10711
77bcd272 107122008-03-28 Pavel Roskin <proski@gnu.org>
10713
10714 * kern/i386/pc/startup.S
10715 (grub_biosdisk_get_diskinfo_int13_extensions): When converting
10716 data block address to the real mode, keep offset minimal. This
10717 works around a bug in AWARD BIOS on old Athlon systems, which
10718 makes CD detection hang.
10719
c5dfd43b 107202008-03-26 Pavel Roskin <proski@gnu.org>
10721
10722 * normal/color.c (grub_parse_color_name_pair): Make `name' a
10723 const.
10724 * include/grub/normal.h: Add grub_parse_color_name_pair()
10725 declaration.
10726
bf962df2 107272008-03-24 Bean <bean123ch@gmail.com>
10728
10729 * disk/i386/pc/biosdisk.c (cd_start): Removed.
10730 (cd_count): Removed.
10731 (cd_drive): New variable.
10732 (grub_biosdisk_get_drive): Don't check for (cdN) device.
10733 (grub_biosdisk_call_hook): Likewise.
10734 (grub_biosdisk_iterate): Change cdrom detection method.
10735 (grub_biosdisk_open): Replace cd_start with cd_drive.
10736 (GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to
10737 detect cdrom device.
10738
10739 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_MACHINE_CDROM_START):
10740 Removed.
10741 (GRUB_BIOSDISK_MACHINE_CDROM_END): Removed.
10742 (GRUB_BIOSDISK_CDTYPE_NO_EMUL): New macro.
10743 (GRUB_BIOSDISK_CDTYPE_1_2_M): Likewise.
10744 (GRUB_BIOSDISK_CDTYPE_1_44_M): Likewise.
10745 (GRUB_BIOSDISK_CDTYPE_2_88_M): Likewise.
10746 (GRUB_BIOSDISK_CDTYPE_HARDDISK): Likewise.
10747 (GRUB_BIOSDISK_CDTYPE_MASK): Likewise.
10748 (grub_biosdisk_cdrp): New structure.
10749 (grub_biosdisk_get_cdinfo_int13_extensions): New function.
10750
10751 * include/grub/i386/pc/kernel.h (grub_boot_drive): Export this variable.
10752
10753 * kern/i386/pc/init.c (make_install_device): Don't use (cdN) as root
10754 device.
10755
10756 * kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions):
10757 New function.
10758
68e7fc7a 107592008-03-20 Robert Millan <rmh@aybabtu.com>
10760
10761 Remove 2 TiB limit in ata.mod.
10762 * disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t.
10763 (grub_ata_dumpinfo): Print sector count with 0x%llx.
10764 (grub_ata_identify): Interpret `&info16[100]' as a pointer to
10765 grub_uint64_t instead of grub_uint32_t.
10766
38ad2cf5 107672008-03-05 Bean <bean123ch@gmail.com>
10768
10769 * loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function.
10770 (grub_multiboot): Set boot device.
10771
10772 * boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF.
10773
2b89344e 107742008-03-02 Bean <bean123ch@gmail.com>
10775
10776 * fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of
10777 symlink_buffer.
10778
87a95d1f 107792008-03-01 Yoshinori K. Okuji <okuji@enbug.org>
10780
10781 * DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and
10782 texinfo.tex.
10783
10784 * docs/grub.texi: New file. Copied from GRUB Legacy, and slightly
10785 modified.
10786
10787 * docs/fdl.texi: New file.
f19dbdb7 10788
87a95d1f 10789 * docs/mdate-sh: New file. Copied from gnulib.
10790 * docs/texinfo.tex: Likewise.
10791
10792 * config.guess: Updated from gnulib.
10793 * install-sh: Likewise.
10794
7dc15d8e 107952008-02-28 Robert Millan <rmh@aybabtu.com>
10796
10797 * conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod.
10798 (aout_mod_SOURCES): New variable.
10799 (aout_mod_CFLAGS): Likewise.
10800 (aout_mod_LDFLAGS): Likewise.
10801
10802 * conf/i386-ieee1275.rmk: Likewise.
10803
b00ab696 108042008-02-28 Robert Millan <rmh@aybabtu.com>
10805
10806 * util/update-grub.in: Reorganise terminal validity check. Accept
10807 `ieee1275:console' (OLPC) and `*:gfxterm' as valid too.
10808 Based on suggestion by Franklin PIAT.
10809
79ca2d78 108102008-02-28 Fabian Greffrath <greffrath@leat.rub.de>
10811
10812 * include/grub/util/getroot.h (grub_util_check_block_device): Export new
10813 function.
10814 * util/getroot.c (grub_util_check_block_device): New function that
10815 returns the given argument if it is a block device and returns NULL else.
10816 * util/grub-probe.c (argument_is_device): New variable.
10817 (probe): Promote device_name from a variable to an argument. Receive
10818 device_name from grub_util_check_block_device() if path is NULL and from
10819 grub_guess_root_device() else. Do not free() device_name anymore.
f19dbdb7 10820 (options): Introduce new parameter '-d, --device'.
79ca2d78 10821 (main): Add description of the new parameter to the help screen.
10822 Rename path variable to argument. Set argument_is_device if the '-d'
10823 option is given. Pass argument to probe() depending on
10824 argument_is_device.
10825
0d16e571 108262008-02-24 Bean <bean123ch@gmail.com>
10827
10828 * fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro.
10829 (GRUB_ISO9660_VOLDESC_PRIMARY): Likewise.
10830 (GRUB_ISO9660_VOLDESC_SUPP): Likewise.
10831 (GRUB_ISO9660_VOLDESC_PART): Likewise.
10832 (GRUB_ISO9660_VOLDESC_END): Likewise.
10833 (grub_iso9660_primary_voldesc): New member escape.
10834 (grub_iso9660_data): New member joliet.
10835 (grub_iso9660_convert_string): New function.
10836 (grub_iso9660_mount): Detect joliet extension.
10837 (grub_iso9660_iterate_dir): Convert filename when joliet is detected.
10838 (grub_iso9660_iso9660_label): Likewise.
10839
10840 * conf/common.rmk (pkgdata_MODULES): Add udf.mod.
10841 (grub_setup_SOURCES): Add fs/udf.c.
10842 (grub_fstest_SOURCES): Likewise.
10843 (udf_mod_SOURCES): New variable.
10844 (udf_mod_CFLAGS): Likewise.
10845 (udf_mod_LDFLAGS): Likewise.
10846
10847 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/udf.c.
10848 (grub_emu_SOURCES): Likewise.
10849
10850 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
10851
10852 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
10853
10854 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
10855
10856 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
10857
10858 * fs/udf.c: New file.
10859
8a594a17 108602008-02-24 Robert Millan <rmh@aybabtu.com>
10861
10862 * conf/i386-efi.rmk (normal/function.c_DEPENDENCIES)
10863 (normal/lexer.c_DEPENDENCIES): New variables.
10864 * conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES)
10865 (normal/lexer.c_DEPENDENCIES): Likewise.
10866 * conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES)
10867 (normal/lexer.c_DEPENDENCIES): Likewise.
10868 * conf/i386-pc.rmk (normal/function.c_DEPENDENCIES)
10869 (normal/lexer.c_DEPENDENCIES): Likewise.
10870 * conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES)
10871 (normal/lexer.c_DEPENDENCIES): Likewise.
10872 * conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES)
10873 (normal/lexer.c_DEPENDENCIES): Likewise.
10874
2dc33c03 108752008-02-23 Robert Millan <rmh@aybabtu.com>
10876
10877 * partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member,
10878 since they were intended to be in hex. This didn't break previously
10879 because of a bug in gpt_partition_map_iterate() (see below).
10880
10881 (gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp'
10882 when checking the validity of GPT header.
10883 Remove `partno', since it always provides the same information as `i'.
10884
f6f4cfb0 108852008-02-21 Yoshinori K. Okuji <okuji@enbug.org>
10886
10887 * include/grub/efi/time.h: Fix a wrong comment.
10888
79ff665f 108892008-02-19 Pavel Roskin <proski@gnu.org>
10890
10891 * kern/rescue.c (grub_enter_rescue_mode): Improve initial
10892 message.
10893
d38e24c2 108942008-02-19 Bean <bean123ch@gmail.com>
10895
10896 * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
10897 (aout_mod_SOURCES): New variable.
10898 (aout_mod_CFLAGS): Likewise.
10899 (aout_mod_LDFLAGS): Likewise.
10900 (_bsd_mod_SOURCES): New variable.
10901 (_bsd_mod_CFLAGS): Likewise.
10902 (_bsd_mod_LDFLAGS): Likewise.
10903 (bsd_mod_SOURCES): New variable.
10904 (bsd_mod_CFLAGS): Likewise.
10905 (bsd_mod_LDFLAGS): Likewise.
10906
10907 * include/grub/aout.h: New file.
10908
10909 * include/grub/i386/loader.h (grub_unix_real_boot): New function.
10910
10911 * include/grub/i386/bsd.h: New file.
10912
10913 * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
10914 to make it public.
10915
10916 * kern/elf.c (grub_elf32_load): Get the physical address after the hook
10917 function is called, so that it's possible to change it inside the hook.
10918 (grub_elf64_load): Likewise.
10919 (grub_elf_file): Don't close the file if elf header is not found.
10920 (grub_elf_close): Close the file if grub_elf_file fails (The new
10921 grub_elf_file won't close it).
10922 (grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize.
10923 (grub_elf64_size): Likewise.
10924
10925 * kern/i386/loader.S (grub_unix_real_boot): New function.
10926
10927 * loader/aout.c: New file.
10928
10929 * loader/i386/bsd.c: New file.
10930
10931 * loader/i386/bsd_normal.c: New file.
10932
10933 * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.
10934
10935 * loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
fe987087 10936 can test other formats.
d38e24c2 10937
b93bdb0f 109382008-02-19 Robert Millan <rmh@aybabtu.com>
10939
10940 * partmap/gpt.c: Include `<grub/gpt_partition.h>'.
10941 (grub_gpt_partition_type_empty): Redefine with macro from
10942 `<grub/gpt_partition.h>'.
10943 (gpt_partition_map_iterate): Adjust partition type comparison.
10944
10945 Export `entry' as partmap-specific `part.data' struct.
10946 (grub_gpt_header, grub_gpt_partentry): Move from here ...
10947
10948 * include/grub/gpt_partition.h (grub_gpt_header)
10949 (grub_gpt_partentry): ... to here (new file).
10950
10951 * util/i386/pc/grub-setup.c: Include `<grub/gpt_partition.h>'.
10952
10953 (grub_gpt_partition_type_bios_boot): New const variable, defined
10954 with macro from `<grub/gpt_partition.h>'.
10955
10956 (setup): Replace `first_start' with `embed_region', which keeps
10957 track of the embed region (and is partmap-agnostic).
10958
10959 Replace find_first_partition_start() with find_usable_region(),
10960 which finds a usable region for embedding using partmap-specific
10961 knowledge (supports PC/MSDOS and GPT).
10962
10963 Fix all assumptions that the embed region start at sector 1, using
10964 `embed_region.start' from now on. Similarly, use `embed_region.end'
10965 rather than `first_start' to calculate available size.
10966
10967 In grub_util_info() message, replace "into after the MBR" with an
10968 indication of the specific sector our embed region starts at.
10969
66cb40f6 109702008-02-19 Robert Millan <rmh@aybabtu.com>
10971
10972 * DISTLIST: Replace `commands/ieee1275/halt.c' and
10973 `commands/ieee1275/reboot.c' with `commands/halt.c' and
10974 `commands/reboot.c'.
10975 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
10976 (halt_mod_SOURCES): Likewise.
10977 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
10978 (halt_mod_SOURCES): Likewise.
10979
b7202015 109802008-02-17 Christian Franke <franke@computer.org>
10981
10982 * commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key.
10983
32b0fc49 109842008-02-17 Robert Millan <rmh@aybabtu.com>
10985
10986 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
10987 set `first_start' to 0 for non-PC/MSDOS partition maps.
10988
aca63502 109892008-02-16 Robert Millan <rmh@aybabtu.com>
10990
10991 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
10992 do not assume partition map is PC/MSDOS before performing checks that
10993 are specific to that layout.
10994
0de8be86 109952008-02-13 Robert Millan <rmh@aybabtu.com>
10996
10997 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove
10998 `commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'.
10999 * kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs.
11000
c3db8364 110012008-02-13 Yoshinori K. Okuji <okuji@enbug.org>
11002
11003 * configure.ac: Only a cosmetic change on the handling of
11004 -fno-stack-protector.
11005
f714229e 110062008-02-12 Alexandre Boeglin <alex@boeglin.org>
11007
c3db8364 11008 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace
11009 commands/i386/pc/halt.c and reboot.c by commands/halt.c and
11010 reboot.c.
f714229e 11011 (grub_install_SOURCES): Add halt.mod and reboot.mod.
11012 (halt_mod_SOURCES): New variable.
11013 (halt_mod_CFLAGS): Likewise.
11014 (halt_mod_LDFLAGS): Likewise.
11015 (reboot_mod_SOURCES): Likewise.
11016 (reboot_mod_CFLAGS): Likewise.
11017 (reboot_mod_LDFLAGS): Likewise.
11018
c3db8364 11019 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace
11020 commands/ieee1275/halt.c and reboot.c by commands/halt.c and
11021 reboot.c.
f714229e 11022 (halt_mod_SOURCES): Likewise.
11023 (reboot_mod_SOURCES): Likewise.
11024
c3db8364 11025 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace
11026 commands/i386/pc/reboot.c by commands/reboot.c.
f714229e 11027 (reboot_mod_SOURCES): Likewise.
11028
11029 * commands/i386/pc/reboot.c: merge this file ...
11030
11031 * commands/ieee1275/reboot.c: ... and this file ...
11032
11033 * commands/reboot.c: ... to this file.
c3db8364 11034 Add some precompiler directive to include the correct header for
11035 each machine.
f714229e 11036
11037 * commands/ieee1275/halt.c: move this file ...
11038
11039 * commands/halt.c: ... to here.
c3db8364 11040 Add some precompiler directive to include the correct header for
11041 each machine.
f714229e 11042
11043 * include/grub/efi/efi.h (grub_reboot): New function declaration.
11044 (grub_halt): Likewise.
11045
11046 * kern/efi/efi.c (grub_reboot): New function.
11047 (grub_halt): Likewise.
11048
c74493e0 110492008-02-12 Robert Millan <rmh@aybabtu.com>
11050
11051 * util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
11052 /dev (like it is done for /dev/mapper). This doesn't provide support
11053 for EVMS, but at least it is now easy to identify the problem when it
11054 arises.
11055
d0db4b04 110562008-02-11 Robert Millan <rmh@aybabtu.com>
11057
11058 * util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition)
11059 (grub_util_biosdisk_get_grub_dev): Check open() exit status by
11060 comparing it with -1, not 0.
11061
bf748642 110622008-02-10 Robert Millan <rmh@aybabtu.com>
11063
11064 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and
11065 `disk/lvm.c'.
11066 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
11067 * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
11068
11069 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and
11070 `disk/lvm.c' to the end of the list.
11071 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
11072 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
11073
b5db202a 110742008-02-10 Robert Millan <rmh@aybabtu.com>
11075
11076 * kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'. Call
11077 grub_print_error() instead. This will let user know why we're entering
11078 rescue mode.
11079 Based on suggestions from Sam Morris.
11080
83abee31 110812008-02-10 Alexandre Boeglin <alex@boeglin.org>
11082
11083 * normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg()
11084 on remaining N args, instead of "--" arg N times.
11085
78d5a08b 110862008-02-09 Vesa Jaaskelainen <chaac@nic.fi>
11087
11088 * font/manager.c (unknown_glyph): Added variable for unknown glyph.
11089 (fill_with_default_glyph): Changed to use unknown_glyph for fill
11090 pattern for unknown glyphs.
11091
68807e5f 110922008-02-09 Robert Millan <rmh@aybabtu.com>
11093
11094 * configure.ac: Probe for `help2man'.
11095 * Makefile.in (builddir): New variable.
11096 (HELP2MAN): Likewise. Set to `true' when @HELP2MAN@ doesn't provide it,
11097 or otherwise add a few flags/options to it.
11098 (install-local): For every executable utility or script that is
11099 installed, invoke $(HELP2MAN) to install a manpage based on --help
11100 output.
11101
11102 * util/i386/pc/grub-install.in: Move down `update-grub_lib' sourcing, so
11103 that it doesn't prevent --help from working in build tree.
11104
11105 * util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org'
11106 with `bug-grub@gnu.org'.
11107 * util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise.
11108 * util/update-grub.in (usage): New function.
11109 Implement proper argument check, with support for --help and --version
11110 (as well as existing -y).
11111
111122008-02-09 Christian Franke <franke@computer.org>
0d9ff7f0 11113
11114 * commands/cat.c (grub_cmd_cat): Print '\r' as hex to
11115 avoid overwriting previous output.
11116 * kern/rescue.c (grub_rescue_cmd_cat): Likewise.
11117
c1962162 111182008-02-09 Robert Millan <rmh@aybabtu.com>
11119
11120 * normal/menu.c (run_menu): If timeout is set to zero, don't bother
11121 drawing the menu.
11122
3dac2e3f 111232008-02-09 Robert Millan <rmh@aybabtu.com>
11124
11125 * commands/sleep.c: New file.
11126 * conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'.
11127 (sleep_mod_SOURCES): New variable.
11128 (sleep_mod_CFLAGS): Likewise.
11129 (sleep_mod_LDFLAGS): Likewise.
11130
7a634e08 111312008-02-09 Robert Millan <rmh@aybabtu.com>
11132
11133 * disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for
11134 situations in which we can deduce the RAID size and the superblock
11135 doesn't match it.
11136
b92f0c18 111372008-02-09 Robert Millan <rmh@aybabtu.com>
11138
11139 * disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function. Construct
11140 and return a grub_diskmemberlist_t composed of LVM physical volumes.
11141 [GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member.
11142
11143 * disk/raid.c [GRUB_UTIL] (grub_raid_memberlist): New function. Construct
11144 and return a grub_diskmemberlist_t composed of physical array members.
11145 [GRUB_UTIL] (grub_raid_dev): Add `memberlist' member.
11146
11147 * include/grub/disk.h [GRUB_UTIL] (grub_disk_memberlist): New struct
11148 prototype.
11149 [GRUB_UTIL] (struct grub_disk_dev): Add `memberlist' function pointer.
11150 [GRUB_UTIL] (struct grub_disk_memberlist): New struct declaration.
11151 [GRUB_UTIL] (grub_disk_memberlist_t): New typedef.
11152
11153 * util/grub-probe.c (probe): Move partmap probing code from here ...
11154 (probe_partmap): ... to here.
11155 (probe): Use probe_partmap() once for the disk we're probing, and
11156 additionally, when such disk contains a memberlist() struct member,
11157 once for each disk that is contained in the structure returned by
11158 memberlist().
11159
91a4bf68 111602008-02-09 Robert Millan <rmh@aybabtu.com>
11161
11162 * util/grub-probe.c (main): When `verbosity > 1', set `debug'
11163 environment variable to 'all' in order to obtain debug output from
11164 non-util/ code.
11165 * util/i386/pc/grub-setup.c (main): Likewise.
11166
a96f9caa 111672008-02-08 Robert Millan <rmh@aybabtu.com>
11168
11169 * disk/raid.c (grub_raid_scan_device): Check for
11170 `array->device[sb.this_disk.number]' rather than for
11171 `array->device[sb.this_disk.number]->name', since the latter is not
fe6b695a 11172 guaranteed to be accessible.
a96f9caa 11173
b37a9222 111742008-02-08 Robert Millan <rmh@aybabtu.com>
11175
11176 * disk/raid.c: Update copyright.
11177 * fs/cpio.c: Likewise.
11178 * include/grub/raid.h: Likewise.
11179 * loader/i386/pc/multiboot.c: Likewise.
11180 * util/hostfs.c: Likewise.
11181
5626aee1 111822008-02-08 Robert Millan <rmh@aybabtu.com>
11183
11184 * include/grub/raid.h (struct grub_raid_array): Change type of `device'
11185 to a grub_disk_t array.
11186 * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
11187 `device[x]'.
11188 (grub_raid_scan_device): Replace `device[x].name' accesses with
11189 `device[x]->name'. Simplify initialization of `array->device[x]'.
11190
554f0187 111912008-02-08 Robert Millan <rmh@aybabtu.com>
11192
11193 * disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
11194 grub_dprintf() calls.
11195 * kern/disk.c (grub_disk_read): Include grub_errmsg in out of range
11196 error message.
11197
1ec8425d 111982008-02-07 Christian Franke <franke@computer.org>
11199
11200 * util/hostfs.c (grub_hostfs_open): Use fseeko and ftello
11201 instead of fseek and ftell to support large files.
11202 (grub_hostfs_read): Likewise.
11203
f2156fda 112042008-02-07 Robert Millan <rmh@aybabtu.com>
11205
11206 Patch from Jeroen Dekkers.
11207 * disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk
fe6b695a 11208 failure, since successfully reading all array members might not be
f2156fda 11209 required.
11210
9216e0e7 112112008-02-06 Robert Millan <rmh@aybabtu.com>
11212
11213 * util/grub-probe.c (probe): Simplify partmap probing (with the
11214 assumption that the first word up to the underscore equals to
11215 the module name).
11216
b0dfd29a 112172008-02-06 Christian Franke <franke@computer.org>
11218
11219 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE
11220 (and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on
11221 last block of a cpio or tar stream.
11222 Check for "TRAILER!!!" instead of any empty data
11223 block to detect last block of a cpio stream.
11224 (grub_cpio_dir): Fix constness of variable np.
11225 (grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if
11226 cpio or tar trailer is detected. This fixes a crash
11227 on open of a non existing file.
11228
c32865bf 112292008-02-05 Bean <bean123ch@gmail.com>
11230
11231 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical
11232 address of entry.
11233 (grub_multiboot_load_elf64): Likewise.
11234 (grub_multiboot): Initialize mbi structure.
11235
11236 * util/grub-fstest.c: Don't include unused header file script.h.
11237
fe6b695a 11238 * conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the beginning
c32865bf 11239 of file.
11240 (grub_fstest_SOURCES): Likewise.
11241
409480b7 112422008-02-05 Robert Millan <rmh@aybabtu.com>
11243
11244 * include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT)
11245 (GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END)
11246 (GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC)
11247 (GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros.
11248
11249 * kern/i386/pc/startup.S: Include `<grub/term.h>'.
11250 (translation_table): Replace hardcoded values with macros
11251 provided by `<grub/term.h>'.
11252
11253 * term/i386/pc/at_keyboard.c: Include `<grub/term.h>'.
11254 (keyboard_map): Correct/add a few values, with macros provided
11255 by `<grub/term.h>'.
11256 (keyboard_map_shift): Zero values that don't differ from their
11257 `keyboard_map' equivalents.
11258 (grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling.
11259 Discard the second scan code that is always sent by Caps lock.
11260 Only use `keyboard_map_shift' when it provides a non-zero value,
11261 otherwise fallback to `keyboard_map'.
11262
99fadbaa 112632008-02-04 Bean <bean123ch@gmail.com>
11264
11265 * Makefile.in (enable_grub_fstest): New variable.
11266
11267 * conf/common.rmk (grub_fstest_init.lst): New rule.
11268 (grub_fstest_init.h): Likewise.
11269 (grub_fstest_init.c): Likewise.
11270 (util/grub-fstest.c_DEPENDENCIES): New variable.
11271 (grub_fstest_SOURCES): Likewise.
11272
11273 * configure.ac (enable_grub_fstest): Check for --enable-grub-fstest.
11274
11275 * util/grub-fstest.c: New file.
11276
bf567c50 112772008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
11278
11279 Make grub-setup handle a separate root device.
f19dbdb7 11280
bf567c50 11281 * util/i386/pc/grub-setup.c (setup): Always open the root device,
11282 so that the root device can be compared with the destination
11283 device.
11284 When embedding the core image, if the root and destination devices
11285 are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to
11286 0xFF.
11287 When not embedding, set ROOT_DRIVE to 0xFF.
f19dbdb7 11288
9be6b98b 112892008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
11290
11291 Add support for having a grub directory in a different drive. This
11292 is still only the data handling part.
f19dbdb7 11293
9be6b98b 11294 * kern/i386/pc/startup.S (multiboot_trampoline): Set %dh to 0xFF.
11295 (codestart): Save %dh in GRUB_ROOT_DRIVE.
11296 (grub_root_drive): New variable.
11297
11298 * kern/i386/pc/init.c (make_install_device): Use GRUB_ROOT_DRIVE
11299 instead of GRUB_BOOT_DRIVE to construct a device name. Set
11300 GRUB_ROOT_DRIVE to GRUB_BOOT_DRIVE if it is 0xFF, otherwise use it
11301 as it was.
11302
11303 * include/grub/i386/pc/kernel.h (grub_root_drive): New prototype.
11304
11305 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_ROOT_DRIVE): New
11306 macro.
11307 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Set to 0x4f.
11308
11309 * boot/i386/pc/pxeboot.S (_start): Set %dh to 0xFF. For now, this
11310 is bogus, because PXE booting does not specify any drive
11311 correctly.
11312
11313 * boot/i386/pc/lnxboot.S (reg_edx): Set the second byte to 0xFF. I
11314 am not sure if this is really correct.
11315
11316 * boot/i386/pc/cdboot.S: Set %dh to 0xFF, because the root drive
11317 is always identical to the boot drive when booting from a CD.
11318
11319 * boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any
11320 longer.
11321 (root_drive): New variable.
11322 (real_start): Unconditionally set %dh to ROOT_DRIVE.
11323 (setup_sectors): Push %dx right after popping it, because %dh will
11324 be modified later.
11325 (copy_buffer): Restore %dx.
11326
e0ca0677 113272008-02-03 Robert Millan <rmh@aybabtu.com>
11328
11329 * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
11330 use `cdboot.img' for cdrom images.
11331
3b3f6629 113322008-02-03 Robert Millan <rmh@aybabtu.com>
11333
11334 * util/grub.d/00_header.in: Issue scripting commands for GRUB to
11335 only setup gfxterm when `font' command has succeeded.
11336
d42b3672 113372008-02-03 Robert Millan <rmh@aybabtu.com>
11338
11339 * loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS]
11340 (grub_rescue_cmd_multiboot_loader)
11341 (grub_rescue_cmd_module_loader): Enable multiboot1 calls.
11342
fa370ea6 113432008-02-03 Pavel Roskin <proski@gnu.org>
11344
e0c5dacb 11345 * kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop
fa370ea6 11346 %edx and %esi from stack only after grub_gate_a20() is called.
11347 grub_gate_a20() clobbers %edx.
11348
f2a76e1d 113492008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
11350
11351 * configure.ac (AC_INIT): Bumped to 1.96.
11352
11353 * DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c,
11354 commands/lspci.c,disk/memdisk.c, include/grub/pci.h,
11355 include/grub/i386/pc/pci.h, video/readers/jpeg.c, and
11356 video/readers/png.c.
11357
90fd32d1 113582008-02-03 Bean <bean123ch@gmail.com>
9be665dd 11359
11360 * conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img.
11361 (cdboot_img_SOURCES): New variable.
11362 (cdboot_img_ASFLAGS): New variable.
11363 (cdboot_img_LDFLAGS): New variable.
11364
11365 * boot/i386/pc/cdboot.S: New file.
11366
11367 * disk/i386/pc/biosdisk.c (cd_start): New variable.
11368 (cd_count): Likewise.
11369 (grub_biosdisk_get_drive): Add support for cd device.
11370 (grub_biosdisk_call_hook): Likewise.
11371 (grub_biosdisk_iterate): Likewise.
11372 (grub_biosdisk_open): Likewise.
11373 (GRUB_BIOSDISK_CDROM_RETRY_COUNT): New macro.
11374 (grub_biosdisk_rw): Support reading from cd device.
11375 (GRUB_MOD_INIT): Iterate cd devices.
11376
11377 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_FLAG_CDROM): New macro.
11378 (GRUB_BIOSDISK_MACHINE_CDROM_START): Likewise.
11379 (GRUB_BIOSDISK_MACHINE_CDROM_END): Likewise.
11380
11381 * kern/i386/pc/init.c (make_install_device): Check for cd device.
11382
4020aa53 113832008-02-02 Robert Millan <rmh@aybabtu.com>
11384
11385 * commands/read.c: New file.
11386 * conf/common.rmk (pkglib_MODULES): Add `commands/read.c'.
11387 (read_mod_SOURCES): New variable.
11388 (read_mod_CFLAGS): Likewise.
11389 (read_mod_LDFLAGS): Likewise.
11390
e03a1132 113912008-02-02 Robert Millan <rmh@aybabtu.com>
11392
11393 * normal/main.c (grub_normal_execute): Check for `menu->size' when
11394 determining whether menu has to be displayed.
11395
58c69220 113962008-02-02 Marco Gerards <marco@gnu.org>
11397
11398 * bus/pci.c: New file.
11399
11400 * include/grub/pci.h: Likewise.
11401
11402 * include/grub/i386/pc/pci.h: Likewise.
11403
11404 * commands/lspci.c: Likewise.
11405
11406 * conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and
11407 `lspci.mod'.
11408 (pci_mod_SOURCES): New variable.
11409 (pci_mod_CFLAGS): Likewise.
11410 (pci_mod_LDFLAGS): Likewise.
11411 (lspci_mod_SOURCES): Likewise.
11412 (lspci_mod_CFLAGS): Likewise.
f19dbdb7 11413 (lspci_mod_LDFLAGS): Likewise.
58c69220 11414
c004e1b4 114152008-02-02 Bean <bean123ch@gmail.com>
11416
11417 * fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
11418 (grub_ufs_get_file_block): Fix indirect block calculation problem.
11419
11420 * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk.
11421 (grub_xfs_btree_node): New structure.
11422 (grub_xfs_btree_root): New structure.
11423 (grub_xfs_inode): New members nblocks, extsize, nextents and btree.
11424 (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents.
11425 (GRUB_XFS_EXTENT_BLOCK): Likewise.
11426 (GRUB_XFS_EXTENT_SIZE): Likewise.
11427 (grub_xfs_read_block): Support btree format type.
11428 (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook.
11429 Use directory block as basic unit.
11430
11431 * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block.
11432
11433 * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
11434 __attribute__ ((__regparm__ (1))).
11435
f95562bf 114362008-02-01 Robert Millan <rmh@aybabtu.com>
11437
11438 Correct a mistake in previous commit.
11439
11440 * conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the
11441 top.
11442 (normal/command.c_DEPENDENCIES): New variable.
11443
7d31f41f 114442008-02-01 Robert Millan <rmh@aybabtu.com>
11445
11446 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the
11447 top.
11448 (normal/command.c_DEPENDENCIES): New variable.
11449 (grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables.
11450 * conf/i386-ieee1275.rmk: Likewise.
11451 * conf/i386-linuxbios.rmk: Likewise.
11452 * conf/i386-pc.rmk: Likewise.
11453 * conf/sparc64-ieee1275.rmk: Likewise.
11454 * conf/powerpc-ieee1275.rmk: Likewise.
11455 (grub_emu_SOURCES): Add `fs/fshelp.c'.
11456
11457 * genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it.
11458
60b6be74 114592008-02-01 Robert Millan <rmh@aybabtu.com>
11460
11461 * kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf()
11462 call at beginning of function.
11463
078522ab 114642008-01-31 Pavel Roskin <proski@gnu.org>
11465
11466 * util/powerpc/ieee1275/grub-mkrescue.in: New file.
d2c11005 11467 * conf/powerpc-ieee1275.rmk (bin_SCRIPTS): New variable.
11468 (grub_mkrescue_SOURCES): Likewise.
078522ab 11469 * DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in.
11470
ccaa8a5f 114712008-01-30 Robert Millan <rmh@aybabtu.com>
11472
11473 * conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'.
11474 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ...
11475 * conf/common.rmk (util/grub-probe.c_DEPENDENCIES)
11476 (grub_probe_SOURCES): ... to here.
11477
11478 * conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'.
11479 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove.
11480 * conf/i386-ieee1275.rmk: Likewise.
11481 * conf/i386-linuxbios.rmk: Likewise.
11482 * conf/powerpc-ieee1275.rmk: Likewise.
11483
ae5a9cd7 114842008-01-30 Tristan Gingold <gingold@free.fr>
11485
11486 * kern/rescue.c: Silently accept empty lines.
11487
70bc2ef2 114882008-01-29 Bean <bean123ch@gmail.com>
11489
11490 * boot/i386/pc/lnxboot.S (data_start): Code cleanup.
11491 (real_code_2): Code cleanup and change comment style.
11492 (move_memory): Avoid using 32-bit address mode.
11493
6a4d50ea 114942008-01-29 Bean <bean123ch@gmail.com>
11495
11496 * conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'.
11497 (png_mod_SOURCES): New variable.
11498 (png_mod_CFLAGS): Likewise.
11499 (png_mod_LDFLAGS): Likewise.
11500
11501 * video/readers/png.c: New file.
11502
11cc30ac 115032008-01-28 Robert Millan <rmh@aybabtu.com>
11504
11505 * include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro.
11506 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove
11507 `ifndef GRUB_MOD_GAP' hack.
11508 * util/elf/grub-mkimage.c (add_segments): Likewise.
11509
3abc589f 115102008-01-27 Robert Millan <rmh@aybabtu.com>
11511
11512 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip
11513 `GRUB_MOD_GAP' for platforms in which it's not defined.
962ca133 11514 * util/elf/grub-mkimage.c (add_segments): Likewise.
3abc589f 11515
e1907778 115162008-01-27 Robert Millan <rmh@aybabtu.com>
11517
11518 Get grub-emu to build again (including parallel builds).
11519
11520 * conf/i386-pc.rmk (util/grub-emu.c_DEPENDENCIES): Remove variable.
11521 Split into ...
11522 (util/grub-emu.c_DEPENDENCIES): ... this, ...
11523 (normal/execute.c_DEPENDENCIES): ... this, ...
11524 (grub-emu_DEPENDENCIES): ... and this.
11525
11526 * conf/i386-efi.rmk: Likewise.
11527 * conf/i386-linuxbios.rmk: Likewise.
11528 * conf/i386-ieee1275.rmk: Likewise.
11529 * conf/powerpc-ieee1275.rmk: Likewise.
11530 (grub_emu_SOURCES): Remove duplicated `kern/file.c'.
11531
2216b101 115322008-01-27 Robert Millan <rmh@aybabtu.com>
11533
11534 * NEWS: Add a few items.
11535
f75172d9 115362008-01-27 Robert Millan <rmh@aybabtu.com>
11537
11538 Fix parallel builds with grub-emu. Based on earlier commit for
11539 grub-probe and grub-setup.
11540
11541 * conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ...
11542 (util/grub-emu.c_DEPENDENCIES): ... this.
11543 * conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ...
11544 (util/grub-emu.c_DEPENDENCIES): ... this.
11545 * conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ...
11546 (util/grub-emu.c_DEPENDENCIES): ... this.
11547 * conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
11548 (util/grub-emu.c_DEPENDENCIES): ... this.
11549 * conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
11550 (util/grub-emu.c_DEPENDENCIES): ... this.
11551
3f51de77 115522008-01-27 Pavel Roskin <proski@gnu.org>
11553
11554 * include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
11555 to create a gap between _end and the modules added to the image
11556 with grub-mkrescue. That fixes "CLAIM failed" on PowerMAC.
11557 * kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
11558 * util/elf/grub-mkimage.c (add_segments): Likewise.
11559
2033f53e 115602008-01-26 Pavel Roskin <proski@gnu.org>
11561
11562 * kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
11563 just return an error.
11564
22da1f6f 115652008-01-26 Bean <bean123ch@gmail.com>
11566
11567 * fs/reiserfs.c (grub_fshelp_node): New member next_offset.
11568 (grub_reiserfs_get_item): Save offset of the next item.
11569 (grub_reiserfs_iterate_dir): Use next_offset to find next item.
11570
2a9525e6 115712008-01-25 Robert Millan <rmh@aybabtu.com>
11572
11573 * conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to
11574 make all filesystem sources appear together (possibly fixing omissions
11575 while at it).
11576 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
11577 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
11578 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
11579 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
11580
11581 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise. Additionally,
11582 add `kern/file.c'.
11583 * conf/i386-efi.rmk (grub_probe_SOURCES): Likewise.
11584 * conf/i386-ieee1275.rmk (grub_probe_SOURCES): Likewise.
11585 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Likewise.
11586 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Likewise.
11587
11588 * util/grub-probe.c: Include `<grub/file.h>' and `<sys/stat.h>'.
11589 (probe): Add a sanity check to make sure of our ability to read
11590 requested files when probing for filesystem type.
11591
11592 * genmk.rb: Update copyright year (2007).
11593
11594 * include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init)
11595 (grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init)
11596 (grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init)
11597 (grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init)
11598 (grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init)
11599 : Remove function prototypes.
11600
b95f71b5 116012008-01-25 Robert Millan <rmh@aybabtu.com>
11602
11603 Revert my previous commits (based on wrong assumption of how grub_errno
11604 works).
11605
fe6b695a 11606 * kern/disk.c (grub_disk_open): Stop resetting grub_errno.
b95f71b5 11607 * kern/file.c (grub_file_open): Likewise.
11608
d08bbb49 116092008-01-24 Pavel Roskin <proski@gnu.org>
11610
11611 * include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares
11612 that hang if GRUB tries to setup colors.
11613 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set
11614 colors for firmwares that don't support it.
11615 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag):
11616 Recognize Open Hack'Ware, set flags to work around its
11617 limitations.
11618
605e36ed 116192008-01-24 Robert Millan <rmh@aybabtu.com>
11620
11621 * kern/file.c (grub_file_open): Do not account previous failures of
11622 unrelated functions when grub_errno is checked for.
11623 Reported by Oleg Strikov.
11624
bac332a1 116252008-01-24 Bean <bean123ch@gmail.com>
11626
11627 * fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro.
11628 (grub_ufs_sblock): New member volume name.
11629 (grub_ufs_find_file): Fix string copy bug.
11630 (grub_ufs_label): Implement this function properly.
11631
11632 * fs/hfs.c (grub_hfs_cnid_type): New enum.
11633 (grub_hfs_iterate_records): Use the correct file number for extents
11634 and catalog file. Fix problem in next index calculation.
11635 (grub_hfs_find_node): Replace recursive function call with loop.
11636 (grub_hfs_iterate_dir): Replace recursive function call with loop.
11637
15c80c09 116382008-01-23 Robert Millan <rmh@aybabtu.com>
11639
11640 * include/grub/i386/ieee1275/loader.h: Include `<grub/types.h>',
11641 `<grub/symbol.h>' and `<grub/multiboot.h>'.
11642 (grub_multiboot2_real_boot): New function prototype.
11643
11644 * include/grub/i386/pc/memory.h: Include `<grub/machine/machine.h>'.
11645 [!GRUB_MACHINE_IEEE1275] (grub_lower_mem, grub_upper_mem): Disable.
11646
11647 * kern/i386/ieee1275/init.c (grub_os_area_addr)
11648 (grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables.
11649
305338fd 116502008-01-23 Robert Millan <rmh@aybabtu.com>
11651
11652 * kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with
11653 #ifdef'ed out grub_printf().
11654
3ea52685 116552008-01-23 Robert Millan <rmh@aybabtu.com>
11656
11657 * term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out
11658 grub_dprintf calls, since they make "debug=all" mode unusable.
11659 (grub_console_checkkey): Likewise.
11660
5882ae4b 116612008-01-23 Robert Millan <rmh@aybabtu.com>
11662
11663 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
11664 `term/i386/pc/at_keyboard.c'.
11665 (pkglib_MODULES): Add `serial.mod'.
11666 (serial_mod_SOURCES): New variable.
11667 (serial_mod_CFLAGS): Likewise.
11668 (serial_mod_LDFLAGS): Likewise.
11669
11670 * include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'. Remove
11671 `<grub/powerpc/ieee1275/console.h>'.
11672 (grub_keyboard_controller_init): New function prototype.
11673 (grub_console_checkkey): Likewise.
11674 (grub_console_getkey): Likewise.
11675
11676 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT
11677 keyboard on i386.
11678
11679 * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
11680 grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
11681
06ab5303 116822008-01-23 Robert Millan <rmh@aybabtu.com>
11683
11684 * kern/i386/pc/init.c (make_install_device): When memdisk image is
11685 present, "(memdisk)/boot/grub" becomes the default prefix.
11686
11687 * util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus
11688 a memdisk tarball with all the modules. Add --overlay=DIR option that
11689 allows users to overlay additional files into the image.
11690
dbb475a4 116912008-01-23 Robert Millan <rmh@aybabtu.com>
11692
11693 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h'
11694 and `machine/memory.h'.
11695 (pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'.
11696 (_multiboot_mod_SOURCES): New variable.
11697 (_multiboot_mod_CFLAGS): Likewise.
11698 (_multiboot_mod_LDFLAGS): Likewise.
11699 (multiboot_mod_SOURCES): Likewise.
11700 (multiboot_mod_CFLAGS): Likewise.
11701 (multiboot_mod_LDFLAGS): Likewise.
11702
11703 * include/grub/i386/ieee1275/loader.h: New file.
11704
11705 * include/grub/i386/ieee1275/machine.h: Likewise.
11706
11707 * include/grub/i386/ieee1275/memory.h: Likewise.
11708
11709 * include/grub/i386/pc/init.h (grub_os_area_addr): Remove (redundant)
11710 variable declaration.
11711 (grub_os_area_size): Likewise.
11712
11713 * kern/i386/ieee1275/init.c (grub_os_area_addr, grub_os_area_size)
11714 (grub_lower_mem, grub_upper_mem): New variables.
11715 (grub_stop_floppy): New function (just to make
11716 grub_multiboot2_real_boot() happy).
11717
11718 * kern/i386/ieee1275/startup.S: Include `<grub/machine/memory.h>',
11719 `<grub/cpu/linux.h>', `<multiboot.h>' and `<multiboot2.h>'.
11720 (grub_stop): New function.
11721 Include `"../realmode.S"' and `"../loader.S"'.
11722
11723 * loader/multiboot_loader.c: Include `<grub/machine/machine.h>'.
11724 Replace `__i386__' #ifdefs with `GRUB_MACHINE_PCBIOS'.
11725
11726 * loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386,
11727 rely on grub_multiboot2_real_boot() for final boot.
11728
25638629 117292008-01-22 Robert Millan <rmh@aybabtu.com>
11730
11731 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When
11732 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any
11733 device that doesn't look like an SD card.
11734 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
11735 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag.
11736 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect
11737 OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when
11738 found.
11739
9dad816d 117402008-01-22 Robert Millan <rmh@aybabtu.com>
11741
11742 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
11743 avoid claiming over our own code.
11744
34842f2d 117452008-01-22 Bean <bean123ch@gmail.com>
11746
11747 * conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
11748 (jpeg_mod_SOURCES): New variable.
11749 (jpeg_mod_CFLAGS): Likewise.
11750 (jpeg_mod_LDFLAGS): Likewise.
11751
11752 * video/readers/jpeg.c : New file.
11753
44023a28 117542008-01-22 Bean <bean123ch@gmail.com>
11755
11756 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
11757 there are no more items.
11758
bc2d8ac6 117592008-01-21 Robert Millan <rmh@aybabtu.com>
11760
11761 * kern/mm.c (grub_mm_init_region): Improve debug message.
11762
261bd4bc 117632008-01-21 Robert Millan <rmh@aybabtu.com>
11764
11765 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
11766 (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
11767 address.
11768 (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
11769 a C macro.
11770 * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
11771 Indicates start of upper memory.
11772 * util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
11773 (generate_image): Abort when image size is big enough to corrupt
11774 upper memory.
11775
11776 * include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
11777 (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
11778 * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
11779 instead of hardcoding 0xA0000.
11780 * video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
11781 (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
11782 instead of hardcoding 0xA0000.
11783
f970b55e 117842008-01-21 Robert Millan <rmh@aybabtu.com>
11785
11786 * disk/memdisk.c (memdisk_size): New variable.
11787 (grub_memdisk_open): Replace grub_arch_memdisk_size() call with
11788 `memdisk_size'.
11789 (grub_memdisk_init): Initialize `memdisk_size'. Reallocate memdisk
11790 image to dynamic memory.
11791 (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
11792 `memdisk_size'. Free memdisk block.
11793
1a8b0526 117942008-01-21 Robert Millan <rmh@aybabtu.com>
11795
11796 Fix detection of very small filesystems (like tar).
11797
11798 * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
11799 contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
11800 GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
11801 a problem with this disk).
11802
6e9b4aab 118032008-01-21 Robert Millan <rmh@aybabtu.com>
11804
11805 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
11806 on grub_biosdisk_rw_standard() error.
11807
0d8837b2 118082008-01-21 Robert Millan <rmh@aybabtu.com>
11809
11810 * include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
11811 recent changes.
11812 * kern/elf.c: Likewise.
11813 * kern/ieee1275/ieee1275.c: Likewise.
11814 * kern/powerpc/ieee1275/openfw.c: Likewise.
11815 * term/ieee1275/ofconsole.c: Likewise.
11816
ffd36e34 118172008-01-21 Robert Millan <rmh@aybabtu.com>
11818
11819 * include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.
11820
3f0093d0 11821 * include/grub/kernel.h (grub_arch_memdisk_addr)
11822 (grub_arch_memdisk_size): Moved from here ...
ffd36e34 11823
3f0093d0 11824 * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr)
11825 (grub_arch_memdisk_size): ... to here.
ffd36e34 11826
6c391b21 118272008-01-21 Robert Millan <rmh@aybabtu.com>
11828
11829 Mostly based on bugfix from Bean.
11830
11831 * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
11832 attribute with hook() parameter.
11833 (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
11834 declaration.
11835 (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
11836 attribute with hook() parameter.
11837 (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
11838 declaration.
11839
55a581dc 118402008-01-21 Robert Millan <rmh@aybabtu.com>
11841
11842 * conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
11843 (pkglib_MODULES): Add `memdisk.mod'.
11844 (memdisk_mod_SOURCES): New variable.
11845 (memdisk_mod_CFLAGS): Likewise.
11846 (memdisk_mod_LDFLAGS): Likewise.
11847
11848 * disk/memdisk.c: New file.
11849
11850 * include/grub/disk.h (grub_disk_dev_id): Add
11851 `GRUB_DISK_DEVICE_MEMDISK_ID'.
11852
11853 * include/grub/i386/pc/kernel.h
11854 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro.
11855 (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4.
11856 (grub_kernel_image_size): New variable declaration.
11857 (grub_total_module_size): Likewise.
11858 (grub_memdisk_image_size): Likewise.
11859
11860 * include/grub/i386/pc/memory.h
11861 (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro.
11862
11863 * include/grub/kernel.h: Include `<grub/symbol.h>'.
11864 (grub_arch_memdisk_addr): New variable declaration.
11865 (grub_arch_memdisk_size): Likewise.
11866
11867 * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function.
11868 (grub_arch_memdisk_size): Likewise.
11869
11870 * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable.
11871 (codestart): Replace hardcoded `0x100000' with
11872 `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro.
11873
11874 * util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
11875 (generate_image): Add `memdisk_path' parameter. When `memdisk_path' is
11876 not NULL, append the contents of the file it refers to, at the end of
11877 the compressed kernel image. Initialize `grub_memdisk_image_size'
11878 variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
11879 (options): Add "memdisk"|'m' option.
11880 (main): Parse --memdisk|-m option, and pass user-provided path as
11881 parameter to generate_image().
11882
3d7f54c9 118832008-01-20 Robert Millan <rmh@aybabtu.com>
11884
11885 * kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
11886 grub_dprintf() calls from here ...
11887 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.
11888
0bf74728 118892008-01-20 Robert Millan <rmh@aybabtu.com>
11890
11891 Fix detection of "real mode" when /options/real-mode? doesn't exist.
11892
11893 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
11894 declaration.
11895 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
11896 (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
11897 `GRUB_IEEE1275_FLAG_REAL_MODE'.
fe6b695a 11898 (cmain): Initialize `grub_ieee1275_mmu' (using /chosen/mmu integer
0bf74728 11899 property).
11900 * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
11901 `grub_ieee1275_mmu' rather than obtaining a handler on every call.
11902
33bf70a7 119032008-01-19 Robert Millan <rmh@aybabtu.com>
11904
fe6b695a 11905 Get rid of confusing function (superseded by
33bf70a7 11906 `grub_ieee1275_get_integer_property')
11907 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
11908 prototype.
11909 * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
11910 function.
11911 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
11912 grub_ieee1275_decode_int_4(), by obtaining integer properties directly
fe987087 11913 in native endianness from grub_ieee1275_get_integer_property().
33bf70a7 11914
e2da7d26 119152008-01-19 Robert Millan <rmh@aybabtu.com>
11916
11917 * kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
11918 command after "shut-down", since implementations differ on which
11919 the command for halt is.
11920
59f1fd8d 119212008-01-19 Robert Millan <rmh@aybabtu.com>
11922
11923 * include/grub/i386/linuxbios/console.h: Add header protection.
11924 (grub_keyboard_controller_init): New function prototype.
11925 * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
11926 (KEYBOARD_COMMAND_READ): Likewise.
11927 (KEYBOARD_COMMAND_WRITE): Likewise.
11928 (KEYBOARD_SCANCODE_SET1): Likewise.
11929 (grub_keyboard_controller_write): New function.
11930 (grub_keyboard_controller_read): Likewise.
11931 (grub_keyboard_controller_init): Likewise.
11932
11933 * term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
11934 (grub_console_init): On coreboot/LinuxBIOS, call
11935 grub_keyboard_controller_init().
11936
5f5a7c15 119372008-01-19 Robert Millan <rmh@aybabtu.com>
11938
11939 PowerPC changes provided by Pavel Roskin.
11940
11941 * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
11942 * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
11943 don't rely on cmain() doing it.
11944 * kern/i386/ieee1275/startup.S (_start): Store %eax in
11945 grub_ieee1275_entry_fn, don't rely on cmain() doing it.
11946
1210e168 119472008-01-16 Robert Millan <rmh@aybabtu.com>
11948
11949 * include/grub/i386/linuxbios/memory.h
11950 (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
11951 * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
11952 receive `table_header' as argument. Instead, probe for it in the
11953 known memory ranges where it can be present.
11954 (grub_available_iterate): Do not pass a fixed `table_header' address
11955 to grub_linuxbios_table_iterate().
11956
3d04eab8 119572008-01-15 Robert Millan <rmh@aybabtu.com>
11958
11959 * configure.ac: Add `i386-ieee1275' to the list of supported targets.
11960 * conf/i386-ieee1275.rmk: New file.
11961 * include/grub/i386/ieee1275/console.h: Likewise.
11962 * include/grub/i386/ieee1275/ieee1275.h: Likewise.
11963 * include/grub/i386/ieee1275/kernel.h: Likewise.
11964 * include/grub/i386/ieee1275/time.h: Likewise.
11965 * kern/i386/ieee1275/init.c: Likewise.
11966 * kern/i386/ieee1275/startup.S: Likewise.
11967
d1bc1b73 119682008-01-15 Robert Millan <rmh@aybabtu.com>
11969
11970 * kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
11971 when pointers are 32-bit (but still do set it to one when they are
11972 64-bit).
11973
66a65807 119742008-01-15 Robert Millan <rmh@aybabtu.com>
11975
11976 * include/grub/ieee1275/ieee1275.h
11977 (grub_ieee1275_get_integer_property): New function prototype.
11978
11979 * kern/ieee1275/ieee1275.c: Include `<grub/types.h>'.
11980 (grub_ieee1275_get_integer_property): New function. Wraps around
fe987087 11981 grub_ieee1275_get_property() to handle endianness.
66a65807 11982
11983 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
11984 grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
fe6b695a 11985 where appropriate.
66a65807 11986 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
11987 (grub_map): Likewise.
11988 * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.
11989
a83ccafd 119902008-01-15 Bean <bean123ch@gmail.com>
11991
11992 * normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
11993 (grub_script_execute_cmdline): Reset grub_errno.
11994
11995 * normal/main.c (read_config_file): Reset grub_errno.
11996
11997 * normal/parse.y (script_init): New.
11998 (script): Move function and menuentry here.
11999 (delimiter): New.
12000 (command): Add delimiter at the end of command.
12001 (commands): Adjust to match the new command.
12002 (commandblock): Remove grub_script_lexer_record_start.
f19dbdb7 12003 (menuentry): Add grub_script_lexer_record_start, use the new commands.
a83ccafd 12004 (if): Use the new commands.
12005
12006 * conf/common.rmk (pkgdata_MODULES): Add echo.mod.
12007
df6ecfc6 120082008-01-15 Robert Millan <rmh@aybabtu.com>
12009
12010 * normal/menu.c (run_menu): Move timeout message from here ...
12011 (print_timeout): ... to here.
12012 (run_menu): Use print_timeout() once during initial draw to print
12013 the whole message, and again in every clock tick to update only
12014 the number of seconds.
12015
87ae25eb 120162008-01-15 Robert Millan <rmh@aybabtu.com>
12017
12018 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
12019 actual size of `available' from grub_ieee1275_get_property(), and
12020 restrict parsing to that bound.
12021
47bf09a4 120222008-01-15 Christian Franke <franke@computer.org>
12023
12024 * util/grub-emu.c: Replace <argp.h> by <getopt.h>.
12025 (argp_program_version): Remove variable.
12026 (argp_program_bug_address): Likewise.
12027 (options): Convert from struct argp_option to struct option.
12028 (struct arguments): Remove.
12029 (parse_opt): Remove.
12030 (usage): New function.
12031 (main): Replace struct args members by simple variables.
12032 Replace argp_parse() by getopt_long().
12033 Add switch to evaluate options.
12034 Add missing "(...)" around root_dev in prefix string.
12035
c86f1469 120362008-01-14 Robert Millan <rmh@aybabtu.com>
12037
12038 * kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
12039 for grub_ieee1275_exit(), in order to improve portability.
12040
e622c559 120412008-01-14 Robert Millan <rmh@aybabtu.com>
12042
12043 * util/grub.d/10_linux.in (prefix): Define.
12044 (exec_prefix): Likewise. Both definitions are later used by `libdir'.
12045
44cb1ec8 120462008-01-13 Pavel Roskin <proski@gnu.org>
12047
12048 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
12049 grub_errno if no errors have been detected.
12050
1eb8c802 120512008-01-12 Robert Millan <rmh@aybabtu.com>
12052
12053 * include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
12054 (grub_util_get_dev_abstraction): New function prototype.
12055
12056 * util/getroot.c: Include `<grub/util/getroot.h>'
12057 (grub_util_get_grub_dev): Move detection of abstraction type to ...
12058 (grub_util_get_dev_abstraction): ... here (new function).
12059
12060 * util/grub-probe.c: Convert PRINT_* to an enum. Add
12061 `PRINT_ABSTRACTION'.
12062 (probe): Probe for abstraction type when requested.
12063 (main): Understand `--target=abstraction'.
12064
12065 * util/i386/efi/grub-install.in: Add abstraction module to core
12066 image when it is found to be necessary.
12067 * util/i386/pc/grub-install.in: Likewise.
12068 * util/powerpc/ieee1275/grub-install.in: Likewise.
12069
12070 * util/update-grub_lib.in (font_path): Return system path without
12071 converting to GRUB path.
12072 * util/update-grub.in: Convert system path returned by font_path()
12073 to a GRUB path. Use `grub-probe -t abstraction' to determine what
12074 abstraction module is needed for loading fonts (if any). Export
12075 that as `GRUB_PRELOAD_MODULES'.
12076 * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
12077 insmod commands).
12078
52bd3de9 120792008-01-12 Yoshinori K. Okuji <okuji@enbug.org>
12080
12081 Remove some unused code from reiserfs.
f19dbdb7 12082
52bd3de9 12083 * fs/reiserfs.c (struct grub_reiserfs_key)
12084 [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
12085 (struct grub_reiserfs_node_body): Removed.
12086 (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
12087 Likewise.
12088 (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
12089 Likewise.
12090 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
12091 Likewise.
12092 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
12093 Likewise.
12094 (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
12095 Likewise.
12096 (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
12097 Likewise.
12098 (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
12099 (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
12100 (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
12101
2f80039d 121022008-01-10 Robert Millan <rmh@aybabtu.com>
12103
12104 * util/update-grub_lib.in (grub_file_is_not_garbage): New function.
12105 Determines if a file is garbage left by packaging systems, etc.
12106 * util/update-grub.in: Use grub_file_is_not_garbage() as a condition
12107 for processing /etc/grub.d scripts.
12108 * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
12109 * util/grub.d/10_linux.in: Likewise. Use grub_file_is_not_garbage()
12110 as a condition for processing Linux images.
12111
87888032 121122008-01-10 Pavel Roskin <proski@gnu.org>
12113
12114 * include/grub/powerpc/libgcc.h (__ucmpdi2): New export. Needed
12115 to compile reiserfs.c on PowerPC.
12116
7e54fced 121172008-01-10 Robert Millan <rmh@aybabtu.com>
de9993e0 12118
12119 * kern/device.c (grub_device_iterate): Do not abort device iteration
12120 when one of the devices cannot be opened.
12121 * kern/disk.c (grub_disk_open): Do not account previous failures of
12122 unrelated functions when grub_errno is checked for.
12123
5aa541e6 121242008-01-08 Robert Millan <rmh@aybabtu.com>
12125
12126 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
12127 `! grub_linux_is_bzimage', change order of address comparison to make
12128 it more intuitive, and improve "too big zImage" error message.
12129
7076340d 121302008-01-08 Robert Millan <rmh@aybabtu.com>
12131
12132 * Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
12133 `$(update-grub_DATA)'.
12134 (distcheck): Fix race condition when invoking `$(MAKE)' on multiple
12135 targets.
12136
9ca70333 121372008-01-07 Robert Millan <rmh@aybabtu.com>
12138
12139 * boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
12140 which instruction is modified by grub-setup during installation
12141 (since it wasn't obvious by only looking at this file).
12142
38ccf575 121432008-01-07 Robert Millan <rmh@aybabtu.com>
12144
12145 * TODO: Rewrite. Just refer to the wiki and the BTS instead of
12146 listing actual TODO items.
12147
f5db4291 121482008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
12149
868967cf 12150 * fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
12151 correctly.
12152 (grub_reiserfs_get_key_offset): Likewise.
12153 (grub_reiserfs_set_key_offset): Likewise.
12154 (grub_reiserfs_set_key_type): Likewise.
fe6b695a 12155 (grub_reiserfs_iterate_dir): Return 1 if found, otherwise 0.
868967cf 12156
12157 (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
12158 better to remove the bitfield version completely.
f19dbdb7 12159
868967cf 121602008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 12161
f5db4291 12162 * fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
12163 allocated from the heap, due to the fshelp implementation.
12164 (grub_reiserfs_dir): Free NODE, due to the same reason.
12165
492e6d9d 121662008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
12167
12168 Mostly from Vincent Pelletier:
f19dbdb7 12169
492e6d9d 12170 * fs/reiserfs.c: New file.
f19dbdb7 12171
492e6d9d 12172 * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod.
12173 (reiserfs_mod_SOURCES): New variable.
12174 (reiserfs_mod_CFLAGS): Likewise.
12175 (reiserfs_mod_LDFLAGS): Likewise.
12176
12177 * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
12178 disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
12179 include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
12180 normal/color.c.
12181
9ce3e7c1 121822008-01-06 Robert Millan <rmh@aybabtu.com>
12183
12184 * normal/color.c: Remove `<grub/env.h>'.
12185
f3b58148 121862008-01-05 Jeroen Dekkers <jeroen@dekkers.cx>
12187
12188 * include/grub/normal.h: Include <grub/env.h>.
12189
7ac3bcfa 121902008-01-05 Robert Millan <rmh@aybabtu.com>
12191
12192 * util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
12193 usage example with `(hd0,1)'.
fb358190 12194 Reported by Samuel Thibault.
7ac3bcfa 12195
c8ee99d7 121962008-01-05 Robert Millan <rmh@aybabtu.com>
12197
12198 * kern/i386/loader.S (grub_linux_is_bzimage): New variable.
12199 (grub_linux_boot_zimage): Rename to ...
12200 (grub_linux_boot): ... this.
12201 (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
12202 (grub_linux_boot_zimage): Conditionalize zImage copy.
12203
12204 * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype.
12205 (grub_linux_boot_bzimage): Remove prototype.
12206 (grub_linux_boot_zimage): Rename to ...
12207 (grub_linux_boot): ... this.
12208
12209 * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
12210 (grub_linux_boot): Remove function.
12211
0ece25b1 122122008-01-05 Robert Millan <rmh@aybabtu.com>
12213
12214 * include/grub/normal.h (grub_env_write_color_normal): New prototype.
12215 (grub_env_write_color_highlight): Likewise.
12216 (grub_wait_after_message): Likewise.
12217
12218 * normal/color.c: New file.
12219
12220 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'.
12221 (normal_mod_DEPENDENCIES): Likewise.
12222
12223 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'.
12224 (normal_mod_DEPENDENCIES): Likewise.
12225
12226 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'.
12227 (normal_mod_DEPENDENCIES): Likewise.
12228
12229 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'.
12230 (normal_mod_DEPENDENCIES): Likewise.
12231
12232 * normal/menu_entry.c (run): Rely on grub_wait_after_message()
12233 for waiting after a message is printed.
12234 * normal/main.c (read_config_file): Likewise.
12235 (grub_normal_init): Register grub_env_write_color_normal() and
12236 grub_env_write_color_highlight() hooks. Mark `color_normal' and
12237 `color_highlight' variables as global.
12238
12239 * normal/menu.c (grub_wait_after_message): New function.
12240 (grub_color_menu_normal): New variable. Replaces ...
12241 (GRUB_COLOR_MENU_NORMAL): ... this macro.
12242 (grub_color_menu_highlight): New variable. Replaces ...
12243 (GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
12244 (draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
12245 `GRUB_TERM_COLOR_STANDARD'.
12246 (print_message): Use `grub_setcolorstate' to reload colors. Rename
12247 `normal_code' and `highlight_code' to `old_color_normal' and
12248 `old_color_highlight', respectively.
12249 (grub_menu_init_page): Update colors when drawing the menu, based on
12250 `menu_color_normal' and `menu_color_highlight' variables.
12251 (grub_menu_run): Rely on grub_wait_after_message() for waiting after
12252 a message is printed.
12253
182dd4e5 122542008-01-05 Robert Millan <rmh@aybabtu.com>
12255
12256 * kern/env.c (grub_env_context_open): Propagate hooks for global
12257 variables to new context.
12258
12259 * kern/main.c (grub_set_root_dev): Export `root' variable.
12260
ddf8f6ad 122612008-01-05 Robert Millan <rmh@aybabtu.com>
12262
12263 * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
fe6b695a 12264 discs unconditionally, since udev and others have options to provide
ddf8f6ad 12265 them.
12266
d8b43d9b 122672008-01-05 Robert Millan <rmh@aybabtu.com>
12268
12269 * normal/completion.c (iterate_dir): Skip `.' and `..' directories.
12270
2bff2de3 122712008-01-04 Christian Franke <franke@computer.org>
12272
12273 * kern/i386/pc/init.c (grub_machine_init): Fix evaluation
12274 of eisa_mmap.
12275
97eab917 122762008-01-03 Pavel Roskin <proski@gnu.org>
12277
12278 * kern/i386/linuxbios/init.c: Put "void" to all function
12279 declarations with no arguments.
12280 * kern/powerpc/ieee1275/init.c: Likewise.
12281 * term/i386/pc/at_keyboard.c: Likewise.
12282 * term/i386/pc/vga_text.c: Likewise.
12283 * util/grub-mkdevicemap.c: Likewise.
12284
b9416d00 122852008-01-02 Robert Millan <rmh@aybabtu.com>
12286
12287 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
12288 message when loaded image is out of bounds.
12289 (grub_multiboot_load_elf64): Likewise.
12290
92695df9 122912008-01-02 Pavel Roskin <proski@gnu.org>
12292
12293 * util/grub.d/10_linux.in: Try version without ".old" when
12294 looking for initrd. It's better to use initrd from the newer
12295 kernel of the same version than no initrd at all.
12296
d98d9cad 122972008-01-01 Robert Millan <rmh@aybabtu.com>
12298
12299 * util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.
12300
dbfdce36 123012008-01-01 Vesa Jaaskelainen <chaac@nic.fi>
12302
f19dbdb7 12303 * include/grub/video.h: Added grub_video_unmap_color and
dbfdce36 12304 grub_video_get_active_render_target.
12305 (grub_video_adapter): Added unmap_color and get_active_render_target.
12306
f19dbdb7 12307 * video/video.c: Added grub_video_unmap_color and
dbfdce36 12308 grub_video_get_active_render_target.
12309 (grub_video_get_info): Changed method to accept NULL pointer as an
12310 argument to allow detection of active video adapter.
12311
12312 * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as
12313 grub_video_vbe_unmap_color_int.
12314 Added grub_video_vbe_unmap_color and
12315 grub_video_vbe_get_active_render_target.
12316 (grub_video_vbe_adapter): Added unmap_color and
12317 get_active_render_target.
12318
f19dbdb7 12319 * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage
dbfdce36 12320 with grub_video_vbe_unmap_color_int.
12321
12322 * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
12323 (DEFAULT_NORMAL_COLOR): Likewise.
12324 (DEFAULT_HIGHLIGHT_COLOR) Likewise.
12325 (DEFAULT_FG_COLOR): Removed.
12326 (DEFAULT_BG_COLOR): Likewise.
12327 (DEFAULT_CURSOR_COLOR): Changed value.
12328 (grub_virtual_screen): Added standard_color_setting,
12329 normal_color_setting, highlight_color_setting and term_color.
12330 (grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
12331 (bitmap_width): Added.
12332 (bitmap_height): Likewise.
12333 (bitmap): Likewise.
12334 (set_term_color): Likewise.
12335 (grub_virtual_screen_setup): Changed to use new terminal coloring
12336 settings.
12337 (grub_gfxterm_init): Added init for bitmap.
12338 (grub_gfxterm_fini): Added destroy for bitmap.
12339 (redraw_screen_rect): Updated to use background bitmap and new
12340 terminal coloring.
12341 (scroll_up): Added optimization for case when there is no bitmap.
12342 (grub_gfxterm_cls): Fixed to use correct background color.
12343 (grub_virtual_screen_setcolorstate): Changed to use new terminal
12344 coloring.
12345 (grub_virtual_screen_setcolor): Likewise.
12346 (grub_virtual_screen_getcolor): Added.
12347 (grub_gfxterm_background_image_cmd): Likewise.
12348 (grub_video_term): Added setcolor and getcolor.
12349 (MOD_INIT): Added registration of background_image command.
12350 (MOD_TERM): Added unregistration for background_image command.
12351
c3c20931 123522007-12-30 Pavel Roskin <proski@gnu.org>
12353
12354 * loader/multiboot_loader.c: Fix multiboot command
12355 unregistration. Fix all typos in the word "multiboot".
12356
df266716 123572007-12-29 Pavel Roskin <proski@gnu.org>
94239199 12358
12359 * util/grub.d/10_linux.in: Refactor search for initrd. Add
12360 support for initrd names used in Fedora.
12361
fc6e896c 123622007-12-26 Bean <bean123ch@gmail.com>
12363
12364 * conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
12365 (cpio_mod_SOURCES): New variable.
12366 (cpio_mod_CFLAGS): Likewise.
12367 (cpio_mod_LDFLAGS): Likewise.
12368
12369 * fs/cpio.c: New file.
12370
12371 * conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c.
12372
12373 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
12374
12375 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
12376
12377 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12378
533110ad 123792007-12-25 Robert Millan <rmh@aybabtu.com>
12380
12381 * include/grub/term.h (struct grub_term): Add `getcolor' function.
12382 (grub_getcolor): New function.
12383
12384 * kern/term.c (grub_getcolor): New function.
12385 * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
12386 (GRUB_COLOR_MENU_HIGHLIGHT): New macro.
12387 (print_entry): Set normal and highlight colors to
12388 `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
12389 respectively, before printing and restore them to old
12390 values afterwards.
12391 (grub_menu_init_page): Likewise. Fill an additional colored space
12392 that would otherwise be left blank.
12393
12394 * term/efi/console.c (grub_console_getcolor): New function.
12395 (struct grub_console_term.getcolor): New variable.
12396 * term/i386/pc/console.c (grub_console_getcolor): New function.
12397 (struct grub_console_term.getcolor): New variable.
12398 * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
12399 (struct grub_console_term.getcolor): New variable.
12400
12401 * term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
12402 (struct grub_console_term.setcolor): Remove variable.
12403 * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
12404 (struct grub_console_term.setcolor): Remove variable.
12405 * term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
12406 (struct grub_console_term.setcolor): Remove variable.
12407 * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
12408 (struct grub_console_term.setcolor): Remove variable.
12409
4931827f 124102007-12-25 Robert Millan <rmh@aybabtu.com>
12411
12412 * configure.ac: Search for possible unifont.hex locations, and
12413 define UNIFONT_HEX if found.
12414
12415 * Makefile.in (UNIFONT_HEX): Define variable.
12416 (DATA): Rename to ...
12417 (PKGLIB): ... this. Update all users.
12418 (PKGDATA): New variable.
12419 (pkgdata_IMAGES): Rename to ...
12420 (pkglib_IMAGES): ... this. Update all users.
12421 (pkgdata_MODULES): Rename to ...
12422 (pkglib_MODULES): ... this. Update all users.
12423 (pkgdata_PROGRAMS): Rename to ...
12424 (pkglib_PROGRAMS): ... this. Update all users.
12425 (pkgdata_DATA): Rename to ...
12426 (pkglib_DATA): ... this. Update all users.
12427 (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
12428 (unicode.pff, ascii.pff): New rules.
12429 (all-local): Add `$(PKGDATA)' dependency.
12430 (install-local): Process `$(PKGDATA)'.
12431
12432 * util/update-grub_lib.in (font_path): Search for *.pff files in
12433 a few more locations, including `${pkgdata}'.
12434
57e57e31 124352007-12-23 Robert Millan <rmh@aybabtu.com>
12436
12437 Patch from Bean <bean123ch@gmail.com>:
12438 * disk/loopback.c (grub_loopback_read): Add missing bit shift to
12439 `size'.
12440
4bc72aa9 124412007-12-21 Bean <bean123ch@gmail.com>
12442
12443 * conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
12444 (ntfscomp_mod_SOURCES): New variable.
12445 (ntfscomp_mod_CFLAGS): Likewise.
12446 (ntfscomp_mod_LDFLAGS): Likewise.
12447
12448 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c.
12449 (grub_probe_SOURCES): Likewise.
12450 (grub_emu_SOURCES): Likewise.
12451
12452 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
12453 (grub_emu_SOURCES): Likewise.
12454
12455 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
12456 (grub_emu_SOURCES): Likewise.
12457
12458 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
12459 (grub_emu_SOURCES): Likewise.
12460
12461 * fs/ntfs.c (grub_ntfscomp_func): New variable.
12462 (read_run_list): Renamed to grub_ntfs_read_run_list.
12463 (decomp_nextvcn): Moved to ntfscomp.c.
12464 (decomp_getch): Likewise.
12465 (decomp_get16): Likewise.
12466 (decomp_block): Likewise.
12467 (read_block): Likewise.
12468 (read_data): Partially moved to ntfscomp.c.
12469 (fixup): Change unsigned to grub_uint16_t.
12470 (read_mft): Change unsigned long to grub_uint32_t.
12471 (read_attr): Likewise.
12472 (read_data): Likewise.
12473 (read_run_data): Likewise.
12474 (read_run_list): Likewise.
12475 (read_mft): Likewise.
12476
12477 * fs/ntfscomp.c: New file.
12478
12479 * include/grub/ntfs.h: New file.
12480
af680a87 124812007-12-16 Robert Millan <rmh@aybabtu.com>
12482
12483 * util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
12484 IDE disk check, since Linux is known to support 20 IDE disks.
12485 Reported by Colin Watson.
12486
84be7599 124872007-12-15 Bean <bean123ch@gmail.com>
12488
12489 * conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
12490 (lnxboot_img_SOURCES): New variable.
12491 (lnxboot_img_ASFLAGS): Likewise.
12492 (lnxboot_img_LDFLAGS): Likewise.
12493
12494 * boot/i386/pc/lnxboot.S: New file.
12495
6af9db01 124962007-11-24 Pavel Roskin <proski@gnu.org>
12497
12498 * configure.ac: Test if '--build-id=none' is supported by the
12499 linker. If yes, add it to TARGET_LDFLAGS. Build ID causes
12500 objcopy to generate incorrect binary files (binutils
12501 2.17.50.0.18-1 as shipped by Fedora 8).
12502 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
12503 linking, so that build ID doesn't break the test.
12504
7361cfe6 125052007-11-24 Pavel Roskin <proski@gnu.org>
12506
12507 * include/grub/i386/time.h: use "void" in the argument list
12508 of grub_cpu_idle().
12509 * include/grub/powerpc/time.h: Likewise.
12510 * include/grub/sparc64/time.h: Likewise.
12511
1593e10c 125122007-11-18 Christian Franke <franke@computer.org>
12513
12514 * util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
12515 now return control chars instead of GRUB_CONSOLE_KEY_* constants.
12516 This fixes the problem that function keys did not work in grub-emu.
12517
3b8db1a8 125182007-11-18 Christian Franke <franke@computer.org>
12519
12520 * disk/host.c (grub_host_open): Remove attribute unused from
12521 name parameter. Add check for "host". This fixes the problem
12522 that grub-emu does not find partitions.
12523
2e29408d 125242007-11-18 Christian Franke <franke@computer.org>
12525
12526 * util/hostfs.c (is_dir): New function.
12527 (grub_hostfs_dir): Handle missing dirent.d_type case.
12528 (grub_hostfs_read): Add missing fseek().
12529 (grub_hostfs_label): Clear label pointer. This fixes a crash
12530 of grub-emu on "ls (host)".
12531
398cd047 125322007-11-18 Christian Franke <franke@computer.org>
12533
12534 * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
12535 Add attribute packed, gcc 3.4.4 on Cygwin aligns this
12536 to 64 bit boundary by default.
12537
c405c391 125382007-11-18 Bean <bean123ch@gmail.com>
12539
12540 * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
12541 (hexdump_mod_SOURCES): New variable.
12542 (hexdump_mod_CFLAGS): Likewise.
12543 (hexdump_mod_LDFLAGS): Likewise.
f19dbdb7 12544
c405c391 12545 * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.
12546
12547 * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.
12548
12549 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.
12550
12551 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.
12552
12553 * include/grub/hexdump.h: New file.
12554
12555 * commands/hexdump.c: New file.
12556
5cced7fd 125572007-11-10 Robert Millan <rmh@aybabtu.com>
12558
12559 * commands/i386/pc/play.c (beep_off): Switch order of arguments
12560 in grub_outb() calls.
12561 (beep_on): Likewise.
12562
8b714eb0 125632007-11-10 Christian Franke <franke@computer.org>
12564
12565 * normal/menu.c (run_menu): Check for empty menu to avoid crash.
12566 (grub_menu_run): Likewise.
12567
ce0f1839 125682007-11-10 Robert Millan <rmh@aybabtu.com>
12569
12570 * include/grub/i386/efi/machine.h: New file.
12571 * include/grub/i386/linuxbios/machine.h: Likewise.
12572 * include/grub/i386/pc/machine.h: Likewise.
12573 * include/grub/powerpc/ieee1275/machine.h: Likewise.
12574 * include/grub/sparc64/ieee1275/machine.h: Likewise.
12575
12576 * term/i386/pc/serial.c: Include <grub/machine/machine.h>.
12577 (serial_hw_io_addr): New variable.
12578 (serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
12579 instead of `(unsigned short *) 0x400'.
12580
270c237d 125812007-11-10 Bean <bean123ch@gmail.com>
12582
12583 * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
12584
a87783bf 125852007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
12586
12587 * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
12588 (vga_mod_SOURCES): Added.
12589 (vga_mod_CFLAGS): Likewise.
12590 (vga_mod_LDFLAGS): Likewise.
12591
12592 * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
12593 grub_outb() calls.
12594 (set_map_mask): Likewise.
12595 (set_read_map): Likewise.
12596 (set_read_address): Likewise.
12597 (vga_font): Removed variable.
12598 (get_vga_glyph): Removed function.
12599 (invalidate_char): Likewise.
12600 (write_char): Changed to use grub_font_get_glyph() for font
12601 information.
12602 (grub_vga_putchar): Likewise.
12603 (grub_vga_getcharwidth): Likewise.
12604
6433b448 126052007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
12606
12607 * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
12608 flags.
12609 (pxeboot_img_LDFLAGS): Likewise.
12610 (diskboot_img_LDFLAGS): Likewise.
12611 (kernel_img_LDFLAGS): Likewise.
12612
49178511 126132007-11-06 Robert Millan <rmh@aybabtu.com>
12614
12615 * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
12616 in grub_outb() calls.
12617 (serial_hw_init): Likewise.
12618
53b052de 126192007-11-05 Robert Millan <rmh@aybabtu.com>
12620
12621 * util/update-grub.in: Allow files in ${update_grub_dir} to contain
12622 spaces. Skip non-regular files.
12623
5ab33bba 126242007-11-05 Robert Millan <rmh@aybabtu.com>
12625
12626 * kern/disk.c (grub_disk_firmware_fini)
12627 (grub_disk_firmware_is_tainted): New variables.
12628
12629 * include/grub/disk.h (grub_disk_firmware_fini)
12630 (grub_disk_firmware_is_tainted): Likewise.
12631
12632 * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
12633 (grub_disk_biosdisk_fini): ... to here.
12634 (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
12635 (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
12636 is set. Register grub_disk_biosdisk_fini() in
12637 `grub_disk_firmware_fini'.
12638
12639 * disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
12640 (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
12641 Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
12642 to finish existing firmware disk interface.
12643
12644 * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
12645 (ata_mod_SOURCES): New variable.
12646 (ata_mod_CFLAGS): Likewise.
12647 (ata_mod_LDFLAGS): Likewise.
12648
0149ab7c 126492007-11-05 Robert Millan <rmh@aybabtu.com>
12650
12651 * disk/ata.c: Remove `<grub/machine/time.h>'. Include `<grub/time.h>'.
12652 (grub_ata_wait): Reimplement using grub_millisleep().
12653
12654 * include/grub/misc.h (grub_div_roundup): Fix parenthesization.
12655 * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
12656
be7ac41e 126572007-11-03 Marco Gerards <marco@gnu.org>
12658
12659 * term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
12660 (CRTC_ADDR_PORT): New macro.
12661 (CRTC_DATA_PORT): Likewise.
12662 (CRTC_CURSOR): Likewise.
12663 (CRTC_CURSOR_ADDR_HIGH): Likewise.
12664 (CRTC_CURSOR_ADDR_LOW): Likewise.
12665 (update_cursor): New function.
12666 (grub_console_real_putchar): Call `update_cursor'.
12667 (grub_console_gotoxy): Likewise.
12668 (grub_console_cls): Set the default color when clearing the
12669 screen.
12670 (grub_console_setcursor): Implemented.
12671
bb06ab2e 126722007-11-03 Marco Gerards <marco@gnu.org>
12673
12674 * disk/ata.c (grub_ata_pio_read): Don't wait for the command to
12675 become activate.
12676 (grub_ata_pio_write): Likewise.
12677
12678 (grub_atapi_identify): Wait after issuing an ATA command.
12679 (grub_atapi_packet): Likewise.
12680 (grub_ata_identify): Likewise.
12681 (grub_ata_readwrite): Likewise.
12682
cf8f780b 126832007-11-03 Marco Gerards <marco@gnu.org>
12684
12685 * disk/ata.c (grub_ata_pio_read): Detect and return the error code.
12686 (grub_ata_pio_write): Likewise.
12687 (grub_ata_readwrite): Use `grub_error', instead of
12688 returning `grub_errno'.
12689
ed649e54 126902007-11-03 Marco Gerards <marco@gnu.org>
12691
12692 * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
12693 grub_ata_pio_write once for every single sector, instead of for
12694 multiple sectors.
12695
ca25d8f0 126962007-10-31 Robert Millan <rmh@aybabtu.com>
12697
12698 * configure.ac: Add `i386-linuxbios' to the list of supported targets.
12699
12700 * conf/i386-linuxbios.rmk: New file.
12701
12702 * kern/i386/pc/hardware.c: Likewise.
12703 * term/i386/pc/at_keyboard.c: Likewise.
12704 * term/i386/pc/vga_text.c: Likewise.
12705
12706 * include/grub/i386/linuxbios/boot.h: Likewise.
12707 * include/grub/i386/linuxbios/console.h: Likewise.
12708 * include/grub/i386/linuxbios/init.h: Likewise.
12709 * include/grub/i386/linuxbios/kernel.h: Likewise.
12710 * include/grub/i386/linuxbios/loader.h: Likewise.
12711 * include/grub/i386/linuxbios/memory.h: Likewise.
12712 * include/grub/i386/linuxbios/serial.h: Likewise.
12713 * include/grub/i386/linuxbios/time.h: Likewise.
12714
12715 * kern/i386/linuxbios/init.c: Likewise.
12716 * kern/i386/linuxbios/startup.S: Likewise.
12717 * kern/i386/linuxbios/table.c: Likewise.
12718
e911ecc1 127192007-10-31 Marco Gerards <marco@gnu.org>
12720
12721 * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
12722 (ata_mod_SOURCES): New variable.
12723 (ata_mod_CFLAGS): Likewise.
12724 (ata_mod_LDFLAGS): Likewise.
12725
12726 * disk/ata.c: New file.
12727
12728 * include/grub/disk.h (grub_disk_dev_id): Add
12729 `GRUB_DISK_DEV_ATA_ID'.
f19dbdb7 12730
7f66d0e0 127312007-10-31 Robert Millan <rmh@aybabtu.com>
12732
12733 * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
12734 * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.
12735
12736 * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
12737 * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.
12738
12739 * include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
12740 `<grub/types.h>'.
12741
12742 * loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
12743
5cd7dd46 127442007-10-27 Robert Millan <rmh@aybabtu.com>
12745
3236ca65 12746 * include/grub/types.h (ULONG_MAX): Define macro.
5cd7dd46 12747
2ebfc90f 127482007-10-22 Robert Millan <rmh@aybabtu.com>
12749
12750 * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'. Include
12751 `"../realmode.S"'.
12752 Remove `"kern/i386/loader.S"'. Include `"../loader.S"'.
12753
73fcb0f3 127542007-10-22 Robert Millan <rmh@aybabtu.com>
12755
12756 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
12757 (pkgdata_MODULES): Add `biosdisk.mod'.
12758 (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
12759 variables.
12760
12761 * disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
12762 (grub_biosdisk_init): Replace with ...
12763 (GRUB_MOD_INIT(biosdisk)): ... this.
12764 (grub_biosdisk_fini): Replace with ...
12765 (GRUB_MOD_FINI(biosdisk)): ... this.
12766
12767 * kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
12768 (grub_machine_init): Remove call to grub_biosdisk_init().
12769 (grub_machine_fini): Remove call to grub_machine_fini().
12770
12771 * util/i386/pc/grub-install.in (modules): Add `biosdisk'.
12772
3381d274 127732007-10-22 Robert Millan <rmh@aybabtu.com>
12774
12775 * include/grub/time.h: New file.
12776 * include/grub/i386/time.h: Likewise.
12777 * include/grub/powerpc/time.h: Likewise.
12778 * include/grub/sparc64/time.h: Likewise.
12779
12780 * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
12781 instances to ...
12782 (KERNEL_MACHINE_TIME_HEADER): ... this.
12783 * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
12784 instances to ...
12785 (KERNEL_MACHINE_TIME_HEADER): ... this.
12786 * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
12787 instances to ...
12788 (KERNEL_MACHINE_TIME_HEADER): ... this.
12789
12790 * kern/i386/efi/init.c: Include `<grub/time.h>'.
12791 (grub_millisleep): New function.
12792 * kern/i386/pc/init.c: Include `<grub/time.h>'.
12793 (grub_millisleep): New function.
12794 * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
12795 Remove `grub/machine/time.h' include.
12796 (grub_millisleep): New function.
12797 * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
12798 Remove `grub/machine/time.h' include.
12799 (grub_millisleep): New function.
12800
12801 * include/grub/misc.h (grub_div_roundup): New function.
12802
12803 * kern/misc.c: Include `<grub/time.h>'.
12804 (grub_millisleep_generic): New function.
12805
12806 * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
12807 Add `time.h'.
12808 * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
12809 Add `time.h'.
12810 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
12811 `machine/time.h'. Add `time.h'.
12812 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
12813
a39a0312 128142007-10-21 Robert Millan <rmh@aybabtu.com>
12815
12816 * include/grub/misc.h (grub_max): New function.
12817
2aad70e2 128182007-10-21 Robert Millan <rmh@aybabtu.com>
12819
12820 * util/misc.c (grub_util_info): Call fflush() before returning.
12821
54b71c4b 128222007-10-20 Robert Millan <rmh@aybabtu.com>
12823
12824 * genmk.rb (Image): Copy `extra_flags' from here ...
12825 (PModule): ... to here. Use it in `#{obj}: #{src}' rule.
12826
12827 * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
12828 to `argc' and `args' arguments.
12829
a979f513 128302007-10-17 Robert Millan <rmh@aybabtu.com>
12831
12832 * kern/i386/loader.S: New file.
12833
12834 * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
12835 * kern/i386/loader.S (grub_linux_prot_size)... to here.
12836 * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
12837 * kern/i386/loader.S (grub_linux_tmp_addr)... to here.
12838 * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
12839 * kern/i386/loader.S (grub_linux_real_addr)... to here.
12840 * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
12841 * kern/i386/loader.S (grub_linux_boot_zimage)... to here.
12842 * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
12843 * kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
12844 * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
12845 * kern/i386/loader.S (grub_multiboot_real_boot)... to here.
12846 * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
12847 * kern/i386/loader.S (grub_multiboot2_real_boot)... to here.
12848
12849 * kern/i386/realmode.S: New file.
12850
12851 * kern/i386/pc/startup.S (protstack): Moved from here ...
12852 * kern/i386/realmode.S (protstack)... to here.
12853 * kern/i386/pc/startup.S (gdt): Moved from here ...
12854 * kern/i386/realmode.S (gdt)... to here.
12855 * kern/i386/pc/startup.S (prot_to_real): Moved from here ...
12856 * kern/i386/realmode.S (prot_to_real)... to here.
12857
12858 * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
12859 `kern/i386/realmode.S'.
12860
825fc8fd 128612007-10-17 Robert Millan <rmh@aybabtu.com>
12862
12863 * include/grub/i386/loader.h: New file.
12864
12865 * include/grub/i386/pc/loader.h (grub_linux_prot_size)
12866 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
12867 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
12868 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
12869 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
12870 * include/grub/i386/loader.h (grub_linux_prot_size)
12871 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
12872 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
12873 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
12874 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.
12875
12876 * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
12877
e179b2f4 128782007-10-15 Robert Millan <rmh@aybabtu.com>
12879
12880 * normal/misc.c (grub_normal_print_device_info): Do not probe for
12881 filesystem when dev->disk is unset.
12882 Do probe for filesystem even when dev->disk->has_partitions is set.
12883 In case a filesystem is found, always report it.
12884 In case it isn't, if dev->disk->has_partitions is set, report that
12885 a partition table was found instead of reporting that no filesystem
12886 could be identified.
12887
5db82af6 128882007-10-12 Robert Millan <rmh@aybabtu.com>
12889
12890 * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
12891 to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.
12892
68f6ac74 12893 * include/grub/types.h (grub_host_to_target16): New macro.
12894 (grub_host_to_target32): Likewise.
12895 (grub_host_to_target64): Likewise.
12896 (grub_target_to_host16): Likewise.
12897 (grub_target_to_host32): Likewise.
12898 (grub_target_to_host64): Likewise.
5db82af6 12899
12900 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
12901 Renamed from to ...
12902 (GRUB_MOD_ALIGN): ...this. Update all users.
12903
68f6ac74 12904 * util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with
12905 grub_host_to_target32.
12906 Replace grub_be_to_cpu32 with grub_target_to_host32.
12907 (load_modules): Likewise.
12908 (add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16.
12909 Replace grub_be_to_cpu32 with grub_target_to_host32.
12910 Replace grub_cpu_to_be16 with grub_host_to_target16.
12911 Replace grub_cpu_to_be32 grub_host_to_target32.
5db82af6 12912
3cf497cc 129132007-10-12 Robert Millan <rmh@aybabtu.com>
12914
12915 * util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
12916 * util/elf/grub-mkimage.c: ... here.
12917
12918 * DISTLIST: Add `util/elf/grub-mkimage.c'. Remove
12919 `util/powerpc/ieee1275/grub-mkimage.c'.
12920
c8cc3692 129212007-10-07 Robert Millan <rmh@aybabtu.com>
adbc4c9d 12922
c8cc3692 12923 * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
12924 and make it easier to figure out.
12925 Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
12926 (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
12927 Do not avoid claiming a region above HEAP_MAX_ADDR if that would
12928 leave us with less than HEAP_MIN_SIZE total heap.
12929 Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
adbc4c9d 12930
5c58b791 129312007-10-03 Robert Millan <rmh@aybabtu.com>
12932
12933 * include/grub/i386/io.h: New file.
12934 * commands/i386/pc/play.c (inb): Removed.
12935 (outb): Removed.
12936 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
12937 with grub_outb().
afcd2ef8 12938 * term/i386/pc/serial.c (inb): Removed.
12939 (outb): Removed.
12940 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
12941 with grub_outb().
12942 * term/i386/pc/vga.c (inb): Removed.
12943 (outb): Removed.
12944 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
12945 with grub_outb().
5c58b791 12946
1a477ed6 129472007-10-02 Robert Millan <rmh@aybabtu.com>
12948
12949 * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
12950 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
12951 Reported by Marcin Kurek.
12952
6b5d80fa 129532007-09-07 Robert Millan <rmh@aybabtu.com>
12954
12955 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
12956 SmartFirmware version updates (as released by Sven Luther), and avoid
12957 setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
12958 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
12959 known broken.
12960
5618afbf 129612007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
12962
12963 From Hitoshi Ozeki:
12964 * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
12965 when merging two regions.
12966
6139dcd9 129672007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
12968
508e39ee 12969 * kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
12970 * normal/completion.c (grub_normal_do_completion): Likewise.
12971 Reported by Hitoshi Ozeki.
12972
129732007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 12974
6139dcd9 12975 Do not use devices at boot in chainloading.
f19dbdb7 12976
6139dcd9 12977 * loader/i386/pc/chainloader.c (boot_drive): New variable.
12978 (boot_part_addr): Likewise.
12979 (grub_chainloader_boot): Simply call grub_chainloader_real_boot
12980 with BOOT_DRIVE and BOOT_PART_ADDR.
12981 (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
12982 Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
12983
38da6516 129842007-08-29 Robert Millan <rmh@aybabtu.com>
12985
12986 Patch from Simon Peter <dn.tlp@gmx.net>:
12987 * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
12988 * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
12989 util/grub-probe.c_DEPENDENCIES. Replace grub-setup_DEPENDENCIES with
12990 util/i386/pc/grub-setup.c_DEPENDENCIES.
12991 * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
12992 util/grub-probe.c_DEPENDENCIES.
12993 * conf/powerpc-ieee1275.rmk: Likewise.
12994
29d0928c 129952007-08-28 Robert Millan <rmh@aybabtu.com>
12996
12997 * util/i386/get_disk_name.c: New. Implement grub_util_get_disk_name()
12998 to tell grub-mkdevicemap how to name devices.
12999 * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
13000 feature).
13001
13002 * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
13003 util/i386/get_disk_name.c.
13004 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
13005 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
13006 util/ieee1275/get_disk_name.c.
13007
13008 * include/grub/util/misc.h: grub_util_get_disk_name() declaration.
13009
13010 * DISTLIST: Add util/i386/get_disk_name.c and
13011 util/ieee1275/get_disk_name.c.
13012
13013 * util/grub-mkdevicemap.c: Replace device naming logic with
13014 grub_util_get_disk_name() calls.
13015
5a0d3cca 130162007-08-20 Robert Millan <rmh@aybabtu.com>
13017
13018 * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
13019 (so that it works for both plural and singular quantities).
13020
8b72db2f 130212007-08-05 Robert Millan <rmh@aybabtu.com>
13022
13023 * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
13024 so that [xz] isn't taken into account when determining order.
13025
352466bf 130262007-08-02 Marco Gerards <marco@gnu.org>
13027
13028 * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
13029 `include/multiboot2.h', `include/grub/elfload.h',
13030 `include/multiboot.h', `include/grub/multiboot.h',
13031 `include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
13032 `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
13033 `kern/elf.c', `loader/multiboot_loader.c',
13034 `loader/multiboot_loader_normal.c', `loader/multiboot2.c',
13035 `loader/i386/pc/multiboot2.c',
13036 `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
13037 `util/i386/pc/grub-mkrescue.in'. Remove
13038 `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
13039 `include/grub/i386/pc/util/biosdisk.h' and
13040 `include/grub/powerpc/ieee1275/multiboot.h'.
13041
8f096014 130422007-08-02 Bean <bean123ch@gmail.com>
13043
13044 * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
13045 (ntfs_mod_SOURCES): New variable.
13046 (ntfs_mod_CFLAGS): Likewise.
13047 (ntfs_mod_LDFLAGS): Likewise.
13048
13049 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c.
13050 (grub_probe_SOURCES): Likewise.
13051 (grub_emu_SOURCES): Likewise.
13052
13053 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
13054 (grub_emu_SOURCES): Likewise.
13055
13056 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
13057 (grub_emu_SOURCES): Likewise.
f19dbdb7 13058
8f096014 13059 * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.
13060
13061 * fs/ntfs.c: New file.
13062
9959f7db 130632007-08-02 Bean <bean123ch@gmail.com>
13064
13065 * disk.h (grub_disk): Use NESTED_FUNC_ATTR.
13066
13067 * file.h (grub_file): Likewise.
13068
13069 * fshelp.h (grub_fshelp_read_file): Likewise.
13070
13071 * util/i386/pc/grub-setup.c (setup): Likewise.
13072 (save_first_sector): Likewise.
13073 (save_blocklists): Likewise.
f19dbdb7 13074
9959f7db 13075 * fs/affs.c (grub_affs_read_file): Likewise.
13076
13077 * fs/ext2.c (grub_ext2_read_file): Likewise.
13078
13079 * fs/fat.c (grub_fat_read_data): Likewise.
13080
13081 * fs/fshelp.c (grub_fshelp_read_file): Likewise.
13082
13083 * fs/hfs.c (grub_hfs_read_file): Likewise.
13084
13085 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
13086
13087 * fs/jfs.c (grub_jfs_read_file): Likewise.
13088
13089 * fs/minix.c (grub_minix_read_file): Likewise.
13090
13091 * fs/sfs.c (grub_sfs_read_file): Likewise.
13092
13093 * fs/ufs.c (grub_ufs_read_file): Likewise.
f19dbdb7 13094
9959f7db 13095 * fs/xfs.c (grub_xfs_read_file): Likewise.
13096
13097 * command/blocklist.c (read_blocklist): Likewise.
13098 (print_blocklist): Likewise.
13099
0a203f83 131002007-08-02 Marco Gerards <marco@gnu.org>
13101
13102 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
13103 `util/hostfs.c'.
13104
13105 * disk/host.c: New file.
13106
13107 * util/hostfs.c: Likewise.
13108
13109 * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
13110 return `GRUB_ERR_BAD_FS'.
13111 * fs/sfs.c (grub_sfs_mount): Likewise.
13112 * fs/xfs.c (grub_xfs_mount): Likewise.
13113
13114 * include/grub/disk.h (enum grub_disk_dev_id): Add
13115 `GRUB_DISK_DEVICE_HOST_ID'.
13116
13117 * util/grub-emu.c (main): Initialize and de-initialize hostfs.
13118
e5dfe777 131192007-07-24 Jerone Young <jerone@gmail.com>
13120
f19dbdb7 13121 * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
e5dfe777 13122 modules for compilation.
13123 * conf/powerpc-ieee1275.rmk: Likewise.
13124
13125 * include/multiboot.h: Move multiboot definitions to one file. Rename
13126 many definitions to not get grub specific.
13127 * include/multiboot2.h: Create header with multiboot 2 definitions.
13128 * include/grub/multiboot.h: Header for grub specific function
13129 prototypes and definitions.
13130 * include/grub/multiboot2.h: Likewise.
13131 * include/grub/multiboot_loader.h: Likewise.
13132 * include/grub/i386/pc/multiboot.h: Removed.
13133 * include/grub/powerpc/ieee1275/multiboot.h: Removed.
13134
13135 * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
13136 and 2 to allow for one multiboot and module commands.
13137 * loader/multiboot2.c: Add multiboot2 functionality.
13138 * loader/i386/pc/multiboot.c: Modify for new multiboot header location
13139 and definition names.
13140 * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
13141 2 functions.
13142 * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
13143 ieee1275 specific multiboot2 code.
13144
13145 * kern/i386/pc/startup.S: Change headers and definition names for
13146 multiboot. Add function grub_multiboot2_real_boot for multiboot 2.
13147
daf0f0ba 131482007-07-22 Robert Millan <rmh@aybabtu.com>
13149
13150 * geninitheader.sh: Process file specified in first parameter rather
13151 than hardcoding grub_modules_init.lst.
fe6b695a 13152 * geninit.sh: Likewise. Also, construct header name dynamically rather
daf0f0ba 13153 than hardcoding grub_modules_init.h.
13154
13155 * conf/common.rmk: Rename grub_modules_init.[ch] files associated with
13156 grub-emu to grub_emu_init.[ch]. Add rules to build analogous
13157 grub_probe_init.[ch] and grub_setup_init.[ch].
13158
13159 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
13160 grub_modules_init.h with grub_emu_init.h.
13161 (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
13162 grub_probe_init.[ch] files.
13163 * conf/i386-efi.rmk: Likewise.
13164 * conf/i386-pc.rmk: Likewise.
13165 (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
13166 grub_setup_init.[ch] files.
13167
13168 * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
13169 * util/grub-probe.c: Include grub_probe_init.h. Use grub_init_all()
13170 to initialize modules rather than a list of hardcoded functions.
13171 * util/i386/pc/grub-setup.c: Include grub_setup_init.h. Use
13172 grub_init_all() to initialize modules rather than a list of hardcoded
13173 functions.
13174
54cdc1cc 131752007-07-22 Robert Millan <rmh@aybabtu.com>
13176
13177 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
13178 GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
13179
ad0686cc 131802007-07-22 Robert Millan <rmh@aybabtu.com>
13181
13182 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
13183 GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
13184 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
13185 flag when running on SmartFirmware.
13186 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
13187 "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
13188 was set.
13189
13190 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
13191 Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
13192 rather than decreasing it.
13193
13194 * util/i386/pc/grub-setup.c (setup): When embedding is required, but
13195 there's not enough space to do it, fail in the same way as when it
13196 can't be done because there are no partitions.
13197
13198 * util/powerpc/ieee1275/grub-install.in: Improve error message shown
13199 when nvsetenv failed.
13200
969c02ec 132012007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
13202
13203 * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
13204 because this rule is automatically generated.
13205 (grub-mkrescue): Removed for the same reason as above.
13206
5a79f472 132072007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
13208
13209 Migrate to GNU General Public License Version 3.
f19dbdb7 13210
5a79f472 13211 * COPYING: Replaced with the plain text version of GPLv3.
13212
13213 * config.guess: Updated from gnulib.
13214 * config.sub: Likewise.
13215
13216 * geninit.sh: Output a GPLv3 copyright notice.
13217 * geninitheader.sh: Likewise.
13218 * genmodsrc.sh: Likewise.
13219 * gensymlist.sh.in: Likewise.
13220
13221 * boot/i386/pc/boot.S: Upgraded to GPLv3.
13222 * boot/i386/pc/diskboot.S: Likewise.
13223 * boot/i386/pc/pxeboot.S: Likewise.
13224 * commands/blocklist.c: Likewise.
13225 * commands/boot.c: Likewise.
13226 * commands/cat.c: Likewise.
13227 * commands/cmp.c: Likewise.
13228 * commands/configfile.c: Likewise.
13229 * commands/echo.c: Likewise.
13230 * commands/help.c: Likewise.
13231 * commands/ls.c: Likewise.
13232 * commands/search.c: Likewise.
13233 * commands/terminal.c: Likewise.
13234 * commands/test.c: Likewise.
13235 * commands/videotest.c: Likewise.
13236 * commands/i386/cpuid.c: Likewise.
13237 * commands/i386/pc/halt.c: Likewise.
13238 * commands/i386/pc/play.c: Likewise.
13239 * commands/i386/pc/reboot.c: Likewise.
13240 * commands/i386/pc/vbeinfo.c: Likewise.
13241 * commands/i386/pc/vbetest.c: Likewise.
13242 * commands/ieee1275/halt.c: Likewise.
13243 * commands/ieee1275/reboot.c: Likewise.
13244 * commands/ieee1275/suspend.c: Likewise.
13245 * disk/loopback.c: Likewise.
13246 * disk/lvm.c: Likewise.
13247 * disk/raid.c: Likewise.
13248 * disk/efi/efidisk.c: Likewise.
13249 * disk/i386/pc/biosdisk.c: Likewise.
13250 * disk/ieee1275/ofdisk.c: Likewise.
13251 * font/manager.c: Likewise.
13252 * fs/affs.c: Likewise.
13253 * fs/ext2.c: Likewise.
13254 * fs/fat.c: Likewise.
13255 * fs/fshelp.c: Likewise.
13256 * fs/hfs.c: Likewise.
13257 * fs/hfsplus.c: Likewise.
13258 * fs/iso9660.c: Likewise.
13259 * fs/jfs.c: Likewise.
13260 * fs/minix.c: Likewise.
13261 * fs/sfs.c: Likewise.
13262 * fs/ufs.c: Likewise.
13263 * fs/xfs.c: Likewise.
13264 * hello/hello.c: Likewise.
13265 * include/grub/acorn_filecore.h: Likewise.
13266 * include/grub/arg.h: Likewise.
13267 * include/grub/bitmap.h: Likewise.
13268 * include/grub/boot.h: Likewise.
13269 * include/grub/cache.h: Likewise.
13270 * include/grub/device.h: Likewise.
13271 * include/grub/disk.h: Likewise.
13272 * include/grub/dl.h: Likewise.
13273 * include/grub/elfload.h: Likewise.
13274 * include/grub/env.h: Likewise.
13275 * include/grub/err.h: Likewise.
13276 * include/grub/file.h: Likewise.
13277 * include/grub/font.h: Likewise.
13278 * include/grub/fs.h: Likewise.
13279 * include/grub/fshelp.h: Likewise.
13280 * include/grub/gzio.h: Likewise.
13281 * include/grub/hfs.h: Likewise.
13282 * include/grub/kernel.h: Likewise.
13283 * include/grub/loader.h: Likewise.
13284 * include/grub/lvm.h: Likewise.
13285 * include/grub/misc.h: Likewise.
13286 * include/grub/mm.h: Likewise.
13287 * include/grub/net.h: Likewise.
13288 * include/grub/normal.h: Likewise.
13289 * include/grub/parser.h: Likewise.
13290 * include/grub/partition.h: Likewise.
13291 * include/grub/pc_partition.h: Likewise.
13292 * include/grub/raid.h: Likewise.
13293 * include/grub/rescue.h: Likewise.
13294 * include/grub/script.h: Likewise.
13295 * include/grub/setjmp.h: Likewise.
13296 * include/grub/symbol.h: Likewise.
13297 * include/grub/term.h: Likewise.
13298 * include/grub/terminfo.h: Likewise.
13299 * include/grub/tparm.h: Likewise.
13300 * include/grub/types.h: Likewise.
13301 * include/grub/video.h: Likewise.
13302 * include/grub/efi/api.h: Likewise.
13303 * include/grub/efi/chainloader.h: Likewise.
13304 * include/grub/efi/console.h: Likewise.
13305 * include/grub/efi/console_control.h: Likewise.
13306 * include/grub/efi/disk.h: Likewise.
13307 * include/grub/efi/efi.h: Likewise.
13308 * include/grub/efi/pe32.h: Likewise.
13309 * include/grub/efi/time.h: Likewise.
13310 * include/grub/i386/linux.h: Likewise.
13311 * include/grub/i386/setjmp.h: Likewise.
13312 * include/grub/i386/types.h: Likewise.
13313 * include/grub/i386/efi/kernel.h: Likewise.
13314 * include/grub/i386/efi/loader.h: Likewise.
13315 * include/grub/i386/efi/time.h: Likewise.
13316 * include/grub/i386/pc/biosdisk.h: Likewise.
13317 * include/grub/i386/pc/boot.h: Likewise.
13318 * include/grub/i386/pc/chainloader.h: Likewise.
13319 * include/grub/i386/pc/console.h: Likewise.
13320 * include/grub/i386/pc/init.h: Likewise.
13321 * include/grub/i386/pc/kernel.h: Likewise.
13322 * include/grub/i386/pc/loader.h: Likewise.
13323 * include/grub/i386/pc/memory.h: Likewise.
13324 * include/grub/i386/pc/multiboot.h: Likewise.
13325 * include/grub/i386/pc/serial.h: Likewise.
13326 * include/grub/i386/pc/time.h: Likewise.
13327 * include/grub/i386/pc/vbe.h: Likewise.
13328 * include/grub/i386/pc/vbeblit.h: Likewise.
13329 * include/grub/i386/pc/vbefill.h: Likewise.
13330 * include/grub/i386/pc/vbeutil.h: Likewise.
13331 * include/grub/i386/pc/vga.h: Likewise.
13332 * include/grub/ieee1275/ieee1275.h: Likewise.
13333 * include/grub/ieee1275/ofdisk.h: Likewise.
13334 * include/grub/powerpc/libgcc.h: Likewise.
13335 * include/grub/powerpc/setjmp.h: Likewise.
13336 * include/grub/powerpc/types.h: Likewise.
13337 * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
13338 * include/grub/powerpc/ieee1275/console.h: Likewise.
13339 * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
13340 * include/grub/powerpc/ieee1275/kernel.h: Likewise.
13341 * include/grub/powerpc/ieee1275/loader.h: Likewise.
13342 * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
13343 * include/grub/powerpc/ieee1275/time.h: Likewise.
13344 * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
13345 * include/grub/sparc64/libgcc.h: Likewise.
13346 * include/grub/sparc64/setjmp.h: Likewise.
13347 * include/grub/sparc64/types.h: Likewise.
13348 * include/grub/sparc64/ieee1275/console.h: Likewise.
13349 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
13350 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
13351 * include/grub/sparc64/ieee1275/time.h: Likewise.
13352 * include/grub/util/biosdisk.h: Likewise.
13353 * include/grub/util/getroot.h: Likewise.
13354 * include/grub/util/lvm.h: Likewise.
13355 * include/grub/util/misc.h: Likewise.
13356 * include/grub/util/raid.h: Likewise.
13357 * include/grub/util/resolve.h: Likewise.
13358 * io/gzio.c: Likewise.
13359 * kern/device.c: Likewise.
13360 * kern/disk.c: Likewise.
13361 * kern/dl.c: Likewise.
13362 * kern/elf.c: Likewise.
13363 * kern/env.c: Likewise.
13364 * kern/err.c: Likewise.
13365 * kern/file.c: Likewise.
13366 * kern/fs.c: Likewise.
13367 * kern/loader.c: Likewise.
13368 * kern/main.c: Likewise.
13369 * kern/misc.c: Likewise.
13370 * kern/mm.c: Likewise.
13371 * kern/parser.c: Likewise.
13372 * kern/partition.c: Likewise.
13373 * kern/rescue.c: Likewise.
13374 * kern/term.c: Likewise.
13375 * kern/efi/efi.c: Likewise.
13376 * kern/efi/init.c: Likewise.
13377 * kern/efi/mm.c: Likewise.
13378 * kern/i386/dl.c: Likewise.
13379 * kern/i386/efi/init.c: Likewise.
13380 * kern/i386/efi/startup.S: Likewise.
13381 * kern/i386/pc/init.c: Likewise.
13382 * kern/i386/pc/lzo1x.S: Likewise.
13383 * kern/i386/pc/startup.S: Likewise.
13384 * kern/ieee1275/ieee1275.c: Likewise.
13385 * kern/powerpc/cache.S: Likewise.
13386 * kern/powerpc/dl.c: Likewise.
13387 * kern/powerpc/ieee1275/cmain.c: Likewise.
13388 * kern/powerpc/ieee1275/crt0.S: Likewise.
13389 * kern/powerpc/ieee1275/init.c: Likewise.
13390 * kern/powerpc/ieee1275/openfw.c: Likewise.
13391 * kern/sparc64/cache.S: Likewise.
13392 * kern/sparc64/dl.c: Likewise.
13393 * kern/sparc64/ieee1275/init.c: Likewise.
13394 * kern/sparc64/ieee1275/openfw.c: Likewise.
13395 * loader/efi/chainloader.c: Likewise.
13396 * loader/efi/chainloader_normal.c: Likewise.
13397 * loader/i386/efi/linux.c: Likewise.
13398 * loader/i386/efi/linux_normal.c: Likewise.
13399 * loader/i386/pc/chainloader.c: Likewise.
13400 * loader/i386/pc/chainloader_normal.c: Likewise.
13401 * loader/i386/pc/linux.c: Likewise.
13402 * loader/i386/pc/linux_normal.c: Likewise.
13403 * loader/i386/pc/multiboot.c: Likewise.
13404 * loader/i386/pc/multiboot_normal.c: Likewise.
13405 * loader/powerpc/ieee1275/linux.c: Likewise.
13406 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
13407 * normal/arg.c: Likewise.
13408 * normal/cmdline.c: Likewise.
13409 * normal/command.c: Likewise.
13410 * normal/completion.c: Likewise.
13411 * normal/execute.c: Likewise.
13412 * normal/function.c: Likewise.
13413 * normal/lexer.c: Likewise.
13414 * normal/main.c: Likewise.
13415 * normal/menu.c: Likewise.
13416 * normal/menu_entry.c: Likewise.
13417 * normal/misc.c: Likewise.
13418 * normal/parser.y: Likewise.
13419 * normal/script.c: Likewise.
13420 * normal/i386/setjmp.S: Likewise.
13421 * normal/powerpc/setjmp.S: Likewise.
13422 * normal/sparc64/setjmp.S: Likewise.
13423 * partmap/acorn.c: Likewise.
13424 * partmap/amiga.c: Likewise.
13425 * partmap/apple.c: Likewise.
13426 * partmap/gpt.c: Likewise.
13427 * partmap/pc.c: Likewise.
13428 * partmap/sun.c: Likewise.
13429 * term/gfxterm.c: Likewise.
13430 * term/terminfo.c: Likewise.
13431 * term/efi/console.c: Likewise.
13432 * term/i386/pc/console.c: Likewise.
13433 * term/i386/pc/serial.c: Likewise.
13434 * term/i386/pc/vesafb.c: Likewise.
13435 * term/i386/pc/vga.c: Likewise.
13436 * term/ieee1275/ofconsole.c: Likewise.
13437 * util/biosdisk.c: Likewise.
13438 * util/console.c: Likewise.
13439 * util/genmoddep.c: Likewise.
13440 * util/getroot.c: Likewise.
13441 * util/grub-emu.c: Likewise.
13442 * util/grub-mkdevicemap.c: Likewise.
13443 * util/grub-probe.c: Likewise.
13444 * util/lvm.c: Likewise.
13445 * util/misc.c: Likewise.
13446 * util/raid.c: Likewise.
13447 * util/resolve.c: Likewise.
13448 * util/update-grub.in: Likewise.
13449 * util/update-grub_lib.in: Likewise.
13450 * util/grub.d/00_header.in: Likewise.
13451 * util/grub.d/10_hurd.in: Likewise.
13452 * util/grub.d/10_linux.in: Likewise.
13453 * util/i386/efi/grub-install.in: Likewise.
13454 * util/i386/efi/grub-mkimage.c: Likewise.
13455 * util/i386/pc/grub-install.in: Likewise.
13456 * util/i386/pc/grub-mkimage.c: Likewise.
13457 * util/i386/pc/grub-mkrescue.in: Likewise.
13458 * util/i386/pc/grub-setup.c: Likewise.
13459 * util/i386/pc/misc.c: Likewise.
13460 * util/powerpc/ieee1275/grub-install.in: Likewise.
13461 * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
13462 * util/powerpc/ieee1275/misc.c: Likewise.
13463 * video/bitmap.c: Likewise.
13464 * video/video.c: Likewise.
13465 * video/i386/pc/vbe.c: Likewise.
13466 * video/i386/pc/vbeblit.c: Likewise.
13467 * video/i386/pc/vbefill.c: Likewise.
13468 * video/i386/pc/vbeutil.c: Likewise.
13469 * video/readers/tga.c: Likewise.
13470
3572d015 134712007-07-02 Robert Millan <rmh@aybabtu.com>
13472
13473 * conf/i386-efi.rmk: Replace obsolete reference to
13474 util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
13475 with util/getroot.c.
13476 * conf/powerpc-ieee1275.rmk: Likewise.
13477 * conf/sparc64-ieee1275.rmk: Likewise.
13478
13479 * util/grub-emu.c (main): Fix unchecked pointer handling.
13480
2c2a681b 134812007-07-02 Robert Millan <rmh@aybabtu.com>
13482
13483 * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
13484 invocation to fail, in order to support partition-less media.
13485
13486 * util/i386/pc/grub-install.in: Likewise.
13487
13488 * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
13489 which fs or partmap modules are needed (akin to its sister scripts).
13490
13491 Also use grub-probe to get rid of unportable /proc/mounts check.
13492
13493 Print the same informational message that the other scripts do, before
fe6b695a 13494 exiting.
2c2a681b 13495
6193defe 134962007-06-23 Robert Millan <rmh@aybabtu.com>
13497
fe6b695a 13498 * util/update-grub_lib.in (font_path): New function. Determine whether
6193defe 13499 a font file can be found and, if so, echo the GRUB path to it.
13500
13501 * util/update-grub.in: Handle multiple terminals depending on user
13502 input, platform availability and font file presence. Propagate
13503 variables of our findings to /etc/grub.d/ children.
13504
13505 * util/grub.d/00_header.in: Handle multiple terminals, based on
13506 environment setup by update-grub.
13507
eface1dc 135082007-06-23 Robert Millan <rmh@aybabtu.com>
13509
ba50d28f 13510 * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.
eface1dc 13511
bf697e28 135122007-06-21 Robert Millan <rmh@aybabtu.com>
13513
13514 * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
13515 indicate end of data section in kernel image.
13516 * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
13517 GRUB_KERNEL_MACHINE_DATA_END.
13518
13519 * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
13520 space for it.
13521 * kern/i386/efi/startup.S: Likewise.
13522
13523 * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
13524 during image generation. Implement --prefix option to override this
13525 patch.
13526 * util/i386/efi/grub-mkimage.c: Likewise.
13527
13528 * util/update-grub_lib.in (convert_system_path_to_grub_path): Split
13529 code to make path relative to its root into a separate function.
13530
13531 * util/i386/pc/grub-install.in: Use newly provided
13532 make_system_path_relative_to_its_root() to convert ${grubdir}, then
13533 pass the result to grub-install --prefix.
13534
baa574b4 135352007-06-13 Robert Millan <rmh@aybabtu.com>
13536
13537 * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
13538 DEFAULT_DEVICE_MAP.
13539 * util/grub-emu.c: Use above definitions from misc.h instead of
13540 defining them.
13541 * util/grub-mkdevicemap.c: Likewise.
13542 * util/i386/pc/grub-setup.c: Likewise.
13543 * util/grub-probe.c: Likewise.
13544 (probe): Abort with grub_util_error() when either
13545 grub_guess_root_device or grub_util_get_grub_dev fails.
13546
0215dcbf 135472007-06-12 Robert Millan <rmh@aybabtu.com>
13548
13549 * normal/command.c (grub_command_execute): Use NULL rather than 0 for
13550 "pager" assignment.
13551 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
13552 "pcdata".
13553 * util/grub-probe.c (probe): Likewise for "drive_name".
13554
8af2ab7b 135552007-06-11 Robert Millan <rmh@aybabtu.com>
13556
13557 * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
13558 not just the cdrom one.
13559
59d31694 135602007-06-11 Robert Millan <rmh@aybabtu.com>
13561
13562 * util/i386/pc/grub-mkrescue.in: Add "set -e".
13563 Add --pkglibdir=DIR option to override pkglibdir.
13564 Mention --image-type=TYPE in help output.
13565 Fix --grub-mkimage (it was a no-op).
fe6b695a 13566 Abort gracefully when no parameter is given.
59d31694 13567
7ee367e4 135682007-06-11 Robert Millan <rmh@aybabtu.com>
13569
13570 * util/i386/pc/grub-mkrescue.in: New file.
13571 * conf/i386-pc.rmk: Add its build declarations. Put it in bin_SCRIPTS.
13572 * Makefile.in: Handle bin_SCRIPTS.
13573
29b0ed46 135742007-06-10 Vesa Jaaskelainen <chaac@nic.fi>
13575
13576 * term/gfxterm.c (grub_gfxterm_init): Added support for specifying
13577 list of video modes.
13578
c0f90770 135792007-06-06 Robert Millan <rmh@aybabtu.com>
13580
13581 * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
13582 file doesn't exist, or if it is in a filesystem grub can't read.
13583
13584 * util/update-grub.in: Set fallback for GRUB_FS check to "unknown". Do
13585 not abort if GRUB_DRIVE could not be defined. Rearrange generated
13586 header comment to fit in 80 columns when the variables are resolved.
13587
13588 * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
13589 could be identified by update-grub. Remove redundant check for
fe6b695a 13590 unifont.pff existence (since convert_system_path_to_grub_path now
c0f90770 13591 handles that).
13592
fb36dc26 135932007-06-04 Robert Millan <rmh@aybabtu.com>
13594
13595 * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.
13596
13597 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.
13598
13599 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
13600
0c68c93e 136012007-06-04 Robert Millan <rmh@aybabtu.com>
13602
13603 * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.
13604
13605 * include/grub/partition.h: Declare grub_apple_partition_map_init and
13606 grub_apple_partition_map_fini.
13607
13608 * util/biosdisk.c
13609 (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
13610 to access >2 TiB disks).
13611
13612 Print disk->total_sectors with %llu instead of %lu, since this
13613 variable is always 64-bit (prevents wrong disk size from being displayed
13614 on either >2 TiB disk or big-endian CPU).
13615
13616 (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
13617 into a generic case that supports all (sane) partition maps.
13618
13619 Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
13620 breaks big-endian.
13621
13622 * util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
13623 and grub_apple_partition_map_fini() after that.
13624
0f23eb74 136252007-06-01 Robert Millan <rmh@aybabtu.com>
13626
13627 * util/update-grub.in: Export GRUB_CMDLINE_LINUX.
13628
13629 * util/grub.d/00_header.in: Only enable gfxterm when
13630 convert_system_path_to_grub_path() succeeds.
13631
42c71976 136322007-05-20 Robert Millan <rmh@aybabtu.com>
13633
13634 * util/update-grub_lib.in: New file.
13635 * DISTLIST: Add update-grub_lib.in.
13636 * conf/common.rmk: Generate update-grub_lib and install it in
13637 $(lib_DATA).
13638 * Makefile.in: Add install routine for $(lib_DATA).
13639
13640 * util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
13641 function provided by update-grub_lib to support arbitrary paths of
13642 unifont.pff.
13643 * util/update-grub.in: Use convert_system_path_to_grub_path() to
13644 initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
13645
5beb2291 136462007-05-19 Robert Millan <rmh@aybabtu.com>
13647
13648 * commands/i386/cpuid.c: New module.
13649 * DISTLIST: Add it.
13650 * conf/i386-efi.rmk: Enable cpuid.mod.
13651 * conf/i386-pc.rmk: Likewise.
13652
7262eca1 136532007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
13654
13655 * kern/disk.c (grub_disk_read): Check return value of
13656 grub_realloc().
13657
260ba823 136582007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
13659
13660 * util/getroot.c (grub_util_get_grub_dev): Support partitionable
13661 arrays.
13662 * disk/raid.c (grub_raid_open): Likewise.
13663
1ecb6cf2 136642007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
13665
13666 * util/biosdisk.c (linux_find_partition): Allocate real_dev on the
13667 stack instead of on the heap.
13668
13669 * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
13670 before doing a read on it.
13671
13672 * configure.ac: Only use -fno-stack-protector for the target
13673 environment.
f19dbdb7 13674
21c8cbb1 136752007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
13676
13677 * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
13678 __attribute_ ((unused)) to mode_type argument.
13679
13680 * util/getroot.c (grub_guess_root_device): Fix #endif.
f19dbdb7 13681
21c8cbb1 13682 * kern/misc.c (memcmp): Fix prototype.
13683
13684 * include/grub/partition.h [GRUB_UTIL]
13685 (grub_gpt_partition_map_init): Add prototype.
13686 (grub_gpt_partition_map_fini): Likewise.
13687
13688 * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
13689 at the right place.
13690
13691 * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
13692 (grub_fat_read_data): Likewise.
13693 (grub_fat_find_dir): Likewise.
13694
13695 * font/manager.c (find_glyph): Make table a const.
13696 (grub_font_get_glyph): Remove bitmap from if statement.
f19dbdb7 13697
849d55d3 136982007-05-16 Jeroen Dekkers <jeroen@dekkers.cx>
13699
13700 * util/getroot.c (grub_guess_root_device): Remove RAID and LVM
13701 code, first search for device in /dev/mapper, then in /dev.
13702 (grub_util_get_grub_dev): New function.
13703 * include/grub/util/getroot.h (grub_util_get_grub_dev): Add
13704 prototype.
13705 * util/grub-probe.c (probe): Remove check for RAID, call
13706 grub_util_get_grub_dev() instead of
13707 grub_util_biosdisk_get_grub_dev().
13708 * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
13709 grub_util_biosdisk_get_grub_dev().
13710 * util/i386/pc/grub-setup.c (main): Likewise.
13711
8fff7c2f 137122007-05-16 Robert Millan <rmh@aybabtu.com>
13713
13714 * DISTLIST: Update for the latest changes.
13715 * conf/i386-pc.rmk: Use the new paths for util/getroot.c,
13716 util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
13717 * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
13718 grub/util/biosdisk.h.
13719 * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
13720 grub/util/biosdisk.h.
13721
48e12b52 137222007-05-16 Robert Millan <rmh@aybabtu.com>
13723
13724 * util/grub.d/00_header.in: Set default gfxmode to `640x480'.
13725
46b9d128 137262007-05-16 Robert Millan <rmh@aybabtu.com>
13727
13728 * util/i386/efi/grub-install.in: New.
13729 * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
13730 newly added grub-install.
13731 * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
13732 include.
13733 * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
13734 grub/util/biosdisk.h.
13735 * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
13736 grub/util/biosdisk.h.
13737
2d1a40a9 137382007-05-16 Robert Millan <rmh@aybabtu.com>
13739
13740 * include/grub/i386/pc/util/biosdisk.h: Moved to ...
13741 * include/grub/util/biosdisk.h: ... here.
13742 * util/i386/pc/biosdisk.c: Moved to ...
13743 * util/biosdisk.c: ... here.
13744 * util/i386/pc/getroot.c: Moved to ...
13745 * util/getroot.c: ... here.
13746 * util/i386/pc/grub-mkdevicemap.c: Moved to ...
13747 * util/grub-mkdevicemap.c: ... here.
13748 * util/i386/pc/grub-probe.c: Moved to ...
13749 * util/grub-probe.c: ... here.
13750
9e26e3bc 137512007-05-15 Robert Millan <rmh@aybabtu.com>
13752
13753 * util/update-grub.in: Remove duplicated line in grub.cfg header
13754 message.
13755
57f96397 137562007-05-13 Robert Millan <rmh@aybabtu.com>
13757
13758 * util/update-grub.in: Fix a few assumptions about the devices holding
13759 /, /boot and /boot/grub being the same.
13760 * util/grub.d/00_header.in: Likewise.
13761 * util/grub.d/10_hurd.in: Likewise.
13762 * util/grub.d/10_linux.in: Likewise.
13763
13764 * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
13765 patterns. Use that to define the `.old' suffix as older than `'.
13766
13767 * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.
13768
13769 * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
13770 the grub.cfg header message.
13771
2e610d62 137722007-05-11 Robert Millan <rmh@aybabtu.com>
13773
13774 * util/update-grub.in: Create device.map if it doesn't already exist,
13775 before attempting to run grub-probe.
13776 Check for grub-probe and grub-mkdevicemap with the same code
13777 grub-install is using.
13778 Remove test mode.
13779
3f6a10ef 137802007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
13781
13782 * Makefile.in: Add the datarootdir autoconf variable.
13783
02e7b75e 137842007-05-09 Robert Millan <rmh@aybabtu.com>
13785
13786 * util/i386/pc/grub-probe.c (probe): When detecting partition map,
f19dbdb7 13787 fail gracefully if dev->disk->partition == NULL.
02e7b75e 13788
75f396cc 137892007-05-07 Robert Millan <rmh@aybabtu.com>
13790
13791 * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
13792 determine partition map module.
13793 * util/i386/pc/grub-install.in: Use this feature to decide which
13794 partition module to load, instead of hardcoding pc and gpt.
13795
da65cb36 137962007-05-07 Robert Millan <rmh@aybabtu.com>
13797
13798 * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
13799 source directory differs from build directory.
13800
b57d6a91 138012007-05-05 Robert Millan <rmh@aybabtu.com>
13802
13803 * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
13804 initialisation.
13805
509d00f1 138062007-05-05 Robert Millan <rmh@aybabtu.com>
13807
13808 * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
13809
c48f23ef 138102007-05-05 Robert Millan <rmh@aybabtu.com>
13811
13812 * util/grub.d/10_linux.in: Allow the administrator to insert Linux
13813 command-line arguments via ${GRUB_CMDLINE_LINUX}.
13814
20b97658 138152007-05-05 Robert Millan <rmh@aybabtu.com>
13816
13817 * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
13818 (grub_probe_SOURCES): Likewise.
13819 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
13820 GPT and initialize dos_part and bsd_part accordingly.
13821 * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
13822 install_bsd_part.
13823 (main): Activate gpt module for use during partition identification,
13824 and deactivate it afterwards.
13825 * util/i386/pc/grub-install.in: Add gpt module to core.img.
13826 * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
13827 partition identification, and deactivate it afterwards.
13828
99123174 138292007-05-05 Robert Millan <rmh@aybabtu.com>
13830
13831 * term/i386/pc/console.c (grub_console_fini): Call
13832 grub_term_set_current() before grub_term_unregister().
13833
ebd97f6e 138342007-05-04 Robert Millan <rmh@aybabtu.com>
13835
13836 * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
13837 util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
13838 * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS
13839 and update-grub_DATA.
13840 * conf/common.rmk: Build and install update-grub components.
13841 * conf/common.mk: Regenerate.
13842 * util/update-grub.in: New. Core of update-grub.
13843 * util/grub.d/00_header.in: New. Generates grub.cfg header.
13844 * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd.
13845 * util/grub.d/10_linux.in: New. Generates boot entries for Linux.
13846 * util/grub.d/README: New. Document grub.d directory layout.
13847
b06a264d 138482007-05-01 Robert Millan <rmh@aybabtu.com>
13849
13850 * util/grub-emu.c: Move initialization functions
13851 grub_util_biosdisk_init() and grub_init_all() before
13852 grub_util_biosdisk_get_grub_dev(), which relies on them.
13853
41f0050e 138542007-04-19 Robert Millan <rmh@aybabtu.com>
13855
13856 * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
13857 it is used later.
13858
04582bb3 138592007-04-18 Jerone Young <jerone@gmail.com>
13860
f19dbdb7 13861 * kernel/elf.c: Add missing parenthesis for conditional statement
04582bb3 13862 stanza.
13863
08db4632 138642007-04-10 Jerone Young <jerone@gmail.com>
49892fdf 13865
08db4632 13866 * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
13867 continue on and look for device node with real device name.
13868
801b76be 138692007-04-10 Jerone Young <jerone@gmail.com>
f19dbdb7 13870
fe6b695a 13871 * configure.ac: Add argument for autoconf to use transformation
1d543c3e 13872 ability.
13873 * Makefile.in: Add autoconf package transformation code.
13874 * util/i386/pc/grub-install.in: Likewise.
13875 * util/powerpc/ieee1275/grub-install.in: Likewise.
13876
6795c4e1 138772007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
13878
13879 * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
13880 (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
13881 (EXT2_REVISION): Likewise.
13882 (EXT2_INODE_SIZE): Likewise.
13883 (struct grub_ext2_block_group): Added a missing member
13884 "used_dirs".
13885 (grub_ext2_read_inode): Divide by the inode size in a superblock
13886 instead of 128 to obtain INODES_PER_BLOCK.
13887 Use the macro EXT2_INODE_SIZE instead of directly using
13888 SBLOCK->INODE_SIZE.
13889
d70af616 138902007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
13891
13892 * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
13893 superblock instead of the structure size to compute an
13894 offset. This fixes the problem that GRUB could not read a
13895 filesystem when inode size is different from 128-byte.
13896
3b801603 138972007-03-05 Marco Gerards <marco@gnu.org>
13898
13899 * normal/main.c (read_config_file): When "menu" is not set, create
13900 an initial context.
13901
4785bfe4 139022007-02-21 Hollis Blanchard <hollis@penguinppc.org>
13903
13904 * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
13905 (HEAP_LIMIT): New macro.
13906 (grub_claim_heap): Claim memory up to `heaplimit'.
13907
a0cbb023 139082007-02-21 Hollis Blanchard <hollis@penguinppc.org>
13909
13910 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
13911 * kern/powerpc/ieee1275/init.c (_end): Add declaration.
13912 (_start): Likewise.
13913 (grub_arch_modules_addr): Return address after `_end'.
13914 * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
13915 (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
13916 (add_segments): Calculate `_end' from phdr size and location.
13917 (ALIGN_UP): Moved to ...
13918 * include/grub/misc.h: here.
13919 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
13920 New macro.
13921 (GRUB_IEEE1275_MODULE_BASE): Removed.
13922
fd7d8eba 139232007-02-20 Hollis Blanchard <hollis@penguinppc.org>
13924
13925 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
13926 loop boundary.
13927
9b09e6fc 139282007-02-20 Hollis Blanchard <hollis@penguinppc.org>
13929
13930 * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
13931 All users updated.
13932 (grub_elf64_load_hook_t): Likewise.
13933 * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
13934 debug output.
13935
3ce27299 139362007-02-20 Hollis Blanchard <hollis@penguinppc.org>
13937
13938 * kern/mm.c: Update copyright.
13939 (grub_mm_debug): Correct syntax error.
13940 (grub_mm_dump_free): New function.
13941 (grub_debug_free): Call `grub_free'.
13942 * include/grub/mm.h: Update copyright.
13943 (grub_mm_dump_free): Add declaration.
13944
077d5fee 139452007-02-12 Hollis Blanchard <hollis@penguinppc.org>
13946
13947 * include/grub/ieee1275/ieee1275.h: Update copyright.
13948 * kern/powerpc/ieee1275/init.c: Likewise.
13949 * kern/powerpc/ieee1275/openfw.c: Likewise.
13950
13951 * loader/powerpc/ieee1275/linux.c: Likewise.
13952 * include/grub/elfload.h: Likewise.
13953 * kern/elf.c: Likewise.
13954 (grub_elf32_load): Pass `base' and `size' parameters. Update all
13955 callers.
13956 (grub_elf64_load): Likewise.
13957 (grub_elf32_load_segment): Move to a nested function.
13958 (grub_elf64_load_segment): Likewise.
13959
dc946850 139602007-02-12 Hollis Blanchard <hollis@penguinppc.org>
13961
13962 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
13963 prototype.
13964 * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
13965 (grub_heap_len): Likewise.
13966 (HEAP_SIZE): New macro.
13967 (grub_claim_heap): New function.
13968 (grub_machine_init): Don't claim heap directly. Call
13969 `grub_claim_heap'.
13970 * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
13971 (grub_available_iterate): New function.
13972
baa2a121 139732007-02-03 Thomas Schwinge <tschwinge@gnu.org>
13974
13975 * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
13976 * configure.ac: Use it for testing the HOST and TARGET compilers.
13977
4fe9862e 139782006-12-13 Thomas Schwinge <tschwinge@gnu.org>
13979
13980 * Makefile.in (enable_grub_emu): New variable.
13981 * configure.ac (--enable-grub-emu): New option.
13982 Do the checks for (n)curses only if `--enable-grub-emu' is requested.
13983 * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
13984 * conf/i386-pc.rmk: Likewise.
13985 * conf/powerpc-ieee1275.rmk: Likewise.
13986 * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
13987
a8aa5762 139882006-12-12 Marco Gerards <marco@gnu.org>
13989
13990 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
13991
13992 * kern/env.c (grub_env_unset): Don't free the member `value' when
13993 the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
13994 pointer.
13995
13996 * normal/main.c (current_menu): Removed.
13997 (free_menu): Unset the `menu' environment variable.
13998 (grub_normal_menu_addentry): Make use of the environment variable
13999 `menu', instead of using the global `current_menu'. Allocate
14000 memory for the sourcecode of this entry.
14001 (read_config_file): New argument `nested', changed all callers.
14002 Only in the case of a new context, initialize a new menu. Set the
14003 `menu' environment variable.
14004 (grub_normal_execute): Don't set and unset the environment
14005 variable `menu' here anymore. Only free the menu when leaving the
14006 context.
14007
14008 * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
14009 leak.
14010
957b3a3e 140112006-12-11 Marco Gerards <marco@gnu.org>
14012
14013 * normal/menu_entry.c (run): Fix off by one bug so the last line
14014 is executed. Move the loader check to outside the loop.
14015
ef875714 140162006-12-08 Hollis Blanchard <hollis@penguinppc.org>
14017
14018 * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
14019
4e739985 140202006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
14021
14022 * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
14023 the number of sectors. Reported by Andrey Shuvikov
14024 <mr_hyro@yahoo.com>.
f19dbdb7 14025
790707f2 140262006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
14027
14028 * kern/disk.c (grub_disk_read): When there is a read error, always
14029 try to read only the necessary data.
f19dbdb7 14030
790707f2 14031 * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
14032 disk/raid.c.
14033 * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
14034 prototype.
14035 [GRUB_UTIL] (grub_raid_fini): Likewise.
14036 [GRUB_UTIL] (grub_lvm_init): Likewise.
f19dbdb7 14037 [GRUB_UTIL] (grub_lvm_fini): Likewise.
790707f2 14038 * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
14039 RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
14040 (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
14041 and grub_raid_fini().
f19dbdb7 14042
03e58196 140432006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
14044
14045 * include/grub/types.h (__unused): Rename to UNUSED.
14046 * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
14047 (grub_elf64_size): Likewise.
f19dbdb7 14048
ae4f23bf 140492006-11-03 Hollis Blanchard <hollis@penguinppc.org>
14050
14051 * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
14052 grub_error_push and grub_error_pop in the error-handling path.
14053 (grub_elf32_load_segment): Only call grub_file_read with non-zero
14054 length.
14055
2166cc83 140562006-11-03 Hollis Blanchard <hollis@penguinppc.org>
14057
14058 * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
14059 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
14060 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
14061 (kernel_elf_SOURCES): Likewise.
14062 * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
14063 * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
14064 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
14065 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
14066 * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
14067 (elf_mod_SOURCES): New variable.
14068 (elf_mod_CFLAGS): Likewise.
14069 (elf_mod_LDFLAGS): Likewise.
14070 * include/grub/types.h (__unused): New macro.
14071 * include/grub/elfload.h: New file.
14072 * kern/elf.c: Likewise.
14073 * loader/powerpc/ieee1275/linux.c: Include elfload.h.
14074 (ELF32_LOADMASK): New macro.
14075 (ELF64_LOADMASK): Likewise.
14076 (vmlinux): Removed.
14077 (grub_linux_load32): New function.
14078 (grub_linux_load64): Likewise.
14079 (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
14080 Use grub_elf_t instead of grub_file_t.
14081
a09d5aa5 140822006-11-02 Hollis Blanchard <hollis@penguinppc.org>
14083
14084 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
14085 `catch_result' to struct set_color_args.
14086
d976fc51 140872006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
14088
14089 * normal/menu.c: Include grub/script.h.
14090 * normal/menu_entry.c: Likewise.
14091 * include/grub/normal.h: Do not include grub/script.h.
14092
67507549 140932006-10-27 Hollis Blanchard <hollis@penguinppc.org>
14094
14095 * kern/disk.c (grub_disk_read): Correct debug printf formatting.
14096
69203a99 140972006-10-27 Hollis Blanchard <hollis@penguinppc.org>
14098
14099 * kern/disk.c (grub_disk_open): Print debug messages when opening a
14100 disk.
14101 (grub_disk_close): Print debug messages when closing a disk.
14102 (grub_disk_read): Print debug messages when disk read fails.
14103 * kern/fs.c (grub_fs_probe): Print debug messages when detecting
14104 filesystem type.
14105 * kern/partition.c: Include misc.h.
14106 (grub_partition_iterate): Print debug messages when detecting
14107 partition type.
14108
e2b8278c 141092006-10-27 Hollis Blanchard <hollis@penguinppc.org>
14110
14111 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
14112 is negative.
14113 * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
14114
97b2f2ff 141152006-10-26 Hollis Blanchard <hollis@penguinppc.org>
14116
14117 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
14118 Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
14119
6555d655 141202006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
14121
14122 * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
14123 instead of sizeof(lv). Patch by Michael Guntsche.
14124
4d42b77f 141252006-10-18 Jeroen Dekkers <jeroen@dekkers.cx>
14126
14127 * disk/lvm.c: Rename VGS to VG_LIST.
14128 (grub_lvm_iterate): Change VGS->LV to VG-LV.
14129 (grub_lvm_open): Likewise.
14130 Thanks to Michael Guntsche for finding this bug.
14131
5d74d927 141322006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
14133
14134 * configure.ac (AC_INIT): Bumped to 1.95.
14135
a1bb27e4 141362006-10-14 Robert Millan <rmh@aybabtu.com>
14137
14138 * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
14139 with "/dev/.static/dev/md".
14140
e0994b8b 141412006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
14142
14143 * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
14144 DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
14145 DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
14146 DRIVE_NAME are always freed.
14147
14148 * util/i386/pc/biosdisk.c (make_device_name): Add one into
14149 DOS_PART, as a DOS partition is counted from one instead of zero
14150 now. Reported by Robert Millan.
14151
ddd5cee9 141522006-10-14 Robert Millan <rmh@aybabtu.com>
14153
14154 * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
14155 grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
14156 * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
14157 string returned by grub_guess_root_device.
14158 * util/i386/pc/grub-setup.c: Likewise.
14159 * util/i386/pc/grub-probefs.c: Likewise.
14160
14161 * util/i386/pc/grub-probefs.c: Rename to ...
14162 * util/i386/pc/grub-probe.c: ... this.
14163 * DISTLIST: Remove grub-probefs, add grub-probe.
14164 * conf/i386-efi.rmk: Likewise.
14165 * conf/i386-pc.rmk: Likewise.
14166 * util/i386/pc/grub-install.in: Likewise.
14167
14168 * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
14169 choose which information we want to print.
14170
2b002173 141712006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
14172
14173 * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
14174 include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
14175 include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
14176 include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
14177 video/readers/tga.c and video/i386/pc/vbeutil.c.
14178
141792006-10-14 Jeroen Dekkers <jeroen@dekkers.cx>
14180
14181 Added support for RAID and LVM.
f19dbdb7 14182
2b002173 14183 * disk/lvm.c: New file.
14184 * disk/raid.c: Likewise.
14185 * include/grub/lvm.h: Likewise.
f19dbdb7 14186 * include/grub/raid.h: Likewise.
2b002173 14187 * include/grub/util/lvm.h: Likewise.
14188 * include/grub/util/raid.h: Likewise.
14189 * util/lvm.c: Likewise.
14190 * util/raid.c: Likewise.
14191
14192 * include/grub/disk.h (grub_disk_dev_id): Add
14193 GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
14194 (grub_disk_get_size): New prototype.
14195 * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
14196 returns a partition.
14197 (grub_disk_get_size): New function.
f19dbdb7 14198
2b002173 14199 * kern/i386/pc/init.c (make_install_device): Copy the prefix
14200 verbatim if grub_install_dos_part is -2.
14201
14202 * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
14203 and LVM devices.
14204
14205 * util/i386/pc/grub-setup.c (setup): New argument
14206 MUST_EMBED. Force embedding of GRUB when the argument is
14207 true. Close FILE before returning.
14208 (main): Add support for RAID and LVM.
f19dbdb7 14209
2b002173 14210 * conf/common.rmk: Add RAID and LVM modules.
14211 * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
14212 util/lvm.c.
14213 (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
14214
14215 * kern/misc.c (grub_strstr): New function.
14216 * include/grub/misc.h (grub_strstr): New prototype.
14217
050548d0 142182006-10-10 Tristan Gingold <tristan.gingold@bull.net>
14219
14220 * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
14221
da849d2d 142222006-10-05 Tristan Gingold <tristan.gingold@bull.net>
14223
14224 * kern/misc.c (grub_strtoull): Guess the base only if not
14225 specified.
14226
97b2f2ff 142272006-10-01 Hollis Blanchard <hollis@penguinppc.org>
4f0acd39 14228
14229 * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
14230 PowerMac support.
14231
97b2f2ff 142322006-10-01 Hollis Blanchard <hollis@penguinppc.org>
fba51f48 14233
14234 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
14235
14236 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
14237 Remove `flags' argument. All callers changed.
14238 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
14239 (IEEE1275_IHANDLE_INVALID): New variable.
14240 (IEEE1275_CELL_INVALID): New variable.
14241 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
14242 grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
14243 grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
14244 grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
14245 grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
14246 codes from Open Firmware. All callers updated.
14247 (grub_ieee1275_next_property): Directly return Open Firmware return
14248 code.
14249 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
14250 Standardize error checking from `grub_ieee1275_get_property'.
14251 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
14252 `devalias' to `aliases'. Correct comments. Consolidate error paths.
14253
97b2f2ff 142542006-10-01 Hollis Blanchard <hollis@penguinppc.org>
cc6d3df3 14255
14256 * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
14257 `instance_to_package_args' to `instance_to_path_args'.
14258
14259 * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
14260 `grub_ieee1275_chosen'.
14261
14262 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
14263 `grub_ieee1275_interpret'.
14264
97b2f2ff 142652006-09-25 Hollis Blanchard <hollis@penguinppc.org>
02bb8acc 14266
14267 * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
14268
97b2f2ff 142692006-09-25 Hollis Blanchard <hollis@penguinppc.org>
663b72f0 14270
14271 * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
14272 (__cmpdi): Likewise.
14273
14274 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
14275 `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type
14276 `grub_ssize_t'.
14277
02bb8acc 14278 * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
663b72f0 14279
14280 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
14281 to type `grub_ssize_t'.
14282 (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
14283
7f9a8531 142842006-09-22 Marco Gerards <marco@gnu.org>
14285
14286 * normal/script.c (grub_script_create_cmdmenu): Skip leading
14287 newlines.
14288
b5ef1102 142892006-09-22 Marco Gerards <marco@gnu.org>
14290
14291 * commands/echo.c: New file.
14292
14293 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
14294
14295 * conf/common.rmk (echo_mod_SOURCES): New variable.
14296 (echo_mod_CFLAGS): Likewise.
14297 (echo_mod_LDFLAGS): Likewise.
14298
2cff3677 142992006-09-22 Marco Gerards <marco@gnu.org>
14300
14301 * normal/main.c (get_line): Malloc memory instead of using
14302 preallocated memory. Removed the arguments `cmdline' and
14303 `max_len'. Updated all callers.
14304
6ba4688b 143052006-09-22 Marco Gerards <marco@gnu.org>
14306
14307 * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
14308 (normal_mod_DEPENDENCIES): Likewise.
14309
14310 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
14311 (normal_mod_DEPENDENCIES): Likewise.
14312
14313 * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
14314
e02ac02c 143152006-09-22 Johan Rydberg <jrydberg@gnu.org>
14316
14317 * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
14318 programs.
14319 * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
14320 (normal_mod_DEPENDENCIES): Likewise.
14321 * conf/i386-pc.mk: Regenerate.
14322 * conf/i386-efi.mk: Likewise
14323 * conf/common.mk: Likewise.
14324 * conf/powerpc-ieee1275.mk: Likewise.
14325 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 14326
8d252e44 143272006-09-22 Robert Millan <rmh@aybabtu.com>
14328
14329 Sync with i386 version.
14330 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
14331 * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
14332
209bf7ac 143332006-09-21 Robert Millan <rmh@aybabtu.com>
14334
14335 Import from GRUB Legacy (lib/device.c):
14336 * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
14337 (init_device_map) [__linux__]: Add support for I2O devices.
14338
6b146090 143392006-09-14 Marco Gerards <marco@gnu.org>
14340
14341 * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
14342 `-melf_i386'.
14343
e38600a8 143442006-09-14 Robert Millan <rmh@aybabtu.com>
2952da5d 14345
14346 * util/i386/pc/grub-install.in: Skip menu.lst when removing
14347 /boot/grub/*.lst.
78fa1790 14348
2952da5d 14349 * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
6b146090 14350
2952da5d 14351 * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
14352 before adding it to device.map.
14353
01b82a64 143542006-08-15 Johan Rydberg <jrydberg@gnu.org>
14355
fe6b695a 14356 * genmk.rb: Let GCC generate dependencies the first time it
01b82a64 14357 compiles a file; using the -MD option.
14358 * conf/common.mk: Regenerate.
14359 * conf/i386-pc.mk: Likewise.
14360 * conf/i386-efi.mk: Likewise.
14361 * conf/powerpc-ieee1275.mk: Likewise.
14362 * conf/sparc64-ieee1275.mk: Likewise.
f19dbdb7 14363
1064790d 143642006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
14365
14366 Move the prototypes of grub_setjmp and grub_longjmp to
14367 cpu/setjmp.h, so that each architecture may specify different
14368 attributes.
f19dbdb7 14369
1064790d 14370 * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
14371 (grub_longjmp): Likewise.
14372 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
14373 (grub_longjmp): Likewise.
14374 * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
14375 (grub_longjmp): Likewise.
14376
14377 * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
14378 [!GRUB_UTIL] (grub_longjmp): Removed.
14379
29dda3ed 143802006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
14381
14382 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
14383 "color!" method does not return any value.
14384
ad2a06ed 143852006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
14386
14387 * include/grub/bitmap.h: New file.
14388
14389 * include/grub/i386/pc/vbeutil.h: Likewise.
14390
14391 * video/bitmap.c: Likewise.
14392
14393 * video/readers/tga.c: Likewise.
14394
14395 * video/i386/pc/vbeutil.c: Likewise.
14396
14397 * commands/videotest.c: Code cleanup and updated to reflect to new
14398 video API.
14399
14400 * term/gfxterm.c: Likewise.
14401
14402 * video/video.c: Likewise.
14403
14404 * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
14405 (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
14406 (bitmap_mod_SOURCES): New entry.
14407 (bitmap_mod_CFLAGS): Likewise.
14408 (bitmap_mod_LDFLAGS): Likewise.
14409 (tga_mod_SOURCES): Likewise.
14410 (tga_mod_CFLAGS): Likewise.
14411 (tga_mod_LDFLAGS): Likewise.
14412
14413 * include/grub/video.h (grub_video_blit_operators): New enum type.
14414 (grub_video_render_target): Changed as forward declaration and moved
14415 actual definition to be video driver specific.
14416 (grub_video_adapter.blit_bitmap): Added blitting operator.
14417 (grub_video_adapter.blit_render_target): Likewise.
14418 (grub_video_blit_bitmap): Likewise.
14419 (grub_video_blit_render_target): Likewise.
14420
14421 * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
14422 driver specific render target definition.
14423 (grub_video_vbe_map_rgba): Added driver internal helper.
14424 (grub_video_vbe_unmap_color): Updated to use
14425 grub_video_i386_vbeblit_info.
14426 (grub_video_vbe_get_video_ptr): Likewise.
14427
14428 * include/grub/i386/pc/vbeblit.h
14429 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
14430 grub_video_i386_vbeblit_info.
14431 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
14432 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
14433 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
14434 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
14435 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
14436 (grub_video_i386_vbeblit_index_index): Likewise.
14437 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
14438 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
14439 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
14440 (grub_video_i386_vbeblit_blend): Added generic blitter for blend
14441 operator.
14442 (grub_video_i386_vbeblit_replace): Added generic blitter for replace
14443 operator.
14444
14445 * video/i386/pc/vbeblit.c: Updated to reflect changes on
14446 include/grub/i386/pc/vbeblit.h.
14447
14448 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
14449 Updated to use grub_video_i386_vbeblit_info.
14450 (grub_video_i386_vbefill_R8G8B8): Likewise.
14451 (grub_video_i386_vbefill_index): Likewise.
14452 (grub_video_i386_vbefill): Added generic filler.
14453
14454 * video/i386/pc/vbefill.c: Updated to reflect changes on
14455 include/grub/i386/pc/vbefill.h.
14456
14457 * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
14458 grub_video_i386_vbeblit_info.
14459 (grub_video_vbe_unmap_color): Likewise.
14460 (grub_video_vbe_blit_glyph): Likewise.
14461 (grub_video_vbe_scroll): Likewise.
14462 (grub_video_vbe_draw_pixel): Removed function.
14463 (grub_video_vbe_get_pixel): Likewise.
14464 (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
14465 updated code to use it.
14466 (common_blitter): Added common blitter for render target and bitmap.
14467 (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
14468 (grub_video_vbe_blit_render_target): Likewise.
14469
bc8c036d 144702006-07-30 Johan Rydberg <jrydberg@gnu.org>
14471
14472 * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
14473 is in text mode if there is no console control protocol instance
14474 available.
14475
684a8eff 144762006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
14477
14478 * include/grub/video.h: Code cleanup.
14479
14480 * include/grub/i386/pc/vbe.h: Likewise.
14481
14482 * video/i386/pc/vbe.c: Likewise.
14483
14484 * video/i386/pc/vbeblit.c: Likewise.
14485
14486 * video/i386/pc/vbefill.c: Likewise.
14487
14488 * video/video.c: Likewise. Also added more comments.
14489
5915059b 144902006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
14491
14492 * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
14493 (struct grub_biosdisk_dap): Likewise.
14494
14495 * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected
14496 linkage settings for all functions.
14497
90ce5d56 144982006-07-12 Marco Gerards <marco@gnu.org>
14499
14500 * configure.ac (--enable-mm-debug): Fix typo.
14501
14502 * genkernsyms.sh.in: Use proper quoting for `CC'.
14503
43e7f879 145042006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
14505
14506 * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
14507 (normal_mod_ASFLAGS): Remove "-m32".
14508
4889bdec 145092006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
14510
14511 * util/misc.c: Include config.h.
14512 [!HAVE_MEMALIGN]: Do not include malloc.h.
14513 (grub_memalign): Use posix_memalign, if present. Then, use
14514 memalign, if present. Otherwise, emit an error.
14515
14516 * util/grub-emu.c: Do not include malloc.h.
14517
14518 * include/grub/util/misc.h: Include unistd.h. This is required for
14519 FreeBSD, because off_t is defined in unistd.h. Reported by Harley
14520 D. Eades III <hde@foobar-qux.org>.
14521
14522 * configure.ac (AC_GNU_SOURCE): Added.
14523 (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
14524 type.
14525
fd39d4da 145262006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
14527
14528 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
14529 ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
14530
b786f3b5 145312006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
14532
14533 * include/grub/types.h (grub_host_addr_t): Rename to
14534 grub_target_addr_t.
14535 (grub_host_off_t): Rename to grub_target_off_t.
14536 (grub_host_size_t): Rename to grub_target_size_t.
14537 (grub_host_ssize_t): Rename to grub_target_ssize_t.
14538 Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
14539
14540 * include/grub/kernel.h (struct grub_module_header): Change type
14541 of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
14542 (grub_module_info): Likewise.
f19dbdb7 14543
051988bb 145442006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
14545
14546 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
14547 of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
14548 Velazquez <jesus.velazquez@gmail.com>.
14549
deae281b 145502006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
14551
14552 Count partitions from 1 instead of 0 in the string representation
14553 of partitions. Still use 0-based internally.
f19dbdb7 14554
deae281b 14555 * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
14556 (sun_partition_map_iterate): Use grub_partition_t instead of
14557 struct grub_partition *. Cast DESC->START_CYLINDER to
14558 grub_uint64_t after converting the endian.
14559 (sun_partition_map_probe): Subtract 1 for PARTNUM.
14560 (sun_partition_map_get_name): Add 1 to P->INDEX.
14561
14562 * partmap/pc.c (grub_partition_parse): Subtract 1 for
14563 PCDATA->DOS_PART.
14564 (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
14565
14566 * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
14567 zero instead of one.
14568 (gpt_partition_map_probe): Subtract 1 for PARTNUM.
14569 (gpt_partition_map_get_name): Add 1 into P->INDEX.
14570
14571 * partmap/apple.c (apple_partition_map_iterate): Change the type
14572 of POS to unsigned.
14573 (apple_partition_map_probe): Subtract 1 for PARTNUM.
14574 (apple_partition_map_get_name): Add 1 into P->INDEX.
14575
14576 * partmap/amiga.c (amiga_partition_map_iterate): Change the type
14577 of POS to unsigned.
14578 (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
14579 calculate the offset of a partition.
14580 (amiga_partition_map_probe): Subtract 1 for PARTNUM.
14581 (amiga_partition_map_get_name): Add 1 into P->INDEX.
14582
14583 * partmap/acorn.c (acorn_partition_map_find): Change the type of
14584 SECTOR to grub_disk_addr_t.
14585 (acorn_partition_map_iterate): Likewise.
14586 (acorn_partition_map_probe): Subtract 1 for PARTNUM.
14587 Change the type of SECTOR to grub_disk_addr_t. Declare P on the
14588 top.
14589 (acorn_partition_map_get_name): Add 1 into P->INDEX.
14590
14591 * kern/i386/pc/init.c (make_install_device): Add 1 into
14592 GRUB_INSTALL_DOS_PART.
14593
14594 * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
14595 conditional.
14596
524a1e6a 145972006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
14598
14599 Clean up the code to support 64-bit addressing in disks and
14600 files. This change is not enough for filesystems yet.
f19dbdb7 14601
524a1e6a 14602 * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
14603 type of "start" to grub_uint64_t.
14604 (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
14605 grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
14606 save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
14607 convert addresses.
14608
14609 * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
14610 to grub_disk_addr_t.
14611
14612 * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
14613 string.
14614
14615 * partmap/pc.c (pc_partition_map_iterate): Likewise.
14616
14617 * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
14618 to char *.
14619
14620 * normal/script.c (grub_script_parse): Remove unused MEMFREE.
14621
14622 * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
14623
14624 * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
14625
14626 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
14627 to grub_off_t, to detect an error from grub_file_seek.
14628 (grub_multiboot_load_elf32): Likewise.
14629
14630 * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
14631 maximum unsigned long value when an overflow is detected.
14632 (grub_strtoull): New function.
14633 (grub_divmod64): Likewise.
14634 (grub_lltoa): use grub_divmod64.
14635
14636 * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
14637 grub_disk_addr_t.
14638 (grub_fs_blocklist_open): Increase P if P is not NULL to advance
14639 the pointer to next character. Use grub_strtoull instead of
14640 grub_strtoul.
14641 (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
14642 SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
14643 respectively.
14644
fe6b695a 14645 * kern/file.c (grub_file_read): Prevent an overflow of LEN, as the
524a1e6a 14646 return value is signed.
14647 (grub_file_seek): Change the type of OLD to grub_off_t. Do not
14648 test if OFFSET is less than zero, as OFFSET is unsigned now.
14649
14650 * kern/disk.c (struct grub_disk_cache): Change the type of
14651 "sector" to grub_disk_addr_t.
14652 (grub_disk_cache_get_index): Change the type of SECTOR to
14653 grub_disk_addr_t. Calculate the hash with SECTOR casted to
14654 unsigned after shifting.
14655 (grub_disk_cache_invalidate): Change the type of SECTOR to
14656 grub_disk_addr_t.
14657 (grub_disk_cache_unlock): Likewise.
14658 (grub_disk_cache_store): Likewise.
14659 (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
14660 START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
14661 grub_disk_addr_t and grub_uint64_t, respectively.
14662 (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
14663 body, as the value of OFFSET is tweaked by
14664 grub_disk_check_range. Change the types of START_SECTOR, LEN and
14665 POS to grub_disk_addr_t, grub_size_t and grub_size_t,
14666 respectively.
14667 (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
14668 body, as the value of OFFSET is tweaked by
14669 grub_disk_check_range. Change the types of LEN and N to
14670 grub_size_t.
14671
14672 * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
14673 and "saved_offset" to grub_off_t.
14674 (test_header): Cast BUF to char *.
14675 (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
14676 to char *.
14677 (grub_gzio_read): Change the types of OFFSET and SIZE to
14678 grub_off_t and grub_size_t, respectively.
14679
14680 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
14681 Removed.
14682 (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
14683 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
14684 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
14685 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
14686 (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
14687
14688 * include/grub/types.h (grub_off_t): Unconditionally set to
14689 grub_uint64_t.
14690 (grub_disk_addr_t): Changed to grub_uint64_t.
14691
14692 * include/grub/partition.h (struct grub_partition): Change the
14693 types of "start", "len" and "offset" to grub_disk_addr_t,
14694 grub_uint64_t and grub_disk_addr_t, respectively.
14695 (grub_partition_get_start): Return grub_disk_addr_t.
14696 (grub_partition_get_len): Return grub_uint64_t.
14697
14698 * include/grub/misc.h (grub_strtoull): New prototype.
14699 (grub_divmod64): Likewise.
14700
14701 * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
14702 of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
14703 grub_off_t, respectively.
14704 All callers and references changed.
14705
14706 * include/grub/fs.h (struct grub_fs): Change the type of LEN to
14707 grub_size_t in "read".
14708 All callers and references changed.
14709
14710 * include/grub/file.h (struct grub_file): Change the types of
14711 "offset" and "size" to grub_off_t and grub_off_t,
14712 respectively. Change the type of SECTOR to grub_disk_addr_t in
14713 "read_hook".
14714 (grub_file_read): Change the type of LEN to grub_size_t.
14715 (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
14716 grub_off_t.
14717 (grub_file_size): Return grub_off_t.
14718 (grub_file_tell): Likewise.
14719 All callers and references changed.
14720
14721 * include/grub/disk.h (struct grub_disk_dev): Change the types of
14722 SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
14723 "write".
14724 (struct grub_disk): Change the type of "total_sectors" to
14725 grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
f19dbdb7 14726 "read_hook".
524a1e6a 14727 (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
14728 grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
14729 (grub_disk_write): Likewise.
14730 All callers and references changed.
14731
14732 * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
14733 char * for grub_strncmp to silence gcc.
14734 (grub_iso9660_mount): Likewise.
14735 (grub_iso9660_mount): Likewise.
14736 (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
14737 return statement.
14738 (grub_iso9660_iterate_dir): Likewise.
14739 (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
14740
14741 * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
14742 LEN to grub_disk_addr_t and grub_size_t, respectively.
14743
14744 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
14745
14746 * fs/jfs.c (grub_jfs_read_file): Likewise.
14747
14748 * fs/minix.c (grub_jfs_read_file): Likewise.
14749
14750 * fs/sfs.c (grub_jfs_read_file): Likewise.
14751
14752 * fs/ufs.c (grub_jfs_read_file): Likewise.
14753
14754 * fs/xfs.c (grub_jfs_read_file): Likewise.
14755
14756 * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
14757 and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
14758 respectively.
14759
14760 * fs/ext2.c (grub_ext2_read_block): When an error happens, set
14761 BLKNR to -1 instead of returning GRUB_ERRNO.
14762 (grub_ext2_read_file): Change the types of SECTOR and
14763 LEN to grub_disk_addr_t and grub_size_t, respectively.
14764
14765 * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
14766 LEN to grub_disk_addr_t and grub_size_t, respectively.
14767
14768 * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
14769 grub_file_read.
14770
14771 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
14772 string. Do not cast SECTOR explicitly.
14773
14774 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
14775 TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
14776 (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
14777 grub_disk_addr_t and grub_size_t, respectively. If the sector is
14778 over 2TB and LBA mode is not supported, raise an error.
14779 (get_safe_sectors): New function.
14780 (grub_biosdisk_read): Use get_safe_sectors.
14781 (grub_biosdisk_write): Likewise.
14782
14783 * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
14784 (grub_efidisk_write): Likewise.
14785
14786 * disk/loopback.c (delete_loopback): Cosmetic changes.
14787 (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
14788 correctly.
14789 (grub_loopback_open): Likewise.
14790 (grub_loopback_read): Likewise. Also, change the type of POS to
14791 grub_off_t, and fix the usage of grub_memset.
14792
14793 * commands/i386/pc/play.c: Include grub/machine/time.h.
14794
14795 * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
14796 print FILE->SIZE.
14797
14798 * commands/configfile.c: Include grub/env.h.
14799
14800 * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
14801 GRUB_ERRNO directly instead. Change the type of POS to
14802 grub_off_t. Follow the coding standard.
14803
14804 * commands/blocklist.c: Include grub/partition.h.
14805 (grub_cmd_blocklist): Return an error if the underlying device is
14806 not a disk. Take the starting sector of a partition into account,
14807 if a partition is used.
14808
14809 * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
14810 a length field.
14811 (lba_mode): Support 64-bit addresses.
14812 (chs_mode): Likewise.
14813 (copy_buffer): Adapted to the new offsets of a length field and a
14814 segment field.
14815 (blocklist_default_start): Allocate 64-bit space.
14816
14817 * boot/i386/pc/boot.S (force_lba): Removed.
14818 (boot_drive): Moved to under KERNEL_SECTOR.
fe987087 14819 (kernel_sector): Moved to under KERNEL_SEGMENT. Allocate 64-bit
524a1e6a 14820 space.
14821 (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
14822 is useless.
14823 (lba_mode): Refactored to support a 64-bit address. More size
14824 optimization.
14825 (setup_sectors): Likewise.
14826
53af98ad 148272006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
14828
14829 * DISTLIST: Added include/grub/i386/linux.h. Removed
14830 include/grub/i386/pc/linux.h
14831
14832 * configure.ac (AC_INIT): Bumped to 1.94.
14833
14834 * config.guess: Updated from gnulib.
14835 * config.sub: Likewise.
14836 * install-sh: Likewise.
14837 * mkinstalldirs: Likewise.
14838
b4c1940a 148392006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
14840
14841 * conf/common.rmk (grub_modules_init.lst): Depended on
14842 grub_emu_SOURCES, excluding grub_emu_init.c, instead of
14843 MODSRCFILES.
14844
14845 * genmk.rb (PModule::rule): Reverted the previous change.
14846
cfca1cfd 148472006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
14848
14849 * conf/common.rmk (grub_modules_init.lst): Depends on
14850 $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
14851 that the target does not exist before producing.
14852 (grub_modules_init.h): Remove the target before generating.
14853 (grub_emu_init.c): Likewise.
14854
14855 * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
14856
aa6d7826 148572006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
14858
14859 * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
14860 for the target-specific tests. Make sure that we also have the
14861 up-to-date target variables for those tests.
14862
26c607b9 148632006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
14864
14865 * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
14866 (PModule::rule): Likewise.
14867
0162321a 148682006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
14869
14870 * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
14871 TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
14872 target-specific flags should be prefixed.
14873 (PModule::rule): Likewise.
14874
6c826348 148752006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
14876
14877 * configure.ac (CMP): Check if cmp is available explicitly.
14878
b977bf01 148792006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
14880
14881 * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
14882 (target_cpu): New variable.
14883 (pkglibdir): Use target_cpu instead of host_cpu.
f19dbdb7 14884
b977bf01 14885 * util/i386/pc/grub-install.in (host_cpu): Removed.
14886 (target_cpu): New variable.
14887 (pkglibdir): Use target_cpu instead of host_cpu.
14888
14889 * util/genmoddep.c: Removed.
f19dbdb7 14890
b977bf01 14891 * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
14892 instead of GRUB_HOST_SIZEOF_VOID_P.
14893 * kern/dl.c: Likewise.
14894
14895 * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
14896 ...
14897 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
14898 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
14899 (GRUB_TARGET_SIZEOF_LONG): ... this.
14900 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
14901 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
14902 * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
14903 to ...
14904 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
14905 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
14906 (GRUB_TARGET_SIZEOF_LONG): ... this.
14907 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
14908 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
14909 * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
14910 to ...
14911 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
14912 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
14913 (GRUB_TARGET_SIZEOF_LONG): ... this.
14914 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
14915 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
14916
14917 * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
14918 GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
14919 [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
14920 instead of GRUB_HOST_SIZEOF_LONG.
14921 [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
14922 GRUB_HOST_WORDS_BIGENDIAN to define or undefine
14923 GRUB_CPU_WORDS_BIGENDIAN.
14924 Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
14925 define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
14926 grub_host_ssize_t.
14927
14928 * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
14929 (genmoddep_SOURCES): Likewise.
14930 * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
14931 (genmoddep_SOURCES): Likewise.
14932 * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
14933 (genmoddep_SOURCES): Likewise.
14934 * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
14935 Likewise.
14936 (genmoddep_SOURCES): Likewise.
14937
14938 * genmoddep.awk: New file.
14939
14940 * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
14941 TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
14942 CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
14943 (PModule::rule): Likewise.
14944 (Program::rule): Likewise.
14945 (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
14946 BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
14947 respectively.
14948
14949 * configure.ac: Rewritten intensively to use host and target
14950 instead of build and host, respectively.
14951
14952 * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
14953 (host_cpu): Removed.
14954 (target_cpu): New variable.
14955 (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
14956 (BUILD_CC): Removed.
14957 (BUILD_CFLAGS): Likewise.
14958 (BUILD_CPPFLAGS): Likewise.
14959 (TARGET_CC): New variable.
14960 (TARGET_CFLAGS): Likewise.
14961 (TARGET_CPPFLAGS): Likewise.
14962 (TARGET_LDFLAGS): Likewise.
14963 (AWK): Likewise.
14964 (include): Use target_cpu instead of host_cpu.
14965 (moddep.lst:): Use genmoddep.awk instead of genmoddep.
f19dbdb7 14966
b977bf01 14967 * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
14968
f09771a1 149692006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
14970
14971 * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
14972 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed
14973 field 'false' to 'exec_on_false'.
14974 (grub_script_create_cmdif): Renamed argument names to reflect above
14975 changes.
14976
14977 * normal/execute.c (grub_script_execute_cmdif): Likewise.
14978
14979 * normal/script.c (grub_script_create_cmdif): Likewise.
14980
118f4fb3 149812006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
14982
14983 * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
14984 top.
14985 (grub_hfsplus_btree_recptr): Likewise.
14986 (grub_hfsplus_find_block): Do not take RETRY any longer. Use
14987 FILEBLOCK both to pass a block number and store next block
14988 number.
14989 (grub_hfsplus_read_block): Rewritten heavily to support an extent
14990 overflow file correctly. Specify errors appropriately, because
14991 fshelp expects that GRUB_ERRNO is set when fails. Reuse
14992 grub_hfsplus_btree_recptr to get the pointer to a found key.
14993 (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
14994 is found.
14995
14996 * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
14997 linux.mod.
14998 (_linux_mod_SOURCES): New variable.
14999 (_linux_mod_CFLAGS): Likewise.
15000 (_linux_mod_LDFLAGS): Likewise.
15001 (linux_mod_SOURCES): Likewise.
15002 (linux_mod_CFLAGS): Likewise.
15003 (linux_mod_LDFLAGS): Likewise.
15004
15005 * DISTLIST: Added loader/i386/efi/linux.c,
15006 loader/i386/efi/linux_normal.c and
15007 include/grub/i386/efi/loader.h.
15008
15009 * loader/i386/efi/linux.c: New file.
15010 * loader/i386/efi/linux_normal.c: Likewise.
15011 * include/grub/i386/efi/loader.h: Likewise.
15012
89a7d726 150132006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
15014
15015 * commands/blocklist.c: New file.
15016
15017 * DISTLIST: Added commands/blocklist.c.
15018
15019 * term/efi/console.c (grub_console_highlight_color): Use a lighter
43b553ad 15020 color for the background, and a darker color for the foreground.
89a7d726 15021 (grub_console_checkkey): Return READ_KEY.
15022 (grub_console_cls): Set the background to
15023 GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
15024
15025 * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
15026
15027 * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
15028 the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
15029
15030 * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
15031 prototype.
15032
15033 * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
15034 BG. The spec is wrong again.
15035
15036 * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
15037 prototype.
15038 [GRUB_UTIL] (grub_blocklist_fini): Likewise.
15039
15040 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
15041 commands/blocklist.c.
15042 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
f19dbdb7 15043
89a7d726 15044 * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
15045 (blocklist_mod_SOURCES): New variable.
15046 (blocklist_mod_CFLAGS): Likewise.
15047 (blocklist_mod_LDFLAGS): Likewise.
15048
75c8f258 150492006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
15050
15051 * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
15052 duplication.
15053 (lba_mode): Use %eax more intensively to reduce the code size.
15054
da2eb181 150552006-05-20 Marco Gerards <marco@gnu.org>
15056
15057 * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
15058
15059 * normal/parser.y (commandblock): Defined as <cmd>. A subroutine
15060 for `menuentry'.
15061 (script): Accept leading newlines.
15062 (newlines): New rule to describe 0 or more newlines.
15063 (commands): Accept `command' with trailing newline. Fixed the
15064 order in which arguments were passed to `grub_script_add_cmd'.
15065 Accept commands separated by newlines.
15066 (function): Changed to accept newlines.
15067 (menuentry) Rewritten.
15068
15069 * normal/script.c (grub_script_create_cmdmenu): Add new entries in
15070 front of the list, instead of to the end.
15071
577b4050 150722006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
15073
15074 * util/i386/pc/grub-install.in (bindir): New variable.
15075 (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
15076 Shaver <lbgwjl@gmail.com>.
15077
0d6e1189 150782006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
15079
15080 * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
15081 grub/machine/linux.h
15082 * loader/i386/pc/linux.c: Likewise.
15083
15084 * include/grub/i386/pc/linux.h: Moved to ...
15085 * include/grub/i386/linux.h: ... here.
15086
15087 * include/grub/i386/linux.h (struct linux_kernel_params): New
15088 struct.
f19dbdb7 15089
31b86e9f 150902006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
15091
15092 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
15093 checking.
15094 (grub_video_vbe_blit_glyph): Likewise.
15095 (grub_video_vbe_blit_bitmap): Likewise.
15096 (grub_video_vbe_blit_render_target): Likewise.
15097
83b984de 150982006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
15099
15100 * configure.ac (--with-platform): Properly quote the square
15101 brackets.
15102
5f0413bd 151032006-05-08 Marco Gerards <marco@gnu.org>
15104
15105 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
15106 this...
15107 (kernel_elf_HEADERS): ...to this. Updated all users.
15108 (grubof_symlist.c): Renamed from this...
15109 (kernel_elf_symlist.c): ...to this. Updated all users.
15110 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
15111 (grubof_SOURCES): Renamed from this...
15112 (kernel_elf_SOURCES): ...to this.
15113 (grubof_HEADERS): Renamed from this...
15114 (kernel_elf_HEADERS): ...to this.
15115 (grubof_CFLAGS): Renamed from this...
15116 (kernel_elf_CFLAGS): ...to this.
15117 (grubof_ASFLAGS): Renamed from this...
15118 (kernel_elf_ASFLAGS): ...to this.
15119 (grubof_LDFLAGS): Renamed from this...
15120 (kernel_elf_LDFLAGS): ...to this.
15121
15122 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
15123 this...
15124 (kernel_elf_HEADERS): ...to this. Updated all users.
15125 (grubof_symlist.c): Renamed from this...
15126 (kernel_elf_symlist.c): ...to this. Updated all users.
15127 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
15128 (grubof_SOURCES): Renamed from this...
15129 (kernel_elf_SOURCES): ...to this.
15130 (grubof_HEADERS): Renamed from this...
15131 (kernel_elf_HEADERS): ...to this.
15132 (grubof_CFLAGS): Renamed from this...
15133 (kernel_elf_CFLAGS): ...to this.
15134 (grubof_ASFLAGS): Renamed from this...
15135 (kernel_elf_ASFLAGS): ...to this.
15136 (grubof_LDFLAGS): Renamed from this...
15137 (kernel_elf_LDFLAGS): ...to this.
15138
15139 * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
15140 `kernel.elf' instead of `grubof'.
15141
05568c2e 151422006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
15143
15144 Add --with-platform to configure. Use pkglibdir instead of
15145 pkgdatadir. This is reported by Roger Leigh.
15146
15147 * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
15148 (host_vendor): Likewise.
15149 (host_os): Likewise.
15150 (pkgdatadir): Likewise.
15151 (platform): New variable.
15152 (pkglibdir): Likewise.
15153 Use PKGLIBDIR instead of PKGDATADIR.
f19dbdb7 15154
05568c2e 15155 * util/i386/pc/grub-install.in (datadir): Removed.
15156 (host_vendor): Likewise.
15157 (host_os): Likewise.
15158 (pkgdatadir): Likewise.
15159 (platform): New variable.
15160 (pkglibdir): Likewise.
15161 Use PKGLIBDIR instead of PKGDATADIR.
15162
15163 * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
15164 instead of GRUB_DATADIR.
15165 (main): Likewise.
15166 * util/i386/pc/grub-mkimage.c (usage): Likewise.
15167 (main): Likewise.
15168 * util/i386/efi/grub-mkimage.c (usage): Likewise.
15169 (main): Likewise.
15170
15171 * configure.ac (--with-platform): New option.
15172 Use PLATFORM instead of HOST_VENDOR to specify a platform.
15173
15174 * Makefile.in: Include a makefile based on PLATFORM instead of
15175 HOST_VENDOR.
15176 (pkgdatadir): Not appended by the machine type.
15177 (pkglibdir): Appended by the machine type.
15178 (host_vendor): Removed.
15179 (platform): New variable.
15180 (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
15181 (install-local): Use PKGLIBDIR instead of PKGDATADIR.
15182 (uninstall): Likewise.
15183
4e93851c 151842006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
15185
15186 Use the environment context in the menu. Remove the commands
15187 "default" and "timeout", and use variables instead.
f19dbdb7 15188
4e93851c 15189 * normal/menu.c: Include grub/env.h.
15190 (print_entry): Cast TITLE to silence gcc.
15191 (get_timeout): New function.
15192 (set_timeout): Likewise.
15193 (get_entry_number): Likewise.
15194 (run_menu): Use a default entry, a fallback entry and a timeout
15195 in the environment variables "default", "fallback" and
15196 "timeout". Also, tweak the default entry if it is not within the
15197 current menu entries.
15198 (grub_menu_run): Use a fallback entry in the environment variable
15199 "fallback".
15200
15201 * normal/main.c (read_config_file): Do not initialize
15202 NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
15203 NEWMENU->TIMEOUT.
15204 (grub_normal_execute): Use a data slot to store the menu.
15205
15206 * include/grub/normal.h (struct grub_menu): Removed default_entry,
15207 fallback_entry and timeout.
15208 (struct grub_menu_list): Removed.
15209 (grub_menu_list_t): Likewise.
15210 (struct grub_context): Likewise.
15211 (grub_context_t): Likewise.
15212 (grub_context_get): Likewise.
15213 (grub_context_get_current_menu): Likewise.
15214 (grub_context_push_menu): Likewise.
15215 (grub_context_pop_menu): Likewise.
15216 (grub_default_init): Likewise.
15217 (grub_default_fini): Likewise.
15218 (grub_timeout_init): Likewise.
15219 (grub_timeout_fini): Likewise.
15220
15221 * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
15222 and timeout.mod.
15223 (normal_mod_SOURCES): Removed normal/context.c.
15224
15225 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
15226 commands/default.c, commands/timeout.c and normal/context.c.
15227 (normal_mod_SOURCES): Removed normal/context.c.
15228
15229 * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
15230 commands/timeout.c and normal/context.c.
15231 (normal_mod_SOURCES): Removed normal/context.c.
15232
15233 * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
15234 commands/default.c, commands/timeout.c and normal/context.c.
15235 (normal_mod_SOURCES): Removed normal/context.c.
15236
15237 * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
15238 timeout.mod.
15239 (default_mod_SOURCES): Removed.
15240 (default_mod_CFLAGS): Likewise.
15241 (default_mod_LDFLAGS): Likewise.
15242 (timeout_mod_SOURCES): Removed.
15243 (timeout_mod_CFLAGS): Likewise.
15244 (timeout_mod_LDFLAGS): Likewise.
15245
15246 * DISTLIST: Removed commands/default.c, commands/timeout.c and
15247 normal/context.c.
15248
15249 * commands/default.c: Removed.
15250 * commands/timeout.c: Likewise.
15251 * normal/context.c: Likewise.
15252
1eb9cc1d 152532006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
15254
15255 * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
15256
385bd9c1 152572006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
15258
15259 * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
15260 "next" to "prev" for readability.
15261 (struct grub_env_sorted_var): New struct.
15262 (grub_env_context): Renamed to ...
15263 (initial_context): ... this.
15264 (grub_env_var_context): Renamed to ...
15265 (current_context): ... this.
15266 (grub_env_find): Look only at CURRENT_CONTEXT.
15267 (grub_env_context_open): Rewritten to copy exported variables from
15268 previous context.
15269 (grub_env_context_close): Rewritten according to the new
15270 scheme. Also, add an assertion to prevent the initial context from
15271 removed.
15272 (grub_env_insert): Removed the code for the sorted list.
15273 (grub_env_remove): Likewise.
15274 (grub_env_export): Simply mark the variable with
15275 GRUB_ENV_VAR_GLOBAL.
15276 (grub_env_set): A cosmetic change for naming consistency.
15277 (grub_env_get): Likewise.
15278 (grub_env_unset): Likewise.
15279 (grub_env_iterate): Rewritten to sort variables within this
15280 function.
15281 (grub_register_variable_hook): Fixed for naming consistency. Call
15282 grub_env_find again, only if NAME is not found at the first time.
15283 (mangle_data_slot_name): New function.
15284 (grub_env_set_data_slot): Likewise.
15285 (grub_env_get_data_slot): Likewise.
15286 (grub_env_unset_data_slot): Likewise.
15287
15288 * include/grub/env.h (grub_env_var_type): New enum.
15289 (GRUB_ENV_VAR_LOCAL): New constant.
15290 (GRUB_ENV_VAR_GLOBAL): Likewise.
15291 (GRUB_ENV_VAR_DATA): Likewise.
15292 (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
15293 "type".
15294 (grub_env_set): Replace VAR with NAME for consistency.
15295 (grub_register_variable_hook): Likewise.
15296 (grub_env_export): Specify the name of the argument.
15297 (grub_env_set_data_slot): New prototype.
15298 (grub_env_get_data_slot): Likewise.
15299 (grub_env_unset_data_slot): Likewise.
15300
7f362539 153012006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
15302
15303 Extend the loader so that GRUB can accept a loader which comes
15304 back to GRUB when a loaded image exits. Also, this change adds
15305 support for a chainloader on EFI.
f19dbdb7 15306
7f362539 15307 * term/efi/console.c: Include grub/misc.h.
15308 (grub_console_checkkey): Display a scan code on the top for
15309 debugging. This will be removed once the EFI port gets stable.
15310 Correct the scan code mapping.
15311
15312 * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
15313 allocate memory from larger regions, in order to reduce the number
15314 of allocated regions. Otherwise, the MacOSX loader panics.
15315 (filter_memory_map): Avoid less than 1MB for compatibility with
15316 other loaders.
15317 (add_memory_regions): Allocate from the tail of a region, if
15318 possible, to avoid allocating a region near to 1MB, for the MacOSX
15319 loader.
15320
15321 * kern/efi/init.c (grub_efi_set_prefix): Specify
15322 GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
15323
15324 * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
15325 argument IMAGE_HANDLE and specify it to get a loaded image.
15326 (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
15327 grub_efi_get_loaded_image.
fe6b695a 15328 (grub_efi_get_filename): Divide the length by the size of
7f362539 15329 grub_efi_char16_t.
15330 (grub_efi_get_device_path): New function.
15331 (grub_efi_print_device_path): Print End Device Path nodes. Divide
15332 the length by the size of grub_efi_char16_t for a file path device
15333 path node.
15334
15335 * kern/loader.c (grub_loader_noreturn): New variable.
15336 (grub_loader_set): Accept a new argument NORETURN. Set
15337 GRUB_LOADER_NORETURN to NORETURN.
15338 All callers changed.
15339 (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
15340 grub_machine_fini.
15341
15342 * include/grub/efi/efi.h (grub_efi_get_device_path): New
15343 prototype.
15344 (grub_efi_get_loaded_image): Take an argument to specify an image
15345 handle.
15346
15347 * include/grub/loader.h (grub_loader_set): Added one more argument
15348 NORETURN.
15349
15350 * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
15351 instead of grub_efi_open_protocol.
15352 (grub_efidisk_get_device_name): Likewise.
15353 (grub_efidisk_close): Print a newline.
15354 (grub_efidisk_get_device_handle): Fixed to use
15355 GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
15356 GRUB_EFI_DEVICE_PATH_TYPE.
15357
15358 * disk/efi/efidisk.c (device_path_guid): Moved to ...
15359 * kern/efi/efi.c (device_path_guid): ... here.
15360
15361 * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
15362 chain.mod.
15363 (kernel_mod_HEADERS): Added efi/disk.h.
15364 (_chain_mod_SOURCES): New variable.
15365 (_chain_mod_CFLAGS): Likewise.
15366 (_chain_mod_LDFLAGS): Likewise.
15367 (chain_mod_SOURCES): Likewise.
15368 (chain_mod_CFLAGS): Likewise.
15369 (chain_mod_LDFLAGS): Likewise.
15370
15371 * DISTLIST: Added include/grub/efi/chainloader.h,
15372 loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
15373
15374 * include/grub/efi/chainloader.h: New file.
15375 * loader/efi/chainloader.c: Likewise.
15376 * loader/efi/chainloader_normal.c: Likewise.
15377
c0111d6e 153782006-04-30 Marco Gerards <marco@gnu.org>
15379
15380 * commands/configfile.c (grub_cmd_source): New function.
15381 (GRUB_MOD_INIT): Register the commands `source' and `.'.
15382 (GRUB_MOD_FINI): De-register the commands `source' and `.'.
15383
df5341da 153842006-04-30 Marco Gerards <marco@gnu.org>
15385
15386 * normal/execute.c (grub_script_execute_cmd): Change the return
15387 type to `grub_err_t'. Correctly return the error.
15388 (grub_script_execute_cmdline): In case a command line is not a
15389 command or a function, try to interpret it as an assignment.
15390
f85934bd 153912006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
15392
15393 * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
15394 (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
15395 skip a node whose name is obviously invalid as UTF-16,
15396 i.e. contains a NUL character. Stop the iteration when the last
15397 directory entry is found. Instead of using the return value of
15398 grub_hfsplus_btree_iterate_node, store the value in RET and use
15399 it, because the iterator can be stopped by the last directory
15400 entry.
15401
8f8a2cf8 154022006-04-30 Marco Gerards <marco@gnu.org>
15403
15404 * include/grub/env.h (grub_env_export): New prototype. Reported
15405 by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
15406
a27e84ce 154072006-04-30 Marco Gerards <marco@gnu.org>
15408
15409 * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
15410 size of the extents in a catalog file record.
15411
eaef0553 154122006-04-29 Marco Gerards <marco@gnu.org>
15413
15414 * commands/configfile.c (grub_cmd_configfile): Execute the
15415 configfile within its own context.
15416
15417 * include/grub/env.h (grub_env_context_open): New prototype.
15418 (grub_env_context_close): Likewise.
15419
15420 * kern/env.c (grub_env): Removed.
15421 (grub_env_sorted): Likewise.
15422 (grub_env_context): New variable.
15423 (grub_env_var_context): Likewise.
15424 (grub_env_find): Search both the active context and the global
15425 context.
15426 (grub_env_context_open): New function.
15427 (grub_env_context_close): Likewise.
15428 (grub_env_insert): Likewise.
15429 (grub_env_remove): Likewise.
15430 (grub_env_export): Likewise.
15431 (grub_env_set): Changed to use helper functions to avoid code
15432 duplication.
15433 (grub_env_iterate): Rewritten so both the current context and the
15434 global context are being used.
15435
15436 * normal/command.c (export_command): New function.
15437 (grub_command_init): Register the `export' function.
15438
7b455f4d 154392006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
15440
15441 * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
15442 explicitly to suppress gcc's warnings.
15443 * fs/fat.c (grub_fat_find_dir): Likewise.
15444 (grub_fat_label): Likewise.
15445 * fs/xfs.c (grub_xfs_read_inode): Likewise.
15446 (grub_xfs_mount): Likewise.
15447 (grub_xfs_label): Likewise.
15448 * fs/affs.c (grub_affs_mount): Likewise.
15449 (grub_affs_label): Likewise.
15450 (grub_affs_iterate_dir): Likewise.
15451 * fs/sfs.c (grub_sfs_mount): Likewise.
15452 (grub_sfs_iterate_dir): Likewise.
15453 * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
15454 * fs/hfs.c (grub_hfs_mount): Likewise.
15455 (grub_hfs_cmp_catkeys): Likewise.
15456 (grub_hfs_find_dir): Likewise.
15457 (grub_hfs_dir): Likewise.
15458 (grub_hfs_label): Likewise.
15459 * fs/jfs.c (grub_jfs_mount): Likewise.
15460 (grub_jfs_opendir): Likewise.
15461 (grub_jfs_getent): Likewise.
15462 (grub_jfs_lookup_symlink): Likewise.
15463 (grub_jfs_label): Likewise.
15464 * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
15465 (grub_hfsplus_iterate_dir): Likewise.
15466 (grub_hfsplus_btree_iterate_node): Made static.
15467
15468 * util/grub-emu.c (prefix): New variable.
15469 (grub_machine_set_prefix): New function.
15470 (main): Do not set the environment variable "prefix" here. Only
15471 set PREFIX, which is used later by grub_machine_set_prefix.
15472
15473 * include/grub/video.h: Do not include grub/symbol.h.
15474 (grub_video_register): Not exported. This symbol is not defined in
15475 the kernel.
15476 (grub_video_unregister): Likewise.
15477 (grub_video_iterate): Likewise.
15478 (grub_video_setup): Likewise.
15479 (grub_video_restore): Likewise.
15480 (grub_video_get_info): Likewise.
15481 (grub_video_get_blit_format): Likewise.
15482 (grub_video_set_palette): Likewise.
15483 (grub_video_get_palette): Likewise.
15484 (grub_video_set_viewport): Likewise.
15485 (grub_video_get_viewport): Likewise.
15486 (grub_video_map_color): Likewise.
15487 (grub_video_map_rgb): Likewise.
15488 (grub_video_map_rgba): Likewise.
15489 (grub_video_fill_rect): Likewise.
15490 (grub_video_blit_glyph): Likewise.
15491 (grub_video_blit_bitmap): Likewise.
15492 (grub_video_blit_render_target): Likewise.
15493 (grub_video_scroll): Likewise.
15494 (grub_video_swap_buffers): Likewise.
15495 (grub_video_create_render_target): Likewise.
15496 (grub_video_delete_render_target): Likewise.
15497 (grub_video_set_active_render_target): Likewise.
15498
15499 * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
15500 Undefined.
15501 [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
15502
15503 * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
15504 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
15505 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
15506 instead of $(srcdir)/genkernsyms.sh.
15507
15508 * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
15509 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
15510 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
15511 instead of $(srcdir)/genkernsyms.sh.
15512
15513 * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
15514 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
15515 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
15516 instead of $(srcdir)/genkernsyms.sh.
15517
15518 * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
15519 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
15520 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
15521 instead of $(srcdir)/genkernsyms.sh.
15522
15523 * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
15524 genkernsyms.sh.
15525
15526 * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
15527 genkernsyms.sh.
15528 (gensymlist.sh): New target.
15529 (genkernsyms.sh): Likewise.
15530
15531 * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
15532 genkernsyms.sh.in and gensymlist.sh.in.
15533
15534 * genkernsyms.sh: Removed.
15535 * gensymlist.sh: Likewise.
f19dbdb7 15536
7b455f4d 15537 * genkernsyms.sh.in: New file.
15538 * gensymlist.sh.in: Likewise.
15539
1885bb27 155402006-04-25 Hollis Blanchard <hollis@penguinppc.org>
15541
15542 * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
15543 clobber "prefix", since we may have already set it manually.
15544
71538dff 155452006-04-25 Hollis Blanchard <hollis@penguinppc.org>
15546
15547 * kern/misc.c (abort): New alias for grub_abort.
15548
2965c7cc 155492006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
15550
15551 A new machine-specific function "grub_machine_set_prefix" is
15552 defined. This is called after loading modules, so that a prefix
15553 initialization can use modules. Also, this change adds an
15554 intensive debugging feature for the memory manager via the
15555 configure option "--enable-mm-debug".
f19dbdb7 15556
2965c7cc 15557 * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
15558 PART.LEN.
15559
15560 * kern/sparc64/ieee1275/init.c (abort): Removed.
15561 (grub_stop): Likewise.
15562 (grub_exit): New function.
15563 (grub_set_prefix): Renamed to ...
15564 (grub_machine_set_prefix): ... this.
15565 (grub_machine_init): Do not call grub_set_prefix.
15566
15567 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
15568 (grub_machine_set_prefix): ... this.
15569 (grub_machine_init): Do not call grub_set_prefix.
15570
15571 * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
15572 (grub_machine_init): Do not set the prefix here.
15573
15574 * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
15575
15576 * kern/efi/init.c: Include grub/mm.h.
15577 (grub_efi_set_prefix): New function.
15578
15579 * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
15580 (grub_efi_get_filename): New function.
15581 (grub_print_device_path): Renamed to ...
15582 (grub_efi_print_device_path): ... this.
15583
15584 * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
15585 [MM_DEBUG] (grub_realloc): Likewise.
15586 [MM_DEBUG] (grub_free): Likewise.
15587 [MM_DEBUG] (grub_memalign): Likewise.
15588 [MM_DEBUG] (grub_mm_debug): New variable.
15589 [MM_DEBUG] (grub_debug_malloc): New function.
15590 [MM_DEBUG] (grub_debug_free): New function.
15591 [MM_DEBUG] (grub_debug_realloc): New function.
15592 [MM_DEBUG] (grub_debug_memalign): New function.
15593
15594 * kern/misc.c (grub_abort): Print a newline to distinguish
15595 the message.
15596
15597 * kern/main.c (grub_main): Call grub_machine_set_prefix and
15598 grub_set_root_dev after loading modules. This is necessary when
15599 setting a prefix depends on modules.
15600
15601 * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
15602 (grub_efi_print_device_path): ... this.
15603 (grub_efi_get_filename): New prototype.
15604 (grub_efi_set_prefix): Likewise.
15605
15606 * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
15607 and grub/disk.h.
15608 (grub_efidisk_get_device_handle): New prototype.
15609 (grub_efidisk_get_device_name): Likewise.
15610
15611 * include/grub/mm.h: Include config.h.
15612 (MM_DEBUG): Removed.
15613 [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
15614 [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
15615 [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
15616 [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
15617 [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
15618 [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
15619 [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
15620 [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
15621 [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
15622
15623 * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
15624
15625 * disk/efi/efidisk.c: Include grub/partition.h.
15626 (iterate_child_devices): New function.
15627 (add_device): First, compare only last device path nodes, so that
15628 devices are sorted by the types.
15629 (grub_efidisk_get_device_handle): New function.
15630 (grub_efidisk_get_device_name): Likewise.
15631
15632 * configure.ac (--enable-mm-debug): New option to enable the
15633 memory manager debugging feature. This makes the binary much
15634 bigger, so is disabled by default.
15635
9cacaa17 156362006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
15637
15638 Use grub_abort instead of grub_stop, and grub_exit must be
15639 define in each architecture now. Also, this change adds support
15640 for EFI disks.
f19dbdb7 15641
9cacaa17 15642 * util/i386/pc/grub-probefs.c: Include grub/term.h.
15643 (grub_getkey): New function.
15644 (grub_term_get_current): Likewise.
15645
15646 * util/i386/pc/grub-setup.c: Include grub/term.h.
15647 (grub_getkey): New function.
15648 (grub_term_get_current): Likewise.
15649
15650 * util/misc.c (grub_stop): Renamed to ...
15651 (grub_exit): ... this.
15652
15653 * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
15654 (grub_exit): ... this.
15655 (grub_machine_init): Use grub_abort instead of abort.
15656 (grub_stop): Removed.
15657
15658 * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
15659 abort.
15660
15661 * kern/i386/pc/startup.S (grub_exit): New function.
15662 (cold_reboot): New label.
15663
15664 * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
15665 (grub_efi_init): Call grub_efidisk_init.
15666 (grub_efi_fini): Call grub_efidisk_fini.
15667
15668 * kern/efi/efi.c: Include grub/mm.h.
15669 (grub_efi_console_control_guid): Renamed to ...
15670 (console_control_guid): ... this.
15671 (grub_efi_loaded_image_guid): Renamed to ...
15672 (loaded_image_guid): ... this.
15673 (grub_efi_locate_handle): New function.
15674 (grub_efi_open_protocol): Likewise.
15675 (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
15676 GRUB_EFI_CONSOLE_CONTROL_GUID.
15677 (grub_efi_exit): Removed.
15678 (grub_stop): Likewise.
15679 (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
15680 (grub_exit): New function.
15681 (grub_print_device_path): Likewise.
15682
15683 * kern/rescue.c (grub_rescue_cmd_exit): New function.
15684 (grub_enter_rescue_mode): Register "exit".
15685
15686 * kern/misc.c (grub_real_dprintf): A cosmetic change.
15687 (grub_abort): New function.
15688
15689 * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
15690
15691 * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
15692
15693 * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
15694
15695 * include/grub/efi/efi.h (grub_efi_exit): Removed.
15696 (grub_print_device_path): New prototype.
15697 (grub_efi_locate_handle): Likewise.
15698 (grub_efi_open_protocol): Likewise.
15699
15700 * include/grub/efi/disk.h (grub_efidisk_fini): New file.
15701 * disk/efi/efidisk.c: Likewise.
15702
15703 * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
15704
15705 * include/grub/efi/console_control.h
15706 (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
15707
15708 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
15709 last 8 bytes as an array.
15710 (GRUB_EFI_DISK_IO_GUID): New macro.
15711 (GRUB_EFI_BLOCK_IO_GUID): Likewise.
15712 (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
15713 (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
15714 grub_uint8_t.
15715 (struct grub_efi_guid): Use an array to specify the last 8 bytes.
15716 (struct grub_efi_device_path): Rename the member "sub_type" to
15717 "subtype".
15718 (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
15719 (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
15720 (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
15721 (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
15722 (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
15723 (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
15724 (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
15725 (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
15726 (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
15727 (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
15728 (struct grub_efi_pci_device_path): New structure.
15729 (grub_efi_pci_device_path_t): New type.
15730 (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
15731 (struct grub_efi_pccard_device_path): New structure.
15732 (grub_efi_pccard_device_path_t): New type.
15733 (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
15734 (struct grub_efi_memory_mapped_device_path): New structure.
15735 (grub_efi_memory_mapped_device_path_t): New type.
15736 (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
15737 (struct grub_efi_vendor_device_path): New structure.
15738 (grub_efi_vendor_device_path_t): New type.
15739 (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
15740 (struct grub_efi_controller_device_path): New structure.
15741 (grub_efi_controller_device_path_t): New type.
15742 (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
15743 (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
15744 (struct grub_efi_acpi_device_path): New structure.
15745 (grub_efi_acpi_device_path_t): New type.
15746 (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
15747 (struct grub_efi_expanded_acpi_device_path): New structure.
15748 (grub_efi_expanded_acpi_device_path_t): New type.
15749 (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
15750 (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
15751 (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
15752 (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
15753 (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
15754 (struct grub_efi_atapi_device_path): New structure.
15755 (grub_efi_atapi_device_path_t): New type.
15756 (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
15757 (struct grub_efi_fibre_channel_device_path): New structure.
15758 (grub_efi_fibre_channel_device_path_t): New type.
15759 (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
15760 (struct grub_efi_1394_device_path): New structure.
15761 (grub_efi_1394_device_path_t): New type.
15762 (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
15763 (struct grub_efi_usb_device_path): New structure.
15764 (grub_efi_usb_device_path_t): New type.
15765 (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
15766 (struct grub_efi_usb_class_device_path): New structure.
15767 (grub_efi_usb_class_device_path_t): New type.
15768 (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
15769 (struct grub_efi_i2o_device_path): New structure.
15770 (grub_efi_i2o_device_path_t): New type.
15771 (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
15772 (struct grub_efi_mac_address_device_path): New structure.
15773 (grub_efi_mac_address_device_path_t): New type.
15774 (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
15775 (struct grub_efi_ipv4_device_path): New structure.
15776 (grub_efi_ipv4_device_path_t): New type.
15777 (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
15778 (struct grub_efi_ipv6_device_path): New structure.
15779 (grub_efi_ipv6_device_path_t): New type.
15780 (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
15781 (struct grub_efi_infiniband_device_path): New structure.
15782 (grub_efi_infiniband_device_path_t): New type.
15783 (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
15784 (struct grub_efi_uart_device_path): New structure.
15785 (grub_efi_uart_device_path_t): New type.
15786 (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
15787 (struct grub_efi_vendor_messaging_device_path): New structure.
15788 (grub_efi_vendor_messaging_device_path_t): New type.
15789 (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
15790 (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
15791 (struct grub_efi_hard_drive_device_path): New structure.
15792 (grub_efi_hard_drive_device_path_t): New type.
15793 (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
15794 (struct grub_efi_cdrom_device_path): New structure.
15795 (grub_efi_cdrom_device_path_t): New type.
15796 (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
15797 (struct grub_efi_vendor_media_device_path): New structure.
15798 (grub_efi_vendor_media_device_path_t): New type.
15799 (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
15800 (struct grub_efi_file_path_device_path): New structure.
15801 (grub_efi_file_path_device_path_t): New type.
15802 (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
15803 (struct grub_efi_protocol_device_path): New structure.
15804 (grub_efi_protocol_device_path_t): New type.
15805 (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
15806 (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
15807 (struct grub_efi_bios_device_path): New structure.
15808 (grub_efi_bios_device_path_t): New type.
15809 (struct grub_efi_disk_io): New structure.
15810 (grub_efi_disk_io_t): New type.
15811 (struct grub_efi_block_io_media): New structure.
15812 (grub_efi_block_io_media_t): New type.
15813 (struct grub_efi_block_io): New structure.
15814 (grub_efi_block_io_t): New type.
15815
15816 * include/grub/misc.h (grub_stop): Removed.
15817 (grub_exit): New prototype.
15818 (grub_abort): Likewise.
15819
15820 * include/grub/disk.h (enum grub_disk_dev_id): Added
15821 GRUB_DISK_DEVICE_EFIDISK_ID.
15822
15823 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
15824 disk/efi/efidisk.c.
15825 (kernel_syms.lst): Remove the target if an error occurs.
15826
49986a9f 158272006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
15828
15829 * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
15830 as it was simply too buggy.
15831
970d3b8a 158322006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
15833
15834 * kern/misc.c (grub_lltoa): New function.
15835 (grub_vsprintf): Added support for the long long suffix,
15836 i.e. "ll".
15837
ff04ec24 158382006-04-20 Hollis Blanchard <hollis@penguinppc.org>
15839
15840 * Makefile.in (LDFLAGS): Add variable.
15841 (LD): Remove variable.
15842 * configure.ac: Add -m32 to LDFLAGS.
15843 * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
15844 * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
15845 (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
15846 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
15847 suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
15848 variables.
15849 * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
15850 * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
15851 * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
15852
37e5e1a4 158532006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
15854
15855 * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
15856 length for unknown glyph.
15857
c352d8dd 158582006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
15859
2eab1c0d 15860 Add support for pre-loaded modules into the EFI port.
f19dbdb7 15861
2eab1c0d 15862 * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
15863 completely. Accept one more argument DIR. The caller has changed.
15864
15865 * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
15866
15867 * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
15868 (grub_efi_loaded_image_guid): New variable.
15869 (grub_efi_get_loaded_image): New function.
15870 (grub_arch_modules_addr): Likewise.
15871
15872 * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
15873 prototype.
15874
15875 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
15876 (struct grub_efi_loaded_image): New structure.
15877 (grub_efi_loaded_image_t): New type.
15878
158792006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
f19dbdb7 15880
c352d8dd 15881 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
15882 size with GRUB_OS_AREA_SIZE as grub_size_t instead of
15883 grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
15884
6d01d6b4 158852006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
15886
15887 * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
15888
976a4ea0 158892006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
15890
15891 * DISTLIST: Added include/grub/efi/console.h,
15892 include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
15893 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
15894
15895 * include/grub/efi/console.h: New file.
15896 * include/grub/efi/time.h: Likewise.
15897 * include/grub/i386/efi/kernel.h: Likewise.
15898 * kern/efi/init.c: Likewise.
15899 * kern/efi/mm.c: Likewise.
15900 * term/efi/console.c: Likewise.
f19dbdb7 15901
976a4ea0 15902 * kern/i386/efi/init.c: Do not include grub/machine/time.h.
15903 (grub_stop): Removed.
15904 (grub_get_rtc): Likewise.
15905 (grub_machine_init): Simply call grub_efi_init.
15906 (grub_machine_fini): Call grub_efi_fini.
15907
15908 * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
15909 (grub_efi_output_string): Removed.
15910 (grub_efi_stall): New function.
15911 (grub_stop): Likewise.
15912 (grub_get_rtc): Likewise.
15913
15914 * include/grub/efi/efi.h (grub_efi_output_string): Removed.
15915 (grub_efi_stall): New prototype.
15916 (grub_efi_allocate_pages): Likewise.
15917 (grub_efi_free_pages): Likewise.
15918 (grub_efi_get_memory_map): Likewise.
15919 (grub_efi_mm_init): Likewise.
15920 (grub_efi_mm_fini): Likewise.
15921 (grub_efi_init): Likewise.
15922 (grub_efi_fini): Likewise.
15923
15924 * include/grub/i386/efi/time.h: Do not include
15925 grub/symbol.h. Include grub/efi/time.h.
15926 (GRUB_TICKS_PER_SECOND): Removed.
15927 (grub_get_rtc): Likewise.
15928
15929 * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
15930 Added padding. The EFI spec is buggy.
15931 (GRUB_EFI_BLACK): New macro.
15932 (GRUB_EFI_BLUE): Likewise.
15933 (GRUB_EFI_GREEN): Likewise.
15934 (GRUB_EFI_CYAN): Likewise.
15935 (GRUB_EFI_RED): Likewise.
15936 (GRUB_EFI_MAGENTA): Likewise.
15937 (GRUB_EFI_BROWN): Likewise.
15938 (GRUB_EFI_LIGHTGRAY): Likewise.
15939 (GRUB_EFI_BRIGHT): Likewise.
15940 (GRUB_EFI_DARKGRAY): Likewise.
15941 (GRUB_EFI_LIGHTBLUE): Likewise.
15942 (GRUB_EFI_LIGHTGREEN): Likewise.
15943 (GRUB_EFI_LIGHTCYAN): Likewise.
15944 (GRUB_EFI_LIGHTRED): Likewise.
15945 (GRUB_EFI_LIGHTMAGENTA): Likewise.
15946 (GRUB_EFI_YELLOW): Likewise.
15947 (GRUB_EFI_WHITE): Likewise.
15948 (GRUB_EFI_BACKGROUND_BLACK): Likewise.
15949 (GRUB_EFI_BACKGROUND_BLUE): Likewise.
15950 (GRUB_EFI_BACKGROUND_GREEN): Likewise.
15951 (GRUB_EFI_BACKGROUND_CYAN): Likewise.
15952 (GRUB_EFI_BACKGROUND_RED): Likewise.
15953 (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
15954 (GRUB_EFI_BACKGROUND_BROWN): Likewise.
15955 (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
15956 (GRUB_EFI_TEXT_ATTR): Likewise.
15957
15958 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
15959 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
15960 (kernel_mod_HEADERS): Added efi/time.h.
15961
83709125 159622006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
15963
15964 * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
15965 include/grub/efi/api.h, include/grub/efi/console_control.h,
15966 include/grub/efi/efi.h, include/grub/efi/pe32.h,
15967 include/grub/i386/efi/time.h, kern/efi/efi.c,
15968 kern/i386/efi/init.c, kern/i386/efi/startup.S,
15969 and util/i386/efi/grub-mkimage.c.
15970
15971 * Makefile.in (RMKFILES): Added i386-efi.rmk.
15972
15973 * genmk.rb (PModule#rule): Do not export symbols if
15974 #{prefix}_EXPORTS is set to "no".
15975
15976 * conf/i386-efi.mk: New file.
15977 * conf/i386-efi.rmk: Likewise.
15978 * include/grub/efi/api.h: Likewise.
15979 * include/grub/efi/console_control.h: Likewise.
15980 * include/grub/efi/efi.h: Likewise.
15981 * include/grub/efi/pe32.h: Likewise.
15982 * include/grub/i386/efi/time.h: Likewise.
15983 * kern/efi/efi.c: Likewise.
15984 * kern/i386/efi/init.c: Likewise.
15985 * kern/i386/efi/startup.S: Likewise.
15986 * util/i386/efi/grub-mkimage.c: Likewise.
15987
159882006-04-17 Marco Gerards <marco@gnu.org>
bfa2bd9e 15989
15990 * include/grub/script.h: Include <grub/parser.h> and
15991 "grub_script.tab.h".
15992 (struct grub_lexer_param): New struct.
15993 (struct grub_parser_param): Likewise.
15994 (grub_script_create_arglist): Pass the state in an argument.
15995 (grub_script_add_arglist): Likewise.
15996 (grub_script_create_cmdline): Likewise.
15997 (grub_script_create_cmdblock): Likewise.
15998 (grub_script_create_cmdif): Likewise.
15999 (grub_script_create_cmdmenu): Likewise.
16000 (grub_script_add_cmd): Likewise.
16001 (grub_script_arg_add): Likewise.
16002 (grub_script_lexer_ref): Likewise.
16003 (grub_script_lexer_deref): Likewise.
16004 (grub_script_lexer_record_start): Likewise.
16005 (grub_script_lexer_record_stop): Likewise.
16006 (grub_script_mem_record): Likewise.
16007 (grub_script_mem_record_stop): Likewise.
16008 (grub_script_malloc): Likewise.
16009 (grub_script_yylex): Likewise.
16010 (grub_script_yyparse): Likewise.
16011 (grub_script_yyerror): Likewise.
16012 (grub_script_yylex): Likewise.
16013 (grub_script_lexer_init): Return the state.
16014
16015 * normal/lexer.c (grub_script_lexer_state): Removed variable.
16016 (grub_script_lexer_done): Likewise.
16017 (grub_script_lexer_getline): Likewise.
16018 (grub_script_lexer_refs): Likewise.
16019 (script): Likewise.
16020 (newscript): Likewise.
16021 (record): Likewise.
16022 (recording): Likewise.
16023 (recordpos): Likewise.
16024 (recordlen): Likewise.
16025 (grub_script_lexer_init): Return the state instead of setting
16026 global variables.
16027 (grub_script_lexer_ref): Use the newly added argument for state
16028 instead of globals.
16029 (grub_script_lexer_deref): Likewise.
16030 (grub_script_lexer_record_start): Likewise.
16031 (grub_script_lexer_record_stop): Likewise.
16032 (recordchar): Likewise.
16033 (nextchar): Likewise.
16034 (grub_script_yylex2): Likewise.
16035 (grub_script_yylex): Likewise.
16036 (grub_script_yyerror): Likewise.
16037
16038 * normal/parser.y (func_mem): Removed variable.
16039 (menu_entry): Likewise.
16040 (err): Likewise.
16041 (%lex-param): New parser option.
16042 (%parse-param): Likewise.
16043 (script): Always return the AST.
16044 (argument): Pass the state around.
16045 (arguments): Likewise.
16046 (grubcmd): Likewise.
16047 (commands): Likewise.
16048 (function): Likewise.
16049 (menuentry): Likewise.
16050 (if_statement): Likewise.
16051 (if): Likewise.
16052
16053 * normal/script.c (grub_script_memused): Removed variable.
16054 (grub_script_parsed): Likewise.
16055 (grub_script_malloc): Added a state argument. Use that instead of
16056 global variables.
16057 (grub_script_mem_record): Likewise.
16058 (grub_script_mem_record_stop): Likewise.
16059 (grub_script_arg_add): Likewise.
16060 (grub_script_add_arglist): Likewise.
16061 (grub_script_create_cmdline): Likewise.
16062 (grub_script_create_cmdif): Likewise.
16063 (grub_script_create_cmdmenu): Likewise.
16064 (grub_script_add_cmd): Likewise.
16065 (grub_script_parse): Setup the state before calling the parser.
f19dbdb7 16066
e2a8c904 160672006-04-16 Marco Gerards <marco@gnu.org>
6de2ee99 16068
16069 * normal/command.c (grub_command_init): Remove the title command.
16070
16071 * normal/lexer.c (grub_script_yylex): Renamed from this...
16072 (grub_script_yylex2): ... to this.
16073 (grub_script_yylex): New function. Temporary
16074 introduced to filter some tokens.
16075 (grub_script_yyerror): Print a newline.
16076
16077 * normal/main.c (read_config_file): Output information about the
16078 lines that contain errors. Wait for a key after all lines have
16079 been processed. Don't return an empty menu.
16080
16081 * normal/parser.y (func_mem): Don't initialize.
16082 (menu_entry): Likewise.
16083 (err): New variable.
16084 (script): Don't return anything when an error was encountered.
16085 (ws, returns): Removed rules.
16086 (argument): Disabled concatenated variable support.
16087 (arguments): Remove explicit separators.
16088 (grubcmd): Likewise.
16089 (function): Likewise.
16090 (menuentry): Likewise.
16091 (if): Likewise.
16092 (commands): Likewise. Add error handling.
16093
16094 * normal/script.c (grub_script_create_cmdline): If
16095 `grub_script_parsed' is 0, assume the parser encountered an error.
16096
c9a86192 160972006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
16098
16099 * configure.ac: Add support for EFI. Fix the typo
16100 BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
16101
70f3b243 161022006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
16103
16104 * util/unifont2pff.rb: Removed unnecessary byte ordering. Now
16105 foreign multibyte characters should be shown correctly.
16106
65f201ad 161072006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
16108
16109 * normal/main.c (grub_normal_menu_addentry): Fixed menu size
16110 calculation.
16111 (read_config_file): Made it to close file before returning.
16112
b4b93674 161132006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
16114
16115 * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
16116 include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
16117 video/i386/pc/vbefill.c.
16118
16119 * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
16120 video/i386/pc/vbefill.c.
16121
16122 * include/grub/video.h (grub_video_blit_format): New enum.
16123 (grub_video_mode_info): Added new member blit_format.
16124 (grub_video_get_blit_format): New function prototype.
16125
16126 * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
16127 function prototype.
16128 (grub_video_vbe_map_rgb): Likewise.
16129 (grub_video_vbe_unmap_color): Likewise.
16130
16131 * include/grub/i386/pc/vbeblit.h: New file.
16132
16133 * include/grub/i386/pc/vbefill.h: New file.
16134
16135 * video/video.c (grub_video_get_blit_format): New function.
16136 (grub_video_vbe_get_video_ptr): Re-declared as non-static.
16137 (grub_video_vbe_map_rgb): Likewise.
16138 (grub_video_vbe_unmap_color): Likewise.
16139
16140 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
16141 optimized fills.
16142 (grub_video_vbe_blit_render_target): Changed to use more optimized
16143 blits.
16144 (grub_video_vbe_setup): Added detection for optimized settings.
16145 (grub_video_vbe_create_render_target): Likewise.
16146
16147 * video/i386/pc/vbeblit.c: New file.
16148
16149 * video/i386/pc/vbefill.c: New file.
16150
c2379b9c 161512006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
16152
16153 * font/manager.c (grub_font_get_glyph): Removed font fixup from
16154 here...
16155
16156 * util/unifont2pff.rb: ... and moved it to here. Improved argument
16157 parsing to support both hex and dec ranges. If filename was missing
16158 show usage information.
16159
bd0d7896 161602006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
16161
16162 * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
16163 video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c.
16164
16165 * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
16166 gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod.
16167 (video_mod_SOURCES): Added.
16168 (video_mod_CFLAGS): Likewise.
16169 (video_mod_LDFLAGS): Likewise.
16170 (gfxterm_mod_SOURCES): Likewise.
16171 (gfxterm_mod_CFLAGS): Likewise.
16172 (gfxterm_mod_LDFLAGS): Likewise.
16173 (videotest_mod_SOURCES): Likewise.
16174 (videotest_mod_CFLAGS): Likewise.
16175 (videotest_mod_LDFLAGS): Likewise.
16176 (vesafb_mod_SOURCES): Removed.
16177 (vesafb_mod_CFLAGS): Likewise.
16178 (vesafb_mod_LDFLAGS): Likewise.
16179 (vga_mod_SOURCES): Likewise.
16180 (vga_mod_CFLAGS): Likewise.
16181 (vga_mod_LDFLAGS): Likewise.
16182
16183 * commands/videotest.c: New file.
16184
16185 * font/manager.c (fill_with_default_glyph): Modified to use
16186 grub_font_glyph.
16187 (grub_font_get_glyph): Likewise.
16188 (fontmanager): Renamed from this...
16189 (font_manager): ... to this.
16190
16191 * include/grub/font.h (grub_font_glyph): Added new structure.
16192 (grub_font_get_glyph): Modified to use grub_font_glyph.
16193
16194 * include/grub/misc.h (grub_abs): Added as inline function.
16195
16196 * include/grub/video.h: New file.
16197
16198 * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
16199 (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
16200 (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
16201 (grub_vbe_get_controller_info): Renamed from this...
16202 (grub_vbe_bios_get_controller_info): ... to this.
16203 (grub_vbe_get_mode_info): Renamed from this...
16204 (grub_vbe_bios_get_mode_info): ... to this.
16205 (grub_vbe_set_mode): Renamed from this...
16206 (grub_vbe_bios_set_mode): ... to this.
16207 (grub_vbe_get_mode): Renamed from this...
16208 (grub_vbe_bios_get_mode): ... to this.
16209 (grub_vbe_set_memory_window): Renamed from this...
16210 (grub_vbe_bios_set_memory_window): ... to this.
16211 (grub_vbe_get_memory_window): Renamed from this...
16212 (grub_vbe_bios_get_memory_window): ... to this.
16213 (grub_vbe_set_scanline_length): Renamed from this...
16214 (grub_vbe_set_scanline_length): ... to this.
16215 (grub_vbe_get_scanline_length): Renamed from this...
16216 (grub_vbe_bios_get_scanline_length): ... to this.
16217 (grub_vbe_set_display_start): Renamed from this...
16218 (grub_vbe_bios_set_display_start): ... to this.
16219 (grub_vbe_get_display_start): Renamed from this...
16220 (grub_vbe_bios_get_display_start): ... to this.
16221 (grub_vbe_set_palette_data): Renamed from this...
16222 (grub_vbe_bios_set_palette_data): ... to this.
16223 (grub_vbe_set_pixel_rgb): Removed.
16224 (grub_vbe_set_pixel_index): Likewise.
16225
16226 * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
16227 from this...
16228 (grub_vbe_bios_get_controller_info): ... to this.
16229 (grub_vbe_get_mode_info): Renamed from this...
16230 (grub_vbe_bios_get_mode_info): ... to this.
16231 (grub_vbe_set_mode): Renamed from this...
16232 (grub_vbe_bios_set_mode): ... to this.
16233 (grub_vbe_get_mode): Renamed from this...
16234 (grub_vbe_bios_get_mode): ... to this.
16235 (grub_vbe_set_memory_window): Renamed from this...
16236 (grub_vbe_bios_set_memory_window): ... to this.
16237 (grub_vbe_get_memory_window): Renamed from this...
16238 (grub_vbe_bios_get_memory_window): ... to this.
16239 (grub_vbe_set_scanline_length): Renamed from this...
16240 (grub_vbe_set_scanline_length): ... to this.
16241 (grub_vbe_get_scanline_length): Renamed from this...
16242 (grub_vbe_bios_get_scanline_length): ... to this.
16243 (grub_vbe_set_display_start): Renamed from this...
16244 (grub_vbe_bios_set_display_start): ... to this.
16245 (grub_vbe_get_display_start): Renamed from this...
16246 (grub_vbe_bios_get_display_start): ... to this.
16247 (grub_vbe_set_palette_data): Renamed from this...
16248 (grub_vbe_bios_set_palette_data): ... to this.
16249 (grub_vbe_bios_get_controller_info): Fixed problem with registers
16250 getting corrupted after calling it. Added more pushes and pops.
16251 (grub_vbe_bios_set_mode): Likewise.
16252 (grub_vbe_bios_get_mode): Likewise.
16253 (grub_vbe_bios_get_memory_window): Likewise.
16254 (grub_vbe_bios_set_scanline_length): Likewise.
16255 (grub_vbe_bios_get_scanline_length): Likewise.
16256 (grub_vbe_bios_get_display_start): Likewise.
16257 (grub_vbe_bios_set_palette_data): Likewise.
16258
16259 * normal/cmdline.c (cl_set_pos): Refresh the screen.
16260 (cl_insert): Likewise.
16261 (cl_delete): Likewise.
16262
16263 * term/gfxterm.c: New file.
16264
16265 * term/i386/pc/vesafb.c: Removed file.
16266
16267 * video/video.c: New file.
16268
16269 * video/i386/pc/vbe.c (real2pm): Added new function.
16270 (grub_video_vbe_draw_pixel): Likewise.
16271 (grub_video_vbe_get_video_ptr): Likewise.
16272 (grub_video_vbe_get_pixel): Likewise
16273 (grub_video_vbe_init): Likewise.
16274 (grub_video_vbe_fini): Likewise.
16275 (grub_video_vbe_setup): Likewise.
16276 (grub_video_vbe_get_info): Likewise.
16277 (grub_video_vbe_set_palette): Likewise.
16278 (grub_video_vbe_get_palette): Likewise.
16279 (grub_video_vbe_set_viewport): Likewise.
16280 (grub_video_vbe_get_viewport): Likewise.
16281 (grub_video_vbe_map_color): Likewise.
16282 (grub_video_vbe_map_rgb): Likewise.
16283 (grub_video_vbe_map_rgba): Likewise.
16284 (grub_video_vbe_unmap_color): Likewise.
16285 (grub_video_vbe_fill_rect): Likewise.
16286 (grub_video_vbe_blit_glyph): Likewise.
16287 (grub_video_vbe_blit_bitmap): Likewise.
16288 (grub_video_vbe_blit_render_target): Likewise.
16289 (grub_video_vbe_scroll): Likewise.
16290 (grub_video_vbe_swap_buffers): Likewise.
16291 (grub_video_vbe_create_render_target): Likewise.
16292 (grub_video_vbe_delete_render_target): Likewise.
16293 (grub_video_vbe_set_active_render_target): Likewise.
16294 (grub_vbe_set_pixel_rgb): Remove function.
16295 (grub_vbe_set_pixel_index): Likewise.
16296 (index_color_mode): Remove static variable.
16297 (active_mode): Likewise.
16298 (framebuffer): Likewise.
16299 (bytes_per_scan_line): Likewise.
16300 (grub_video_vbe_adapter): Added new static variable.
16301 (framebuffer): Likewise.
16302 (render_target): Likewise.
16303 (initial_mode): Likewise.
16304 (mode_in_use): Likewise.
16305 (mode_list): Likewise.
16306
5f97350b 163072006-03-10 Marco Gerards <marco@gnu.org>
16308
16309 * configure.ac (AC_INIT): Bumped to 1.93.
16310
16311 * DISTLIST: Added `include/grub/hfs.h'.
16312
a3c5c6f8 163132006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
16314
16315 * boot/i386/pc/boot.S (general_error): Before looping, try INT
16316 18H, which might help the BIOS falling back to next boot media.
16317
6de53d26 163182006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
16319
16320 * util/i386/pc/grub-install.in: Escape a backslash. Reported by
16321 Poe Chen <poe.poechen@gmail.com>.
16322
77c4a393 163232006-01-17 Marco Gerards <marco@gnu.org>
16324
16325 * include/grub/normal.h: Include <grub/script.h>.
16326 (grub_command_list): Removed struct.
16327 (grub_command_list_t): Removed type.
16328 (grub_menu_entry): Remove members `num' and `command_list'. Add
16329 members `commands' and `sourcecode'.
16330 * include/grub/script.h: Add inclusion guards.
16331 (grub_script_cmd_menuentry): New struct.
16332 (grub_script_execute_menuentry): New prototype.
16333 (grub_script_lexer_record_start): Likewise.
16334 (grub_script_lexer_record_stop): Likewise.
16335 * normal/execute.c (grub_script_execute_menuentry): New function.
16336 * normal/lexer.c (record, recording, recordpos, recordlen): New
16337 variables.
16338 (grub_script_lexer_record_start): New function.
16339 (grub_script_lexer_record_stop): Likewise.
16340 (recordchar): Likewise.
16341 (nextchar): Likewise.
16342 (grub_script_yylex): Use `nextchar' to fetch new characters. Use
16343 2048 as the buffer size. Add the tokens `menuentry' and `@'.
16344 * normal/main.c: Include <grub/parser.h> and <grub/script.h>
16345 (current_menu): New variable.
16346 (free_menu): Mainly rewritten.
16347 (grub_normal_menu_addentry): New function.
16348 (read_config_file): Rewritten.
16349 * normal/menu.c (run_menu_entry): Mainly rewritten.
fe987087 16350 * normal/menu_entry.c (make_screen): Rewritten the code to insert
77c4a393 16351 the menu entry.
16352 (run): Mainly rewritten.
16353 * normal/parser.y (menu_entry): New variable.
16354 (GRUB_PARSER_TOKEN_MENUENTRY): New token.
16355 (menuentry): New rule.
16356 (command): Add `menuentry'.
16357 (if_statement): Allow additional returns before `fi'.
16358 * normal/script.c (grub_script_create_cmdmenu): New function.
16359
144f1f98 163602006-01-03 Marco Gerards <marco@gnu.org>
16361
16362 * INSTALL: GNU Bison is required.
16363 * configure.ac: Rewritten the test to detect Bison.
16364 * Makefile.in (YACC): New variable. Reported by Xun Sun
16365 <xun.sun.cn@gmail.com>.
16366
af4b2d89 163672006-01-03 Marco Gerards <marco@gnu.org>
16368
16369 * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
16370 the HFS+ filesystem to filesystem blocks.
16371 (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
16372 GCC warning is silenced.
16373
15643b71 163742006-01-03 Marco Gerards <marco@gnu.org>
16375
16376 * partmap/apple.c (apple_partition_map_iterate): Convert the data
16377 read from disk from big endian to host byte order.
16378
00905879 163792006-01-03 Hollis Blanchard <hollis@penguinppc.org>
16380
16381 * fs/hfs.c: Include <grub/hfs.h>. Added reference to the official
16382 documentation.
16383 (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
16384 (grub_hfs_mount): Grammar fix in error. Make sure this is not an
16385 embedded HFS+ filesystem.
16386 (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
16387 (grub_hfs_sblock): Move from here...
16388 * include/grub/hfs.h: To here... New file.
16389 * fs/hfsplus.c: Include <grub/hfs.h>. Added reference to the official
16390 documentation.
16391 (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
16392 New macros.
16393 (grub_hfsplus_volheader): Change type of member `magic' to
16394 `grub_uint16_t'.
16395 (grub_hfsplus_data): Add new member `embedded_offset'.
16396 (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
16397 returned block.
16398 (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
16399 Calculate the offset.
16400
8899bc3e 164012005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
16402
16403 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
16404 Removed.
16405 (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
16406
ae8c0277 164072005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
16408
16409 * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
16410 ENV->NAME is NULL after allocating ENV->VALUE.
16411
07084456 164122005-12-25 Marco Gerards <marco@gnu.org>
16413
16414 * kern/env.c (grub_env_set): Rewritten the error handling code.
16415
4750f5f1 164162005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
16417
16418 * geninit.sh: Made more robust, and more portable.
16419
50214199 164202005-12-25 Marco Gerards <marco@gnu.org>
16421
16422 Add support for Apple HFS+ filesystems.
f19dbdb7 16423
50214199 16424 * fs/hfsplus.c: New file.
16425
16426 * DISTLIST: Added `fs/hfsplus.c'.
16427
16428 * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
16429 (hfsplus_mod_SOURCES): New variable.
16430 (hfsplus_mod_CFLAGS): Likewise.
16431 (hfsplus_mod_LDFLAGS): Likewise.
16432 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
16433 (grub_setup_SOURCES): Likewise.
16434 (grub_mkdevicemap_SOURCES): Likewise.
16435 (grub_emu_SOURCES): Likewise.
16436 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
16437
16438 * fs/fshelp.c (grub_fshelp_log2blksize): New function.
16439
16440 * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
16441
befaed6c 164422005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
16443
16444 * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
16445 commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
16446 include/grub/parser.h, include/grub/script.h, kern/parser.c,
16447 kern/sparc64/cache.S, normal/execute.c, normal/function.c,
16448 normal/lexer.c, normal/parser.y, normal/script.c, and
16449 partmap/gpt.c.
16450 Removed kern/sparc64/cache.c.
16451
16452 * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
16453 grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
16454 grub_emu_init.c.
16455
16456 * configure.ac (AC_INIT): Bumped to 1.92.
16457
6a124103 164582005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
16459
16460 * kern/err.c (grub_error_push): Added new function to support error
16461 stacks.
16462 (grub_error_pop): Likewise.
16463 (grub_error_stack_items): New local variable to support error stacks.
16464 (grub_error_stack_pos): Likewise.
16465 (grub_error_stack_assert): Likewise.
16466 (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
16467 stack depth.
16468 (grub_print_error): Added support to print errors from error stack.
16469
16470 * include/grub/err.h (grub_error_push): Added function prototype.
16471 (grub_error_pop): Likewise.
16472
be973c1b 164732005-12-09 Hollis Blanchard <hollis@penguinppc.org>
16474
16475 * configure.ac: Accept `powerpc64' as host_cpu.
16476 (amd64): Rename to `biarch32'.
16477
16478 * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
16479 non-cacheline-aligned addresses.
16480
16481 * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
16482 (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
16483 if `size' is non-zero.
16484
b04216ab 164852005-12-03 Marco Gerards <mgerards@xs4all.nl>
16486
16487 * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
16488 and `cd' to make sure the filename is not prefixed with a
16489 directory name.
16490 (pkgdata_MODULES): Add `gpt.mod'.
16491 (gpt_mod_SOURCES): New variable.
16492 (gpt_mod_CFLAGS): Likewise.
16493 (gpt_mod_LDFLAGS): Likewise.
16494
16495 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
16496
16497 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
16498 New macro.
16499
16500 * partmap/gpt.c: New file.
16501
16502 * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
16503 GPT partition map is detected.
16504
41730ed9 165052005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
16506
16507 * commands/i386/pc/play.c: New file.
16508 * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
16509 (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
16510 macros.
f19dbdb7 16511
95dc3643 165122005-11-27 Marco Gerards <mgerards@xs4all.nl>
16513
16514 * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
16515 ((unused))' to silence gcc warning.
16516
1569ec51 165172005-11-26 Hollis Blanchard <hollis@penguinppc.org>
16518
16519 * configure.ac: Correct `AC_PROG_YACC' test.
16520
9abde152 165212005-11-22 Hollis Blanchard <hollis@penguinppc.org>
16522
16523 * util/powerpc/ieee1275/grub-install.in: Run the mount point
16524 check before installing files.
16525
44b83271 165262005-11-22 Mike Small <smallm@panix.com>
16527
16528 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
16529 number regex so multidigit numbers are recognized correctly.
16530
165312005-11-22 Mike Small <smallm@panix.com>
16532
16533 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
16534 debugging message before attempting to claim memory.
16535 (grub_rescue_cmd_initrd): Add a claim debugging message and try
16536 multiple addresses in case of failure.
16537
9c12956b 165382005-11-22 Hollis Blanchard <hollis@penguinppc.org>
16539
16540 * term/tparm.c (get_space): Remove empty `if' statement.
16541
16542 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
16543
16544 * kern/parser.c (check_varstate): Rename `state' to 's'.
16545
aeaf81d9 165462005-11-22 Hollis Blanchard <hollis@penguinppc.org>
16547
16548 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
16549 variable definitions to the beginning of each function. Sort stack
16550 variables by size.
16551 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
16552 `buf' argument to `char *'.
16553
79bbb63f 165542005-11-22 Hollis Blanchard <hollis@penguinppc.org>
16555
16556 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
16557 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 16558 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
79bbb63f 16559 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
16560 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
16561 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
16562 configfile.mod, search.mod, gzio.mod and test.mod.
16563 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
16564 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
16565 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
16566 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
16567 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
16568 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
16569 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
16570 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
16571 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
16572 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
16573 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
16574 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
16575 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
16576 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
16577 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
16578 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
16579 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
16580 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
16581 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
16582 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
16583 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
16584 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
16585 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
16586
16587 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
16588 `grep --include'.
16589 (pkgdata_MODULES): Add test.mod.
16590
233b1628 165912005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
16592
16593 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
16594 appending to variables with "+=".
16595 (PModule): Use full pathname to generate *.lst filenames.
16596
16597 * Makefile.in: Fixed list rules moved from genmk.rb.
16598 (.DELETE_ON_ERROR): New special target.
16599 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
16600
16601 * conf/i386-pc.rmk: Include conf/common.mk.
16602 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
fe6b695a 16603 minix.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
233b1628 16604 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
16605 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
16606 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
16607 configfile.mod, search.mod, gzio.mod and test.mod.
16608 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
16609 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
16610 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
16611 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
16612 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
16613 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
16614 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
16615 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
16616 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
16617 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
16618 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
16619 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
16620 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
16621 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
16622 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
16623 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
16624 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
16625 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
16626 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
16627 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
16628 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
16629 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
16630 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
16631 here...
16632 * conf/common.rmk: ... to here. New file.
16633
16634 * conf/common.mk: New file.
16635
16f820c8 166362005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
16637
16638 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
16639 (grub_script.tab.c): ... here.
16640
16641 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
16642 (grub_script.tab.c): ... here.
16643
16644 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
16645 (grub_script.tab.c): ... here.
16646
16647 * normal/command.c (grub_command_find): Fixed a memory leak of
16648 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
16649
63ba1554 166502005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
16651
16652 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
16653 "@" which marks the start of a comment on ARM.
16654 (VARIABLE): Likewise.
16655
7f67dc13 166562005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
16657
79bbb63f 16658 Add support for Linux/ADFS partition tables.
7f67dc13 16659
16660 * partmap/acorn.c: New file.
16661
16662 * include/grub/acorn_filecore.h: Likewise.
16663
16664 * DISTLIST: Added `partmap/acorn.c' and
16665 `include/grub/acorn_filecore.h'.
f19dbdb7 16666
7f67dc13 16667 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
16668 `partmap/acorn.c'.
16669 (pkgdata_MODULES): Add `acorn.mod'.
16670 (acorn_mod_SOURCES): New variable.
16671 (acorn_mod_CFLAGS): Likewise.
16672
16673 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
16674 `partmap/acorn.c'.
16675 (pkgdata_MODULES): Add `acorn.mod'.
16676 (acorn_mod_SOURCES): New variable.
16677 (acorn_mod_CFLAGS): Likewise.
16678
16679 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
16680 (pkgdata_MODULES): Add `acorn.mod'.
16681 (acorn_mod_SOURCES): New variable.
16682 (acorn_mod_CFLAGS): Likewise.
16683 (acorn_mod_LDFLAGS): Likewise.
16684
16685 * include/types.h (grub_disk_addr_t): New typedef.
16686
6d099807 166872005-11-13 Marco Gerards <mgerards@xs4all.nl>
16688
16689 * geninit.sh: New file.
16690
16691 * geninitheader.sh: Likewise.
16692
16693 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
16694 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
16695 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
16696 * commands/configfile.c (grub_configfile_init)
16697 (grub_configfile_fini): Likewise.
16698 * commands/default.c (grub_default_init, grub_default_fini):
16699 Likewise.
16700 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
16701 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
16702 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
16703 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
16704 Likewise.
16705 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
16706 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
16707 Likewise.
16708 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
fe6b695a 16709 * commands/ieee1275/halt.c (grub_halt_init, grub_halt_fini):
6d099807 16710 Likewise.
16711 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
16712 Likewise.
fe6b695a 16713 * commands/ieee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
6d099807 16714 Likewise.
16715 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
16716 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
16717 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
16718 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
16719 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
16720 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
16721 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
16722 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
16723 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
16724 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
16725 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
16726 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
16727 * partmap/amiga.c (grub_amiga_partition_map_init)
16728 (grub_amiga_partition_map_fini): Likewise.
16729 * partmap/apple.c (grub_apple_partition_map_init)
16730 (grub_apple_partition_map_fini): Likewise.
16731 * partmap/pc.c (grub_pc_partition_map_init)
16732 (grub_pc_partition_map_fini): Likewise.
16733 * partmap/sun.c (grub_sun_partition_map_init,
16734 grub_sun_partition_map_fini): Likewise.
16735 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
16736 Likewise.
16737
16738 * util/grub-emu.c: Include <grub_modules_init.h>.
16739 (main): Don't initialize and de-initialize any modules directly,
16740 use `grub_init_all' and `grub_fini_all' instead.
16741
16742 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
16743 `grub_vesafb_mod_init'.
16744 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
16745 all users.
16746 * term/i386/pc/vga.c (grub_vga_init): Renamed to
16747 `grub_vga_mod_init'. Updated all users.
16748 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
f19dbdb7 16749
6d099807 16750 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
16751 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
16752 rules.
16753
16754 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
16755 Generate a function to initialize the module in utilities.
16756 Updated all callers.
16757 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
16758 initialize the module in utilities. Updated all callers.
16759
9046bcf0 167602005-11-09 Hollis Blanchard <hollis@penguinppc.org>
16761
16762 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
16763 escape sequence and a literal ^L to clear the screen.
16764
16765 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
16766 when returning from Open Firmware.
16767
d13ea639 167682005-11-09 Hollis Blanchard <hollis@penguinppc.org>
16769
16770 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
16771 (grub_ofconsole_height): Likewise.
16772 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
16773 manually insert a '\n'.
16774 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
16775 `grub_ofconsole_height'. Return early if these are already set.
16776
a8fcf206 167772005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
16778
16779 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
16780 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
16781 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
16782 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
16783 and `normal/script.c'.
16784 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
16785 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
16786 (test_mod_SOURCES): New variable.
16787 (test_mod_CFLAGS): Likewise.
16788 (test_mod_LDFLAGS): Likewise.
16789 (pkgdata_MODULES): Add `test.mod'.
16790 (grub_script.tab.c): New rule.
16791 (grub_script.tab.h): Likewise.
16792
b6b32745 167932005-11-07 Marco Gerards <mgerards@xs4all.nl>
16794
16795 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
16796 `commands/test.c', `normal/execute.c', `normal/lexer.c',
16797 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
16798 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
16799 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
16800 (test_mod_SOURCES): New variable.
16801 (test_mod_CFLAGS): Likewise.
16802 (pkgdata_MODULES): Add `test.mod'.
16803 (grub_script.tab.c): New rule.
16804 (grub_script.tab.h): Likewise.
16805
daac212a 168062005-11-06 Marco Gerards <mgerards@xs4all.nl>
16807
16808 Add initial scripting support.
16809
16810 * commands/test.c: New file.
16811 * include/grub/script.h: Likewise.
16812 * normal/execute.c: Likewise.
16813 * normal/function.c: Likewise.
16814 * normal/lexer.c: Likewise.
16815 * normal/parser.y: Likewise.
16816 * normal/script.c: Likewise.
16817
16818 * configure.ac: Add `AC_PROG_YACC' test.
f19dbdb7 16819
daac212a 16820 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
16821 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
16822 `normal/function.c' and `normal/script.c'.
16823 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
16824 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
b6b32745 16825 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
16826 variables.
daac212a 16827 (pkgdata_MODULES): Add `test.mod'.
16828 (grub_script.tab.c): New rule.
16829 (grub_script.tab.h): Likewise.
16830
16831 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
16832
16833 * include/grub/normal.h (grub_test_init): New prototype.
16834 (grub_test_fini): Likewise.
f19dbdb7 16835
daac212a 16836 * normal/command.c: Include <grub/script.h>.
16837 (grub_command_execute): Rewritten.
f19dbdb7 16838
daac212a 16839 * util/grub-emu.c (main): Call `grub_test_init' and
16840 `grub_test_fini'.
16841
77500b2b 168422005-11-03 Hollis Blanchard <hollis@penguinppc.org>
16843
16844 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
16845 to 0.
16846 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
16847 there are no pending characters.
16848
e45deb9e 168492005-11-03 Hollis Blanchard <hollis@penguinppc.org>
16850
16851 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
16852 `grub_strndup' to drop device arguments. Replace unnecessary
16853 `grub_strndup' with `grub_strdup'.
16854
4ce32619 168552005-11-03 Hollis Blanchard <hollis@penguinppc.org>
16856
16857 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
16858 `debug' environment variable has been set.
16859
168602005-11-02 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 16861
4ce32619 16862 * Makefile.in (install-local): Use $(DATA).
16863 (uninstall): Likewise.
16864 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
16865 (sbin_UTILITIES): ... to here.
16866 (sbin_SCRIPTS): New variable.
16867 (grub_install_SOURCES): New variable.
16868 * util/powerpc/ieee1275/grub-install.in: New file.
16869 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
16870 variable.
16871 (add_segments): Call `grub_util_get_path'.
16872
25fe6f03 168732005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
16874
16875 From Timothy Baldwin:
16876 * commands/ls.c (grub_ls_list_files): Close FILE with
16877 grub_file_close.
16878 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
16879
04ccf3ec 168802005-10-24 Marco Gerards <mgerards@xs4all.nl>
16881
16882 * include/grub/parser.h: New file.
16883
16884 * kern/parser.c: Likewise.
16885
16886 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
16887 (grub_setup_SOURCES): Likewise.
16888 (grub_probefs_SOURCES): Likewise.
16889 (grub_emu_SOURCES): Likewise.
16890 (kernel_img_HEADERS): Add `parser.h'.
16891
16892 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
16893 (grub_emu_SOURCES): Add `kern/parser.c'.
16894 (grubof_SOURCES): Likewise.
16895
16896 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
16897 (grubof_SOURCES): Add `kern/parser.c'.
16898
16899 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
16900
16901 * kern/misc.c (grub_split_cmdline): Removed function.
16902
16903 * kern/rescue.c: Include <grub/parser.h>.
16904 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
16905 of `grub_split_cmdline'.
16906
16907 * normal/command.c: Include <grub/parser.h>.
16908 (grub_command_execute): Use `grub_parser_split_cmdline' instead
16909 of `grub_split_cmdline'.
16910
16911 * normal/completion.c: Include <grub/parser.h>.
16912 (cmdline_state): New variable.
16913 (iterate_dir): End the filename with a quote depending on the
16914 command line state.
16915 (get_state): new function.
16916 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
16917 split the arguments and determine the current argument. When the
16918 argument string is not quoted, escape all spaces.
16919
6d8f4b0e 169202005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
16921
16922 * normal/sparc64/setjmp.S: New file.
16923
15cf03ed 169242005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
16925
16926 * include/grub/sparc64/libgcc.h: New file.
16927 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
16928 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
16929 normal/sparc64/setjmp.c.
16930
03e8661a 169312005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
16932
16933 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
16934 * kern/sparc64/cache.S: New file.
16935 * kern/sparc64/cache.c: Removed.
16936 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
16937 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
16938 -mtune=ultrasparc.
16939 (COMMON_LDFLAGS): Add -melf64_sparc.
16940 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
16941 (grubof_SOURCES): Use cache.S instead of cache.c.
16942 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
16943 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
16944 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
16945 commented though.
16946 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
16947 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
16948 (linux_mod_CFLAGS): Commented out.
16949 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
16950 out because module isn't built.
16951 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
16952 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
16953 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
16954 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
16955 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
16956 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
16957 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
16958 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
16959 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
16960 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
16961 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
16962 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
16963 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
16964 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
16965
34eeec8a 169662005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
16967
16968 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
16969 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
16970 longer, because HFS should not be used on PC.
16971
708367a3 169722005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
16973
16974 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
16975 consistently within the loop.
16976
6fa1251a 169772005-10-15 Marco Gerards <mgerards@xs4all.nl>
16978
16979 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
16980 directory can not be read.
16981
4801580b 169822005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
16983
16984 * configure.ac (AC_INIT): Increase the version number to 1.91.
16985
16986 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
16987 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
16988 term/i386/pc/serial.c.
16989
219ad426 169902005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
16991
16992 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
16993 file size must be permitted.
16994
16995 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
16996 between %ah and %al.
16997
688e5699 169982005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
16999
17000 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
17001 grub_uint64_t.
17002 Call the hook with a NUL-terminated filename.
17003 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
17004 grub_cpu_to_be32.
17005
17006 * kern/term.c (cursor_state): New variable.
17007 (grub_term_set_current): Reset the cursor state on a new
17008 terminal.
17009 (grub_setcursor): Rewritten to use CURSOR_STATE.
17010 (grub_getcursor): New function.
17011
17012 * include/grub/term.h (grub_getcursor): New prototype.
17013
17014 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
17015 integers on ARM. Reported by Timothy Baldwin
17016 <T.E.Baldwin99@members.leeds.ac.uk>.
17017
bb34586c 170182005-10-11 Marco Gerards <mgerards@xs4all.nl>
17019
17020 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
17021 allocated.
17022 (grub_sfs_dir): Likewise.
17023
9a909877 170242005-10-09 Marco Gerards <mgerards@xs4all.nl>
17025
17026 Add support for the SFS filesystem.
17027
17028 * fs/sfs.c: New file.
17029
17030 * DISTLIST: Added `fs/sfs.c'.
17031
17032 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
17033 (grub_probefs_SOURCES): Likewise.
17034 (grub_emu_SOURCES): Likewise.
17035 (pkgdata_MODULES): Add `sfs.mod'.
17036 (sfs_mod_SOURCES): New variable.
17037 (sfs_mod_CFLAGS): Likewise.
17038 (sfs_mod_LDFLAGS): Likewise.
17039
17040 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
17041 (pkgdata_MODULES): Add `sfs.mod'.
17042 (sfs_mod_SOURCES): New variable.
17043 (sfs_mod_CFLAGS): Likewise.
17044
17045 * util/grub-emu.c (main): Call `grub_sfs_init' and
17046 `grub_sfs_fini'.
17047
17048 * include/grub/fs.h (grub_sfs_init): New prototype.
17049 (grub_sfs_fini): Likewise.
17050
57bdbde3 170512005-10-07 Marco Gerards <mgerards@xs4all.nl>
17052
17053 Add support for the AFFS filesystem.
17054
17055 * fs/affs.c: New file.
17056
17057 * DISTLIST: Added `fs/affs.c'.
17058
17059 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
17060 (grub_probefs_SOURCES): Likewise.
17061 (grub_emu_SOURCES): Likewise.
17062 (pkgdata_MODULES): Add `affs.mod'.
17063 (affs_mod_SOURCES): New variable.
17064 (affs_mod_CFLAGS): Likewise.
17065 (affs_mod_LDFLAGS): Likewise.
17066
17067 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
17068 (pkgdata_MODULES): Add `affs.mod'.
17069 (affs_mod_SOURCES): New variable.
17070 (affs_mod_CFLAGS): Likewise.
17071
17072 * util/grub-emu.c (main): Call `grub_affs_init' and
17073 `grub_affs_fini'.
17074
17075 * include/grub/fs.h (grub_affs_init): New prototype.
17076 (grub_affs_fini): Likewise.
17077
047b67e0 170782005-10-01 Marco Gerards <mgerards@xs4all.nl>
17079
17080 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
17081
59b8208a 170822005-10-01 Marco Gerards <mgerards@xs4all.nl>
17083
17084 * configure.ac: Accept `x86_64' as host_cpu. In that case add
17085 `-m32' to CFLAGS.
17086
17087 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
17088 linking.
f19dbdb7 17089
59b8208a 17090 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
17091 (COMMON_LDFLAGS): New variable.
17092 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
17093 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
17094 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
17095 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
17096 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
17097 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
17098 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
17099 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
17100 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
17101 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
17102 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
17103 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
17104 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
17105 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
17106 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
17107 variables.
17108 (normal_mod_ASFLAGS): Add `-m32'.
17109
17110 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
17111 (grub_host_size_t, grub_host_ssize_t): New types.
17112 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
fe6b695a 17113 dependent of `GRUB_CPU_SIZEOF_VOID_P' instead on
59b8208a 17114 `GRUB_HOST_SIZEOF_VOID_P'.
17115
17116 * include/grub/kernel.h (struct grub_module_header): Type of
17117 member offset changed to `grub_host_off_t'. Type of member size
17118 changed to `grub_host_size_t'.
17119 (struct grub_module_info): Type of member offset changed to
17120 `grub_host_off_t'. Type of member size changed to
17121 `grub_host_size_t'.
17122
b4093103 171232005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
17124
17125 Make GRUB's kernel compliant to Multiboot Specification.
f19dbdb7 17126
b4093103 17127 * kern/i386/pc/startup.S (multiboot_header): New label.
17128 (multiboot_entry): Likewise.
17129 (multiboot_trampoline): Likewise.
17130
17131 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
17132 Increased to 0x4A0.
17133
17134 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
17135 put parentheses after a question mark.
17136 [!GRUB_UTIL] (my_mod): New variable.
17137
17138 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
17139
b2499b29 171402005-09-28 Marco Gerards <mgerards@xs4all.nl>
17141
17142 Adds support for the XFS filesystem. Btrees are not supported
17143 yet.
17144
17145 * fs/xfs.c: New file.
17146
17147 * DISTLIST: Added `fs/xfs.c'.
17148
17149 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
17150 (grub_probefs_SOURCES): Likewise.
17151 (grub_emu_SOURCES): Likewise.
17152 (pkgdata_MODULES): Add `xfs.mod'.
17153 (xfs_mod_SOURCES): New variable.
17154 (xfs_mod_CFLAGS): Likewise.
17155
17156 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
17157 (pkgdata_MODULES): Add `xfs.mod'.
17158 (xfs_mod_SOURCES): New variable.
17159 (xfs_mod_CFLAGS): Likewise.
17160
17161 * util/grub-emu.c (main): Call `grub_xfs_init' and
17162 `grub_xfs_fini'.
17163
17164 * include/grub/fs.h (grub_xfs_init): New prototype.
17165 (grub_xfs_fini): Likewise.
17166
f19dbdb7 17167
83d37a62 171682005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
17169
17170 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
17171 color modes, allow greater than 16 colors to be configured as
17172 a default palette.
17173
47d2d65e 171742005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
17175
17176 * normal/completion.c (complete_arguments): Add the qualifier
17177 const into OPTIONS.
17178
17179 From Omniflux <omniflux+lists@omniflux.com>:
17180 * include/grub/terminfo.h: New file.
17181 * include/grub/tparm.h: Likewise.
17182 * include/grub/i386/pc/serial.h: Likewise.
17183 * term/terminfo.c: Likewise.
17184 * term/tparm.c: Likewise.
17185 * term/i386/pc/serial.c: Likewise.
17186 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
17187 serial.mod.
17188 (terminfo_mod_SOURCES): New variable.
17189 (terminfo_mod_CFLAGS): Likewise.
17190 (serial_mod_SOURCES): Likewise.
17191 (serial_mod_CFLAGS): Likewise.
17192
48b671ff 171932005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
17194
17195 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
17196 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
17197 and kern/powerpc/ieee1275/cmain.c, respectively.
17198
17199 * boot/powerpc/ieee1275/crt0.S: Moved to ...
17200 * kern/powerpc/ieee1275/crt0.S: ... here.
17201
17202 * boot/powerpc/ieee1275/cmain.c: Moved to ...
17203 * kern/powerpc/ieee1275/cmain.c: ... here.
f19dbdb7 17204
48b671ff 17205 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
17206 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
17207 instead of boot/powerpc/ieee1275/crt0.S and
17208 boot/powerpc/ieee1275/cmain.c, respectively.
17209
17210 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
17211 sectors. It was not used anyway.
17212
09fc77a7 172132005-08-30 Hollis Blanchard <hollis@penguinppc.org>
17214
17215 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
17216 `unused parameter' warning.
17217
003789c7 172182005-08-30 Hollis Blanchard <hollis@penguinppc.org>
17219
17220 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
17221 function.
17222 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
17223 getcharwidth.
17224
67f44c86 172252005-08-28 Marco Gerards <metgerards@student.han.nl>
17226
17227 * include/grub/normal.h (enum grub_completion_type): Added
17228 `GRUB_COMPLETION_TYPE_ARGUMENT'.
17229
17230 * normal/cmdline.c (print_completion): Handle
17231 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
17232 * normal/menu_entry.c (store_completion): Likewise.
17233
17234 * normal/completion.c (complete_arguments): New function.
17235 (grub_normal_do_completion): Call `complete_arguments' when the
17236 current words start with a dash.
17237
0b5abe02 172382005-08-27 Marco Gerards <metgerards@student.han.nl>
17239
17240 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
17241 `gzio.mod' instead of `io.mod').
17242
d9864ee1 172432005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
17244
17245 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
17246 (DISTDIRS): Added io and video.
17247 Rewrite the search routine to make an output consistently.
17248
17249 * DISTLIST: Added conf/sparc64-ieee1275.mk,
17250 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
17251 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
17252 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
17253 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
17254 util/powerpc/ieee1275/misc.c.
f19dbdb7 17255
d9864ee1 17256 * include/grub/gzio.h: New file.
17257 * io/gzio.c: Likewise.
f19dbdb7 17258
d9864ee1 17259 * kern/file.c (grub_file_close): Call grub_device_close only if
17260 FILE->DEVICE is not NULL.
17261
17262 * include/grub/mm.h [!NULL] (NULL): New macro.
17263
17264 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
17265
17266 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
17267 (pkgdata_MODULES): Added gzio.mod.
17268 (gzio_mod_SOURCES): New variable.
17269 (gzio_mod_CFLAGS): Likewise.
17270
17271 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
17272 (pkgdata_MODULES): Added gzio.mod.
17273 (gzio_mod_SOURCES): New variable.
17274 (gzio_mod_CFLAGS): Likewise.
17275
17276 * commands/cat.c: Include grub/gzio.h.
17277 (grub_cmd_cat): Use grub_gzfile_open instead of
17278 grub_file_open.
f19dbdb7 17279
d9864ee1 17280 * commands/cmp.c: Include grub/gzio.h.
17281 (grub_cmd_cmp): Use grub_gzfile_open instead of
17282 grub_file_open.
17283
17284 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
17285 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
17286 grub_file_open.
17287 (grub_rescue_cmd_module): Likewise.
17288
fa46f4b5 172892005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
17290
17291 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
17292 kern/sparc64/ieee1275/init.c because it contains _start.
17293 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
17294
e9211b5d 172952005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
17296
17297 * configure.ac: Add support for sparc64 host with ieee1275
17298 firmware.
17299 * configure: Generated from configure.ac.
17300 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
17301 instead of int.
17302 (grub_ofdisk_read): Likewise.
17303 (grub_ofdisk_open): Use %p to print pointer values, and cast the
17304 pointers as (void *) to remove a warning.
17305 (grub_ofdisk_close): Likewise.
17306 (grub_ofdisk_read): Likewise.
17307 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
17308 returns, so make it return void to remove a warning.
17309 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
17310 Corresponding prototype change.
17311 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
17312 values, and cast the pointers as (void *) to remove a warning.
17313 (grub_mm_dump): Likewise.
17314 * conf/sparc64-ieee1275.mk: New file.
17315 * conf/sparc64-ieee1275.rmk: Likewise.
17316 * include/grub/sparc64/setjmp.h: Likewise.
17317 * include/grub/sparc64/types.h: Likewise.
17318 * include/grub/sparc64/ieee1275/console.h: Likewise.
17319 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
17320 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
17321 * include/grub/sparc64/ieee1275/time.h: Likewise.
17322 * kern/sparc64/cache.c: Likewise.
17323 * kern/sparc64/dl.c: Likewise.
17324 * kern/sparc64/ieee1275/init.c: Likewise.
17325 * kern/sparc64/ieee1275/openfw.c: Likewise.
17326
385c6a92 173272005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
17328
17329 * util/console.c (grub_ncurses_putchar): If C is greater than
17330 0x7f, set C to a question mark.
17331 (grub_ncurses_getcharwidth): New function.
17332 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
17333 getcharwidth.
17334
17335 * normal/menu.c (print_entry): Made aware of Unicode. First,
17336 convert TITLE to UCS-4, and predict the cursor position by
17337 grub_getcharwidth.
17338
17339 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
17340 const to SRC.
17341 * kern/misc.c (grub_utf16_to_utf8): Likewise.
17342
16ccb8b1 173432005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
17344
17345 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
17346 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
17347 grub_strcat.
17348
17349 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
17350 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
17351 grub_strcpy and grub_strlen. Take it into account that a space
17352 character is inserted as a delimiter.
17353
6a85ce79 173542005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
17355
17356 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
fe6b695a 17357 invalid magic in the error.
6a85ce79 17358
17359 * commands/search.c: New file.
f19dbdb7 17360
6a85ce79 17361 * util/grub-emu.c (main): Call grub_search_init and
17362 grub_search_fini.
17363
17364 * kern/rescue.c (grub_rescue_print_disks): Removed.
17365 (grub_rescue_print_devices): New function.
17366 (grub_rescue_cmd_ls): Use grub_device_iterate with
17367 grub_rescue_print_devices instead of grub_disk_dev_iterate with
17368 grub_rescue_print_disks.
17369
17370 * kern/partition.c (grub_partition_iterate): Return the result of
17371 PARTMAP->ITERATE instead of GRUB_ERRNO.
17372
17373 * kern/device.c: Include grub/partition.h.
17374 (grub_device_iterate): New function.
17375
17376 * include/grub/partition.h (grub_partition_iterate): Return int
17377 instead of grub_err_t.
17378
17379 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
17380 prototype.
17381 [GRUB_UTIL] (grub_search_fini): Likewise.
17382
17383 * include/grub/device.h (grub_device_iterate): New prototype.
17384
17385 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
17386 commands/search.c.
17387 (pkgdata_MODULES): Added search.mod.
17388 (search_mod_SOURCES): New variable.
17389 (search_mod_CFLAGS): Likewise.
17390
17391 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
17392 (pkgdata_MODULES): Added search.mod.
17393 (search_mod_SOURCES): New variable.
17394 (search_mod_CFLAGS): Likewise.
17395
17396 * commands/ls.c (grub_ls_list_disks): Renamed to ...
17397 (grub_ls_list_devices): ... this, and use grub_device_iterate.
17398 All callers changed.
17399
17400 * DISTLIST: Added commands/search.c.
17401
ef095434 174022005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
17403
17404 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
17405 conversion.
17406 (grub_getcharwidth): New function.
17407
17408 * kern/misc.c (grub_utf8_to_ucs4): New function.
17409
17410 * include/grub/term.h (struct grub_term): Added a new member
17411 "getcharwidth".
17412 (grub_getcharwidth): New prototype.
17413
17414 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
17415
17416 * term/i386/pc/console.c (map_char): New function. Segregated from
17417 grub_console_putchar.
17418 (grub_console_putchar): Use map_char.
17419 (grub_console_getcharwidth): New function.
17420 (grub_console_term): Specified grub_console_getcharwidth as
17421 getcharwidth.
17422
17423 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
17424 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
17425
17426 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
17427 GRUB_ERRNO.
17428 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
17429 on grub_strtoul completely.
17430 (write_char): Declare local variables in the beginning of the
17431 function.
17432 (grub_vesafb_getcharwidth): New function.
17433 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
17434 getcharwidth.
17435
1f0a95e4 174362005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
17437
17438 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
17439 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
17440 commands/i386/pc/vbetest.c.
17441
17442 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
17443 call grub_vbe_get_controller_info again, because the returned
17444 information is volatile.
17445 (grub_vbe_set_video_mode): Mostly rewritten.
17446 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
17447 grub_vbe_status_t correctly.
17448 (grub_vbe_get_video_mode_info): Likewise.
17449 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
17450 several if statements.
17451
17452 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
17453 * commands/i386/pc/vbeinfo.c: ... this.
17454
17455 * commands/i386/pc/vbe_test.c: Renamed to ...
17456 * commands/i386/pc/vbetest.c: ... this.
17457
17458 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
17459 ...
17460 (grub_cmd_vbeinfo): ... this. Save video modes before
17461 iterating. Skip a video mode, if it is not available, not enough
17462 information is given or it is monochrome. Show the memory
17463 model. Leave the interpretation of MODEVAR to grub_strtoul
17464 completely.
17465 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
17466 (GRUB_MOD_FINI): Likewise.
17467
17468 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
17469 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
17470 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
17471 duplicated grub_env_get. Leave the interpretation of MODEVAR to
17472 grub_strtoul completely.
17473 (real2pm): Removed.
17474 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
17475 (GRUB_MOD_FINI): Likewise.
17476
17477 * normal/misc.c: Include grub/mm.h.
17478
17479 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
17480 vbe_list_modes with vbetest.mod and vbeinfo.mod.
17481 (vbe_list_modes_mod_SOURCES): Removed.
17482 (vbe_list_modes_mod_CFLAGS): Likewise.
17483 (vbe_test_mod_SOURCES): Likewise.
17484 (vbe_test_mod_CFLAGS): Likewise.
17485 (vbeinfo_mod_SOURCES): New variable.
17486 (vbeinfo_mod_CFLAGS): Likewise.
17487 (vbetest_mod_SOURCES): Likewise.
17488 (vbetest_mod_CFLAGS): Likewise.
17489
992ffbbe 174902005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
17491
17492 * normal/misc.c: New file.
17493
17494 * DISTLIST: Added normal/misc.c.
f19dbdb7 17495
992ffbbe 17496 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
17497 DISK to HOOK. Call HOOK with DISK.
17498 * partmap/apple.c (apple_partition_map_iterate): Likewise.
17499 * partmap/pc.c (pc_partition_map_iterate): Likewise.
17500 * partmap/sun.c (sun_partition_map_iterate): Likewise.
17501
17502 * normal/menu_entry.c (struct screen): Added a new member
17503 "completion_shown".
17504 (completion_buffer): New global variable.
17505 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
17506 (store_completion): New function.
17507 (complete): Likewise.
17508 (clear_completions): Likewise.
17509 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
17510 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
17511 a tab, call complete.
17512
17513 * normal/completion.c (disk_dev): Removed.
17514 (print_simple_completion): Likewise.
17515 (print_partition_completion): Likewise.
17516 (print_func): New global variable.
17517 (add_completion): Do not take the arguments WHAT or PRINT any
17518 longer. Added a new argument TYPE. Instead of printing directly,
17519 call PRINT_FUNC if not NULL.
17520 All callers changed.
17521 (complete_device): Use a local variable DEV instead of
17522 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
17523 (grub_normal_do_completion): Take a new argument HOOK. Do not
17524 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
17525 empty string, return NULL instead.
17526 All callers changed.
17527
17528 * normal/cmdline.c (print_completion): New function.
17529
17530 * kern/partition.c (grub_partition_iterate): Add an argument DISK
17531 to HOOK.
17532 All callers changed.
17533
17534 * kern/disk.c (grub_print_partinfo): Removed.
17535
17536 * include/grub/partition.h (struct grub_partition_map): Add a new
17537 argument DISK into HOOK of ITERATE.
17538 (grub_partition_iterate): Add a new argument DISK to HOOK.
17539
17540 * include/grub/normal.h (enum grub_completion_type): New enum.
17541 (grub_completion_type_t): New type.
17542 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
17543 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
17544 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
17545 (GRUB_COMPLETION_TYPE_FILE): Likewise.
17546 (grub_normal_do_completion): Added a new argument HOOK.
17547 (grub_normal_print_device_info): New prototype.
17548
17549 * include/grub/disk.h (grub_print_partinfo): Removed.
17550
17551 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
17552 (normal_mod_SOURCES): Likewise.
17553 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
17554 (normal_mod_SOURCES): Likewise.
17555
17556 * commands/ls.c (grub_ls_list_disks): Use
17557 grub_normal_print_device_info instead of grub_print_partinfo. Free
17558 PNAME.
17559 (grub_ls_list_files): Use grub_normal_print_device_info instead of
17560 duplicating the code.
17561
0bd41162 175622005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
17563
17564 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
f19dbdb7 17565 follow GCS more precisely.
17566 * commands/i386/pc/vbe_test.c: Likewise.
17567 * include/grub/i386/pc/vbe.h: Likewise.
17568 * term/i386/pc/vesafb.c: Likewise.
17569 * video/i386/pc/vbe.c: Likewise.
0bd41162 17570
6323696a 175712005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
17572
17573 * DISTLIST: Added term/i386/pc/vesafb.c
17574 DISTLIST: Added video/i386/pc/vbe.c
17575 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
17576 DISTLIST: Added commands/i386/pc/vbe_test.c.
17577 * commands/i386/pc/vbe_list_modes.c: New file.
17578 * commands/i386/pc/vbe_test.c: Likewise.
17579 * term/i386/pc/vesafb.c: Likewise.
17580 * video/i386/pc/vbe.c: Likewise.
17581 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
17582 (grub_vbe_probe) Added prototype.
17583 (grub_vbe_set_video_mode) Likewise.
17584 (grub_vbe_get_video_mode) Likewise.
17585 (grub_vbe_get_video_mode_info) Likewise.
17586 (grub_vbe_set_pixel_rgb) Likewise.
17587 (grub_vbe_set_pixel_index) Likewise.
17588 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
17589 (pkgdata_MODULES): Added vesafb.mod.
17590 (pkgdata_MODULES): Added vbe_list_modes.mod.
17591 (pkgdata_MODULES): Added vbe_test.mod.
17592 (vbe_mod_SOURCES): Added.
17593 (vbe_mod_CFLAGS): Likewise.
17594 (vesafb_mod_SOURCES): Likewise.
17595 (vesafb_mod_CFLAGS): Likewise.
17596 (vbe_list_modes_mod_SOURCES): Likewise.
17597 (vbe_list_modes_mod_CFLAGS): Likewise.
17598 (vbe_test_mod_SOURCES): Likewise.
17599 (vbe_test_mod_CFLAGS): Likewise.
17600
0a74e62f 176012005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
17602
0a74e62f 17603 * normal/command.c (grub_command_execute): If INTERACTIVE is
17604 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
17605 CMDLINE. Disable the pager if INTERACTIVE is true.
17606 All callers are changed.
17607
17608 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
17609 before reading a config file.
17610 * normal/main.c (read_config_file): Even if a command is not
17611 found, register it if it is within an entry.
17612
17613 * util/grub-emu.c: Include sys/types.h and unistd.h.
17614 (options): Added --hold.
17615 (struct arguments): Added a new member "hold".
17616 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
17617 missing.
17618 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
17619 cleared by a debugger, if it is not zero.
17620
17621 * include/grub/normal.h (grub_command_execute): Add an argument
17622 INTERACTIVE.
17623
e51f85ae 176242005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
17625
17626 * DISTLIST: Added include/grub/i386/pc/vbe.h.
17627
e9c6f39b 176282005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
17629
17630 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
17631 program with another one, because the old one didn't detect a bug
17632 in gcc-3.4. Always use regparm 2, because the new test is still
17633 not enough for gcc-4.0. Someone must investigate a simple test
17634 case which detects a bug in gcc-4.0.
17635
8de3495c 176362005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
17637
17638 * DISTLIST: Added normal/completion.c.
17639
17640 * normal/completion.c: New file.
f19dbdb7 17641
8de3495c 17642 * term/i386/pc/console.c (grub_console_getwh): New function.
17643 (grub_console_term): Assign grub_console_getwh to getwh.
17644
17645 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
17646 function is defined in normal/completion.c as
17647 grub_normal_do_completion.
17648 (grub_cmdline_get): Use grub_normal_do_completion instead of
17649 grub_tab_complete.
17650
17651 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
17652 returns non-zero, otherwise return 0.
17653 (grub_partition_iterate): First, probe the partition map. Then,
17654 call ITERATE only for this partition map.
17655
17656 * kern/misc.c (grub_strncmp): Rewritten.
17657
17658 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
17659 returns non-zero. Otherwise return 0.
17660
17661 * include/grub/partition.h (grub_partition_map_iterate): Return
17662 int instead of void.
17663
17664 * include/grub/normal.h (grub_normal_do_completion): New prototype.
17665
17666 * include/grub/misc.h (grub_strncmp): Change the type of N to
17667 grub_size_t.
17668
17669 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
17670 of void.
17671
17672 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
fe6b695a 17673 unsigned explicitly before comparing it with I.
8de3495c 17674
17675 * kern/main.c (grub_env_write_root): Add the attribute unused into
17676 VAR.
17677
17678 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
17679 normal/completion.c.
17680 (normal_mod_SOURCES): Likewise.
17681 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
17682 (normal_mod_SOURCES): Likewise.
17683
17684 * normal/command.c (grub_iterate_commands): If ITERATE returns
17685 non-zero, return one immediately.
17686
e85e144b 176872005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
17688
17689 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
17690 * kern/i386/pc/startup.S: Updated Global Descriptor table's
17691 descriptions.
17692 (grub_vbe_get_controller_info): New function.
17693 (grub_vbe_get_mode_info): Likewise.
17694 (grub_vbe_set_mode): Likewise.
17695 (grub_vbe_get_mode): Likewise.
17696 (grub_vbe_set_memory_window): Likewise.
17697 (grub_vbe_get_memory_window): Likewise.
17698 (grub_vbe_set_scanline_length): Likewise.
17699 (grub_vbe_get_scanline_length): Likewise.
17700 (grub_vbe_set_display_start): Likewise.
17701 (grub_vbe_get_display_start): Likewise.
17702 (grub_vbe_set_palette_data): Likewise.
17703 * include/grub/i386/pc/vbe.h: New file.
17704
c46153d2 177052005-08-08 Hollis Blanchard <hollis@penguinppc.org>
17706
17707 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
17708 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
17709 * DISTLIST: Likewise.
17710 * kern/ieee1275/of.c: Moved to ...
17711 * kern/ieee1275/ieee1275.c: ... here.
17712
0cb90c45 177132005-08-08 Hollis Blanchard <hollis@penguinppc.org>
17714
17715 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
17716 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
17717 Pass 0 as `end' parameter to grub_strtoul().
17718
a19fb360 177192005-08-08 Hollis Blanchard <hollis@penguinppc.org>
17720
17721 * include/grub/powerpc/ieee1275/console.h: Do not include
17722 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
17723 ifdef.
17724 (grub_console_cur_color): Remove i386-specific prototype.
17725 (grub_console_real_putchar): Likewise.
17726 (grub_console_checkkey): Likewise.
17727 (grub_console_getkey): Likewise.
17728 (grub_console_getxy): Likewise.
17729 (grub_console_gotoxy): Likewise.
17730 (grub_console_cls): Likewise.
17731 (grub_console_setcursor): Likewise.
17732 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
17733 Include <grub/machine/console.h>.
17734 * term/ieee1275/ofconsole.c: Likewise.
17735
4ac9bd04 177362005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
17737
17738 * Makefile.in (LIBLZO): New variable.
17739
17740 * configure.ac: Check for LZO version 2.
17741
17742 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
17743 lzo/lzo1x.h instead of lzo1x.h.
17744
17745 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
17746 of -llzo.
17747
17748 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
17749 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
17750
17751 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
17752 copying the data from PARTITION to P.
17753
f4917dfd 177542005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
17755
17756 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
17757 negative, unload the module.
17758
17759 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
17760 map is "pc_partition_map" but not "pc".
17761 (usage): Fix the description. The options are --boot-image and
17762 --core-image but not --boot-file or --core-file.
17763 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
17764 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
17765 DEFAULT_DIRECTORY.
17766
17767 * util/i386/pc/grub-install.in: Do not specify --boot-file or
17768 --core-file. Specify INSTALL_DEVICE as an argument.
17769
17770 * util/console.c: Include config.h.
17771 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
17772 [HAVE_NCURSES_H]: Include ncurses.h.
17773 [HAVE_CURSES_H]: Include curses.h.
17774 [!A_NORMAL] (A_NORMAL): Defined as zero.
17775 [!A_STANDOUT] (A_STANDOUT): Likewise.
17776
17777 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
17778 -lncurses.
17779 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
17780
17781 * configure.ac: Check for curses libraries and headers.
17782
17783 * Makefile.in (LIBCURSES): New variable.
17784
17785 * genmk.rb (Script::rule): Set the executable bits.
17786
17787 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
17788 name of the PC partition map is "pc_partition_map" but not "pc".
17789
0e143073 177902005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
17791
17792 * util/i386/pc/grub-install.in (grub_probefs): New variable.
17793 (modules): Likewise.
17794 (usage): Added descriptions for --modules and --grub-probefs.
17795 Handle --modules and --grub-probefs. Save the arguments in MODULES
17796 and GRUB_PROBEFS, respectively.
17797 Auto-detect a filesystem module against GRUBDIR. If the result is
17798 empty and modules are not specified explicitly, abort the
17799 installation. Add the result to MODULES.
17800
17801 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
17802 disk/powerpc/ieee1275/ofdisk.c,
17803 include/grub/powerpc/ieee1275/init.h and
17804 term/powerpc/ieee1275/ofconsole.c.
17805 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
17806 term/ieee1275/ofconsole.c.
17807
17808 * include/grub/powerpc/ieee1275/console.h: Resurrected.
17809
17810 * COPYING: Upgraded to the latest version. Only the address of the
17811 FSF office has changed.
f19dbdb7 17812
efd6e6d5 178132005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
17814
17815 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
17816 kern/ieee1275.c with kern/ieee1275/of.c.
17817
17818 * kern/ieee1275.c: Moved to ...
17819 * kern/ieee1275/of.c: ... here.
17820
8ceafda2 178212005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
17822
17823 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
fe6b695a 17824 readability.
8ceafda2 17825
17826 * config.guess: Updated to the latest version from gnulib.
17827 * config.sub: Likewise.
17828 * install.sh: Likewise.
17829 * mkinstalldirs: Likewise.
17830
17831 * include/grub/console.h: Removed. This file is arch-specific. Do
17832 not put this in include/grub.
17833
17834 * include/grub/i386/pc/console.h: Resurrected.
17835
17836 * util/console.c: Include grub/machine/console.h instead of
17837 grub/console.h.
17838 * util/grub-emu.c: Likewise.
17839
267f6cd9 178402005-08-04 Marco Gerards <metgerards@student.han.nl>
17841
17842 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
17843 hardcoded value.
f19dbdb7 17844
267f6cd9 17845 From Vincent Pelletier <subdino2004@yahoo.fr>
17846 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
17847 Redefined to use grub_getwh.
17848 (grub_term): New member named getwh.
17849 (grub_getwh): New prototype.
17850 * kern/term.c (grub_getwh): New function.
17851 * term/i386/pc/console.c (grub_console_getwh): New function.
17852 (grub_console_term): New member `getwh'.
17853 * term/i386/pc/vga.c (grub_vga_getwh): New function.
17854 (grub_vga_term): New member `getwh'.
0b5abe02 17855 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
267f6cd9 17856 grub_ssize_t.
17857 (grub_ofconsole_getw): New function.
17858 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
17859 (grub_ofconsole_term): New field named getwh and new initial
17860 value.
17861
3be7266d 178622005-08-03 Hollis Blanchard <hollis@penguinppc.org>
17863
17864 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
17865 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
17866 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
17867 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
17868 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
17869 of <grub/machine/ieee1275.h>.
17870 * commands/ieee1275/reboot.c: Likewise.
17871 * boot/powerpc/ieee1275/ieee1275.c: Move ...
17872 * kern/ieee1275.c: ... to here. All users updated. Change all
17873 parameter structs to use new type `grub_ieee1275_cell_t'.
17874 * term/powerpc/ieee1275/ofconsole.c: Move ...
17875 * term/ieee1275/ofconsole.c: ... to here. All users updated.
17876 * disk/powerpc/ieee1275/ofdisk.c: Move ...
17877 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
17878 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
17879 to return int.
17880 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
17881 Remove unused prototypes. All users updated.
17882 * include/grub/powerpc/ieee1275/console.h: Removed.
17883 * include/grub/powerpc/ieee1275/ieee1275.h: Define
17884 `grub_ieee1275_cell_t'.
17885 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
17886 Cast comparisons with -1 to the correct type.
17887 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
17888 type to match `grub_ieee1275_entry_fn'.
17889
8b5f3938 178902005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
17891
17892 * DISTLIST: Added util/i386/pc/grub-probefs.c.
17893
17894 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
17895 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
17896 partmap/sun.c.
17897 (grub_probefs_SOURCES): New variable.
17898
17899 * util/i386/pc/grub-probefs.c: New file.
17900
17901 * util/i386/pc/grub-setup.c (main): Call
17902 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
17903 grub_hfs_init and grub_jfs_init to initialize the system. Call
17904 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
17905 grub_pc_partition_map_fini to finish the system.
17906
ea409713 179072005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
17908
17909 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
17910 function.
17911 (grub_multiboot_load_elf32): Likewise.
17912 (grub_multiboot_is_elf64): Likewise.
17913 (grub_multiboot_load_elf64): Likewise.
17914 (grub_multiboot_load_elf): Likewise.
17915 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
17916 an ELF32 or ELF64 file.
17917 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
17918
17919 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
17920 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
17921 NULL before calling FS->LABEL.
17922 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
17923 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
17924 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
17925 before calling FS->LABEL.
17926
141a288b 179272005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
17928
17929 * util/i386/pc/grub-install.in (datadir): New variable.
17930 (libdir): Removed.
17931 (pkgdatadir): New variable.
17932 (pkglibdir): Removed.
17933
0d5f8a54 179342005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
17935
17936 * DISTLIST: Added util/i386/pc/grub-install.in.
17937
17938 * util/i386/pc/grub-install.in: New file.
17939
17940 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
17941 (grub_install_SOURCES): Likewise.
17942
17943 * genmk.rb: Added support for scripts.
17944 (Script): New class.
17945 (scripts): New variable.
17946
17947 * Makefile.in (install-local): Install sbin_SCRIPTS by
17948 INSTALL_SCRIPT.
17949 (uninstall): Remove sbin_SCRIPTS.
17950
17951 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
17952 device, try to get a GRUB device by
17953 grub_util_biosdisk_get_grub_dev.
17954 Free DEST_DEV.
17955
17956 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
17957 description for --device-map.
17958
5f968e1e 179592005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
17960
17961 Change the semantics of variable hooks. They now return strings
17962 instead of error values.
f19dbdb7 17963
5f968e1e 17964 * util/i386/pc/grub-setup.c: Include grub/env.h.
17965 (setup): Use grub_device_set_root instead of grub_env_set.
17966
17967 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
17968 grub_env_get instead of grub_device_set_root and
17969 grub_device_get_root, respectively.
17970
17971 * kern/main.c (grub_env_write_root): New function.
17972 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
17973 grub_env_set instead of grub_device_set_root.
17974
17975 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
17976 many variables.
17977 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
17978 rather than calling ENV->WRITE_HOOK afterwards.
17979 (grub_env_get): Return the result of ENV->READ_HOOK rather than
17980 passing a pointer of a pointer.
17981 (grub_register_variable_hook): Change the types of "read_hook" and
17982 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
17983 respectively.
17984 Allocate the default empty string on the heap, because this string
17985 may be freed later.
17986
17987 * kern/device.c: Include grub/env.h.
17988 (grub_device_set_root): Removed.
17989 (grub_device_get_root): Likewise.
17990 (grub_device_open): Use grub_env_get instead of
17991 grub_device_get_root.
17992
17993 * include/grub/env.h (grub_env_read_hook_t): New type.
17994 (grub_env_write_hook_t): Likewise.
17995 (grub_env_var): Change the types of "read_hook" and "write_hook"
17996 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
17997 (grub_register_variable_hook): Likewise.
17998
17999 * include/grub/device.h (grub_device_set_root): Removed.
18000 (grub_device_set_root): Likewise.
18001
18002 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
18003 make sure that DIRNAME terminates with '/', so that
18004 grub_fat_find_dir will fail if PATH is not a directory.
18005
18006 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
18007 from DIRNAME.
18008 Use the qualifier auto for print_files and print_files_long.
18009 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
18010 as a regular file.
18011 Put a newline only if there is no error.
18012 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
18013 used.
18014
896f0afd 180152005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
18016
18017 * kern/partition.c (grub_partition_probe): Initialize PART to
18018 NULL. Otherwise, when no partition map is registered, this returns
18019 a garbage.
18020
b28b81b2 180212005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
18022
18023 * partmap/apple.c (apple_partition_map_iterate): Check if POS
18024 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
18025 valid.
18026
5f3607e0 180272005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
18028
18029 * commands/ls.c (grub_ls_list_disks): Print the filesystem
18030 information on each device, if it does not have partitions. Print
18031 "Device" instead of "Disk", because this function is not specific
18032 to disk devices.
18033
18034 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
18035 static to ensure that it is put on the memory rather than a
18036 register.
18037
502c87e8 180382005-07-17 Yoshinori Okuji <okuji@enbug.org>
18039
18040 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
18041 (grub_cat_init): Likewise.
18042 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
18043 (options): Likewise.
18044 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
18045 (grub_configfile_init): Likewise.
18046 * font/manager.c (GRUB_MOD_INIT): Likewise.
18047 * commands/help.c (GRUB_MOD_INIT): Likewise.
18048 (grub_help_init): Likewise.
18049 * normal/command.c (grub_command_init): Likewise.
18050 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
18051 * disk/loopback.c (grub_loop_init): Likewise.
18052 (GRUB_MOD_INIT): Likewise.
18053 * commands/ls.c (grub_ls_init): Likewise.
18054 (GRUB_MOD_INIT): Likewise.
18055 (options): Likewise.
18056 * commands/boot.c (grub_boot_init): Likewise.
18057 (GRUB_MOD_INIT): Likewise.
18058 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
18059 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
18060 (GRUB_MOD_INIT): Likewise.
18061 * commands/cmp.c (grub_cmp_init): Likewise.
18062 (GRUB_MOD_INIT): Likewise.
18063
18064 * normal/arg.c: Use <> instead of "" to include header files.
18065 (SHORT_ARG_HELP): New macro.
18066 (SHORT_ARG_USAGE): Likewise.
18067 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
18068 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
18069 descriptions.
18070 (find_short): Check if C is 'h' or 'u' explicitly.
18071 (grub_arg_show_help): Use space characters instead of tabs. Treat
18072 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
18073 are shown with --help and --usage only if they are not used for
18074 the command itself.
18075 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
18076 'h' and 'u'.
18077
18078 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
18079 const into "longarg". Change the type of "shortarg" to int.
18080
f806d18e 180812005-07-17 Yoshinori Okuji <okuji@enbug.org>
18082
18083 * boot/i386/pc/boot.S (boot_drive_check): New label.
18084
18085 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
18086 macro.
18087
18088 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
18089 which do not pass a boot drive correctly. Copied from GRUB Legacy.
18090
e293232b 180912005-07-17 Yoshinori Okuji <okuji@enbug.org>
18092
18093 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
18094 When turning off Gate A20, skip the check and return immediately,
18095 because this is not fatal usually.
18096
ebedfd00 180972005-07-17 Yoshinori Okuji <okuji@enbug.org>
18098
18099 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
18100 be 0x7C00 instead of 0x8000.
18101
18102 * boot/i386/pc/pxeboot.S: Rewritten.
18103
18104 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
18105 EXT_C.
18106 (gate_a20_check_state): Read a byte from 0x108000. Invert the
18107 result.
18108
654fc59f 181092005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
18110
18111 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
18112 robustness. This routine now supports a BIOS call and System
18113 Control Port A to modify the gate A20.
18114
18115 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
18116 Increased to 0x440.
18117
09f9923f 181182005-07-12 Hollis Blanchard <hollis@penguinppc.org>
18119
18120 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
18121 device path and resulting ihandle.
18122 (grub_ofdisk_close): dprintf the ihandle being closed.
18123 (grub_ofdisk_read): dprintf function parameters.
18124 * kern/mm.c (grub_mm_init_region): Likewise.
18125 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
18126 (grub_linux_boot): dprintf the Linux entry point, initrd address and
18127 size, and boot arguments.
18128 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
18129 before loading into memory.
18130 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
18131 before loading into memory.
18132
7ef504d8 181332005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
18134
18135 * kern/mm.c: Added much documentation.
18136 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
18137 8, set to 5 instead of 8.
18138
e0f050c2 181392005-07-10 Yoshinori Okuji <okuji@enbug.org>
18140
18141 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
18142
18143 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
18144 (grub_mkdevicemap_SOURCES): New variable.
18145
18146 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
18147 lib/device.c of GRUB Legacy.
18148
7224189a 181492005-07-10 Yoshinori Okuji <okuji@enbug.org>
18150
18151 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
18152 instead of PATH is NULL.
18153
68c864eb 181542005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
18155
18156 * commands/cmp.c (BUFFER_SIZE): New macro.
18157 (grub_cmd_cmp): Close the right file at the right time. Compare
18158 only data just read. Don't report files of different size as
18159 identical. Dynamically allocate buffers. Move variable
18160 declarations at the beginning of function.
18161
e6f3e614 181622005-07-09 Yoshinori Okuji <okuji@enbug.org>
18163
18164 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
18165 reverse.
18166
f8f1559a 181672004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
18168
18169 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
18170 when backspace is pressed at beginning of line.
18171
39c9d41d 181722005-07-03 Yoshinori Okuji <okuji@enbug.org>
18173
18174 * DISTLIST: Added genfslist.sh.
18175
18176 * normal/main.c (fs_module_list): New variable.
18177 (autoload_fs_module): New function.
18178 (read_fs_list): Likewise.
18179 (grub_normal_execute): Call read_fs_list.
18180
18181 * kern/fs.c (grub_fs_autoload_hook): New variable.
18182 (grub_fs_probe): Added support for auto-loading.
18183
18184 * include/grub/normal.h (struct grub_fs_module_list): New struct.
18185 (grub_fs_module_list_t): New type.
18186
18187 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
18188 (grub_fs_autoload_hook): New prototype.
18189
18190 * genfslist.sh: New file.
f19dbdb7 18191
39c9d41d 18192 * genmk.rb: Added a rule to generate a filesystem list.
18193
121c1d83 181942005-06-30 Marco Gerards <metgerards@student.han.nl>
18195
18196 * configure.ac: Fix the test for cross-compiling.
18197
18198 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
18199 define GRUB_UTIL anymore.
18200
18201 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
18202 so this function works on other systems than just big endian.
18203 (load_modules): Likewise.
18204 (add_segments): Likewise.
18205
e75d76e1 182062005-06-23 Hollis Blanchard <hollis@penguinppc.org>
18207
18208 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
18209 contains `l' modifier, get a long from va_arg().
18210
50b5a0a7 182112005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
18212
18213 * kern/mm.c (grub_free): If the next free block which is being
18214 merged is the first free block, set the first block to the block
18215 being freed.
18216 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
18217
89371b20 182182005-05-08 Hollis Blanchard <hollis@penguinppc.org>
18219
18220 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
18221 `grub_ieee1275_chosen'.
18222
168d6e58 182232005-05-08 Hollis Blanchard <hollis@penguinppc.org>
18224
18225 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
18226 (grub_ieee1275_chosen): New variable.
18227 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
18228 `chosen'.
18229 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
18230 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
18231 Rename first argument to `phandle' for consistency.
18232 (grub_ieee1275_get_property_length): Likewise.
18233 (grub_ieee1275_next_property): Likewise. Change type of first argument
18234 to grub_ieee1275_phandle_t.
18235 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
18236 Move export next to declaration.
18237 (grub_ieee1275_chosen): New variable.
18238 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
18239 Correct cosmetic typo.
18240 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
18241 `grub_ieee1275_chosen'.
18242 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
18243 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
18244 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
18245 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
18246 `grub_ieee1275_chosen'.
18247
ca5baa3f 182482005-05-10 Hollis Blanchard <hollis@penguinppc.org>
18249
18250 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
18251 /chosen/bootargs.
18252 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
18253 /chosen/bootargs as "variable=value" pairs.
18254
708b345f 182552005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
18256
18257 * include/grub/misc.h (grub_dprintf): New macro.
18258 (grub_real_dprintf): New prototype.
18259 (grub_strword): Likewise.
18260 (grub_iswordseparator): Likewise.
18261 * kern/misc.c (grub_real_dprintf): New function.
18262 (grub_strword): Likewise.
18263 (grub_iswordseparator): Likewise.
18264
f4c5e67c 182652005-04-30 Hollis Blanchard <hollis@penguinppc.org>
18266
18267 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
18268 (roundup): Remove macro.
18269 (grub_ieee1275_flags): Make static.
18270 (grub_ieee1275_realmode): Remove.
18271 (grub_ieee1275_test_flag): New function.
18272 (grub_ieee1275_set_flag): Likewise.
18273 (find_options): Rename to `grub_ieee1275_find_options'; update
18274 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
18275 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
18276 (cmain): New prototype.
18277 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
18278 `grub_ieee1275_flags' directly.
18279 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
18280 machine/biosdisk.h.
18281 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
18282 Don't include grub/machine/init.h.
18283 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
18284 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
18285 Remove prototype.
18286 (grub_ieee1275_realmode): Likewise.
18287 (grub_ieee1275_flag): New enum.
18288 (grub_ieee1275_test_flag): New prototype.
18289 (grub_ieee1275_set_flag): New prototype.
18290 * include/grub/powerpc/ieee1275/init.h: Remove file.
18291 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
18292 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
18293 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
18294 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
18295 comment.
18296 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
18297 `grub_ieee1275_test_flag'.
18298 (grub_ieee1275_encode_devname): Likewise.
18299
ed16607e 183002005-04-21 Hollis Blanchard <hollis@penguinppc.org>
18301
18302 * include/grub/powerpc/ieee1275/ieee1275.h
18303 (grub_ieee1275_encode_devname): New prototype.
18304 (grub_ieee1275_get_filename): Likewise.
18305 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
18306 function.
18307 (grub_set_prefix): Likewise.
18308 (grub_machine_init): Call grub_set_prefix.
18309 * kern/powerpc/ieee1275/openfw.c: Fix typos.
18310 (grub_parse_type): New enum.
18311 (grub_ieee1275_get_devargs): New function.
18312 (grub_ieee1275_get_devname): Likewise.
18313 (grub_ieee1275_parse_args): Likewise.
18314 (grub_ieee1275_get_filename): Likewise.
18315 (grub_ieee1275_encode_devname): Likewise.
18316
be369920 183172005-03-30 Marco Gerards <metgerards@student.han.nl>
18318
18319 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
18320 `grub_loader_unset'.
18321
a5ce3a4a 183222005-03-26 Hollis Blanchard <hollis@penguinppc.org>
18323
18324 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
18325 instead of grub_ieee1275_interpret.
18326 (grub_halt_init): New function.
18327 (grub_halt_fini): Likewise.
18328 (GRUB_MOD_INIT): Correct message grammar.
18329 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
18330 instead of grub_ieee1275_interpret.
18331 (grub_reboot_init): New function.
18332 (grub_reboot_fini): Likewise.
18333 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
18334 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
18335 util/i386/pc/misc.c with commands/ieee1275/halt.c,
18336 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
18337 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
18338 function.
18339 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
18340 Add prototype.
18341 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
18342 prototype.
18343 (grub_halt): Likewise.
18344 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
18345 (cmain): Remove __attribute__((unused)).
18346 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
18347 (grub_heap_len): Likewise.
18348 (grub_machine_fini): New function.
18349 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
18350 (grub_halt): Likewise.
18351 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
18352 function.
18353 * util/powerpc/ieee1275/misc.c: New file.
18354
0058f771 183552005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
18356
18357 * DISTLIST: New file.
18358 * gendistlist.sh: Likewise.
f19dbdb7 18359
0058f771 18360 * Makefile.in (COMMON_DISTFILES): Removed.
18361 (BOOT_DISTFILES): Likewise.
18362 (CONF_DISTFILES): Likewise.
18363 (DISK_DISTFILES): Likewise.
18364 (FS_DISTFILES): Likewise.
18365 (INCLUDE_DISTFILES): Likewise.
18366 (KERN_DISTFILES): Likewise.
18367 (LOADER_DISTFILES): Likewise.
18368 (TERM_DISTFILES): Likewise.
18369 (UTIL_DISTFILES): Likewise.
18370 (DISTFILES): Likewise.
18371 (uninstall): Uninstall files in $(pkgdata_DATA).
18372 (DISTLIST): New target.
18373 (distdir): Use the contents of the file DISTLIST to get a list of
18374 distributed files.
18375
46b3b8a5 183762005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
18377
18378 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
18379 descriptor. This is ported from GRUB Legacy.
18380
18381 * gencmdlist.sh: Added an extra semicolon to make it work with
18382 old sed versions. Reported by Robert Bihlmeyer
18383 <robbe@orcus.priv.at>.
18384
5822ff87 183852005-03-08 Yoshinori Okuji <okuji@enbug.org>
18386
18387 Automatic loading of commands is supported.
f19dbdb7 18388
5822ff87 18389 * normal/main.c (read_command_list): New function.
18390 (grub_normal_execute): Call read_command_list.
18391
18392 * normal/command.c (grub_register_command): Return zero or CMD.
18393 Allocate CMD->NAME from the heap.
18394 Initialize CMD->MODULE_NAME to zero.
18395 Find the same name as well. If the same command is found and it is
18396 a dummy command, overwrite members. If it is not a dummy command,
18397 return zero.
18398 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
18399 (grub_command_find): If a dummy command is found, load a module
18400 and retry to find a command only once.
18401
18402 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
18403 make sure that each command is loaded.
18404
18405 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
18406 macro.
18407 (struct grub_command): Remove const from the member `name'.
18408 Add a new member `module_name'.
18409 (grub_register_command): Return grub_command_t.
18410
18411 * commands/help.c (grub_cmd_help): Call grub_command_find to make
18412 sure that each command is loaded.
18413
18414 * genmk.rb (PModule::rule): Specify a module name without the
18415 suffix ".mod" to gencmdlist.sh.
18416
7b1f4b57 184172005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
18418
18419 * gencmdlist.sh: New file.
f19dbdb7 18420
7b1f4b57 18421 * genmk.rb (PModule::rule): Generate a rule for a command list.
18422 Clean command.lst.
18423 Generate command.lst from $(COMMANDFILES).
18424
18425 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
18426 (DATA): Added $(pkgdata_DATA).
18427 (install-local): Install files in $(pkgdata_DATA).
18428
062aaf39 184292005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
18430
18431 * term/i386/pc/vga.c (debug_command): Removed.
18432 (GRUB_MOD_INIT): Do not register the command "debug".
18433
18434 From Hollis Blanchard:
18435 * commands/configfile.c: New file.
18436 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
18437 commands/configfile.c.
18438 (pkgdata_MODULES): Added configfile.mod.
18439 (configfile_mod_SOURCES): New variable.
18440 (configfile_mod_CFLAGS): Likewise.
18441 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
18442 commands/configfile.c.
18443 (pkgdata_MODULES): Added configfile.mod.
18444 (configfile_mod_SOURCES): New variable.
18445 (configfile_mod_CFLAGS): Likewise.
18446 * util/grub-emu.c (main): Call grub_configfile_init and
18447 grub_configfile_fini.
18448 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
18449 prototype.
18450 [GRUB_UTIL] (grub_configfile_fini): Likewise.
f19dbdb7 18451
cee01aa6 184522005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
18453
18454 * normal/arg.c (grub_arg_show_help): Do not show the bug report
18455 address.
18456
18457 * commands/help.c (grub_cmd_help): Do not print newlines after
18458 the last command in print_command_help.
18459
93f3a1d8 184602005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
18461
18462 * commands/default.h: New file.
18463 * commands/timeout.h: Likewise.
18464 * normal/context.c: Likewise.
f19dbdb7 18465
93f3a1d8 18466 * util/misc.c: Do not include sys/times.h.
18467 Include sys/time.h and grub/machine/time.h.
18468 (grub_get_rtc): Rewritten with gettimeofday.
18469
18470 * util/grub-emu.c (main): Call grub_default_init and
18471 grub_timeout_init before grub_normal_init, and call
18472 grub_timeout_fini and grub_default_fini after grub_main.
18473
18474 * util/console.c (grub_ncurses_checkkey): Return the read
18475 character or -1.
18476
18477 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
18478 timeouts.
18479
18480 * normal/main.c (read_config_file): Push MENU. If this fails,
18481 print an error and wait for a user input.
18482 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
18483 If a menu is empty or an error occurs, pop MENU.
18484 (grub_normal_execute): Pop and free MENU after grub_menu_run
18485 returns.
18486
18487 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
18488
18489 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
18490 include time.h.
18491 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
18492 without GRUB_UTIL.
18493 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
18494 time.h.
18495 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
18496 without GRUB_UTIL.
18497
18498 * include/grub/normal.h (struct grub_menu_list): New struct.
18499 (grub_menu_list_t): New type.
18500 (struct grub_context): New struct.
18501 (grub_context_t): New type.
18502 (grub_register_command): Got rid of EXPORT_FUNC.
18503 (grub_unregister_command): Likewise.
18504 (grub_context_get): New prototype.
18505 (grub_context_get_current_menu): Likewise.
18506 (grub_context_push_menu): Likewise.
18507 (grub_context_pop_menu): Likewise.
18508 [GRUB_UTIL] (grub_default_init): Likewise.
18509 [GRUB_UTIL] (grub_default_fini): Likewise.
18510 [GRUB_UTIL] (grub_timeout_init): Likewise.
18511 [GRUB_UTIL] (grub_timeout_fini): Likewise.
18512
18513 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
18514 commands/timeout.c and normal/context.c.
18515 (pkgdata_MODULES): Added default.mod and timeout.mod.
18516 (normal_mod_SOURCES): Added normal/context.c.
18517 (default_mod_SOURCES): New variable.
18518 (default_mod_CFLAGS): Likewise.
18519 (timeout_mod_SOURCES): Likewise.
18520 (timeout_mod_CFLAGS): Likewise.
18521 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
18522 conf/i386-pc.rmk.
18523 (pkgdata_MODULES): Added default.mod and timeout.mod.
18524 (normal_mod_SOURCES): Added normal/context.c.
18525 (default_mod_SOURCES): New variable.
18526 (default_mod_CFLAGS): Likewise.
18527 (timeout_mod_SOURCES): Likewise.
18528 (timeout_mod_CFLAGS): Likewise.
18529
18530 * Makefile.in (all-local): Added $(MKFILES).
18531
4ed2e1dd 185322005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
18533
18534 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
18535 (grub_emu_SOURCES): Likewise.
18536 (pkgdata_MODULES): Add `sun.mod'.
18537 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
18538 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
18539 `partmap/sun.c'.
18540 (pkgdata_MODULES): Add `sun.mod'.
18541 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
18542 * include/grub/partition.h (grub_sun_partition_map_init): New
18543 prototype.
18544 (grub_sun_partition_map_fini): Likewise.
18545 * partmap/sun.c: New file.
18546 * util/grub-emu.c (main): Initialize and de-initialize the sun
18547 partitionmap support.
18548
4d4e372e 185492005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
18550
18551 This implements an Emacs-like menu entry editor.
f19dbdb7 18552
4d4e372e 18553 * normal/menu_entry.c: New file.
f19dbdb7 18554
4d4e372e 18555 * util/console.c (grub_ncurses_putchar): Translate some Unicode
18556 characters to ASCII.
18557 (saved_char): New variable.
18558 (grub_ncurses_checkkey): Rewritten completely.
18559 (grub_ncurses_getkey): Likewise.
18560 (grub_ncurses_init): Call raw instead of cbreak.
18561
18562 * normal/menu.c (print_entry): Do not put a space.
18563 (init_page): Renamed to ...
18564 (grub_menu_init_page): ... this. All callers changed.
18565 (edit_menu_entry): Removed.
18566 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
18567
18568 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
18569
18570 * kern/misc.c (grub_vprintf): Call grub_refresh.
18571
18572 * normal/menu.c (DISP_LEFT): Renamed to ...
18573 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
18574 * normal/menu.c (DISP_UP): Renamed to ...
18575 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
18576 * normal/menu.c (DISP_RIGHT): Renamed to ...
18577 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
18578 * normal/menu.c (DISP_DOWN): Renamed to ...
18579 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
18580 * normal/menu.c (DISP_HLINE): Renamed to ...
18581 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
18582 * normal/menu.c (DISP_VLINE): Renamed to ...
18583 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
18584 * normal/menu.c (DISP_UL): Renamed to ...
18585 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
18586 * normal/menu.c (DISP_UR): Renamed to ...
18587 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
18588 * normal/menu.c (DISP_LL): Renamed to ...
18589 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
18590 * normal/menu.c (DISP_LR): Renamed to ...
18591 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
18592 * normal/menu.c (TERM_WIDTH): Renamed to ...
18593 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
18594 * normal/menu.c (TERM_HEIGHT): Renamed to ...
18595 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
18596 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
18597 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
18598 * normal/menu.c (TERM_MARGIN): Renamed to ...
18599 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
18600 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
18601 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
18602 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
18603 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
18604 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
18605 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
18606 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
18607 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
18608 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
18609 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
18610 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
18611 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
18612 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
18613 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
18614 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
18615 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
18616 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
18617 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
18618 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
18619 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
18620 All callers changed.
18621
18622 * include/grub/normal.h: New prototype.
18623
18624 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
18625 normal/menu_entry.c.
18626 (normal_mod_SOURCES): Likewise.
18627 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
18628 (normal_mod_SOURCES): Likewise.
18629
e6b92c8a 186302005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
18631
18632 * include/grub/normal.h (grub_halt_init): New prototype.
18633 (grub_halt_fini): Likewise.
18634 (grub_reboot_init): Likewise.
18635 (grub_reboot_fini): Likewise.
18636
18637 * util/grub-emu.c: Include signal.h.
18638 (main_env): New global variable.
18639 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
18640 catch C-c.
18641 (grub_machine_fini): New function.
18642 (main): Call grub_halt_init and grub_reboot_init before
18643 grub_main, and grub_reboot_fini and grub_halt_fini after it.
18644 Call setjmp with MAIN_ENV to go back afterwards.
18645 Call grub_machine_fini right before return.
18646
18647 * include/grub/util/misc.h: Include setjmp.h.
18648 (main_env): New prototype.
18649
18650 * include/grub/kernel.h (grub_machine_fini): New prototype.
18651 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
18652 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
18653
18654 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
18655 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
18656 * term/i386/pc/console.c (grub_console_fini): Likewise.
f19dbdb7 18657
e6b92c8a 18658 * util/i386/pc/misc.c: New file.
f19dbdb7 18659
e6b92c8a 18660 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
18661 util/i386/pc/misc.c, commands/i386/pc/halt.c and
18662 commands/i386/pc/reboot.c.
18663
c642636f 186642005-02-14 Guillem Jover <guillem@hadrons.org>
18665
18666 * include/grub/dl.h (grub_dl_check_header): New prototype.
18667 (grub_arch_dl_check_header): Change return type to grub_err_t,
18668 remove size parameter and export function. Update all callers.
18669 * kern/dl.c (grub_dl_check_header): New function.
18670 (grub_dl_load_core): Use `grub_dl_check_header' instead of
18671 `grub_arch_dl_check_header'. Check ELF type. Check if sections
18672 are inside the core.
18673 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
18674 independent ELF header checks.
18675 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
18676 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
18677 `grub_dl_check_header' instead of explicit checks. Check for the
18678 ELF type.
18679 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
18680 `grub_dl_check_header' instead of explicit checks. Remove arch
18681 specific ELF header checks.
18682
e6b92c8a 18683 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
18684 argument SIZE.
18685
5eabe94b 186862005-02-13 Hollis Blanchard <hollis@penguinppc.org>
18687
18688 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
18689 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
18690
1b14a681 186912005-02-12 Hollis Blanchard <hollis@penguinppc.org>
18692
18693 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
f19dbdb7 18694 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
1b14a681 18695 (part_map_iterate): Clear `grub_errno' and return 0 if
f19dbdb7 18696 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
1b14a681 18697 * partmap/amiga.c (amiga_partition_map_iterate): Return
18698 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
18699 * partmap/apple.c (apple_partition_map_iterate): Likewise.
18700
aca108aa 187012005-02-01 Guillem Jover <guillem@hadrons.org>
18702
18703 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
18704 help info.
18705
c9f9c556 187062005-01-31 Marco Gerards <metgerards@student.han.nl>
18707
18708 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
18709 Removed prototype.
18710 (grub_rescue_cmd_linux): New prototype.
18711 (grub_rescue_cmd_initrd): Likewise.
18712 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
18713 `bi_rec'.
18714 (grub_linux_release_mem): Release the memory for the initrd.
18715 (grub_load_linux): Renamed from this...
18716 (grub_rescue_cmd_linux): ...To this. Changed all callers.
18717 Changed `entry' not to be static. Loop over memory regions to
18718 find another one when the default fails.
18719 (grub_rescue_cmd_initrd): New function.
18720 (grub_linux_init): Remove function.
18721 (grub_linux_fini): Likewise.
18722 (GRUB_MOD_INIT): Register `initrd'.
18723 (GRUB_MOD_FINI): Unregister `initrd'.
18724 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
18725 Function removed.
18726 (grub_linux_normal_fini): Likewise.
18727 (GRUB_MOD_INIT): Register `initrd'.
18728 (GRUB_MOD_FINI): Unregister `initrd'.
18729
990cf3aa 187302005-01-31 Marco Gerards <metgerards@student.han.nl>
18731
18732 * commands/help.c: New file.
18733 * normal/arg.c (show_help): Renamed to...
18734 (grub_arg_show_help): ... this.
18735 * commands/i386/pc/halt.c: New file.
18736 * commands/i386/pc/reboot.c: Likewise.
18737 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
18738 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
18739 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
18740 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
18741 variables.
18742 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
18743 `commands/help.c'.
18744 (pkgdata_MODULES): Add `help.mod'.
18745 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
18746 * grub/i386/pc/init.h (grub_reboot): New prototype.
18747 (grub_halt): Likewise.
18748 * include/grub/normal.h (grub_arg_show_help): New prototype.
18749 (grub_help_init): Likewise.
18750 (grub_help_fini): Likewise.
18751 * util/grub-emu.c (main): Initialize and deinitialize the help
18752 command.
18753
18754 * normal/cmdline.c (grub_cmdline_get): Doc fix.
18755
18756 * normal/command.c (grub_command_init): Fixed the description of
18757 the `set' and `unset' commands.
18758
187592005-01-31 Marco Gerards <metgerards@student.han.nl>
0f79cdc1 18760
18761 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
18762 function.
18763 * commands/ieee1275/halt.c: New file.
18764 * commands/ieee1275/reboot.c: Likewise.
18765 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
18766 `__attribute__ ((unused))'. Some GCS related fixed.
18767 (grub_suspend_init) [GRUB_UTIL]: Function removed.
18768 (grub_suspend_fini): Likewise.
18769 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
18770 and `halt.mod'.
18771 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
18772 (halt_mod_CFLAGS): New variables.
18773 * include/grub/powerpc/ieee1275/ieee1275.h
18774 (grub_ieee1275_interpret): New prototype.
18775
1ab09cc7 187762005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
18777
18778 * include/grub/misc.h (memmove): New prototype.
18779 (memcpy): Likewise.
18780
8b8cbdb2 187812005-01-22 Hollis Blanchard <hollis@penguinppc.org>
18782
18783 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
18784 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
18785
e3741a27 187862005-01-22 Marco Gerards <metgerards@student.han.nl>
18787
18788 * kern/misc.c (grub_strndup): Function rewritten.
18789
776bd780 187902005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
18791
18792 * normal/menu.c (TERM_WIDTH): Macro redefined.
18793 (TERM_TOP_BORDER_Y): Likewise.
18794 (draw_border): Replaced while-loop by a for-loop. Make the number
18795 of lines consistent with the number of lines displayed in
18796 print_entries. Added a margin below the rectangle.
18797 (print_entry): Make the entry fit in the rectangle.
18798 (print_entries): Display the scroll arrows next to the right
18799 border.
18800
78026bce 188012005-01-21 Marco Gerards <metgerards@student.han.nl>
18802
18803 * fs/minix.c (grub_minix_find_file): Reserve more space for
18804 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
18805 `grub_strncpy' to copy `path' into it.
18806
67bbaf0f 188072005-01-21 Marco Gerards <metgerards@student.han.nl>
18808
18809 Add the loopback device, a device via which files can be accessed
18810 as devices.
f19dbdb7 18811
67bbaf0f 18812 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
18813 (pkgdata_MODULES): Add loopback.mod.
18814 (loopback_mod_SOURCES): New variable.
18815 (loopback_mod_CFLAGS): Likewise.
18816 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
18817 `disk/loopback.c'.
18818 (pkgdata_MODULES): Add loopback.mod.
18819 (loopback_mod_SOURCES): New variable.
18820 (loopback_mod_CFLAGS): Likewise.
18821 * disk/loopback.c: new file.
18822 * include/grub/normal.h (grub_loop_init): New prototype.
18823 (grub_loop_fini): New prototype.
18824 * util/grub-emu.c (main): Initialize and de-initialize loopback
18825 support.
18826 * include/grub/disk.h (grub_disk_dev_id): Add
18827 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
18828
6f1c18bd 188292005-01-20 Hollis Blanchard <hollis@penguinppc.org>
18830
18831 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
18832 function.
18833 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
18834 (suspend_mod_SOURCES): New variable.
18835 (suspend_mod_CFLAGS): Likewise.
18836 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
18837 New prototype.
18838 * commands/ieee1275/suspend.c: New file.
18839
b38551da 188402005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
18841
18842 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
f19dbdb7 18843 ((unused))' to `__attribute__ ((used))'.
b38551da 18844 (GRUB_MOD_FINI): Likewise.
18845 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
18846 * genmk.rb (PModule): Assign space to common symbols when linking
18847 modules.
18848
777aff39 188492005-01-20 Marco Gerards <metgerards@student.han.nl>
18850
18851 * include/grub/mm.h (grub_mm_init_region): Change the type of the
18852 `unsigned' arguments to `grub_size_t'.
18853 (grub_malloc): Likewise.
18854 (grub_realloc): Likewise.
18855 (grub_memalign): Likewise.
18856 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
18857 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
18858 * util/misc.c (grub_malloc): Likewise.
18859 (grub_realloc): Likewise.
18860 * kern/mm.c (get_header_from_pointer): Change the casts to
18861 `unsigned' into a cast to `grub_size_t'.
18862
18863 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
18864 point to `currnode' when `currnode' is changed.
18865
18866 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
18867 Schottelius <nico-linux@schottelius.org>.
18868
d0ff18e1 188692005-01-09 Hollis Blanchard <hollis@penguinppc.org>
18870
18871 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
18872 (note_path): Remove variable.
18873 (GRUB_IEEE1275_NOTE_NAME): New macro.
18874 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
18875 (grub_ieee1275_note_hdr): New structure.
18876 (grub_ieee1275_note_desc): Likewise.
18877 (grub_ieee1275_note): Likewise.
18878 (load_note): Remove `dir' argument. All callers updated. Remove
18879 `note_img' and `path'. Do not load a file from `note_path'.
18880 Initialize a struct grub_ieee1275_note and write that to `out'.
18881 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
18882
4ca7004c 188832005-01-05 Marco Gerards <metgerards@student.han.nl>
18884
18885 * util/misc.c (grub_util_read_image): Revert last change. It
18886 called `grub_util_read_at', which seeks from the beginning of the
18887 file.
18888
0b412211 188892005-01-04 Hollis Blanchard <hollis@penguinppc.org>
18890
18891 * TODO: Add note about endianness in grub-mkimage.
18892 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
18893 section.
18894 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
18895 (grub_mkimage_SOURCES): New target.
18896 * include/grub/kernel.h (grub_start_addr): Remove variable.
18897 (grub_end_addr): Likewise.
18898 (grub_total_module_size): Likewise.
18899 (grub_kernel_image_size): Likewise.
18900 (GRUB_MODULE_MAGIC): New constant.
18901 (grub_module_info): New structure.
18902 (grub_arch_modules_addr): New prototype.
18903 (grub_get_end_addr): Remove prototype.
18904 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
18905 * include/grub/powerpc/ieee1275/kernel.h: New file.
18906 * include/grub/util/misc.h (grub_util_get_fp_size): New
18907 prototype.
18908 (grub_util_read_at): Likewise.
18909 (grub_util_write_image_at): Likewise.
18910 * kern/main.c (grub_get_end_addr): Remove function.
18911 (grub_load_modules): Call grub_arch_modules_addr instead of using
18912 grub_end_addr. Look for a grub_module_info struct in memory. Use
18913 the grub_module_info fields instead of calling grub_get_end_addr
18914 as loop conditions. Move grub_add_unused_region code here.
18915 (grub_add_unused_region): Remove function.
18916 * kern/i386/pc/init.c: Include grub/cache.h.
18917 (grub_machine_init): Remove call to grub_get_end_addr. Remove
18918 one call to add_mem_region.
18919 (grub_arch_modules_addr): New function.
18920 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
18921 (grub_total_module_size): Likewise.
18922 Include grub/machine/kernel.h.
18923 (grub_arch_modules_addr): New function.
18924 * util/grub-emu.c (grub_end_addr): Remove variable.
18925 (grub_total_module_size): Likewise.
18926 (grub_arch_modules_addr): New function.
18927 * util/misc.c: Include unistd.h.
18928 (grub_util_get_fp_size): New function.
18929 (grub_util_read_at): Likewise.
18930 (grub_util_write_image_at): Likewise.
18931 (grub_util_read_image): Call grub_util_read_at.
18932 (grub_util_write_image): Call grub_util_write_image_at.
18933 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
18934 additional memory in kernel_img for a struct grub_module_info.
18935 Fill in that grub_module_info.
18936 * util/powerpc/ieee1275/grub-mkimage.c: New file.
18937
458786f8 189382005-01-03 Hollis Blanchard <hollis@penguinppc.org>
18939
18940 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
18941 New function.
18942 * include/grub/powerpc/ieee1275/ieee1275.h
18943 (grub_ieee1275_milliseconds): New prototype.
18944 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
18945 Change to 1000.
18946 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
18947 grub_ieee1275_milliseconds.
18948
ac507d1b 189492005-01-03 Hollis Blanchard <hollis@penguinppc.org>
18950
18951 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
18952 variable.
18953 (find_options): New function.
18954 (cmain): Call find_options.
18955 * include/grub/powerpc/ieee1275/ieee1275.h
18956 (grub_ieee1275_realmode): New extern variable.
18957 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
18958 grub_map if grub_ieee1275_realmode is false.
18959
6b8fd1c4 189602004-12-29 Marco Gerards <metgerards@student.han.nl>
18961
18962 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
18963 lines are inserted and make it work like readline. Reported by
18964 Vincent Pelletier <subdino2004@yahoo.fr>.
18965
8514a1e0 189662004-12-28 Marco Gerards <metgerards@student.han.nl>
18967
18968 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
18969
18970 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
18971 `kern/powerpc/cache.S'.
18972
924b6140 189732004-12-27 Marco Gerards <metgerards@student.han.nl>
18974
18975 * genmk.rb: Handle the `Program' class in the main loop. Written
18976 by Johan Rydberg <jrydberg@gnu.org>.
18977 (Program): New class.
18978 (programs): New variable.
18979 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
18980 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
18981 instead of "grub/kernel.h". Include <grub/machine/init.h>.
18982 (help_arch): Function removed.
18983 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
18984 `powerpc/libgcc.h' and `loader.h'.
18985 (pkgdata_PROGRAMS): New variable.
18986 (sbin_UTILITIES): Variable removed.
18987 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
18988 (grubof_SOURCES): Variable re-defined so it only includes the
18989 core functionality.
18990 (grubof_CFLAGS): Remove `-DGRUBOF'.
18991 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
18992 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
18993 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
18994 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
18995 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
18996 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
18997 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
18998 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
18999 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
19000 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
19001 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
19002 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
19003 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
19004 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
19005 (pc_mod_CFLAGS): New variables.
19006 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
19007 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
19008 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
19009 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
19010 Moved from here...
19011 * include/grub/i386/pc/init.h (grub_os_area_addr)
19012 (rub_os_area_size): ... to here.
19013 * include/grub/powerpc/ieee1275/ieee1275.h
19014 (grub_ieee1275_entry_fn): Export symbol.
19015 * include/grub/powerpc/ieee1275/init.h: New file.
19016 * include/grub/powerpc/libgcc.h: Likewise.
19017 * include/grub/cache.h: Likewise.
19018 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
19019 <hollis@penguinppc.org>.
19020 * kern/dl.c: Include <grub/cache.h>.
19021 (grub_dl_flush_cache): New function.
19022 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
19023 for this module.
19024 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
19025 (grub_console_init): Removed prototypes.
19026 (grub_machine_init): Don't initialize the modules anymore.
19027 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
19028 static.
19029 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
19030 Macro undef removed.
19031 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
19032 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
19033 relocation `R_PPC_REL32'. Return an error when the relocation is
19034 unknown.
19035 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
19036 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
19037 * util/misc.c (grub_arch_sync_caches): Likewise.
19038
e4b47e0c 190392004-12-19 Marco Gerards <metgerards@student.han.nl>
19040
19041 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
19042 `symlist.c', add `grubof_symlist.c'.
19043 (symlist.c): Variable removed.
19044 (grubof_HEADERS): Variable added.
19045 (grubof_symlist.c): New target.
19046 (kernel_syms.lst): Use `grubof_HEADERS' instead of
19047 `kernel_img_HEADERS'.
19048 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
19049 * kern/powerpc/dl.c: New file.
19050 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
19051 Function removed.
19052 (grub_arch_dl_relocate_symbols): Likewise.
19053 (grub_register_exported_symbols): Likewise.
19054
4ceb3636 190552004-12-13 Marco Gerards <metgerards@student.han.nl>
19056
19057 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
19058 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
19059 to fail instead. Reported by Vincent Pelletier
19060 <subdino2004@yahoo.fr>.
19061
19062 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
19063 it is not allocated. Reported by Vincent Pelletier
19064 <subdino2004@yahoo.fr>.
19065
19066 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
19067 output so the output looks better.
f19dbdb7 19068
3f1578fe 190692004-12-04 Marco Gerards <metgerards@student.han.nl>
19070
19071 Modulize the partition map support and add support for the amiga
19072 partition map.
f19dbdb7 19073
3f1578fe 19074 * commands/ls.c: Include <grub/partition.h> instead of
19075 <grub/machine/partition.h>.
19076 * kern/disk.c: Likewise.
19077 * kern/rescue.c: Likewise.
19078 * loader/i386/pc/chainloader.c: Likewise.
19079 * normal/cmdline.c: Likewise.
19080 * kern/powerpc/ieee1275/init.c: Likewise.
19081 (grub_machine_init): Call `grub_pc_partition_map_init',
19082 `grub_amiga_partition_map_init' and
19083 `grub_apple_partition_map_init'.
19084 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
19085 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
19086 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
19087 `partition.h' and `pc_partition.h'.
19088 (grub_setup_SOURCES): Remove
19089 `disk/i386/pc/partition.c'. Add `kern/partition.c',
19090 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
19091 (grub_emu_SOURCES): Likewise.
19092 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
19093 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
19094 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
19095 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
19096 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
19097 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
19098 (grubof_SOURCES): Likewise.
19099 * disk/i386/pc/partition.c: File removed.
19100 * disk/powerpc/ieee1275/partition.c: Likewise.
19101 * include/grub/powerpc/ieee1275/partition.h: Likewise.
19102 * include/grub/i386/pc/partition.h: Likewise.
19103 * kern/partition.c: New file.
19104 * partmap/amiga.c: Likewise.
19105 * partmap/apple.c: Likewise.
19106 * partmap/pc.c: Likewise.
19107 * include/grub/partition.h: Likewise..
19108 * include/grub/pc_partition.h: Likewise.
19109 * util/grub-emu.c: Include <grub/partition.h> instead of
19110 <grub/machine/partition.h>.
19111 (main): Call `grub_pc_partition_map_init',
19112 `grub_amiga_partition_map_init' and
19113 `grub_apple_partition_map_init' and deinitialize afterwards.
19114 * util/i386/pc/biosdisk.c: Include `#include
19115 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
19116 `<grub/machine/partition.h>'.
19117 * util/i386/pc/grub-setup.c: Likewise.
19118 * util/i386/pc/biosdisk.c: Likewise.
19119 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
19120 partition information in case of a PC partition.
19121 * util/i386/pc/grub-setup.c: Include `#include
19122 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
19123 `<grub/machine/partition.h>'.
19124 (setup): Only access the PC specific partition information in case
19125 of a PC partition.
19126
0ef4ced9 191272004-11-17 Hollis Blanchard <hollis@penguinppc.org>
f19dbdb7 19128
0ef4ced9 19129 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
19130 (grub_longjmp): Likewise.
19131 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
19132 20.
19133 * normal/powerpc/setjmp.S: New file.
19134 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
19135 `normal/powerpc/setjmp.S'.
19136 (grubof_CFLAGS): Add `-DGRUBOF'.
19137 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
19138 [GRUB_UTIL && !GRUBOF].
f19dbdb7 19139
19950e29 191402004-11-16 Marco Gerards <metgerards@student.han.nl>
19141
19142 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
19143 property named `name'. Correctly handle the error returned by
19144 `grub_ieee1275_finddevice' if a device can not be opened.
19145
a2fea427 191462004-11-02 Hollis Blanchard <hollis@penguinppc.org>
19147
19148 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
19149 `actual' for negativity.
19150 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
19151 kern/fshelp.c.
19152
41ea0ea3 191532004-11-01 Marco Gerards <metgerards@student.han.nl>
19154
19155 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
19156 (PAGE_OFFSET): New macro.
19157 (CRTC_ADDR_PORT): Likewise.
19158 (CRTC_DATA_PORT): Likewise.
19159 (START_ADDR_HIGH_REGISTER): Likewise.
19160 (START_ADDR_LOW_REGISTER): Likewise.
19161 (GRAPHICS_ADDR_PORT): Likewise.
19162 (GRAPHICS_DATA_PORT): Likewise.
19163 (READ_MAP_REGISTER): Likewise.
19164 (INPUT_STATUS1_REGISTER): Likewise.
19165 (INPUT_STATUS1_VERTR_BIT): Likewise.
19166 (page): New variable.
19167 (wait_vretrace): New function.
19168 (set_read_map): Likewise.
19169 (set_start_address): Likewise.
19170 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
19171 the right page.
19172 (check_vga_mem): Take the page into account.
19173 (write_char): Likewise.
19174 (write_cursor): Likewise.
19175 (scroll_up): Likewise. Copy the page to the page that is not
19176 shown and switch between both pages.
19177 (grub_vga_putchar): Fix off by one error.
19178 (grub_vga_cls): Wait for the vertical retrace. Take the page into
19179 account.
19180
ad0bd20b 191812004-11-01 Marco Gerards <metgerards@student.han.nl>
19182
19183 Add support for iso9660 (including rockridge).
f19dbdb7 19184
ad0bd20b 19185 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
19186 (iso9660_mod_SOURCES): New variable.
19187 (iso9660_mod_CFLAGS): Likewise.
19188 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
19189 * include/grub/fs.h (grub_iso9660_init): New prototype.
19190 * util/grub-emu.c (main): Call `grub_iso9660_init'.
19191 * fs/iso9660.c: New file.
19192
19193 * include/grub/misc.h (grub_strncat): New prototype.
19194 * kern/misc.c (grub_strncat): New function.
f19dbdb7 19195
ad0bd20b 19196 * fs/hfs.c (grub_hfs_mount): Translate the error
19197 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
19198 * fs/jfs.c (grub_jfs_mount): Likewise.
19199 * fs/ufs.c (grub_ufs_mount): Likewise.
19200
a5477a59 192012004-10-28 Hollis Blanchard <hollis@penguinppc.org>
19202
19203 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
19204 which initialized BAT registers.
19205 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
19206 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
19207 Move from here...
19208 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
19209 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
19210 ... to here.
19211 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
19212 (grub_mapclaim): Likewise.
19213 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
19214 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
19215 hand.
19216
9304c1f8 192172004-10-19 Hollis Blanchard <hollis@penguinppc.org>
19218
19219 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
19220 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
19221 -ffreestanding and -msoft-float.
19222
86f4ae25 192232004-10-15 Hollis Blanchard <hollis@penguinppc.org>
19224
19225 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
19226 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
19227 set in grub_ieee1275_flags.
19228
38912228 192292004-10-14 Hollis Blanchard <hollis@penguinppc.org>
19230
19231 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
19232 prototype.
19233 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
19234 grub_console_init first.
19235 Change the memory range used for grub_ieee1275_claim and
19236 grub_mm_init_region.
19237 Print an error message if the claim fails.
19238 Include <grub/misc.h>.
19239
d1923dc8 192402004-10-13 Hollis Blanchard <hollis@penguinppc.org>
19241
19242 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
19243 Call grub_children_iterate for device nodes of type `scsi',
19244 `ide', or `ata'.
19245 (grub_ofdisk_open): Remove manual device alias resolution.
19246 Fix memory leak when device cannot be opened.
f19dbdb7 19247 * include/grub/powerpc/ieee1275/ieee1275.h
d1923dc8 19248 (grub_children_iterate): New prototype.
19249 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
19250 New function.
19251 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
19252 Return -1 if args.size was -1.
19253
4512e4f3 192542004-10-11 Hollis Blanchard <hollis@penguinppc.org>
19255
19256 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
19257 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
19258 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
19259 Open Firmware's memory for it; claim memory from _start to _end.
19260 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
19261 (_end): New extern.
19262 (_start): Zero BSS from __bss_start to _end.
19263 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
19264 New extern.
19265 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
19266
4d61feb0 192672004-10-11 Hollis Blanchard <hollis@penguinppc.org>
19268
ad0bd20b 19269 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
19270 -1 if args.base was -1.
4d61feb0 19271
026fa2f9 192722004-10-08 Hollis Blanchard <hollis@penguinppc.org>
19273
19274 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
19275 escape sequence instead of a literal ^L. Also call
19276 grub_ofconsole_gotoxy.
19277
9f2220ef 192782004-10-03 Hollis Blanchard <hollis@penguinppc.org>
19279
19280 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
19281 void * arguments to grub_addr_t. All callers updated. Also make
19282 the `result' argument optional.
19283 (grub_ieee1275_release): change void * arguments to grub_addr_t.
19284 All callers updated.
19285
8a572cd7 192862004-09-22 Hollis Blanchard <hollis@penguinppc.org>
19287
19288 * commands/ls.c (grub_ls_list_files): Use the string following the
19289 initial ')', if present, as the filesystem path.
19290 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
19291
19292 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
19293
18aa81f2 192942004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
19295
19296 Make the source code of the menu interface more readable.
f19dbdb7 19297
18aa81f2 19298 * normal/menu.c: Include grub/mm.h.
19299 (TERM_WIDTH): New macro.
19300 (TERM_HEIGHT): Likewise.
19301 (TERM_INFO_HEIGHT): Likewise.
19302 (TERM_MARGIN): Likewise.
19303 (TERM_SCROLL_WIDTH): Likewise.
19304 (TERM_TOP_BORDER_Y): Likewise.
19305 (TERM_LEFT_BORDER_X): Likewise.
19306 (TERM_BORDER_WIDTH): Likewise.
19307 (TERM_MESSAGE_HEIGHT): Likewise.
19308 (TERM_BORDER_HEIGHT): Likewise.
19309 (TERM_NUM_ENTRIES): Likewise.
19310 (TERM_FIRST_ENTRY_Y): Likewise.
19311 (TERM_ENTRY_WIDTH): Likewise.
19312 (TERM_CURSOR_X): Likewise.
19313 (draw_border): Use macros instead of magic numbers.
19314 (print_entry): Likewise.
19315 (print_entries): Likewise.
19316 (run_menu): Likewise. Also, handle the key 'e'.
19317 (run_menu_entry): Ignore empty command lines.
19318 (print_message): Added a new argument EDIT. If EDIT is true,
19319 print a different message.
19320 (init_page): Likewise.
19321 (edit_menu_entry): New function. Not implemented yet.
19322
b47efe30 193232004-09-17 Marco Gerards <metgerards@student.han.nl>
19324
19325 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
19326 can be loaded from normal mode.
f19dbdb7 19327
b47efe30 19328 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
19329 `multiboot.mod'.
19330 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
19331 (multiboot_mod_CFLAGS): New variables.
19332 * loader/i386/pc/linux_normal.c: New file.
f19dbdb7 19333 * loader/i386/pc/multiboot_normal.c: Likewise.
19334
b47efe30 19335 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
19336 attribute `unused'.
f19dbdb7 19337
b47efe30 19338 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
19339 `fdiro' to read the mode information from instead of `diro'.
19340
19341 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
19342 looking up a symlink.
19343
19344 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
19345 macro.
19346 * normal/command.c (grub_command_execute): Don't parse the
19347 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
19348 flags of the command.
19349
19350 * normal/menu.c (grub_menu_run): Fix typo.
19351
da75ac71 193522004-09-14 Hollis Blanchard <hollis@penguinppc.org>
19353
19354 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
19355
19356 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
19357 `y + 1' instead of `y - 1'.
19358
19359 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
f19dbdb7 19360
062b24c2 193612004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
19362
19363 From Hollis Blanchard <hollis@penguinppc.org>:
19364 * kern/misc.c (memmove): New alias for grub_memmove.
19365 (memcmp): New alias for grub_memcmp.
19366 (memset): New alias for grub_memset.
f19dbdb7 19367 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
062b24c2 19368 Change "int handle" to "grub_ieee1275_phandle_t handle".
f19dbdb7 19369 * include/grub/powerpc/ieee1275/ieee1275.h
062b24c2 19370 (grub_ieee1275_get_property): Likewise.
f19dbdb7 19371
8ddad845 193722004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
19373
19374 Added normal mode command `chainloader' as module chain.mod, which
19375 depends on normal.mod and _chain.mod.
f19dbdb7 19376
8ddad845 19377 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
19378 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
19379 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
19380 Deleted prototype.
19381 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
19382 but arguments parsing moved to ...
19383 (grub_chainloader_cmd): ... here. New function.
19384 * include/grub/i386/pc/chainloader.h: New file.
19385 * loader/i386/pc/chainloader_normal.c: Likewise.
19386
2c1f4ce3 193872004-09-11 Marco Gerards <metgerards@student.han.nl>
19388
19389 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
19390 (grub_mkimage_LDFLAGS): Likewise.
19391 (grub_emu_SOURCES): Likewise.
19392 (kernel_img_HEADERS): Added fshelp.h.
19393 * fs/ext2.c: Include <grub/fshelp.h>.
19394 (FILETYPE_REG): New macro.
19395 (FILETYPE_INO_REG): Likewise.
19396 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
19397 Changed all users.
19398 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
19399 all users.
19400 (grub_fshelp_node): New struct.
19401 (grub_ext2_data): Added member `diropen'. Changed member `inode'
19402 to a pointer.
19403 (grub_ext2_get_file_block): Removed function.
19404 (grub_ext2_read_block): New function.
19405 (grub_ext2_read_file): Replaced parameter `data' by `node'.
19406 This function was written.
19407 (grub_ext2_mount): Read the root inode. Create a diropen struct.
19408 (grub_ext2_find_file): Removed function.
19409 (grub_ext2_read_symlink): New function.
19410 (grub_ext2_iterate_dir): Likewise.
19411 (grub_ext2_open): Rewritten.
19412 (grub_ext2_dir): Rewritten.
19413 * include/grub/fshelp.h: New file.
19414 * fs/fshelp.c: Likewise.
19415
3c52136a 194162004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
19417
19418 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
19419 (print_message): Add a missing newline.
19420 (run_menu): Added timeout support.
19421 (run_menu_entry): New local function.
19422 (grub_menu_run): Added support for booting.
19423
19424 * kern/loader.c (grub_loader_is_loaded): New function.
19425
19426 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
19427 (grub_get_rtc): Exported.
19428
19429 * include/grub/i386/pc/time.h: Include grub/symbol.h.
19430 (grub_get_rtc): Exported.
19431
19432 * include/grub/normal.h (struct grub_command_list): Remove
19433 constant from the member `command'.
19434
19435 * include/grub/loader.h (grub_loader_is_loaded): Declared.
19436
19437 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
19438
19439 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
19440
aa033560 194412004-08-28 Marco Gerards <metgerards@student.han.nl>
19442
19443 Add support for the JFS filesystem.
19444
19445 * fs/jfs.c: New file.
19446 * include/grub/fs.h (grub_jfs_init): New prototype.
19447 (grub_jfs_fini): New prototype.
19448 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
19449 (grub_emu_SOURCES): Likewise.
19450 (pkgdata_MODULES): Add jfs.mod.
19451 (jfs_mod_SOURCES): New variable.
19452 (jfs_mod_CFLAGS): Likewise.
19453 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
19454 (grubof_SOURCES): Likewise.
19455 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
19456
19457 * fs/fat.c (grub_fat_find_dir): Convert the filename little
19458 endian to the host endian.
19459 (grub_fat_utf16_to_utf8): Move function from there...
19460 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
fe987087 19461 the endianness of the source string anymore.
aa033560 19462 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
19463
94bc45af 194642004-08-24 Marco Gerards <metgerards@student.han.nl>
19465
19466 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
19467 (grub_boot_fini) [GRUB_UTIL]: Likewise.
19468 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
19469 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
f19dbdb7 19470
94bc45af 19471 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
19472 (grub_hfs_iterate_dir): Make the function static. Add prototypes
19473 for `node_found' and `it_dir'.
19474 (grub_hfs_dir): Add prototype for `dir_hook'.
19475
19476 * fs/minix.c (grub_minix_get_file_block): Add prototype for
19477 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
19478 and `indir32' to silence a gcc warning.
19479
19480 * include/grub/fs.h (grub_hfs_init): New prototype.
19481 (grub_hfs_fini): Likewise.
f19dbdb7 19482
19483
97543f08 194842004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
19485
19486 Each disk device has its own id now. This is useful to make use
19487 of multiple disk devices.
f19dbdb7 19488
97543f08 19489 * include/grub/disk.h (grub_disk_dev_id): New enum.
19490 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
19491 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
19492
19493 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
19494 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
19495
19496 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
19497 GRUB_DISK_DEVICE_OFDISK_ID as an id.
19498
19499 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
19500 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
19501
19502 * include/grub/disk.h (struct grub_disk_dev): Added a new member
19503 "id" which is used by the cache manager.
19504
19505 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
19506 of just "GRUB".
19507
64372eb4 195082004-08-18 Marco Gerards <metgerards@student.han.nl>
19509
19510 * fs/hfs.c: New file.
19511 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
19512 (grub_emu_SOURCES): Likewise.
19513 (pkgdata_MODULES): Add hfs.mod.
19514 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
19515 (grubof_SOURCES): Likewise.
19516 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
19517
19518 * include/grub/misc.h (grub_strncasecmp): Add prototype.
19519 * kern/misc.c (grub_strncasecmp): Add function.
19520
cc61b58f 195212004-08-14 Marco Gerards <metgerards@student.han.nl>
19522
19523 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
19524 with parentheses.
19525
19526 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
19527 (grub_ext2_dir): In case the directory entry type is unknown, read
19528 it from the inode.
19529
0ef123f6 195302004-08-02 Peter Bruin <pjbruin@dds.nl>
19531
19532 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
19533 grub_load_linux instead of grub_rescue_cmd_linux as second
19534 argument of grub_rescue_register_command.
19535
19536 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
19537
a447c5df 195382004-07-27 Marco Gerards <metgerards@student.han.nl>
19539
19540 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
19541 function.
19542 * commands/boot.c: Remove the check for `GRUB_UTIL'.
19543 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
19544 `loader/powerpc/ieee1275/linux.c',
19545 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
19546 * include/grub/powerpc/ieee1275/ieee1275.h
19547 (grub_ieee1275_release): New prototype.
19548 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
19549 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
19550 normal, boot, linux and linux_normal.
19551 * loader/powerpc/ieee1275/linux.c: New file.
19552 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
19553
5a9e3546 195542004-07-12 Marco Gerards <metgerards@student.han.nl>
19555
19556 * normal/arg.c (grub_arg_parse): Correct error handling after
19557 reallocating the argumentlist (check if `argl' is not null instead
19558 of checking if `args' is not null).
19559 * kern/mm.c (grub_realloc): Return the same pointer when using the
19560 same region, instead of returning the header address.
19561
e15199cb 195622004-07-11 Marco Gerards <metgerards@student.han.nl>
19563
19564 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
19565 one block instead of two when looking for the initial partition.
19566 (grub_partition_probe): Initialize the local variable `p' with 0.
19567 Use base 10 for the grub_strtoul call.
19568 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
19569 need for one local variable.
19570 (grub_strtoul): Don't add the new value to `num', instead of that
19571 just assign it.
19572
020616c2 195732004-07-11 Marco Gerards <metgerards@student.han.nl>
19574
19575 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
19576 (pxeboot_img_SOURCES): New variable.
19577 (pxeboot_img_ASFLAGS): Likewise.
19578 (pxeboot_img_LDFLAGS): Likewise.
19579 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
19580 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
19581 <lode_leroy@hotmail.com>.
19582
6c51eb64 195832004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
19584
19585 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
19586 there was no input.
19587
cfb12aff 195882004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
19589
19590 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
19591 the history buffer logic.
19592
6eabba74 195932004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
19594
19595 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
19596 (FILETYPE_INO_SYMLINK): New macros.
19597 (grub_ext2_find_file): Check if the node is a directory using the
19598 inode stat information instead of using the filetype in the
19599 dirent. Exclude the first character of an absolute symlink.
19600 (grub_ext2_dir): Mask out the filetype part of the mode member of
19601 the inode.
19602
66e19ef8 196032004-05-24 Marco Gerards <metgerards@student.han.nl>
19604
19605 Add support for UFS version 1 and 2. Add support for the minix
19606 filesystem version 1 and 2, both the variants with 14 and 30 long
19607 filenames.
f19dbdb7 19608
66e19ef8 19609 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
19610 fs/minix.c.
19611 (grub_emu_SOURCES): Likewise.
19612 (pkgdata_MODULES): Add ufs.mod and minix.mod.
19613 (ufs_mod_SOURCES): New variable.
19614 (ufs_mod_CFLAGS): Likewise.
19615 (minix_mod_SOURCES): Likewise.
19616 (minix_mod_CFLAGS): Likewise.
19617 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
19618 fs/minix.c.
19619 (grubof_SOURCES): Likewise.
19620 * fs/ufs.c: New file.
19621 * fs/minix.c: New file.
19622 * include/grub/fs.h (grub_ufs_init): New prototype.
19623 (grub_ufs_fini): Likewise.
19624 (grub_minix_init): Likewise.
19625 (grub_minix_fini): Likewise.
19626 * util/grub-emu.c (main): Initialize and deinitialize UFS and
19627 minix fs.
19628
cc2e748a 196292004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
19630
19631 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
19632 commands/ls.c, commands/terminal.c, commands/boot.c,
19633 commands/cmp.c and commands/cat.c.
19634 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
19635
19636 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
19637 "env.h"
19638
4b13b216 196392004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
19640
19641 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
19642 and grub_, respectively. Because the conversion is trivial and
19643 mechanical, I omit the details here. Please refer to the CVS
19644 if you need more information.
19645
6a142551 196462004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
19647
19648 * include/pupa: Renamed to ...
19649 * include/grub: ... this.
19650 * util/i386/pc/pupa-mkimage.c: Renamed to ...
19651 * util/i386/pc/grub-mkimage.c: ... this.
19652 * util/i386/pc/pupa-setup.c: Renamed to ...
19653 * util/i386/pc/grub-setup.c: ... this.
19654 * util/pupa-emu.c: Renamed to ...
19655 * util/grub-emu.c: ... this.
19656
e56cdf21 196572004-03-29 Marco Gerards <metgerards@student.han.nl>
19658
19659 Add support for the newworld apple macintosh (PPC). This has been
19660 tested on the powerbook 2000 only. It only adds support for
19661 generic ieee1275 functions, console and disk support. This should
19662 be easy to port to other architectures with support for Open
19663 Firmware.
f19dbdb7 19664
e56cdf21 19665 * configure.ac: Accept the powerpc as host_cpu. In the case of
19666 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
19667 specific tests are only executed while building for the i386.
19668 Inverse test for crosscompile.
19669 * genmk.rb (Utility): Allow assembler files.
19670 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
19671 * conf/powerpc-ieee1275.rmk: New file.
19672 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
19673 * disk/powerpc/ieee1275/partition.c: Likewise.
19674 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
19675 * include/pupa/powerpc/ieee1275/console.h: Likewise.
19676 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
19677 * include/pupa/powerpc/ieee1275/time.h: Likewise.
19678 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
19679 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
19680 * include/pupa/powerpc/ieee1275/loader.h
19681 * include/pupa/powerpc/setjmp.h: Likewise.
19682 * include/pupa/powerpc/types.h: Likewise.
19683 * kern/powerpc/ieee1275/init.c: Likewise.
19684 * kern/powerpc/ieee1275/openfw.c: Likewise.
19685 * term/powerpc/ieee1275/ofconsole.c: Likewise.
19686
19687 These files were written by Johan Rydberg
19688 (jrydberg@night.trouble.net) and I only modified them slightly.
f19dbdb7 19689
e56cdf21 19690 * boot/powerpc/ieee1275/cmain.c: New file.
19691 * boot/powerpc/ieee1275/crt0.S: Likewise.
19692 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
19693 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
19694
8c8cc205 196952004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
19696
19697 * Makefile.in: Update copyright.
19698 * genmodsrc.sh: Likewise.
19699 * gensymlist.sh: Likewise.
19700 * term/i386/pc/vga.c: Indent correctly.
19701
19702 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
19703 bugreporting address.
19704 * util/i386/pc/pupa-setup.c (usage): Likewise,
19705 (main): Call pupa_ext2_init and pupa_ext2_fini.
19706
f19dbdb7 19707 * fs/fat.c (log2): Renamed to ...
8c8cc205 19708 (fat_log2): ... this.
19709 All callers changed.
19710 * kern/misc.c (memcpy): Alias to pupa_memmove.
19711 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
19712 lvalue cast.
19713 * util/console.c (pupa_ncurses_fini): Return 0.
19714
19715 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
19716 Move fail label here.
19717 [__GNU__]: Don't warn when using stat.
19718 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
19719 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
19720 long int. Use strtol instead of strtoul.
f19dbdb7 19721
db1771cf 197222004-03-14 Marco Gerards <metgerards@student.han.nl>
19723
19724 * commands/boot.c: New file.
19725 * commands/cat.c: Likewise.
19726 * commands/cmp.c: Likewise.
19727 * commands/ls.c: Likewise.
19728 * commands/terminal.c: Likewise.
19729 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
19730 (pupa_register_command): Changed interface to match the new
19731 argument parser.
19732 (pupa_command_execute): Changed (almost rewritten) so it uses
19733 pupa_split_command. Added support for setting variables using the
19734 syntax `foo=bar'.
19735 (rescue_command): Changed to work with the new argument parser.
19736 (terminal_command): Moved from here to commands/terminal.c.
19737 (set_command): New function.
19738 (unset_command): New function.
19739 (insmod_command): New function.
19740 (rmmod_command): New function.
19741 (lsmod_command): New function.
19742 (pupa_command_init): Don't initialize the command terminal
19743 anymore. Initialize the commands set, unset, insmod, rmmod and
19744 lsmod.
19745 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
19746 (kernel_img_HEADERS): Add arg.h and env.h.
19747 (pupa_mkimage_LDFLAGS): Add kern/env.c.
19748 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
19749 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
19750 normal/arg.c.
19751 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
19752 terminal.mod.
19753 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
19754 (boot_mod_SOURCES): New variable.
19755 (terminal_mod_SOURCES): Likewise.
19756 (ls_mod_SOURCES): Likewise.
19757 (cmp_mod_SOURCES): Likewise.
19758 (cat_mod_SOURCES): Likewise.
19759
19760 * normal/arg.c: New file.
19761 * kern/env.c: Likewise.
19762 * include/pupa/arg.h: Likewise.
19763 * include/pupa/env.h: Likewise.
19764 * font/manager.c (font_command): Changed to match argument parsing
19765 interface changes.
19766 (PUPA_MOD_INIT): Likewise.
19767 * hello/hello.c (pupa_cmd_hello): Likewise.
19768 (PUPA_MOD_INIT): Likewise.
19769 * include/pupa/disk.h: Include <pupa/device.h>.
19770 (pupa_print_partinfo): New prototype.
19771 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
19772 (pupa_dl_get_prefix): Likewise.
19773 * include/pupa/misc.h: Include <pupa/err.h>.
19774 (pupa_isgraph): New prototype.
19775 (pupa_isdigit): Likewise.
19776 (pupa_split_cmdline): Likewise.
19777 * include/pupa/normal.h: Include <pupa/arg.h>.
19778 (pupa_command): Changed the prototype of the member `func' to
19779 match the argument parsing interface. Added member `options'.
19780 (pupa_register_command): Updated to match function.
19781 (pupa_arg_parse): New prototype.
19782 (pupa_hello_init) [PUPA_UTIL]: New prototype.
19783 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
19784 (pupa_ls_init) [PUPA_UTIL]: Likewise.
19785 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
19786 (pupa_cat_init) [PUPA_UTIL]: Likewise.
19787 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
19788 (pupa_boot_init) [PUPA_UTIL]: Likewise.
19789 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
19790 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
19791 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
19792 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
19793 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
19794 * kern/disk.c: Include <pupa/file.h>.
19795 (pupa_print_partinfo): New function.
19796 * kern/dl.c: Include <pupa/env.h>.
19797 (pupa_dl_dir): Variable removed.
19798 (pupa_dl_load): Use the environment variable `prefix' instead of
19799 the variable pupa_dl_dir.
19800 (pupa_dl_set_prefix): Function removed.
19801 (pupa_dl_get_prefix): Likewise.
19802 * kern/i386/pc/init.c: Include <pupa/env.h>.
19803 (pupa_machine_init): Use the environment variable `prefix' instead of
19804 using pupa_dl_set_prefix to set the prefix.
19805 * kern/main.c: Include <pupa/env.h>.
19806 (pupa_set_root_dev): Use the environment variable `prefix' instead of
19807 using pupa_dl_get_prefix to get the prefix.
19808 * kern/misc.c: Include <pupa/env.h>.
19809 (pupa_isdigit): New function.
19810 (pupa_isgraph): Likewise.
19811 (pupa_ftoa): Likewise.
19812 (pupa_vsprintf): Added support for printing values of the type
19813 `double'. Make it possible to format variable output when using
19814 formatting like `%1.2%f'.
19815 (pupa_split_cmdline): New function.
19816 * kern/rescue.c: Include <pupa/env.h>.
19817 (next_word): Removed function.
19818 (pupa_rescue_cmd_prefix): Likewise.
19819 (pupa_rescue_cmd_set): New function.
19820 (pupa_rescue_cmd_unset): New function.
19821 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
19822 split the command line instead of splitting it here. Added
19823 support for setting variables using the syntax `foo=bar'. Don't
19824 initialize the prefix command anymore. Initialized the set and
19825 unset commands.
19826 * normal/cmdline.c: Include <pupa/env.h>.
19827 (pupa_tab_complete): Added prototypes for print_simple_completion,
19828 print_partition_completion, add_completion, iterate_commands,
19829 iterate_dev, iterate_part and iterate_dir. Moved code to print
19830 partition information from here to kern/disk.c.
fe6b695a 19831 (pupa_cmdline_run): Don't check if the function exists anymore.
db1771cf 19832 * normal/main.c: Include <pupa/env.h>.
19833 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
19834 instead of using pupa_dl_get_prefix to get the prefix.
19835 * term/i386/pc/vga.c: Include <pupa/arg.h>.
19836 (check_vga_mem): Cast pointers to `void *' to silence a gcc
19837 warning.
19838 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
19839 (pupa_vga_setcolor): Declare unused variables with `__attribute__
19840 ((unused))' to silence a gcc warning.
19841 (pupa_vga_setcolor): Likewise.
19842 (debug_command): Changed to match argument parsing
19843 interface changes.
19844 * util/pupa-emu.c: Include <pupa/env.h>.
19845 (options): Added 0's for unused fields to silence a gcc warning.
19846 (argp): Likewise.
19847 (main): Use the environment variable `prefix' instead of using
19848 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
19849 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
19850 and terminal.
19851
19852 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
19853 * util/misc.c: Include <malloc.h>.
19854 (pupa_malloc): Rewritten so errors are correctly reported.
19855 (pupa_realloc): Likewise.
19856 (pupa_memalign): Likewise.
19857 (pupa_mm_init_region): Declare unused variables with
19858 `__attribute__ ((unused))' to silence a gcc warning.
19859 * normal/i386/setjmp.S: Remove tab at the end of the file to
19860 silence a gcc warning.
19861 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
19862 variables with `__attribute__ ((unused))' to silence a gcc
19863 warning.
19864 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
19865 local variable i unsigned to silence a gcc warning.
19866
19867 * kern/term.c: Include <pupa/misc.h>.
19868 (pupa_more_lines): New variable.
19869 (pupa_more): Likewise.
19870 (pupa_putcode): When the pager is active pause at the end of every
19871 screen.
19872 (pupa_set_more): New function.
19873 * include/pupa/term.h (pupa_set_more): New prototype.
19874
19875
3b1139cb 198762004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
19877
19878 Now this project is GRUB 2 rather than PUPA. The location of
19879 the CVS repository was moved to GRUB's.
f19dbdb7 19880
3b1139cb 19881 * configure.ac: Use bug-grub as the reporting address.
19882 Use GRUB instead of PUPA.
19883 Change the version number to 1.90.
19884
8367695c 198852004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
19886
19887 * genkernsyms.sh: Updated copyright information.
19888 * genmk.rb: Likewise.
19889 * genmodsrc.sh: Likewise.
19890 * gensymlist.sh: Likewise.
19891 * boot/i386/pc/boot.S: Likewise.
19892 * boot/i386/pc/diskboot.S: Likewise.
19893 * disk/i386/pc/biosdisk.c: Likewise.
19894 * disk/i386/pc/partition.c: Likewise.
19895 * font/manager.c: Likewise.
19896 * fs/ext2.c: Likewise.
19897 * fs/fat.c: Likewise.
19898 * include/pupa/boot.h: Likewise.
19899 * include/pupa/device.h: Likewise.
19900 * include/pupa/disk.h: Likewise.
19901 * include/pupa/dl.h: Likewise.
19902 * include/pupa/elf.h: Likewise.
19903 * include/pupa/err.h: Likewise.
19904 * include/pupa/file.h: Likewise.
19905 * include/pupa/font.h: Likewise.
19906 * include/pupa/fs.h: Likewise.
19907 * include/pupa/kernel.h: Likewise.
19908 * include/pupa/loader.h: Likewise.
19909 * include/pupa/misc.h: Likewise.
19910 * include/pupa/mm.h: Likewise.
19911 * include/pupa/net.h: Likewise.
19912 * include/pupa/normal.h: Likewise.
19913 * include/pupa/rescue.h: Likewise.
19914 * include/pupa/setjmp.h: Likewise.
19915 * include/pupa/symbol.h: Likewise.
19916 * include/pupa/term.h: Likewise.
19917 * include/pupa/types.h: Likewise.
19918 * include/pupa/i386/setjmp.h: Likewise.
19919 * include/pupa/i386/types.h: Likewise.
19920 * include/pupa/i386/pc/biosdisk.h: Likewise.
19921 * include/pupa/i386/pc/boot.h: Likewise.
19922 * include/pupa/i386/pc/console.h: Likewise.
19923 * include/pupa/i386/pc/init.h: Likewise.
19924 * include/pupa/i386/pc/kernel.h: Likewise.
19925 * include/pupa/i386/pc/linux.h: Likewise.
19926 * include/pupa/i386/pc/loader.h: Likewise.
19927 * include/pupa/i386/pc/memory.h: Likewise.
19928 * include/pupa/i386/pc/multiboot.h: Likewise.
19929 * include/pupa/i386/pc/partition.h: Likewise.
19930 * include/pupa/i386/pc/time.h: Likewise.
19931 * include/pupa/i386/pc/vga.h: Likewise.
19932 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
19933 * include/pupa/util/getroot.h: Likewise.
19934 * include/pupa/util/misc.h: Likewise.
19935 * include/pupa/util/resolve.h: Likewise.
19936 * kern/device.c: Likewise.
19937 * kern/disk.c: Likewise.
19938 * kern/dl.c: Likewise.
19939 * kern/err.c: Likewise.
19940 * kern/file.c: Likewise.
19941 * kern/fs.c: Likewise.
19942 * kern/loader.c: Likewise.
19943 * kern/main.c: Likewise.
19944 * kern/misc.c: Likewise.
19945 * kern/mm.c: Likewise.
19946 * kern/rescue.c: Likewise.
19947 * kern/term.c: Likewise.
19948 * kern/i386/dl.c: Likewise.
19949 * kern/i386/pc/init.c: Likewise.
19950 * kern/i386/pc/lzo1x.S: Likewise.
19951 * kern/i386/pc/startup.S: Likewise.
19952 * loader/i386/pc/chainloader.c: Likewise.
19953 * loader/i386/pc/linux.c: Likewise.
19954 * loader/i386/pc/multiboot.c: Likewise.
19955 * normal/cmdline.c: Likewise.
19956 * normal/command.c: Likewise.
19957 * normal/main.c: Likewise.
19958 * normal/menu.c: Likewise.
19959 * normal/i386/setjmp.S: Likewise.
19960 * term/i386/pc/console.c: Likewise.
19961 * term/i386/pc/vga.c: Likewise.
19962 * util/console.c: Likewise.
19963 * util/genmoddep.c: Likewise.
19964 * util/misc.c: Likewise.
19965 * util/pupa-emu.c: Likewise.
19966 * util/resolve.c: Likewise.
19967 * util/unifont2pff.rb: Likewise.
19968 * util/i386/pc/biosdisk.c: Likewise.
19969 * util/i386/pc/getroot.c: Likewise.
19970 * util/i386/pc/pupa-mkimage.c: Likewise.
19971 * util/i386/pc/pupa-setup.c: Likewise.
19972
e6eced71 199732004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
19974
19975 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
19976 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
19977 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
19978 reading and reset it after reading.
19979 (pupa_ext2_close): Return PUPA_ERR_NONE.
19980
19981 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
19982 Correct value.
19983 (struct linux_kernel_header): Add kernel_version and
19984 initrd_addr_max.
19985 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
19986 pupa_file_read succeeds.
19987 (pupa_rescue_cmd_initrd): Implement.
19988
5aded270 199892003-12-03 Marco Gerards <metgerards@student.han.nl>
19990
19991 * fs/ext2.c (pupa_ext2_label): New function.
19992 (pupa_ext2_fs): Added label.
19993 * fs/fat.c (pupa_fat_label): New function.
19994 (pupa_fat_fs): Added label.
19995 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
19996
19997 * kern/misc.c (pupa_strndup): New function.
19998 * include/pupa/misc.h (pupa_strndup): New prototype.
19999
20000 * include/pupa/normal.h: Include <pupa/err.h>.
20001 (pupa_set_history): New prototype.
20002 (pupa_iterate_commands): New prototype.
20003 * normal/cmdline.c: Include <pupa/machine/partition.h>,
20004 <pupa/disk.h>, <pupa/file.h>.
20005 (hist_size): New variable.
20006 (hist_lines): Likewise.
20007 (hist_end): Likewise.
20008 (hist_used): Likewise.
20009 (pupa_set_history): New function.
20010 (pupa_history_get): Likewise.
20011 (pupa_history_add): Likewise.
20012 (pupa_history_replace): Likewise.
20013 (pupa_tab_complete): Likewise.
20014 (pupa_cmdline_run): Added tab completion and history buffer. Tab
20015 completion shows partitionnames while completing partitions, this
20016 feature was suggested by Jeff Bailey.
20017 * normal/command.c (pupa_iterate_commands): New function.
20018 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
20019 (pupa_normal_init): Initialize history buffer.
20020 (PUPA_MOD_INIT): Likewise.
20021 (pupa_normal_fini): Free the history buffer.
20022 (PUPA_MOD_FINI): Likewise.
20023
20024 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
20025 key.
20026
20027 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
20028 * configure.ac [i386]: Check for regparam bug.
20029 (NESTED_FUNC_ATTR) [! i386]: Defined.
20030
1f7315a3 200312003-11-17 Marco Gerards <metgerards@student.han.nl>
20032
20033 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
20034 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
20035 (pupa_emu_SOURCES): New variable.
20036 (pupa_emu_LDFLAGS): Likewise.
20037 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
20038 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
20039 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
20040 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
20041 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
20042 (pupa_jmp_buf): New typedef.
20043 (pupa_setjmp) [PUPA_UTIL]: New macro.
20044 (pupa_longjmp) [PUPA_UTIL]: Likewise.
20045 * include/pupa/term.h (struct pupa_term): New member `refresh'.
20046 (pupa_refresh): New prototype.
20047 * include/pupa/util/getroot.h: New file.
20048 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
20049 it.
20050 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
20051 (pupa_rescue_cmd_cat): Likewise.
20052 (pupa_rescue_cmd_ls): Likewise.
20053 (pupa_rescue_cmd_testload): Likewise.
20054 (pupa_rescue_cmd_lsmod): Likewise.
20055 * normal/cmdline.c (pupa_cmdline_get): Likewise.
20056 * normal/menu.c (run_menu): Likewise.
20057 * kern/term.c (pupa_cls): Likewise.
20058 (pupa_refresh): New function.
20059 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
20060 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
20061 * util/console.c: New file.
f19dbdb7 20062
1f7315a3 20063 * util/i386/pc/getroot.c: New file.
20064 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
20065 (pupa_putchar): New function.
20066 (pupa_refresh): Likewise.
20067 (xgetcwd): Function moved to ...
20068 (strip_extra_slashes): Likewise.
20069 (get_prefix): Likewise.
f19dbdb7 20070 * util/i386/pc/getroot.c: ... here.
1f7315a3 20071 (find_root_device): Function moved and renamed to...
20072 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
20073 Changed all callers.
20074 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
20075 and renamed to...
20076 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
20077 Changed all callers.
20078 * util/misc.c (pupa_memalign): New function.
20079 (pupa_mm_init_region): Likewise.
20080 (pupa_register_exported_symbols): Likewise.
20081 (pupa_putchar): Function removed.
20082 * util/pupa-emu.c: New file.
20083
9a5c1ade 200842003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
20085
20086 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
20087 (_multiboot_mod_SOURCES): New variable.
20088 (_multiboot_mod_CFLAGS): Likewise.
20089 * loader/i386/pc/multiboot.c: New file.
20090 * include/pupa/i386/pc/multiboot.h: Likewise.
20091 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
20092 (pupa_multiboot_real_boot): New function.
20093 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
20094 (pupa_multiboot_real_boot): New prototype.
20095 (pupa_rescue_cmd_multiboot): Likewise
20096 (pupa_rescue_cmd_module): Likewise.
20097
20098 * kern/loader.c (pupa_loader_set): Continue when
20099 pupa_loader_unload_func() fails.
20100 (pupa_loader_unset): New function.
20101 * include/pupa/loader.h (pupa_loader_unset): New prototype.
20102
20103 * kern/misc.c (pupa_stpcpy): New function.
20104 * include/pupa/misc.h (pupa_stpcpy): New prototype.
20105
8e72a9c0 201062003-11-12 Marco Gerards <metgerards@student.han.nl>
20107
20108 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
20109 for available extensions.
20110
20111 * include/pupa/i386/pc/time.h: New file.
20112 * kern/disk.c: Include <pupa/machine/time.h>.
20113 (PUPA_CACHE_TIMEOUT): New macro.
20114 (pupa_last_time): New variable.
20115 (pupa_disk_open): Flush the cache when there was a timeout.
20116 (pupa_disk_close): Reset the timer.
20117 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
20118 pupa_currticks.
20119 * util/misc.c: Include <sys/times.h>
20120 (pupa_get_rtc): New function.
20121
c4adbd32 201222003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
20123
20124 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
20125 as blocks.
20126 (pupa_ext2_get_file_block): Use blocks member.
20127
20128 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
20129 first block. Return -1 instead of pupa_errno on error.
20130
bfd30f06 201312003-10-27 Marco Gerards <metgerards@student.han.nl>
20132
20133 * README: In the pupa-mkimage example use _chain instead of chain
20134 and ext2 instead of fat.
20135 * TODO: Replace ext2fs with jfs as an example. Add an item for
20136 adding journal playback for ext2fs.
20137 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
20138 (pkgdata_MODULES): Added ext2.mod.
20139 (ext2_mod_SOURCES): New variable.
20140 (ext2_mod_CFLAGS): Likewise.
20141 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
20142 * include/pupa/misc.h (pupa_strncpy): New prototype.
20143 (pupa_strcat): Likewise.
20144 (pupa_strncmp): Likewise.
20145 * kern/misc.c (pupa_strcat): Enable function.
20146 (pupa_strncpy): New function.
20147 (pupa_strncmp): Likewise.
20148 * fs/ext2.c: New file.
f19dbdb7 20149
bfd30f06 20150 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
20151 when the read failed before retrying.
20152 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
20153 (_FILE_OFFSET_BITS): Likewise.
20154 * configure.ac: Added AC_SYS_LARGEFILE.
20155
98d15063 201562003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
20157
20158 * genmk.rb (PModule#rule): Make sure to get only symbol names
20159 from the output of nm.
20160 Reported by Robert Millan <zeratul2@wanadoo.es>.
20161
18d9c7cd 201622003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
20163
20164 I forgot to check in these changes for a long time. This adds
20165 incomplete support for VGA console, and this is still very
20166 buggy. Also, a lot of consideration is required for I18N,
20167 UNICODE, and VGA font issues. Therefore, assume that this is
20168 such that "better than nothing".
f19dbdb7 20169
18d9c7cd 20170 * font/manager.c: New file.
20171 * include/pupa/font.h: Likewise.
20172 * include/pupa/i386/pc/vga.h: Likewise.
20173 * term/i386/pc/vga.c: Likewise.
20174 * util/unifont2pff.rb: Likewise.
20175
20176 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
20177 (pkgdata_MODULES): Added vga.mod and font.mod.
20178 (vga_mod_SOURCES): New variables.
20179 (vga_mod_CFLAGS): Likewise.
20180 (font_mod_SOURCES): Likewise.
20181 (font_mod_CFLAGS): Likewise.
20182
20183 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
20184
20185 * include/pupa/term.h: Include pupa/err.h.
f19dbdb7 20186 (struct pupa_term): Added init and fini.
18d9c7cd 20187 Changed the argument of putchar to pupa_uint32_t.
20188
20189 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
20190 (pupa_console_real_putchar): New prototype.
20191 (pupa_console_putchar): Removed.
20192 (pupa_console_checkkey): Exported.
20193 (pupa_console_getkey): Likewise.
20194
20195 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
20196 characters.
20197
20198 * kern/term.c (pupa_term_set_current): Rewritten.
20199 (pupa_putchar): Likewise.
20200 (pupa_putcode): New function.
20201
20202 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
20203 (pupa_console_real_putchar): ... this.
20204 (pupa_vga_set_mode): New function.
20205 (pupa_vga_get_font): Likewise.
20206
20207 * normal/command.c: Include pupa/term.h.
20208 (terminal_command): New function.
20209 (pupa_command_init): Register the command "terminal".
20210
20211 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
20212 (DISP_UP): Likewise.
20213 (DISP_RIGHT): Likewise.
20214 (DISP_DOWN): Likewise.
20215 (DISP_HLINE): Likewise.
20216 (DISP_VLINE): Likewise.
20217 (DISP_UL): Likewise.
20218 (DISP_UR): Likewise.
20219 (DISP_LL): Likewise.
20220 (DISP_LR): Likewise.
20221
20222 * term/i386/pc/console.c (pupa_console_putchar): New function.
f19dbdb7 20223
977329f5 202242003-02-08 NIIBE Yutaka <gniibe@m17n.org>
20225
20226 * util/resolve.c (pupa_util_resolve_dependencies): BUG
20227 FIX. Reverse the path_list.
20228
20229 * include/pupa/normal.h: Export pupa_register_command and
20230 pupa_unregister_command.
20231
20232 * hello/hello.c (pupa_cmd_hello): New module.
20233 * conf/i386-pc.rmk: Added hello.mod.
20234
1f5ab428 202352003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
20236
20237 * kern/i386/pc/lzo1x.S: New file.
f19dbdb7 20238
1f5ab428 20239 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
20240 (compress_kernel): New variable.
20241 (generate_image): Heavily modified to support compressing a
20242 large part of the core image.
20243
20244 * util/misc.c (pupa_util_read_image): Fix a file descriptor
20245 leak.
20246 (pupa_util_load_image): New function.
20247
20248 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
20249 (pupa_compressed_size): New variable.
20250 (codestart): Enable Gate A20 here.
20251 Decompress the compressed part of the core image.
20252 Rearrange the code to put functions and variables which are
20253 required for initialization in the non-compressed part.
20254 Include lzo1x.S.
20255
20256 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
20257 here.
20258
20259 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
20260
f19dbdb7 20261 * include/pupa/i386/pc/kernel.h
1f5ab428 20262 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
20263 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
20264 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
20265 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
20266 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
20267
20268 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
20269
20270 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
20271 (Utility#rule): Likewise.
20272
20273 * configure.ac: Check if LZO is available.
20274
ce5bf700 202752003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
20276
20277 * include/pupa/normal.h: New file.
20278 * include/pupa/setjmp.h: Likewise.
20279 * include/pupa/i386/setjmp.h: Likewise.
20280 * normal/cmdline.c: Likewise.
20281 * normal/command.c: Likewise.
20282 * normal/main.c: Likewise.
20283 * normal/menu.c: Likewise.
20284 * normal/i386/setjmp.S: Likewise.
f19dbdb7 20285
ce5bf700 20286 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
20287 (pupa_rescue_cmd_initrd): Likewise.
20288
20289 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
20290 Likewise.
20291
20292 * kern/i386/pc/startup.S (translation_table): New variable.
20293 (translate_keycode): New function.
20294 (pupa_console_getkey): Call translate_keycode.
20295
20296 * kern/rescue.c (attempt_normal_mode): New function.
20297 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
20298 it failed, print a message.
20299
20300 * kern/mm.c (pupa_real_malloc): Print more information when a
20301 free magic is broken.
20302 (pupa_free): If the first free header is not free actually, set
20303 it to P.
20304
20305 * kern/main.c (pupa_load_normal_mode): Just load the module
20306 "normal".
20307 (pupa_main): Don't print the message
20308 "Entering into rescue mode..." here.
20309
20310 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
20311 Declared.
20312 (pupa_rescue_cmd_initrd): Likewise.
20313 (pupa_rescue_cmd_initrd): Likewise.
20314
20315 * include/pupa/symbol.h (FUNCTION): Specify the type.
20316 (VARIABLE): Likewise.
20317
20318 * include/pupa/err.h (pupa_err_t): Added
20319 PUPA_ERR_UNKNOWN_COMMAND.
20320
20321 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
20322 (pupa_dl_get_prefix): Likewise.
20323
20324 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
20325 Added _chain.mod and _linux.mod instead of chain.mod and
20326 linux.mod.
20327 (chain_mod_SOURCES): Renamed to ...
20328 (_chain_mod_SOURCES): ... this.
20329 (chain_mod_CFLAGS): Renamed to ...
20330 (_chain_mod_CFLAGS): ... this.
20331 (linux_mod_SOURCES): Renamed to ...
20332 (_linux_mod_SOURCES): ... this.
20333 (linux_mod_CFLAGS): Renamed to ...
20334 (_linux_mod_CFLAGS): ... this.
20335 (normal_mod_SOURCES): New variable.
20336 (normal_mod_CFLAGS): Likewise.
20337 (normal_mod_ASFLAGS): Likewise.
20338
203392003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
20340
20341 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
20342 possible.
20343
fe6b695a 20344 * kern/dl.c (pupa_dl_ref): Refer depending modules
ce5bf700 20345 recursively.
20346 (pupa_dl_unref): Unrefer depending modules recursively.
20347 Don't call pupa_dl_unload implicitly, because PUPA can crash if
20348 a module is unloaded before one depending on that module is
20349 unloaded.
20350 (pupa_dl_unload): Unload depending modules explicitly,
20351 if possible.
20352
c04da074 203532003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
20354
20355 * include/pupa/i386/pc/linux.h: New file.
20356 * loader/i386/pc/linux.c: Likewise.
f19dbdb7 20357
c04da074 20358 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
20359 Removed.
20360 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
20361 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
20362 of PUPA_CHAINLOADER_BOOT_SECTOR.
20363
20364 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
20365 (pupa_linux_prot_size): New variable.
20366 (pupa_linux_tmp_addr): Likewise.
20367 (pupa_linux_real_addr): Likewise.
20368 (pupa_linux_boot_zimage): New function.
20369 (pupa_linux_boot_bzimage): Likewise.
20370
20371 * kern/i386/pc/init.c (struct mem_region): New structure.
20372 (MAX_REGIONS): New macro.
20373 (mem_regions): New variable.
20374 (num_regions): Likewise.
20375 (pupa_os_area_addr): Likewise.
20376 (pupa_os_area_size): Likewise.
20377 (pupa_lower_mem): Likewise.
20378 (pupa_upper_mem): Likewise.
20379 (add_mem_region): New function.
20380 (compact_mem_regions): Likewise.
20381 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
20382 the size of the conventional memory and that of so-called upper
20383 memory (before the first memory hole).
20384 Instead of adding each found region to free memory, use
20385 add_mem_region and add them after removing overlaps.
20386 Also, add only 1/4 of the upper memory to free memory. The rest
20387 is used for loading OS images. Maybe this is ad hoc, but this
20388 makes it much easier to relocate OS images when booting.
20389
20390 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
20391 (pupa_enter_rescue_mode): Don't register initrd and module.
20392
20393 * kern/mm.c: Include pupa/dl.h.
20394
20395 * kern/main.c: Include pupa/file.h and pupa/device.h.
20396
20397 * kern/loader.c (pupa_loader_load_module_func): Removed.
20398 (pupa_loader_load_module): Likewise.
20399
20400 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
20401 ``.o''.
20402
20403 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
20404 (pupa_linux_tmp_addr): Likewise.
20405 (pupa_linux_real_addr): Likewise.
20406 (pupa_linux_boot_zimage): Likewise.
20407 (pupa_linux_boot_bzimage): Likewise.
20408
20409 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
20410 (pupa_upper_mem): Likewise.
20411 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
20412 module is too dangerous.
20413
20414 * include/pupa/loader.h (pupa_os_area_addr): Declared.
20415 (pupa_os_area_size): Likewise.
20416 (pupa_loader_set): Remove the first argument. Loader doesn't
20417 manage modules or initrd any longer.
20418 (pupa_loader_load_module): Removed.
20419
20420 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
20421 (linux_mod_SOURCES): New variable.
20422 (linux_mod_CFLAGS): Likewise.
20423
a13f9237 204242003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
20425
20426 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
20427 the length of a blocklist correctly.
20428
20429 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
20430 Use ioctl only if the OS file is a block device.
20431 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
20432 not very useful for normal files.
20433
20434 * kern/main.c (pupa_set_root_dev): New function.
20435 (pupa_load_normal_mode): Likewise.
20436 (pupa_main): Call those above.
20437
20438 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
20439 pupa_uint16_t.
20440
20441 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
20442
a5ffe966 204432003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
20444
20445 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
20446 (setup): Configure the installed partition information and the
20447 dl prefix.
20448
20449 * loader/i386/pc/chainloader.c (my_mod): New variable.
20450 (pupa_chainloader_unload): New function.
20451 (pupa_rescue_cmd_chainloader): Refer itself.
20452 (PUPA_MOD_INIT): Save its own module in MY_MOD.
20453
20454 * kern/i386/pc/startup.S (install_partition): Removed.
20455 (version_string): Likewise.
20456 (config_file): Likewise.
20457 (pupa_install_dos_part): New variable.
20458 (pupa_install_bsd_part): Likewise.
20459 (pupa_prefix): Likewise.
20460 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
20461
20462 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
20463 and pupa/misc.h.
20464 (make_install_device): New function.
20465 (pupa_machine_init): Set the dl prefix.
20466
20467 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
20468 (buf): Renamed to ...
20469 (linebuf): ... this.
20470 (pupa_rescue_cmd_prefix): New function.
20471 (pupa_rescue_cmd_insmod): Likewise.
20472 (pupa_rescue_cmd_rmmod): Likewise.
20473 (pupa_rescue_cmd_lsmod): Likewise.
20474 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
20475 rmmod and lsmod.
20476
20477 * kern/mm.c (pupa_memalign): If failed even after invalidating
20478 disk caches, unload unneeded modules and retry.
20479
20480 * kern/misc.c (pupa_memmove): New function.
20481 (pupa_memcpy): Removed.
20482 (pupa_strcpy): New function.
20483 (pupa_itoa): Made static.
20484
20485 * kern/dl.c (pupa_dl_iterate): New function.
20486 (pupa_dl_ref): Likewise.
20487 (pupa_dl_unref): Likewise.
20488 (pupa_dl_unload): Return if succeeded or not.
20489 (pupa_dl_unload_unneeded): New function.
20490 (pupa_dl_unload_all): Likewise.
20491 (pupa_dl_init): Renamed to ...
20492 (pupa_dl_set_prefix): ... this.
20493 (pupa_dl_get_prefix): New function.
20494
20495 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
20496 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
20497 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
20498 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
20499 (pupa_install_dos_part): Declared.
20500 (pupa_install_bsd_part): Likewise.
20501 (pupa_prefix): Likewise.
20502 (pupa_boot_drive): Likewise.
20503
20504 * include/pupa/types.h: Fix a typo.
20505
20506 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
20507 pupa_memmove.
20508 (pupa_memmove): Declared.
20509 (pupa_strcpy): Likewise.
20510
20511 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
20512 pupa_mod_init takes one argument, its own module.
20513 (pupa_dl_unload_unneeded): Declared.
20514 (pupa_dl_unload_all): Likewise.
20515 (pupa_dl_ref): Likewise.
20516 (pupa_dl_unref): Likewise.
20517 (pupa_dl_iterate): Likewise.
20518 (pupa_dl_init): Renamed to ...
20519 (pupa_dl_set_prefix): ... this.
20520 (pupa_dl_get_prefix): Declared.
20521
20522 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
f19dbdb7 20523 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
a5ffe966 20524 unloaded.
20525 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
20526 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
20527
20528 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
20529 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
20530
012d7999 205312003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
20532
20533 * util/i386/pc/pupa-setup.c (setup): Define the internal
20534 function find_first_partition_start at the top level, because GCC
20535 3.0.x cannot compile internal functions in deeper scopes
20536 correctly.
20537 (find_root_device): Use lstat instead of stat.
20538 Don't follow symbolic links.
20539 Fix the path-constructing code.
20540
20541 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
20542 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
20543 by a BLKGETSIZE ioctl first, because block devices don't fill
20544 the member st_mode of the structure stat on Linux.
20545 [__linux__] (linux_find_partition): Use a temporary buffer
20546 REAL_DEV for the working space. Copy it to DEV before returning.
20547 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
20548 buffer cache consistent.
20549 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
20550 strncmp. The previous value was merely wrong.
20551 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
20552
20553 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
20554 FAT size is 12. The previous value was merely wrong.
20555
20556 * kern/main.c (pupa_main): Don't split the starting message from
20557 newlines.
20558
20559 * kern/term.c (pupa_putchar): Put CR after LF instead of before
20560 LF, because BIOS goes crazy about character attributes in this
20561 case.
20562
1cc73a62 205632003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
20564
20565 * include/i386/pc/util/biosdisk.h: New file.
20566 * util/i386/pc/biosdisk.c: Likewise.
20567 * util/i386/pc/pupa-setup.c: Likewise.
f19dbdb7 20568
1cc73a62 20569 * Makefile.in (INCLUDE_DISTFILES): Added
20570 include/pupa/i386/pc/util/biosdisk.h.
20571 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
20572 directory util/i386/pc.
20573 (install-local): Added a rule for sbin_UTILITIES.
20574 (uninstall): Likewise.
20575
20576 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
20577
20578 * util/misc.c (xrealloc): New function.
20579 (pupa_malloc): Likewise.
20580 (pupa_free): Likewise.
20581 (pupa_realloc): Likewise.
20582 (pupa_stop): Likewise.
20583 (pupa_putchar): Likewise.
20584
20585 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
20586
20587 * include/pupa/util/misc.h (xrealloc): Declared.
20588
20589 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
20590 macro.
20591 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
20592 (PUPA_BOOT_MACHINE_BPB_END): ... this.
20593
20594 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
20595 [PUPA_UTIL] (pupa_fat_fini): Likewise.
20596
20597 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
20598 way should be implemented.
20599 [PUPA_UTIL] (pupa_fat_fini): Likewise.
20600
20601 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
20602 the size of NAME for safety.
20603 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
20604 0x88.
20605
20606 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
20607 (pupa_setup_SOURCES): Likewise.
20608
20609 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
20610
08b70fe8 206112002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
20612
20613 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
20614 bunch of pushl's from pusha, because this destroys the return
20615 value.
20616
62ddcc8f 206172002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
20618
20619 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
20620 This means that any missing prototypes could be fatal. Also, you
20621 must take care when writing assembly code. See the comments at
20622 the beginning of startup.S, for more details.
f19dbdb7 20623
62ddcc8f 20624 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
20625 compilation mechanism.
20626 (pupa_chainloader_real_boot): Likewise.
20627 (pupa_biosdisk_rw_int13_extensions): Likewise.
20628 (pupa_biosdisk_rw_standard): Likewise.
20629 (pupa_biosdisk_check_int13_extensions): Likewise.
20630 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
20631 (pupa_biosdisk_get_diskinfo_standard): Likewise.
20632 (pupa_get_memsize): Likewise.
20633 (pupa_get_mmap_entry): Likewise.
20634 (pupa_console_putchar): Likewise.
20635 (pupa_console_setcursor): Likewise.
20636 (pupa_getrtsecs): Use pushl instead of push.
20637
20638 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
20639 memory instead of the stack for a mmap entry, because some
20640 BIOSes may ignore the maximum size and overflow.
20641
20642 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
20643
20644 * genmk.rb (PModule#rule): Compile automatically generated
20645 sources with module-specific CFLAGS as well as other sources.
20646
9962ed99 206472002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
20648
20649 * configure.ac: Check ld.
20650 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
20651 respectively, before checking endianness and sizes.
20652
20653 * Makefile.in (LD): New variable.
f19dbdb7 20654
abdfc3c5 206552002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
20656
20657 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
20658
6a161fa9 206592002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
20660
20661 * Changelog: New file.
20662