]> git.proxmox.com Git - grub2.git/blame - ChangeLog
2008-06-13 Pavel Roskin <proski@gnu.org>
[grub2.git] / ChangeLog
CommitLineData
d687651c 12008-06-13 Pavel Roskin <proski@gnu.org>
2
3 * commands/ls.c (grub_ls_list_files): Fix format warnings.
4
dfe9ddd4 52008-06-13 Bean <bean123ch@gmail.com>
6
7 * commands/hexdump.c (grub_cmd_hexdump): Adjust offset for partition.
8
9 * fs/ext2.c (grub_ext3_get_journal): Fix revoke block handling.
10
11 * fs/fshelp.c (grub_fshelp_map_block): Don't map block 0 as it's used
12 to indicate sparse block.
13
16ae7781 142008-06-12 Pavel Roskin <proski@gnu.org>
15
e6d1a308 16 * fs/ext2.c (grub_ext2_read_inode): Don't normalize block
17 number, grub_fshelp_read() does it for us.
18
16ae7781 19 * fs/fshelp.c (grub_fshelp_read): New function. Implement
20 linear disk read with journal translation.
21 * fs/ext2.c: Use grub_fshelp_read() instead of grub_disk_read().
22 * include/grub/fshelp.h: Declare grub_fshelp_read().
23
40fd3a2b 242008-06-09 Pavel Roskin <proski@gnu.org>
25
26 * fs/minix.c (grub_minix_mount): Handle error reading
27 superblock.
28
f5679726 292008-06-08 Robert Millan <rmh@aybabtu.com>
30
31 * util/i386/pc/grub-setup.c (main): If install drive is an LVM,
32 don't append the RAID prefix afterwards.
33 Reported by Clint Adams.
34
ce525529 352008-06-08 Robert Millan <rmh@aybabtu.com>
36
37 Based on description from Pavel:
38 * kern/disk.c (grub_disk_check_range): Rename to ...
39 (grub_disk_adjust_range): ... this. Add a comment explaining the
40 tasks performed by this function.
41
ad4936a0 422008-06-08 Robert Millan <rmh@aybabtu.com>
43
44 * include/grub/ntfs.h (struct grub_ntfs_bpb): Rename `serial_number' to
45 `num_serial' (for consistency with other variables).
46 (struct grub_ntfs_data): Add `uuid' member.
47 * fs/ntfs.c (grub_ntfs_mount): Initialize `data->uuid'.
48 (grub_ntfs_uuid): New function.
49 (grub_ntfs_fs): Reference grub_ntfs_uuid() in `uuid' struct member.
50
dc20b0f9 512008-06-07 Pavel Roskin <proski@gnu.org>
52
53 * util/biosdisk.c (open_device): Revert last change to the
54 function, it broke installation. The sector needs to be
55 different dependent on which device is opened.
56
c5e3cfba 572008-06-06 Robert Millan <rmh@aybabtu.com>
58
59 Ensure GRUB_KERNEL_MACHINE_DATA_END is always consistent with the
60 rest of GRUB, and breakage doesn't happen if its value were modified.
61
62 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
63 Redefine as an offset from `GRUB_KERNEL_MACHINE_DATA_END' instead of
64 a constant (same value).
65 * kern/i386/pc/startup.S: Replace hardcoded `0x50' with
66 `GRUB_KERNEL_MACHINE_DATA_END' (same value).
67
26a1f8c4 682008-06-06 Robert Millan <rmh@aybabtu.com>
69
70 * util/biosdisk.c (open_device): Do not modify sector offset when
71 accessing a partition. kern/disk.c already handles this for us.
72
25d6b327 732008-06-06 Robert Millan <rmh@aybabtu.com>
74
75 * util/grub-emu.c (grub_machine_init): Move code in this function from
76 here ...
77 (main): ... to here (before grub_util_biosdisk_init() call, to prevent
78 segfault in case grub_printf() is called).
79
80 * util/i386/pc/grub-install.in: Append `--device-map=${device_map}' to
81 grub_probe. Update all users not to explicitly add it again.
82 (grub_device): New variable; contains corresponding device for grubdir.
83 (fs_module, partmap_module, devabstraction_module): Pass
84 `--device ${grub_device}' to grub_probe to avoid traversing /dev
85 every time.
86
9ece62fb 872008-06-05 Robert Millan <rmh@aybabtu.com>
88
89 * normal/misc.c (grub_normal_print_device_info): When a filesystem UUID
90 is found, print it (same layout as with labels).
91
1ad36d37 922008-06-04 Robert Millan <rmh@aybabtu.com>
93
94 * util/biosdisk.c (get_drive): Rename to ...
95 (find_grub_drive): ... this. Update all users.
96
97 (get_os_disk): Rename to ...
98 (convert_system_partition_to_system_disk): ... this. Update all users.
99
100 (find_drive): Rename to ...
101 (find_system_device): ... this. Update all users.
102
e6a30859 1032008-06-04 Robert Millan <rmh@aybabtu.com>
104
105 * util/biosdisk.c (get_os_disk): Handle IDA devices.
106 * util/grub-mkdevicemap.c (get_mmc_disk_name)
107 (make_device_map): Likewise.
108
00c108a4 1092008-06-01 Robert Millan <rmh@aybabtu.com>
110
111 * util/biosdisk.c (get_drive): Verify that `map[i].drive' is non-NULL
112 before dereferencing it.
113
114 * fs/fat.c (struct grub_fat_bpb): Move fat32-specific fields into a
115 union with fat12/fat16-specific ones. Add some new fields, including
116 `num_serial' for both versions.
117 (struct grub_fat_data): Add `uuid' member.
118 (grub_fat_mount): Refer to fat32-specific fields in `bpb' by their new
119 names. Initialize `data->uuid' using `num_serial'.
120 (grub_fat_uuid): New function.
121 (grub_fat_fs): Reference grub_fat_uuid() in `uuid' struct member.
122
123 * fs/reiserfs.c (grub_reiserfs_superblock): Add `uuid' field.
124 (grub_reiserfs_uuid): New function.
125 (grub_reiserfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct
126 member.
127
128 * fs/xfs.c (grub_xfs_sblock): Add `uuid' field.
129 (grub_xfs_uuid): New function.
130 (grub_xfs_fs): Reference grub_reiserfs_uuid() in `uuid' struct member.
131
1385c5bb 1322008-06-01 Robert Millan <rmh@aybabtu.com>
133
134 * util/update-grub_lib.in (prepare_grub_to_access_device): Generate
135 code that is backward compatible with pre-uuid search command.
136
c682dfd7 1372008-05-31 Robert Millan <rmh@aybabtu.com>
138
139 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Iterate through
140 floppies after everything else, to ensure floppy drive isn't accessed
141 unnecessarily (patch from Bean).
142
b7db5d47 1432008-05-31 Robert Millan <rmh@aybabtu.com>
144
145 * commands/search.c (search_label, search_fs_uuid, search_file): Do
146 not print device names when we were asked to set a variable.
147
6e037aa9 1482008-05-31 Robert Millan <rmh@aybabtu.com>
149
150 * term/ieee1275/ofconsole.c (grub_ofconsole_setcursor): Implement
151 using "cursor-on" and "cursor-off" commands (understood at least by
152 the Open Firmware flavour on OLPC).
153
41305bc8 1542008-05-31 Michael Gorven <michael@gorven.za.net>
155
156 * term/terminfo.c (grub_terminfo_set_current): Correct vt100 cursor
157 on and off sequences.
158
69ba137e 1592008-05-31 Robert Millan <rmh@aybabtu.com>
160
161 * util/update-grub_lib.in: Replace `grub-probe' with `${grub_probe}'.
162 * util/update-grub.in: Likewise.
163
520ae21b 1642008-05-30 Pavel Roskin <proski@gnu.org>
165
166 * util/biosdisk.c (linux_find_partition): Simplify logic and
167 make the code more universal. Keep special processing for
168 devfs, but use a simple rule for all other devices. If the
169 device ends with a number, append 'p' and the partition number.
170 Otherwise, append only the partition number.
171
5786569b 1722008-05-30 Robert Millan <rmh@aybabtu.com>
173
174 * util/update-grub.in (GRUB_DISABLE_LINUX_UUID): Export variable.
175 * util/grub.d/10_linux.in: If GRUB_DEVICE_UUID is set, and
176 GRUB_DISABLE_LINUX_UUID isn't true, use the filesystem UUIDs as
177 the `root' parameter to Linux.
178
51500452 1792008-05-30 Robert Millan <rmh@aybabtu.com>
180
181 * commands/search.c (options): Rename --fs_uuid to --fs-uuid.
182 * util/update-grub_lib.in (prepare_grub_to_access_device): Replace
183 --fs_uuid with --fs-uuid.
184 * util/update-grub.in: Allow filesystem UUID probes to fail (since not
185 all filesystems support them).
186
811d3878 1872008-05-30 Robert Millan <rmh@aybabtu.com>
188
189 * fs/ext2.c (grub_ext2_uuid): Use `04x' instead of '02x' as
190 grub_printf() flags, since we're printing in units of 2 bytes.
191
cab63c95 1922008-05-30 Robert Millan <rmh@aybabtu.com>
193
194 * util/grub.d/00_header.in: Remove obsolete comment referencing
195 convert_system_path_to_grub_path().
196 * util/update-grub.in: Likewise.
197 * util/update-grub_lib.in (is_path_readable_by_grub): New function.
198 (convert_system_path_to_grub_path): Add a warning message explaining
199 that this function is deprecated. Rely on is_path_readable_by_grub()
200 for the readability checks.
201 (font_path): Use is_path_readable_by_grub() for the readability
202 check rather than convert_system_path_to_grub_path().
203
972e2f7a 2042008-05-30 Robert Millan <rmh@aybabtu.com>
205
206 * util/update-grub_lib.in (prepare_grub_to_access_device): New function.
207 * util/update-grub.in: Set `GRUB_FONT_PATH' to the system path, without
208 converting it first.
209 * util/grub.d/00_header.in: Use prepare_grub_to_access_device() to setup
210 grub.cfg for access to font file, and afterwards call it again to set
211 the root device.
212
62191274 2132008-05-30 Robert Millan <rmh@aybabtu.com>
214
215 * commands/search.c (options): Add --fs_uuid option.
216 (search_fs_uuid): New function.
217 (grub_cmd_search): Fix --set argument passing.
218 Use search_fs_uuid() when requested via --fs_uuid.
219 (grub_search_init): Update help message.
220 * fs/ext2.c (struct grub_ext2_sblock): Rename `unique_id' to `uuid'
221 and redeclare it as an array of 16-bit words.
222 (grub_ext2_uuid): New function.
223 (grub_ext2_fs): Reference grub_ext2_uuid() in `uuid' struct member.
224 * include/grub/fs.h (struct grub_fs): Add `uuid' struct member.
225 * util/update-grub.in (GRUB_DEVICE_UUID, GRUB_DEVICE_BOOT)
226 (GRUB_DEVICE_BOOT_UUID): New variables.
227 (GRUB_DRIVE. GRUB_DRIVE_BOOT. GRUB_DRIVE_BOOT_GRUB): Remove.
228 * util/grub.d/00_header.in: Set root using `search --fs_uuid' command
229 whenever possible.
230 * util/grub.d/10_hurd.in: Avoid explicit use of root drive. Instead,
231 just assume `root' variable has the right value.
232 * util/grub.d/10_linux.in: Likewise.
233 * util/grub-probe.c (probe): Probe for filesystem UUID when requested
234 via PRINT_FS_UUID.
235 (main): Recognise `-t fs_uuid' argument.
236
01b73ec8 2372008-05-30 Robert Millan <rmh@aybabtu.com>
238
239 * util/biosdisk.c (map): Redefine structure to hold information
240 about GRUB drive name.
241 (get_drive): Reimplement without assuming (and verifiing) BIOS-like
242 drive names.
243 (call_hook): Remove.
244 (grub_util_biosdisk_iterate): Access drive names via `.drive' struct
245 member. Assume drive has partitions.
246 (grub_util_biosdisk_open): Access device names via `.device' struct
247 member.
248 (open_device): Likewise.
249 (find_drive): Likewise.
250 (read_device_map): Adjust map[] usage to match the new struct
251 definition. Don't check for duplicates (still possible, but not cheap
252 anymore).
253 (grub_util_biosdisk_fini): Free malloced buffers referenced by map[].
254 (make_device_name): Remove assumption of BIOS-like drive names.
255
22f16596 2562008-05-30 Pavel Roskin <proski@gnu.org>
257
258 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Remove, as
259 compiling execute.c doesn't need grub_script.tab.h anymore.
260 (normal/command.c_DEPENDENCIES): Likewise.
261 (normal/function.c_DEPENDENCIES): Likewise.
262 * conf/i386-ieee1275.rmk: Likewise.
263 * conf/i386-linuxbios.rmk: Likewise.
264 * conf/i386-pc.rmk: Likewise.
265 * conf/powerpc-ieee1275.rmk: Likewise.
266 * conf/sparc64-ieee1275.rmk: Likewise.
267
528ad8f2 2682008-05-29 Pavel Roskin <proski@gnu.org>
269
d1dff95d 270 * disk/lvm.c (grub_lvm_scan_device): Check for the buffer end
271 when scanning metadata for volume group name.
272
528ad8f2 273 * include/grub/script.h: Don't include grub_script.tab.h. It's
274 a generated file, which may only be included from the files with
275 DEPENDENCIES rules in the makefile. Don't use typedef YYSTYPE,
276 use union YYSTYPE, as the later allows forward declaration.
277 * normal/lexer.c: Don't use typedef YYSTYPE, use union YYSTYPE.
278
47248e08 2792008-05-29 Robert Millan <rmh@aybabtu.com>
280
281 * term/i386/pc/at_keyboard.c: Include `grub/machine/machine.h'.
282 (OLPC_UP, OLPC_DOWN, OLPC_LEFT, OLPC_RIGHT): New macros.
283 [GRUB_MACHINE_IEEE1275] (keyboard_map): Add OLPC scan codes
284 (grub_console_checkkey): Add grub_dprintf() call to report unknown
285 scan codes.
286
ee632529 2872008-05-29 Robert Millan <rmh@aybabtu.com>
288
289 * term/i386/pc/at_keyboard.c (grub_console_checkkey): Add support for
290 control key combinations.
291
eee96e08 2922008-05-29 Robert Millan <rmh@aybabtu.com>
293
294 * util/powerpc/ieee1275/grub-install.in: Move from here ...
295 * util/ieee1275/grub-install.in: ... to here.
296 * powerpc-ieee1275.rmk (grub_install_SOURCES): Update location.
297 * i386-ieee1275.rmk (sbin_SCRIPTS): New variable.
298 (grub_install_SOURCES): Likewise.
299
da9a6a94 3002008-05-29 Robert Millan <rmh@aybabtu.com>
301
302 * fs/affs.c: Update copyright year.
303 * fs/ext2.c: Likewise.
304 * fs/fshelp.c: Likewise.
305 * fs/hfsplus.c: Likewise.
306 * fs/ntfs.c: Likewise.
307 * fs/xfs.c: Likewise.
308 * include/grub/fshelp.h: Likewise.
309 * util/grub-mkdevicemap.c: Likewise.
310
12e65f3a 3112008-05-28 Robert Millan <rmh@aybabtu.com>
312
313 * util/update-grub.in: Allow chmod call to fail, since /boot/grub/
314 might need to be fatfs to support some firmware implementations
315 (e.g. OFW or EFI).
316
23023641 3172008-05-28 Robert Millan <rmh@aybabtu.com>
318
319 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle MMC
320 devices.
321 * util/grub-mkdevicemap.c (get_mmc_disk_name)
322 (make_device_map): Likewise.
323
887d2619 3242008-05-20 Bean <bean123ch@gmail.com>
325
326 * fs/fshelp.c (grub_fshelp_map_block): New function.
327 (grub_fshelp_find_file): Use 64-bit type for pos and block address.
328 Use `>>' and `&' operator to avoid 64-bit divide and modulo.
329
330 * include/grub/fshelp.h (grub_fshelp_journal_type): New enum.
331 (GRUB_FSHELP_JOURNAL_UNUSED_MAPPING): New macro.
332 (grub_fshelp_journal): New structure.
333 (grub_fshelp_map_block): New function prototype.
334 (grub_fshelp_read_file): Use grub_disk_addr_t as block type.
335 (grub_fshelp_map_block): Likewise.
336
337 * fs/ext2.c (EXT3_FEATURE_COMPAT_HAS_JOURNAL): New macro.
338 (EXT3_JOURNAL_MAGIC_NUMBER): Likewise.
339 (EXT3_JOURNAL_DESCRIPTOR_BLOCK): Likewise.
340 (EXT3_JOURNAL_COMMIT_BLOCK): Likewise.
341 (EXT3_JOURNAL_SUPERBLOCK_V1): Likewise.
342 (EXT3_JOURNAL_SUPERBLOCK_V2): Likewise.
343 (EXT3_JOURNAL_REVOKE_BLOCK): Likewise.
344 (EXT3_JOURNAL_FLAG_ESCAPE): Likewise.
345 (EXT3_JOURNAL_FLAG_SAME_UUID): Likewise.
346 (EXT3_JOURNAL_FLAG_DELETED): Likewise.
347 (EXT3_JOURNAL_FLAG_LAST_TAG): Likewise.
348 (grub_ext2_sblock): New members for journal support.
349 (grub_ext3_journal_header): New structure.
350 (grub_ext3_journal_revoke_header): Likewise.
351 (grub_ext3_journal_block_tag): Likewise.
352 (grub_ext3_journal_sblock): Likewise.
353 (grub_fshelp_node): New members logfile and journal.
354 (grub_ext2_read_block): Change block type to grub_disk_addr_t. Use
355 grub_fshelp_map_block to get real block number.
356 (grub_ext2_blockgroup): Use grub_fshelp_map_block to get real block
357 number.
358 (grub_ext2_read_inode): Likewise.
359 (grub_ext3_get_journal): New function.
360 (grub_read_inode): Initialize journal using grub_ext3_get_journal.
361 (grub_ext2_close): Release memory used by journal.
362
363 * fs/reiserfs.c (REISERFS_MAGIC_STRING): Changed to "ReIsEr".
364 (REISERFS_MAGIC_DESC_BLOCK): New macro.
365 (grub_reiserfs_transaction_header): Renamed to
366 grub_reiserfs_description_block, replace field data with real_blocks.
367 (grub_reiserfs_commit_block): New structure.
368 (grub_reiserfs_data): New member journal.
369 (grub_reiserfs_get_item): Use grub_fshelp_map_block to get real block
370 number.
371 (grub_reiserfs_read_symlink): Likewise.
372 (grub_reiserfs_iterate_dir): Likewise.
373 (grub_reiserfs_open): Likewise.
374 (grub_reiserfs_read): Likewise.
375 (grub_reiserfs_get_journal): New function.
376 (grub_reiserfs_mount): Use "ReIsEr" as super block magic, as there are
377 three varieties ReIsErFs, ReIsEr2Fs and ReIsEr3Fs. Initialize journal
378 using grub_reiserfs_get_journal.
379 (grub_reiserfs_close): Release memory used by journal.
380
381 * fs/affs.c (grub_affs_read_block): Change block type to
382 grub_disk_addr_t. Use grub_divmod64 to do 64-bit division.
383
384 * fs/afs.c (grub_afs_read_block): Change block type to grub_disk_addr_t.
385
386 * fs/hfsplus.c (grub_hfsplus_read_block): Likewise.
387
388 * fs/ntfs.c (grub_ntfs_read_block): Likewise.
389
390 * fs/udf.c (grub_udf_read_block): Change block type to
391 grub_disk_addr_t. Use type cast to avoid warning.
392
393 * fs/xfs.c (grub_xfs_read_block): Likewise.
394
b7c6bed5 3952008-05-16 Christian Franke <franke@computer.org>
396
397 * commands/cat.c (grub_cmd_cat): Remove non-ESC keys from keyboard queue
398 to ensure that break with ESC will always work.
399 * commands/sleep.c (grub_interruptible_millisleep): Likewise.
400 Remove ESC from keyboard queue.
401
eedf167f 4022008-05-16 Christian Franke <franke@computer.org>
403
404 * util/biosdisk.c: [__CYGWIN__] Add includes.
405 (grub_util_biosdisk_open): Use Linux code also for Cygwin.
406 (get_os_disk): Move variable declarations to OS specific
407 parts to avoid warning.
408 [__GNU__] (get_os_disk): Fix /dev/sdXsN case.
409 [__CYGWIN__] (get_os_disk): Add Cygwin /dev/sdXN device names.
410 (grub_util_biosdisk_get_grub_dev): Use Linux code also for
411 Cygwin.
412 * util/getroot.c: [__CYGWIN__] Add includes.
413 (strip_extra_slashes): Fix "/" case.
414 [__CYGWIN__] (get_win32_path): New function.
415 [__CYGWIN__] (grub_get_prefix): Add conversion to win32 path.
416 [__CYGWIN__] (find_root_device): Disable.
417 [__CYGWIN__] (get_bootsec_serial): New function.
418 [__CYGWIN__] (find_cygwin_root_device): Likewise.
419 [__linux__] (grub_guess_root_device): Add early returns to simplify
420 structure.
421 [__CYGWIN__] (grub_guess_root_device): Call find_cygwin_root_device.
422 [__linux__] (grub_util_get_dev_abstraction): Enable LVM and RAID
423 check for Linux only.
424
a079699e 4252008-05-15 Bean <bean123ch@gmail.com>
426
427 * kern/i386/pc/startup.S (grub_console_getkey): Workaround for the
428 keyboard hang problem in apple's intel mac.
429
1cf4059a 4302008-05-09 Robert Millan <rmh@aybabtu.com>
431
432 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle Virtio
433 devices.
434 * util/grub-mkdevicemap.c (get_virtio_disk_name)
435 (make_device_map): Likewise.
436 Reported by Aurelien Jarno <aurel32@debian.org>
437
ed759390 4382008-05-07 Ian Campbell <ijc@hellion.org.uk>
439
440 * util/biosdisk.c (get_os_disk): Recognise xvd type disks.
441 * util/grub-mkdevicemap.c (get_xvd_disk_name): New function.
442 (make_device_map): Output entries for xvd type disks.
443
b56c4eaa 4442008-05-07 Robert Millan <rmh@aybabtu.com>
445
446 * util/biosdisk.c (linux_find_partition, get_os_disk): Handle CCISS
447 devices.
448 * util/grub-mkdevicemap.c (get_cciss_disk_name)
449 (make_device_map): Likewise.
450 Reported by Roland Dreier <rdreier@cisco.com>
451
7f8866ed 4522008-05-07 Robert Millan <rmh@aybabtu.com>
453
454 * disk/lvm.c (grub_lvm_scan_device): Detect errors in an additional
455 grub_strstr() call. Correct a few mistakes in failure path handling.
456
b0346e0f 4572008-05-06 Robert Millan <rmh@aybabtu.com>
458
459 * util/update-grub_lib.in (make_system_path_relative_to_its_root):
460 Do not print a trailing slash (therefore, the root directory is an
461 empty string).
462 (convert_system_path_to_grub_path): Do not remove trailing slash
463 from make_system_path_relative_to_its_root() output.
464
465 * util/i386/pc/grub-install.in: Add trailing slash to output from
466 make_system_path_relative_to_its_root().
467
6cf12cbd 4682008-05-06 Robert Millan <rmh@aybabtu.com>
469
470 * util/grub-fstest.c (grub_refresh): Call `fflush (stdout)'. This
471 ensures that output lines aren't intermangled with those sent to
472 stderr (via grub_util_info()).
473 * util/grub-probe.c (grub_refresh): Likewise.
474 * util/i386/pc/grub-setup.c (grub_refresh): Likewise.
475
0fbb3117 4762008-05-05 Christian Franke <franke@computer.org>
477
478 * util/grub-mkdevicemap.c (get_floppy_disk_name) [__CYGWIN__]:
479 Add Cygwin device names.
480 (get_ide_disk_name) [__CYGWIN__]: Likewise.
481 (get_scsi_disk_name) [__CYGWIN__]: Likewise.
482 (check_device): Return error instead of success on empty name.
483 (make_device_map): Move label inside linux specific code to
484 prevent compiler warning.
485
8124cdb7 4862008-04-30 Robert Millan <rmh@aybabtu.com>
487
488 Based on patch from Fabian Greffrath <greffrath@leat.rub.de>
489 * util/grub.d/10_linux.in: Add ${GRUB_CMDLINE_LINUX_DEFAULT} to the
490 first boot option.
491 * util/update-grub.in: Export GRUB_CMDLINE_LINUX_DEFAULT.
492
094c01d0 4932008-04-29 Robert Millan <rmh@aybabtu.com>
494
495 * docs/grub.cfg: New file (example GRUB configuration).
496
f4b1fc02 4972008-04-26 Robert Millan <rmh@aybabtu.com>
498
329ce2a5 499 * DISTLIST: Sort (sort -u < DISTLIST | sponge DISTLIST). Add
500 `loader/i386/ieee1275/linux.c', `loader/i386/ieee1275/linux_normal.c'
501 and `disk/ieee1275/nand.c'.
f4b1fc02 502
25f16ec1 5032008-04-25 Bean <bean123ch@gmail.com>
504
505 * Makefile.in (RMKFILES): Add missing arch i386-ieee1275 and
506 i386-linuxbios.
507
508 * commands/hexdump.c (grub_cmd_hexdump): Support dumping of device,
509 change the buffer size to 4096 for cdrom device.
510
511 * conf/i386-ieee1275.rmk (pkglib_MODULES): Add _linux.mod, linux.mod
512 and nand.mod.
513 (_linux_mod_SOURCES): New variable.
514 (_linux_mod_CFLAGS): Likewise.
515 (_linux_mod_LDFLAGS): Likewise.
516 (linux_mod_SOURCES): Likewise.
517 (linux_mod_CFLAGS): Likewise.
518 (linux_mod_LDFLAGS): Likewise.
519 (nand_mod_SOURCES): Likewise.
520 (nand_mod_CFLAGS): Likewise.
521 (nand_mod_LDFLAGS): Likewise.
522
523 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Return
524 GRUB_ERR_UNKNOWN_DEVICE instead of GRUB_ERR_BAD_DEVICE if no device
525 type property. (nand device in olpc don't have this property)
526
527 * include/grub/disk.h (grub_disk_dev_id): New macro
528 GRUB_DISK_DEVICE_NAND_ID.
529
530 * include/grub/i386/ieee1275/loader.h (grub_rescue_cmd_linux): New
531 function prototype.
532 (grub_rescue_cmd_initrd): Likewise.
533
534 * include/grub/i386/linux.h (GRUB_LINUX_OFW_SIGNATURE): New macro.
535 (linux_kernel_params): Add new member ofw_signature, ofw_num_items,
536 ofw_cif_handler and ofw_idt, adjust padding number.
537
538 * include/grub/i386/pc/memory.h (grub_upper_mem): Export it if
539 GRUB_MACHINE_IEEE1275 is defined.
540
541 * include/grub/ieee1275/ieee1275.h (grub_available_iterate):
542 Use NESTED_FUNC_ATTR attribute on the hook parameter.
543
544 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Use NESTED_FUNC_ATTR
545 on nested function heap_init.
546 (grub_upper_mem): New variable for i386-ieee1275.
547 (grub_get_extended_memory): New function for i386-ieee1275.
548 (grub_machine_init): Call grub_get_extended_memory for i386-ieee1275.
549
550 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Use
551 NESTED_FUNC_ATTR on the hook parameter. Don't quit if no device type
552 property.
553
554 * loader/i386/ieee1275/linux.c: New file.
555
556 * loader/i386/ieee1275/linux_normal.c: New file.
557
558 * disk/ieee1275/nand.c: New file.
559
e89d61e9 5602008-04-18 Thomas Schwinge <tschwinge@gnu.org>
561
562 * util/i386/pc/grub-mkrescue.in (grub_mkimage): Don't overwrite correct
563 value.
564 * util/powerpc/ieee1275/grub-mkrescue.in (grub_mkimage): Likewise.
565
602566f6 5662008-04-18 Robert Millan <rmh@aybabtu.com>
567
568 Restructures early code path on ieee1275 to unify grub_main() as
569 the first C function that is executed in every platform.
570
571 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_init): New prototype.
572 * kern/i386/ieee1275/startup.S (_start): Jump to grub_main() instead of
573 cmain().
574 * kern/powerpc/ieee1275/crt0.S (_start): Likewise.
575 * kern/ieee1275/cmain.c (cmain): Rename to ...
576 * kern/ieee1275/cmain.c (grub_ieee1275_init): ... this.
577 * kern/ieee1275/init.c (grub_machine_init): Call grub_ieee1275_init()
578 at the beginning.
579
57490c2b 5802008-04-18 Robert Millan <rmh@aybabtu.com>
581
582 * util/update-grub.in: Fix syntax error when setting
583 `GRUB_PRELOAD_MODULES'.
584 Reported by Stephane Chazelas <stephane@artesyncp.com>
585
1977517d 5862008-04-17 Lubomir Kundrak <lkundrak@redhat.com>
587
588 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): take only .text
589 section into account, newer toolchains generate unique build ids
590 * configure.ac: remove the test for --build-id=none acceptance,
e0c5dacb 591 we want build ids to be preserved
1977517d 592 * genmk.rb: add -R .note.gnu.build-id to objcopy, so build id
593 far from other sections don't cause the raw binary images grow
594 size
595
bfb1f1a2 5962008-04-15 Robert Millan <rmh@aybabtu.com>
597
598 * disk/lvm.c: Update copyright year.
599 * kern/misc.c: Likewise.
600
01979850 6012008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
602
603 * disk/lvm.c (grub_lvm_scan_device): Add forgotten failure path when
604 there is no memory left for physical volume name.
605
0a1150e2 6062008-04-14 Vesa Jaaskelainen <chaac@nic.fi>
607
608 * disk/lvm.c (grub_lvm_scan_device): Fix logical volume's physical
609 volume name mapping to support bigger than 9 character names properly.
610
82ead3fe 6112008-04-13 Robert Millan <rmh@aybabtu.com>
612
613 * disk/i386/pc/biosdisk.c (grub_biosdisk_rw): Fix CHS limit check,
614 as per http://www.allensmith.net/Storage/HDDlimit/Int13h.htm
615
e54a72f5 6162008-04-13 Christian Franke <franke@computer.org>
617
618 * util/i386/pc/grub-mkrescue.in: Add --emulation=floppy
619 to create a floppy emulation boot CD when non emulation mode
620 does not work.
621 Enable Joliet CD filesystem extension.
622
9fe86034 6232008-04-13 Robert Millan <rmh@aybabtu.com>
624
625 * kern/misc.c (grub_strncat): Fix off-by-one error.
626 Reported by Zhang Huan <zhanghuan@nrchpc.ac.cn>
627
628 * kern/env.c (grub_env_context_close): Clear current context, not
629 previous one.
630 Patch from Zhang Huan <zhanghuan@nrchpc.ac.cn>
631
632 * kern/misc.c (grub_strcat): Minor speed optimization (same code size).
633
7ceeee39 6342008-04-13 Robert Millan <rmh@aybabtu.com>
635
636 Improve robustness when handling LVM.
637
638 * disk/lvm.c (grub_lvm_getvalue): Return 0 when `*p' is NULL
639 (and leave `*p' unmodified).
640 (grub_lvm_iterate): Don't assume `vg->lvs != NULL' when iterating
641 through it.
642 (grub_lvm_memberlist): Don't assume `lv->vg->pvs != NULL' when
643 iterating through it.
644 (grub_lvm_open): Don't assume `vg->lvs != NULL' when iterating
645 through it.
646 (grub_lvm_scan_device): Check the return value (and fail gracefuly
647 when due) on each grub_lvm_getvalue() or grub_strstr() call.
648 Don't assume `vg->pvs != NULL' when iterating through it.
649
58cd3d85 6502008-04-13 Robert Millan <rmh@aybabtu.com>
651
652 * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
653 * genmk.rb (partmap): New variable.
654 (CLEANFILES, PARTMAPFILES): Add #{partmap}.
655 (#{partmap}): New target rule.
656 * genpartmaplist.sh: New file.
657 * Makefile.in (pkglib_DATA): Add partmap.lst.
658 (partmap.lst): New target rule.
659 * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
660 modules (including all partition maps), instead of preloading them.
661
78b51059 6622007-04-13 Fabian Greffrath <fabian.greffrath@web.de>
663
664 * util/grub.d/30_os-prober.in: New script. Use `os-prober' and
665 `linux-boot-prober' (if installed) to detect other operating
666 systems which are installed on the computer and add them to
667 the boot menu.
668 * conf/common.rmk: Build and install 30_os-prober.
669
a91627b4 6702008-04-12 Robert Millan <rmh@aybabtu.com>
671
672 * kern/powerpc/ieee1275/init.c: Move from here ...
673 * kern/ieee1275/init.c: ... to here. Update all users.
674
675 * kern/powerpc/ieee1275/cmain.c: Move from here ...
676 * kern/ieee1275/cmain.c: ... to here. Update all users.
677
678 * kern/powerpc/ieee1275/openfw.c: Move from here ...
679 * kern/ieee1275/openfw.c: ... to here. Update all users.
680
681 * loader/powerpc/ieee1275/multiboot2.c: Move from here ...
682 * loader/ieee1275/multiboot2.c: ... to here. Update all users.
683
322562ea 6842008-04-10 Pavel Roskin <proski@gnu.org>
685
686 * configure.ac: Always use "_cv_" in cache variables for
687 compatibility with Autoconf 2.62.
688
a02a73c5 6892008-04-07 Robert Millan <rmh@aybabtu.com>
690
691 Revert grub/machine/init.h addition by Pavel (since it breaks on
692 i386-ieee1275 and others):
693 * util/i386/pc/misc.c: Remove grub/machine/init.h.
694 * util/powerpc/ieee1275/misc.c: Likewise.
695
25c024b1 6962008-04-07 Robert Millan <rmh@aybabtu.com>
697
698 * util/grub-probe.c (probe): Improve error message.
699
3cbd2f98 7002008-04-07 Robert Millan <rmh@aybabtu.com>
701
702 * util/biosdisk.c (read_device_map): Skip devices that don't exist
703 (this prevents the presence of a bogus entry from ruining the whole
704 thing).
705
87a297bf 7062008-04-06 Pavel Roskin <proski@gnu.org>
707
36747a62 708 * util/biosdisk.c: Include grub/util/biosdisk.h.
709 * util/grub-fstest.c (execute_command): Make static.
710 * util/grub-mkdevicemap.c (check_device): Likewise.
711 * util/i386/pc/misc.c: Include grub/machine/init.h.
712 * util/powerpc/ieee1275/misc.c: Likewise.
713 * util/lvm.c: Include grub/util/lvm.h.
714 * util/misc.c: Include grub/kernel.h, grub/misc.h and
715 grub/cache.h.
716 * util/raid.c: Include grub/util/raid.h.
717 (grub_util_getdiskname): Make static.
718
87a297bf 719 * util/grub-emu.c (main): Remove calls to grub_hostfs_init() and
720 grub_hostfs_fini(), as they are called from grub_init_all() and
721 grub_fini_all() respectively. This fixes an infinite loop in
722 grub-fstest due to double registration of hostfs.
723 Reported by Christian Franke <Christian.Franke@t-online.de>
724
f6ce7629 7252008-04-05 Pavel Roskin <proski@gnu.org>
726
727 * bus/pci.c (grub_pci_iterate): For multifunction devices, probe
728 all 8 functions. Otherwise, probe function 0 only.
729
070e49e4 7302008-04-04 Pavel Roskin <proski@gnu.org>
731
8b088a4c 732 * commands/lspci.c (grub_lspci_iter): Print the bus number
733 correctly.
734
4f657021 735 * commands/lspci.c (grub_pci_classes): Fix typos.
736 (grub_lspci_iter): Don't print func twice. Print vendor ID
737 before device ID, as it's normally done.
738
070e49e4 739 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
740 Fix signedness warnings.
741 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate):
742 Likewise.
743 * util/ieee1275/get_disk_name.c: Include config.h so that
744 _GNU_SOURCE is defined and getline() is declared. Mark an
745 unused argument as such. Fix a signedness warning.
746
ba7328dc 7472008-04-02 Pavel Roskin <proski@gnu.org>
748
26887f22 749 * genkernsyms.sh.in: Use more robust assignments for CC and
750 srcdir. Quote srcdir.
751 * gensymlist.sh.in: Likewise. Assert at the compile time that
752 the symbol table is not empty.
753
ba7328dc 754 * disk/raid.c (grub_raid_memberlist): Fix a signedness warning.
755 * fs/cpio.c (grub_cpio_read): Likewise.
756
0f582c6b 7572008-04-01 Pavel Roskin <proski@gnu.org>
758
4b6e1995 759 * disk/ata.c (grub_ata_open): Don't lose precision in disk->id.
760 * disk/host.c (grub_host_open): Likewise.
761 * disk/loopback.c (grub_loopback_open): Likewise.
762 * disk/memdisk.c (grub_memdisk_open): Use a string pointer for
763 disk->id as in disk/host.c, not a multi-character constant.
764
828a2768 765 * util/grub-fstest.c (cmd_cmp): Use fseeko(), not fseek(). The
766 later is obsolete, potentially dangerous and sets a bad example.
767 * util/i386/efi/grub-mkimage.c (make_header): Likewise.
768 * util/misc.c (grub_util_get_image_size): Likewise.
769
2bb4fb47 770 * disk/loopback.c (options): Improve help for "--partitions".
771
0f582c6b 772 * normal/arg.c (grub_arg_show_help): Fix spacing of the long
773 options to align them with the short options, e.g. "echo -e".
774
a33224e0 7752008-03-31 Bean <bean123ch@gmail.com>
776
777 * video/reader/png.c (grub_png_data): New member is_16bit and
778 image_data.
779 (grub_png_decode_image_header): Detect 16 bit png image.
780 (grub_png_convert_image): New function to convert 16 bit image to 8 bit.
781 (grub_png_decode_png): Call grub_png_convert_image for 16 bit image.
782 (grub_video_reader_png): Release memory occupied by image_data.
783
784 * fs/ntfs.c (find_attr): Handle non-resident attribute list larger than
785 4096 bytes.
786 (grub_nfs_mount): Skip the test for sector per cluster.
787
788 * include/grub/ntfs.h (MAX_SPC): Removed.
789
86cb4f54 7902008-03-31 Bean <bean123ch@gmail.com>
791
792 * conf/common.rmk (pkgdata_MODULES): Add afs.mod.
793 (grub_probe_SOURCES): Add fs/afs.c.
794 (grub_fstest_SOURCES): Likewise.
795 (afs_mod_SOURCES): New variable.
796 (afs_mod_CFLAGS): Likewise.
797 (afs_mod_LDFLAGS): Likewise.
798
799 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/afs.c.
800 (grub_emu_SOURCES): Likewise.
801
802 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
803
804 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
805
806 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
807
808 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
809
810 * fs/afs.c: New file.
811
17c74c21 8122008-03-30 Pavel Roskin <proski@gnu.org>
813
4cb68e89 814 * disk/host.c: Include grub/misc.h to fix a warning.
815 * util/hostfs.c: Use GRUB_MOD_INIT and GRUB_MOD_FINI to fix
816 warnings about implicit declarations.
817
8790bb04 818 * fs/udf.c (grub_udf_mount): Fix warning about a shadowing a
819 variable.
820 * include/grub/i386/loader.h: Change declaration of
821 grub_linux_boot() to match what grub_loader_set() expects.
822 * util/getroot.c (grub_guess_root_device): Return const char* to
823 fix a warning.
824 * util/grub-probe.c (probe): Fix a warning about uninitialized
825 abstraction_name variable.
826 * util/i386/get_disk_name.c (grub_util_get_disk_name): Mark
827 second argument as unused to fix a warning.
828
9a3f3296 829 * loader/i386/pc/multiboot2.c (grub_mb2_arch_elf64_hook): Add
830 missing grub_error() call.
831
0ecef90d 832 * util/update-grub_lib.in: Define datarootdir, since Autoconf
833 2.60 and newer uses it to define datadir.
834
0bf6d401 835 * commands/sleep.c: Fix warning about implicit declaration.
836 * disk/memdisk.c: Likewise.
837 * loader/aout.c: Likewise.
838 * loader/i386/bsd_normal.c: Likewise.
839 * util/grub-probe.c: Likewise.
840
7cdacf97 841 * commands/i386/cpuid.c (has_longmode): Make static.
842 * disk/i386/pc/biosdisk.c (cd_drive): Likewise.
843 * include/grub/i386/bsd.h (bios_memmap_t): Remove, it's unused.
844
17c74c21 845 * kern/i386/pc/startup.S (real_to_prot): Use %cs prefix to load
846 GDT. This is more robust, as %ds can change.
847 (grub_biosdisk_rw_int13_extensions): Don't clear %ds before
848 calling real_to_prot().
849 (grub_biosdisk_get_diskinfo_int13_extensions): Likewise.
850
80a3e68b 8512008-03-28 Pavel Roskin <proski@gnu.org>
852
853 * kern/i386/pc/startup.S: Assert that uncompressed functions
854 don't spill beyond GRUB_KERNEL_MACHINE_RAW_SIZE.
855 * kern/i386/pc/lzo1x.S: Remove all .align directives in the
856 code, as they push parts of the code (error handlers) beyond
857 GRUB_KERNEL_MACHINE_RAW_SIZE. Speed is not as important in this
858 code as correctness and size.
859
77bcd272 8602008-03-28 Pavel Roskin <proski@gnu.org>
861
862 * kern/i386/pc/startup.S
863 (grub_biosdisk_get_diskinfo_int13_extensions): When converting
864 data block address to the real mode, keep offset minimal. This
865 works around a bug in AWARD BIOS on old Athlon systems, which
866 makes CD detection hang.
867
c5dfd43b 8682008-03-26 Pavel Roskin <proski@gnu.org>
869
870 * normal/color.c (grub_parse_color_name_pair): Make `name' a
871 const.
872 * include/grub/normal.h: Add grub_parse_color_name_pair()
873 declaration.
874
bf962df2 8752008-03-24 Bean <bean123ch@gmail.com>
876
877 * disk/i386/pc/biosdisk.c (cd_start): Removed.
878 (cd_count): Removed.
879 (cd_drive): New variable.
880 (grub_biosdisk_get_drive): Don't check for (cdN) device.
881 (grub_biosdisk_call_hook): Likewise.
882 (grub_biosdisk_iterate): Change cdrom detection method.
883 (grub_biosdisk_open): Replace cd_start with cd_drive.
884 (GRUB_MOD_INIT): Use grub_biosdisk_get_cdinfo_int13_extension to
885 detect cdrom device.
886
887 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_MACHINE_CDROM_START):
888 Removed.
889 (GRUB_BIOSDISK_MACHINE_CDROM_END): Removed.
890 (GRUB_BIOSDISK_CDTYPE_NO_EMUL): New macro.
891 (GRUB_BIOSDISK_CDTYPE_1_2_M): Likewise.
892 (GRUB_BIOSDISK_CDTYPE_1_44_M): Likewise.
893 (GRUB_BIOSDISK_CDTYPE_2_88_M): Likewise.
894 (GRUB_BIOSDISK_CDTYPE_HARDDISK): Likewise.
895 (GRUB_BIOSDISK_CDTYPE_MASK): Likewise.
896 (grub_biosdisk_cdrp): New structure.
897 (grub_biosdisk_get_cdinfo_int13_extensions): New function.
898
899 * include/grub/i386/pc/kernel.h (grub_boot_drive): Export this variable.
900
901 * kern/i386/pc/init.c (make_install_device): Don't use (cdN) as root
902 device.
903
904 * kern/i386/pc/startup.S (grub_biosdisk_get_cdinfo_int13_extensions):
905 New function.
906
68e7fc7a 9072008-03-20 Robert Millan <rmh@aybabtu.com>
908
909 Remove 2 TiB limit in ata.mod.
910 * disk/ata.c (grub_ata_device): Promote `size' to grub_uint64_t.
911 (grub_ata_dumpinfo): Print sector count with 0x%llx.
912 (grub_ata_identify): Interpret `&info16[100]' as a pointer to
913 grub_uint64_t instead of grub_uint32_t.
914
38ad2cf5 9152008-03-05 Bean <bean123ch@gmail.com>
916
917 * loader/i386/pc/multiboot.c (grub_multiboot_get_bootdev): New function.
918 (grub_multiboot): Set boot device.
919
920 * boot/i386/pc/lnxboot.S (real_code_2): Set %dh to 0xFF.
921
2b89344e 9222008-03-02 Bean <bean123ch@gmail.com>
923
924 * fs/reiserfs.c (grub_reiserfs_read_symlink): Add 0 at the end of
925 symlink_buffer.
926
87a95d1f 9272008-03-01 Yoshinori K. Okuji <okuji@enbug.org>
928
929 * DISTLIST: Added docs/fdl.texi, docs/grub.texi, docs/mdate-sh and
930 texinfo.tex.
931
932 * docs/grub.texi: New file. Copied from GRUB Legacy, and slightly
933 modified.
934
935 * docs/fdl.texi: New file.
936
937 * docs/mdate-sh: New file. Copied from gnulib.
938 * docs/texinfo.tex: Likewise.
939
940 * config.guess: Updated from gnulib.
941 * install-sh: Likewise.
942
7dc15d8e 9432008-02-28 Robert Millan <rmh@aybabtu.com>
944
945 * conf/i386-linuxbios.rmk (pkglib_MODULES): Add aout.mod.
946 (aout_mod_SOURCES): New variable.
947 (aout_mod_CFLAGS): Likewise.
948 (aout_mod_LDFLAGS): Likewise.
949
950 * conf/i386-ieee1275.rmk: Likewise.
951
b00ab696 9522008-02-28 Robert Millan <rmh@aybabtu.com>
953
954 * util/update-grub.in: Reorganise terminal validity check. Accept
955 `ieee1275:console' (OLPC) and `*:gfxterm' as valid too.
956 Based on suggestion by Franklin PIAT.
957
79ca2d78 9582008-02-28 Fabian Greffrath <greffrath@leat.rub.de>
959
960 * include/grub/util/getroot.h (grub_util_check_block_device): Export new
961 function.
962 * util/getroot.c (grub_util_check_block_device): New function that
963 returns the given argument if it is a block device and returns NULL else.
964 * util/grub-probe.c (argument_is_device): New variable.
965 (probe): Promote device_name from a variable to an argument. Receive
966 device_name from grub_util_check_block_device() if path is NULL and from
967 grub_guess_root_device() else. Do not free() device_name anymore.
968 (options): Introduce new parameter '-d, --device'.
969 (main): Add description of the new parameter to the help screen.
970 Rename path variable to argument. Set argument_is_device if the '-d'
971 option is given. Pass argument to probe() depending on
972 argument_is_device.
973
0d16e571 9742008-02-24 Bean <bean123ch@gmail.com>
975
976 * fs/iso9660.c (GRUB_ISO9660_VOLDESC_BOOT): New macro.
977 (GRUB_ISO9660_VOLDESC_PRIMARY): Likewise.
978 (GRUB_ISO9660_VOLDESC_SUPP): Likewise.
979 (GRUB_ISO9660_VOLDESC_PART): Likewise.
980 (GRUB_ISO9660_VOLDESC_END): Likewise.
981 (grub_iso9660_primary_voldesc): New member escape.
982 (grub_iso9660_data): New member joliet.
983 (grub_iso9660_convert_string): New function.
984 (grub_iso9660_mount): Detect joliet extension.
985 (grub_iso9660_iterate_dir): Convert filename when joliet is detected.
986 (grub_iso9660_iso9660_label): Likewise.
987
988 * conf/common.rmk (pkgdata_MODULES): Add udf.mod.
989 (grub_setup_SOURCES): Add fs/udf.c.
990 (grub_fstest_SOURCES): Likewise.
991 (udf_mod_SOURCES): New variable.
992 (udf_mod_CFLAGS): Likewise.
993 (udf_mod_LDFLAGS): Likewise.
994
995 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/udf.c.
996 (grub_emu_SOURCES): Likewise.
997
998 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
999
1000 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1001
1002 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
1003
1004 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1005
1006 * fs/udf.c: New file.
1007
8a594a17 10082008-02-24 Robert Millan <rmh@aybabtu.com>
1009
1010 * conf/i386-efi.rmk (normal/function.c_DEPENDENCIES)
1011 (normal/lexer.c_DEPENDENCIES): New variables.
1012 * conf/i386-ieee1275.rmk (normal/function.c_DEPENDENCIES)
1013 (normal/lexer.c_DEPENDENCIES): Likewise.
1014 * conf/i386-linuxbios.rmk (normal/function.c_DEPENDENCIES)
1015 (normal/lexer.c_DEPENDENCIES): Likewise.
1016 * conf/i386-pc.rmk (normal/function.c_DEPENDENCIES)
1017 (normal/lexer.c_DEPENDENCIES): Likewise.
1018 * conf/powerpc-ieee1275.rmk (normal/function.c_DEPENDENCIES)
1019 (normal/lexer.c_DEPENDENCIES): Likewise.
1020 * conf/sparc64-ieee1275.rmk (normal/function.c_DEPENDENCIES)
1021 (normal/lexer.c_DEPENDENCIES): Likewise.
1022
2dc33c03 10232008-02-23 Robert Millan <rmh@aybabtu.com>
1024
1025 * partmap/gpt.c (grub_gpt_magic): Add `0x' qualifier to each member,
1026 since they were intended to be in hex. This didn't break previously
1027 because of a bug in gpt_partition_map_iterate() (see below).
1028
1029 (gpt_partition_map_iterate): Replace `grub_memcmp' with `! grub_memcmp'
1030 when checking the validity of GPT header.
1031 Remove `partno', since it always provides the same information as `i'.
1032
f6f4cfb0 10332008-02-21 Yoshinori K. Okuji <okuji@enbug.org>
1034
1035 * include/grub/efi/time.h: Fix a wrong comment.
1036
79ff665f 10372008-02-19 Pavel Roskin <proski@gnu.org>
1038
1039 * kern/rescue.c (grub_enter_rescue_mode): Improve initial
1040 message.
1041
d38e24c2 10422008-02-19 Bean <bean123ch@gmail.com>
1043
1044 * conf/i386-pc.rmk (pkglib_MODULES): Add aout.mod _bsd.mod and bsd.mod.
1045 (aout_mod_SOURCES): New variable.
1046 (aout_mod_CFLAGS): Likewise.
1047 (aout_mod_LDFLAGS): Likewise.
1048 (_bsd_mod_SOURCES): New variable.
1049 (_bsd_mod_CFLAGS): Likewise.
1050 (_bsd_mod_LDFLAGS): Likewise.
1051 (bsd_mod_SOURCES): New variable.
1052 (bsd_mod_CFLAGS): Likewise.
1053 (bsd_mod_LDFLAGS): Likewise.
1054
1055 * include/grub/aout.h: New file.
1056
1057 * include/grub/i386/loader.h (grub_unix_real_boot): New function.
1058
1059 * include/grub/i386/bsd.h: New file.
1060
1061 * include/grub/i386/pc/init.h (grub_get_mmap_entry): Use EXPORT_FUNC
1062 to make it public.
1063
1064 * kern/elf.c (grub_elf32_load): Get the physical address after the hook
1065 function is called, so that it's possible to change it inside the hook.
1066 (grub_elf64_load): Likewise.
1067 (grub_elf_file): Don't close the file if elf header is not found.
1068 (grub_elf_close): Close the file if grub_elf_file fails (The new
1069 grub_elf_file won't close it).
1070 (grub_elf32_size): Use NESTED_FUNC_ATTR for nested function calcsize.
1071 (grub_elf64_size): Likewise.
1072
1073 * kern/i386/loader.S (grub_unix_real_boot): New function.
1074
1075 * loader/aout.c: New file.
1076
1077 * loader/i386/bsd.c: New file.
1078
1079 * loader/i386/bsd_normal.c: New file.
1080
1081 * loader/i386/pc/multiboot.c (grub_multiboot): Handle a.out format.
1082
1083 * loader/multiboot2.c (grub_multiboot2): Reset grub_errno so that it
1084 can test othe formats.
1085
b93bdb0f 10862008-02-19 Robert Millan <rmh@aybabtu.com>
1087
1088 * partmap/gpt.c: Include `<grub/gpt_partition.h>'.
1089 (grub_gpt_partition_type_empty): Redefine with macro from
1090 `<grub/gpt_partition.h>'.
1091 (gpt_partition_map_iterate): Adjust partition type comparison.
1092
1093 Export `entry' as partmap-specific `part.data' struct.
1094 (grub_gpt_header, grub_gpt_partentry): Move from here ...
1095
1096 * include/grub/gpt_partition.h (grub_gpt_header)
1097 (grub_gpt_partentry): ... to here (new file).
1098
1099 * util/i386/pc/grub-setup.c: Include `<grub/gpt_partition.h>'.
1100
1101 (grub_gpt_partition_type_bios_boot): New const variable, defined
1102 with macro from `<grub/gpt_partition.h>'.
1103
1104 (setup): Replace `first_start' with `embed_region', which keeps
1105 track of the embed region (and is partmap-agnostic).
1106
1107 Replace find_first_partition_start() with find_usable_region(),
1108 which finds a usable region for embedding using partmap-specific
1109 knowledge (supports PC/MSDOS and GPT).
1110
1111 Fix all assumptions that the embed region start at sector 1, using
1112 `embed_region.start' from now on. Similarly, use `embed_region.end'
1113 rather than `first_start' to calculate available size.
1114
1115 In grub_util_info() message, replace "into after the MBR" with an
1116 indication of the specific sector our embed region starts at.
1117
66cb40f6 11182008-02-19 Robert Millan <rmh@aybabtu.com>
1119
1120 * DISTLIST: Replace `commands/ieee1275/halt.c' and
1121 `commands/ieee1275/reboot.c' with `commands/halt.c' and
1122 `commands/reboot.c'.
1123 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
1124 (halt_mod_SOURCES): Likewise.
1125 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES, reboot_mod_SOURCES)
1126 (halt_mod_SOURCES): Likewise.
1127
b7202015 11282008-02-17 Christian Franke <franke@computer.org>
1129
1130 * commands/cat.c (grub_cmd_cat): Add break on GRUB_TERM_ESC key.
1131
32b0fc49 11322008-02-17 Robert Millan <rmh@aybabtu.com>
1133
1134 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
1135 set `first_start' to 0 for non-PC/MSDOS partition maps.
1136
aca63502 11372008-02-16 Robert Millan <rmh@aybabtu.com>
1138
1139 * util/i386/pc/grub-setup.c (setup): In find_first_partition_start(),
1140 do not assume partition map is PC/MSDOS before performing checks that
1141 are specific to that layout.
1142
0de8be86 11432008-02-13 Robert Millan <rmh@aybabtu.com>
1144
1145 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Remove
1146 `commands/i386/pc/halt.c' and `commands/i386/pc/reboot.c'.
1147 * kern/i386/linuxbios/init.c (grub_halt, grub_reboot): Remove stubs.
1148
c3db8364 11492008-02-13 Yoshinori K. Okuji <okuji@enbug.org>
1150
1151 * configure.ac: Only a cosmetic change on the handling of
1152 -fno-stack-protector.
1153
f714229e 11542008-02-12 Alexandre Boeglin <alex@boeglin.org>
1155
c3db8364 1156 * conf/i386-efi.rmk (grub_emu_SOURCES): Replace
1157 commands/i386/pc/halt.c and reboot.c by commands/halt.c and
1158 reboot.c.
f714229e 1159 (grub_install_SOURCES): Add halt.mod and reboot.mod.
1160 (halt_mod_SOURCES): New variable.
1161 (halt_mod_CFLAGS): Likewise.
1162 (halt_mod_LDFLAGS): Likewise.
1163 (reboot_mod_SOURCES): Likewise.
1164 (reboot_mod_CFLAGS): Likewise.
1165 (reboot_mod_LDFLAGS): Likewise.
1166
c3db8364 1167 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Replace
1168 commands/ieee1275/halt.c and reboot.c by commands/halt.c and
1169 reboot.c.
f714229e 1170 (halt_mod_SOURCES): Likewise.
1171 (reboot_mod_SOURCES): Likewise.
1172
c3db8364 1173 * conf/i386-pc.rmk (grub_emu_SOURCES): Replace
1174 commands/i386/pc/reboot.c by commands/reboot.c.
f714229e 1175 (reboot_mod_SOURCES): Likewise.
1176
1177 * commands/i386/pc/reboot.c: merge this file ...
1178
1179 * commands/ieee1275/reboot.c: ... and this file ...
1180
1181 * commands/reboot.c: ... to this file.
c3db8364 1182 Add some precompiler directive to include the correct header for
1183 each machine.
f714229e 1184
1185 * commands/ieee1275/halt.c: move this file ...
1186
1187 * commands/halt.c: ... to here.
c3db8364 1188 Add some precompiler directive to include the correct header for
1189 each machine.
f714229e 1190
1191 * include/grub/efi/efi.h (grub_reboot): New function declaration.
1192 (grub_halt): Likewise.
1193
1194 * kern/efi/efi.c (grub_reboot): New function.
1195 (grub_halt): Likewise.
1196
c74493e0 11972008-02-12 Robert Millan <rmh@aybabtu.com>
1198
1199 * util/getroot.c (grub_guess_root_device): Inspect /dev/evms before
1200 /dev (like it is done for /dev/mapper). This doesn't provide support
1201 for EVMS, but at least it is now easy to identify the problem when it
1202 arises.
1203
d0db4b04 12042008-02-11 Robert Millan <rmh@aybabtu.com>
1205
1206 * util/biosdisk.c (grub_util_biosdisk_open, linux_find_partition)
1207 (grub_util_biosdisk_get_grub_dev): Check open() exit status by
1208 comparing it with -1, not 0.
1209
bf748642 12102008-02-10 Robert Millan <rmh@aybabtu.com>
1211
1212 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `disk/raid.c' and
1213 `disk/lvm.c'.
1214 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1215 * conf/i386-pc.rmk (grub_setup_SOURCES): Likewise.
1216
1217 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Move `disk/raid.c' and
1218 `disk/lvm.c' to the end of the list.
1219 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
1220 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
1221
b5db202a 12222008-02-10 Robert Millan <rmh@aybabtu.com>
1223
1224 * kern/main.c (grub_load_normal_mode): Do not reset `grub_errno'. Call
1225 grub_print_error() instead. This will let user know why we're entering
1226 rescue mode.
1227 Based on suggestions from Sam Morris.
1228
83abee31 12292008-02-10 Alexandre Boeglin <alex@boeglin.org>
1230
1231 * normal/arg.c (grub_arg_parse): If one of the args is "--", call add_arg()
1232 on remaining N args, instead of "--" arg N times.
1233
78d5a08b 12342008-02-09 Vesa Jaaskelainen <chaac@nic.fi>
1235
1236 * font/manager.c (unknown_glyph): Added variable for unknown glyph.
1237 (fill_with_default_glyph): Changed to use unknown_glyph for fill
1238 pattern for unknown glyphs.
1239
68807e5f 12402008-02-09 Robert Millan <rmh@aybabtu.com>
1241
1242 * configure.ac: Probe for `help2man'.
1243 * Makefile.in (builddir): New variable.
1244 (HELP2MAN): Likewise. Set to `true' when @HELP2MAN@ doesn't provide it,
1245 or otherwise add a few flags/options to it.
1246 (install-local): For every executable utility or script that is
1247 installed, invoke $(HELP2MAN) to install a manpage based on --help
1248 output.
1249
1250 * util/i386/pc/grub-install.in: Move down `update-grub_lib' sourcing, so
1251 that it doesn't prevent --help from working in build tree.
1252
1253 * util/i386/pc/grub-mkrescue.in (usage): Replace `grub-devel@gnu.org'
1254 with `bug-grub@gnu.org'.
1255 * util/powerpc/ieee1275/grub-mkrescue.in (usage): Likewise.
1256 * util/update-grub.in (usage): New function.
1257 Implement proper argument check, with support for --help and --version
1258 (as well as existing -y).
1259
12602008-02-09 Christian Franke <franke@computer.org>
0d9ff7f0 1261
1262 * commands/cat.c (grub_cmd_cat): Print '\r' as hex to
1263 avoid overwriting previous output.
1264 * kern/rescue.c (grub_rescue_cmd_cat): Likewise.
1265
c1962162 12662008-02-09 Robert Millan <rmh@aybabtu.com>
1267
1268 * normal/menu.c (run_menu): If timeout is set to zero, don't bother
1269 drawing the menu.
1270
3dac2e3f 12712008-02-09 Robert Millan <rmh@aybabtu.com>
1272
1273 * commands/sleep.c: New file.
1274 * conf/common.rmk (pkglib_MODULES): Add `commands/sleep.c'.
1275 (sleep_mod_SOURCES): New variable.
1276 (sleep_mod_CFLAGS): Likewise.
1277 (sleep_mod_LDFLAGS): Likewise.
1278
7a634e08 12792008-02-09 Robert Millan <rmh@aybabtu.com>
1280
1281 * disk/raid.c (grub_raid_scan_device): Add a pair of sanity checks for
1282 situations in which we can deduce the RAID size and the superblock
1283 doesn't match it.
1284
b92f0c18 12852008-02-09 Robert Millan <rmh@aybabtu.com>
1286
1287 * disk/lvm.c [GRUB_UTIL] (grub_lvm_memberlist): New function. Construct
1288 and return a grub_diskmemberlist_t composed of LVM physical volumes.
1289 [GRUB_UTIL] (grub_lvm_dev): Add `memberlist' member.
1290
1291 * disk/raid.c [GRUB_UTIL] (grub_raid_memberlist): New function. Construct
1292 and return a grub_diskmemberlist_t composed of physical array members.
1293 [GRUB_UTIL] (grub_raid_dev): Add `memberlist' member.
1294
1295 * include/grub/disk.h [GRUB_UTIL] (grub_disk_memberlist): New struct
1296 prototype.
1297 [GRUB_UTIL] (struct grub_disk_dev): Add `memberlist' function pointer.
1298 [GRUB_UTIL] (struct grub_disk_memberlist): New struct declaration.
1299 [GRUB_UTIL] (grub_disk_memberlist_t): New typedef.
1300
1301 * util/grub-probe.c (probe): Move partmap probing code from here ...
1302 (probe_partmap): ... to here.
1303 (probe): Use probe_partmap() once for the disk we're probing, and
1304 additionally, when such disk contains a memberlist() struct member,
1305 once for each disk that is contained in the structure returned by
1306 memberlist().
1307
91a4bf68 13082008-02-09 Robert Millan <rmh@aybabtu.com>
1309
1310 * util/grub-probe.c (main): When `verbosity > 1', set `debug'
1311 environment variable to 'all' in order to obtain debug output from
1312 non-util/ code.
1313 * util/i386/pc/grub-setup.c (main): Likewise.
1314
a96f9caa 13152008-02-08 Robert Millan <rmh@aybabtu.com>
1316
1317 * disk/raid.c (grub_raid_scan_device): Check for
1318 `array->device[sb.this_disk.number]' rather than for
1319 `array->device[sb.this_disk.number]->name', since the latter is not
1320 garanteed to be accessible.
1321
b37a9222 13222008-02-08 Robert Millan <rmh@aybabtu.com>
1323
1324 * disk/raid.c: Update copyright.
1325 * fs/cpio.c: Likewise.
1326 * include/grub/raid.h: Likewise.
1327 * loader/i386/pc/multiboot.c: Likewise.
1328 * util/hostfs.c: Likewise.
1329
5626aee1 13302008-02-08 Robert Millan <rmh@aybabtu.com>
1331
1332 * include/grub/raid.h (struct grub_raid_array): Change type of `device'
1333 to a grub_disk_t array.
1334 * disk/raid.c (grub_raid_read): Replace `device[x].disk' accesses with
1335 `device[x]'.
1336 (grub_raid_scan_device): Replace `device[x].name' accesses with
1337 `device[x]->name'. Simplify initialization of `array->device[x]'.
1338
554f0187 13392008-02-08 Robert Millan <rmh@aybabtu.com>
1340
1341 * disk/raid.c (grub_raid_open, grub_raid_scan_device): Add a few
1342 grub_dprintf() calls.
1343 * kern/disk.c (grub_disk_read): Include grub_errmsg in out of range
1344 error message.
1345
1ec8425d 13462008-02-07 Christian Franke <franke@computer.org>
1347
1348 * util/hostfs.c (grub_hostfs_open): Use fseeko and ftello
1349 instead of fseek and ftell to support large files.
1350 (grub_hostfs_read): Likewise.
1351
f2156fda 13522008-02-07 Robert Millan <rmh@aybabtu.com>
1353
1354 Patch from Jeroen Dekkers.
1355 * disk/raid.c (grub_raid_scan_device): Reset `grub_errno' on disk
1356 failure, since succesfuly reading all array members might not be
1357 required.
1358
9216e0e7 13592008-02-06 Robert Millan <rmh@aybabtu.com>
1360
1361 * util/grub-probe.c (probe): Simplify partmap probing (with the
1362 assumption that the first word up to the underscore equals to
1363 the module name).
1364
b0dfd29a 13652008-02-06 Christian Franke <franke@computer.org>
1366
1367 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_NONE
1368 (and set *ofs = 0) instead of GRUB_ERR_FILE_NOT_FOUND on
1369 last block of a cpio or tar stream.
1370 Check for "TRAILER!!!" instead of any empty data
1371 block to detect last block of a cpio stream.
1372 (grub_cpio_dir): Fix constness of variable np.
1373 (grub_cpio_open): Return GRUB_ERR_FILE_NOT_FOUND if
1374 cpio or tar trailer is detected. This fixes a crash
1375 on open of a non existing file.
1376
c32865bf 13772008-02-05 Bean <bean123ch@gmail.com>
1378
1379 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Get physical
1380 address of entry.
1381 (grub_multiboot_load_elf64): Likewise.
1382 (grub_multiboot): Initialize mbi structure.
1383
1384 * util/grub-fstest.c: Don't include unused header file script.h.
1385
1386 * conf/common.rmk (grub-fstest.c_DEPENDENCIES): Move to the begginning
1387 of file.
1388 (grub_fstest_SOURCES): Likewise.
1389
409480b7 13902008-02-05 Robert Millan <rmh@aybabtu.com>
1391
1392 * include/grub/term.h (GRUB_TERM_LEFT, GRUB_TERM_RIGHT)
1393 (GRUB_TERM_UP, GRUB_TERM_DOWN, GRUB_TERM_HOME, GRUB_TERM_END)
1394 (GRUB_TERM_DC, GRUB_TERM_PPAGE, GRUB_TERM_NPAGE, GRUB_TERM_ESC)
1395 (GRUB_TERM_TAB, GRUB_TERM_BACKSPACE): New macros.
1396
1397 * kern/i386/pc/startup.S: Include `<grub/term.h>'.
1398 (translation_table): Replace hardcoded values with macros
1399 provided by `<grub/term.h>'.
1400
1401 * term/i386/pc/at_keyboard.c: Include `<grub/term.h>'.
1402 (keyboard_map): Correct/add a few values, with macros provided
1403 by `<grub/term.h>'.
1404 (keyboard_map_shift): Zero values that don't differ from their
1405 `keyboard_map' equivalents.
1406 (grub_console_checkkey): Optimize KEYBOARD_STATUS_CAPS_LOCK toggling.
1407 Discard the second scan code that is always sent by Caps lock.
1408 Only use `keyboard_map_shift' when it provides a non-zero value,
1409 otherwise fallback to `keyboard_map'.
1410
99fadbaa 14112008-02-04 Bean <bean123ch@gmail.com>
1412
1413 * Makefile.in (enable_grub_fstest): New variable.
1414
1415 * conf/common.rmk (grub_fstest_init.lst): New rule.
1416 (grub_fstest_init.h): Likewise.
1417 (grub_fstest_init.c): Likewise.
1418 (util/grub-fstest.c_DEPENDENCIES): New variable.
1419 (grub_fstest_SOURCES): Likewise.
1420
1421 * configure.ac (enable_grub_fstest): Check for --enable-grub-fstest.
1422
1423 * util/grub-fstest.c: New file.
1424
bf567c50 14252008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
1426
1427 Make grub-setup handle a separate root device.
1428
1429 * util/i386/pc/grub-setup.c (setup): Always open the root device,
1430 so that the root device can be compared with the destination
1431 device.
1432 When embedding the core image, if the root and destination devices
1433 are different, set ROOT_DRIVE to ROOT_DEV->DISK->ID. Otherwise, to
1434 0xFF.
1435 When not embedding, set ROOT_DRIVE to 0xFF.
1436
9be6b98b 14372008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
1438
1439 Add support for having a grub directory in a different drive. This
1440 is still only the data handling part.
1441
1442 * kern/i386/pc/startup.S (multiboot_trampoline): Set %dh to 0xFF.
1443 (codestart): Save %dh in GRUB_ROOT_DRIVE.
1444 (grub_root_drive): New variable.
1445
1446 * kern/i386/pc/init.c (make_install_device): Use GRUB_ROOT_DRIVE
1447 instead of GRUB_BOOT_DRIVE to construct a device name. Set
1448 GRUB_ROOT_DRIVE to GRUB_BOOT_DRIVE if it is 0xFF, otherwise use it
1449 as it was.
1450
1451 * include/grub/i386/pc/kernel.h (grub_root_drive): New prototype.
1452
1453 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_ROOT_DRIVE): New
1454 macro.
1455 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Set to 0x4f.
1456
1457 * boot/i386/pc/pxeboot.S (_start): Set %dh to 0xFF. For now, this
1458 is bogus, because PXE booting does not specify any drive
1459 correctly.
1460
1461 * boot/i386/pc/lnxboot.S (reg_edx): Set the second byte to 0xFF. I
1462 am not sure if this is really correct.
1463
1464 * boot/i386/pc/cdboot.S: Set %dh to 0xFF, because the root drive
1465 is always identical to the boot drive when booting from a CD.
1466
1467 * boot/i386/pc/boot.S (MOV_MEM_TO_AL): Removed. Not needed any
1468 longer.
1469 (root_drive): New variable.
1470 (real_start): Unconditionally set %dh to ROOT_DRIVE.
1471 (setup_sectors): Push %dx right after popping it, because %dh will
1472 be modified later.
1473 (copy_buffer): Restore %dx.
1474
e0ca0677 14752008-02-03 Robert Millan <rmh@aybabtu.com>
1476
1477 * util/i386/pc/grub-mkrescue.in: Rewrite most of image generation to
1478 use `cdboot.img' for cdrom images.
1479
3b3f6629 14802008-02-03 Robert Millan <rmh@aybabtu.com>
1481
1482 * util/grub.d/00_header.in: Issue scripting commands for GRUB to
1483 only setup gfxterm when `font' command has succeeded.
1484
d42b3672 14852008-02-03 Robert Millan <rmh@aybabtu.com>
1486
1487 * loader/multiboot_loader.c [GRUB_MACHINE_LINUXBIOS]
1488 (grub_rescue_cmd_multiboot_loader)
1489 (grub_rescue_cmd_module_loader): Enable multiboot1 calls.
1490
fa370ea6 14912008-02-03 Pavel Roskin <proski@gnu.org>
1492
e0c5dacb 1493 * kern/i386/pc/startup.S (grub_chainloader_real_boot): Pop
fa370ea6 1494 %edx and %esi from stack only after grub_gate_a20() is called.
1495 grub_gate_a20() clobbers %edx.
1496
f2a76e1d 14972008-02-03 Yoshinori K. Okuji <okuji@enbug.org>
1498
1499 * configure.ac (AC_INIT): Bumped to 1.96.
1500
1501 * DISTLIST: Added boot/i386/pc/cdboot.S, bus/pci.c,
1502 commands/lspci.c,disk/memdisk.c, include/grub/pci.h,
1503 include/grub/i386/pc/pci.h, video/readers/jpeg.c, and
1504 video/readers/png.c.
1505
90fd32d1 15062008-02-03 Bean <bean123ch@gmail.com>
9be665dd 1507
1508 * conf/i386-pc.rmk (pkglib_IMAGES): Add cdboot.img.
1509 (cdboot_img_SOURCES): New variable.
1510 (cdboot_img_ASFLAGS): New variable.
1511 (cdboot_img_LDFLAGS): New variable.
1512
1513 * boot/i386/pc/cdboot.S: New file.
1514
1515 * disk/i386/pc/biosdisk.c (cd_start): New variable.
1516 (cd_count): Likewise.
1517 (grub_biosdisk_get_drive): Add support for cd device.
1518 (grub_biosdisk_call_hook): Likewise.
1519 (grub_biosdisk_iterate): Likewise.
1520 (grub_biosdisk_open): Likewise.
1521 (GRUB_BIOSDISK_CDROM_RETRY_COUNT): New macro.
1522 (grub_biosdisk_rw): Support reading from cd device.
1523 (GRUB_MOD_INIT): Iterate cd devices.
1524
1525 * include/grub/i386/pc/biosdisk.h (GRUB_BIOSDISK_FLAG_CDROM): New macro.
1526 (GRUB_BIOSDISK_MACHINE_CDROM_START): Likewise.
1527 (GRUB_BIOSDISK_MACHINE_CDROM_END): Likewise.
1528
1529 * kern/i386/pc/init.c (make_install_device): Check for cd device.
1530
4020aa53 15312008-02-02 Robert Millan <rmh@aybabtu.com>
1532
1533 * commands/read.c: New file.
1534 * conf/common.rmk (pkglib_MODULES): Add `commands/read.c'.
1535 (read_mod_SOURCES): New variable.
1536 (read_mod_CFLAGS): Likewise.
1537 (read_mod_LDFLAGS): Likewise.
1538
e03a1132 15392008-02-02 Robert Millan <rmh@aybabtu.com>
1540
1541 * normal/main.c (grub_normal_execute): Check for `menu->size' when
1542 determining whether menu has to be displayed.
1543
58c69220 15442008-02-02 Marco Gerards <marco@gnu.org>
1545
1546 * bus/pci.c: New file.
1547
1548 * include/grub/pci.h: Likewise.
1549
1550 * include/grub/i386/pc/pci.h: Likewise.
1551
1552 * commands/lspci.c: Likewise.
1553
1554 * conf/i386-pc.rmk (pkglib_MODULES): Add `pci.mod' and
1555 `lspci.mod'.
1556 (pci_mod_SOURCES): New variable.
1557 (pci_mod_CFLAGS): Likewise.
1558 (pci_mod_LDFLAGS): Likewise.
1559 (lspci_mod_SOURCES): Likewise.
1560 (lspci_mod_CFLAGS): Likewise.
1561 (lspci_mod_LDFLAGS): Likewise.
1562
c004e1b4 15632008-02-02 Bean <bean123ch@gmail.com>
1564
1565 * fs/ufs.c (INODE_BLKSZ): Fix incorrect value.
1566 (grub_ufs_get_file_block): Fix indirect block calculation problem.
1567
1568 * fs/xfs.c (grub_xfs_sblock): New member log2_dirblk.
1569 (grub_xfs_btree_node): New structure.
1570 (grub_xfs_btree_root): New structure.
1571 (grub_xfs_inode): New members nblocks, extsize, nextents and btree.
1572 (GRUB_XFS_EXTENT_OFFSET): Use exts instead of inode->data.extents.
1573 (GRUB_XFS_EXTENT_BLOCK): Likewise.
1574 (GRUB_XFS_EXTENT_SIZE): Likewise.
1575 (grub_xfs_read_block): Support btree format type.
1576 (grub_xfs_iterate_dir): Use NESTED_FUNC_ATTR in call_hook.
1577 Use directory block as basic unit.
1578
1579 * fs/fshelp.c (grub_fshelp_read_file): Bug fix for sparse block.
1580
1581 * aclocal.m4 (grub_i386_CHECK_REGPARM_BUG): Define NESTED_FUNC_ATTR as
1582 __attribute__ ((__regparm__ (1))).
1583
f95562bf 15842008-02-01 Robert Millan <rmh@aybabtu.com>
1585
1586 Correct a mistake in previous commit.
1587
1588 * conf/i386-pc.rmk (normal/execute.c_DEPENDENCIES): Move to the
1589 top.
1590 (normal/command.c_DEPENDENCIES): New variable.
1591
7d31f41f 15922008-02-01 Robert Millan <rmh@aybabtu.com>
1593
1594 * conf/i386-efi.rmk (normal/execute.c_DEPENDENCIES): Move to the
1595 top.
1596 (normal/command.c_DEPENDENCIES): New variable.
1597 (grub-emu_DEPENDENCIES, normal_mod_DEPENDENCIES): Remove variables.
1598 * conf/i386-ieee1275.rmk: Likewise.
1599 * conf/i386-linuxbios.rmk: Likewise.
1600 * conf/i386-pc.rmk: Likewise.
1601 * conf/sparc64-ieee1275.rmk: Likewise.
1602 * conf/powerpc-ieee1275.rmk: Likewise.
1603 (grub_emu_SOURCES): Add `fs/fshelp.c'.
1604
1605 * genmk.rb: Add `$(#{src}_DEPENDENCIES)' in targets that require it.
1606
60b6be74 16072008-02-01 Robert Millan <rmh@aybabtu.com>
1608
1609 * kern/disk.c (grub_disk_read, grub_disk_write): Add grub_dprintf()
1610 call at beginning of function.
1611
078522ab 16122008-01-31 Pavel Roskin <proski@gnu.org>
1613
1614 * util/powerpc/ieee1275/grub-mkrescue.in: New file.
d2c11005 1615 * conf/powerpc-ieee1275.rmk (bin_SCRIPTS): New variable.
1616 (grub_mkrescue_SOURCES): Likewise.
078522ab 1617 * DISTLIST: Add util/powerpc/ieee1275/grub-mkrescue.in.
1618
ccaa8a5f 16192008-01-30 Robert Millan <rmh@aybabtu.com>
1620
1621 * conf/i386-pc.rmk (sbin_UTILITIES): Remove `grub-probe'.
1622 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Moved from here ...
1623 * conf/common.rmk (util/grub-probe.c_DEPENDENCIES)
1624 (grub_probe_SOURCES): ... to here.
1625
1626 * conf/i386-efi.rmk (sbin_UTILITIES): Remove `grub-probe'.
1627 (util/grub-probe.c_DEPENDENCIES, grub_probe_SOURCES): Remove.
1628 * conf/i386-ieee1275.rmk: Likewise.
1629 * conf/i386-linuxbios.rmk: Likewise.
1630 * conf/powerpc-ieee1275.rmk: Likewise.
1631
ae5a9cd7 16322008-01-30 Tristan Gingold <gingold@free.fr>
1633
1634 * kern/rescue.c: Silently accept empty lines.
1635
70bc2ef2 16362008-01-29 Bean <bean123ch@gmail.com>
1637
1638 * boot/i386/pc/lnxboot.S (data_start): Code cleanup.
1639 (real_code_2): Code cleanup and change comment style.
1640 (move_memory): Avoid using 32-bit address mode.
1641
6a4d50ea 16422008-01-29 Bean <bean123ch@gmail.com>
1643
1644 * conf/i386-pc.rmk (pkglib_MODULES): Add `png.mod'.
1645 (png_mod_SOURCES): New variable.
1646 (png_mod_CFLAGS): Likewise.
1647 (png_mod_LDFLAGS): Likewise.
1648
1649 * video/readers/png.c: New file.
1650
11cc30ac 16512008-01-28 Robert Millan <rmh@aybabtu.com>
1652
1653 * include/grub/i386/linuxbios/kernel.h (GRUB_MOD_GAP): New macro.
1654 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Remove
1655 `ifndef GRUB_MOD_GAP' hack.
1656 * util/elf/grub-mkimage.c (add_segments): Likewise.
1657
3abc589f 16582008-01-27 Robert Millan <rmh@aybabtu.com>
1659
1660 * kern/powerpc/ieee1275/init.c (grub_arch_modules_addr): Skip
1661 `GRUB_MOD_GAP' for platforms in which it's not defined.
962ca133 1662 * util/elf/grub-mkimage.c (add_segments): Likewise.
3abc589f 1663
e1907778 16642008-01-27 Robert Millan <rmh@aybabtu.com>
1665
1666 Get grub-emu to build again (including parallel builds).
1667
1668 * conf/i386-pc.rmk (util/grub-emu.c_DEPENDENCIES): Remove variable.
1669 Split into ...
1670 (util/grub-emu.c_DEPENDENCIES): ... this, ...
1671 (normal/execute.c_DEPENDENCIES): ... this, ...
1672 (grub-emu_DEPENDENCIES): ... and this.
1673
1674 * conf/i386-efi.rmk: Likewise.
1675 * conf/i386-linuxbios.rmk: Likewise.
1676 * conf/i386-ieee1275.rmk: Likewise.
1677 * conf/powerpc-ieee1275.rmk: Likewise.
1678 (grub_emu_SOURCES): Remove duplicated `kern/file.c'.
1679
2216b101 16802008-01-27 Robert Millan <rmh@aybabtu.com>
1681
1682 * NEWS: Add a few items.
1683
f75172d9 16842008-01-27 Robert Millan <rmh@aybabtu.com>
1685
1686 Fix parallel builds with grub-emu. Based on earlier commit for
1687 grub-probe and grub-setup.
1688
1689 * conf/i386-pc.rmk (grub-emu_DEPENDENCIES): Renamed to ...
1690 (util/grub-emu.c_DEPENDENCIES): ... this.
1691 * conf/i386-efi.rmk (grub-emu_DEPENDENCIES): Renamed to ...
1692 (util/grub-emu.c_DEPENDENCIES): ... this.
1693 * conf/i386-linuxbios.rmk (grub-emu_DEPENDENCIES): Renamed to ...
1694 (util/grub-emu.c_DEPENDENCIES): ... this.
1695 * conf/i386-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
1696 (util/grub-emu.c_DEPENDENCIES): ... this.
1697 * conf/powerpc-ieee1275.rmk (grub-emu_DEPENDENCIES): Renamed to ...
1698 (util/grub-emu.c_DEPENDENCIES): ... this.
1699
3f51de77 17002008-01-27 Pavel Roskin <proski@gnu.org>
1701
1702 * include/grub/powerpc/ieee1275/kernel.h: Introduce GRUB_MOD_GAP
1703 to create a gap between _end and the modules added to the image
1704 with grub-mkrescue. That fixes "CLAIM failed" on PowerMAC.
1705 * kern/powerpc/ieee1275/init.c: Use GRUB_MOD_GAP.
1706 * util/elf/grub-mkimage.c (add_segments): Likewise.
1707
2033f53e 17082008-01-26 Pavel Roskin <proski@gnu.org>
1709
1710 * kern/dl.c (grub_dl_load): Don't abort if prefix is not set,
1711 just return an error.
1712
22da1f6f 17132008-01-26 Bean <bean123ch@gmail.com>
1714
1715 * fs/reiserfs.c (grub_fshelp_node): New member next_offset.
1716 (grub_reiserfs_get_item): Save offset of the next item.
1717 (grub_reiserfs_iterate_dir): Use next_offset to find next item.
1718
2a9525e6 17192008-01-25 Robert Millan <rmh@aybabtu.com>
1720
1721 * conf/i386-pc.rmk (grub_setup_SOURCES, grub_emu_SOURCES): Regroup to
1722 make all filesystem sources appear together (possibly fixing omissions
1723 while at it).
1724 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
1725 * conf/i386-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1726 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
1727 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1728
1729 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise. Additionally,
1730 add `kern/file.c'.
1731 * conf/i386-efi.rmk (grub_probe_SOURCES): Likewise.
1732 * conf/i386-ieee1275.rmk (grub_probe_SOURCES): Likewise.
1733 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Likewise.
1734 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Likewise.
1735
1736 * util/grub-probe.c: Include `<grub/file.h>' and `<sys/stat.h>'.
1737 (probe): Add a sanity check to make sure of our ability to read
1738 requested files when probing for filesystem type.
1739
1740 * genmk.rb: Update copyright year (2007).
1741
1742 * include/grub/fs.h (grub_fat_init, grub_fat_fini, grub_ext2_init)
1743 (grub_ext2_fini, grub_ufs_init, grub_ufs_fini, grub_minix_init)
1744 (grub_minix_fini, grub_hfs_init, grub_hfs_fini, grub_jfs_init)
1745 (grub_jfs_fini, grub_xfs_init, grub_xfs_fini, grub_affs_init)
1746 (grub_affs_fini, grub_sfs_init, grub_sfs_fini, grub_iso9660_init)
1747 : Remove function prototypes.
1748
b95f71b5 17492008-01-25 Robert Millan <rmh@aybabtu.com>
1750
1751 Revert my previous commits (based on wrong assumption of how grub_errno
1752 works).
1753
1754 * kern/disk.c (grub_disk_open): Stop reseting grub_errno.
1755 * kern/file.c (grub_file_open): Likewise.
1756
d08bbb49 17572008-01-24 Pavel Roskin <proski@gnu.org>
1758
1759 * include/grub/ieee1275/ieee1275.h: Introduce flag for firmwares
1760 that hang if GRUB tries to setup colors.
1761 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Don't set
1762 colors for firmwares that don't support it.
1763 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag):
1764 Recognize Open Hack'Ware, set flags to work around its
1765 limitations.
1766
605e36ed 17672008-01-24 Robert Millan <rmh@aybabtu.com>
1768
1769 * kern/file.c (grub_file_open): Do not account previous failures of
1770 unrelated functions when grub_errno is checked for.
1771 Reported by Oleg Strikov.
1772
bac332a1 17732008-01-24 Bean <bean123ch@gmail.com>
1774
1775 * fs/ufs.c (GRUB_UFS_VOLNAME_LEN): New macro.
1776 (grub_ufs_sblock): New member volume name.
1777 (grub_ufs_find_file): Fix string copy bug.
1778 (grub_ufs_label): Implement this function properly.
1779
1780 * fs/hfs.c (grub_hfs_cnid_type): New enum.
1781 (grub_hfs_iterate_records): Use the correct file number for extents
1782 and catalog file. Fix problem in next index calculation.
1783 (grub_hfs_find_node): Replace recursive function call with loop.
1784 (grub_hfs_iterate_dir): Replace recursive function call with loop.
1785
15c80c09 17862008-01-23 Robert Millan <rmh@aybabtu.com>
1787
1788 * include/grub/i386/ieee1275/loader.h: Include `<grub/types.h>',
1789 `<grub/symbol.h>' and `<grub/multiboot.h>'.
1790 (grub_multiboot2_real_boot): New function prototype.
1791
1792 * include/grub/i386/pc/memory.h: Include `<grub/machine/machine.h>'.
1793 [!GRUB_MACHINE_IEEE1275] (grub_lower_mem, grub_upper_mem): Disable.
1794
1795 * kern/i386/ieee1275/init.c (grub_os_area_addr)
1796 (grub_os_area_size, grub_lower_mem, grub_upper_mem): Remove variables.
1797
305338fd 17982008-01-23 Robert Millan <rmh@aybabtu.com>
1799
1800 * kern/mm.c (grub_mm_init_region): Replace grub_dprintf() call with
1801 #ifdef'ed out grub_printf().
1802
3ea52685 18032008-01-23 Robert Millan <rmh@aybabtu.com>
1804
1805 * term/i386/pc/at_keyboard.c (grub_keyboard_isr): #ifdef out
1806 grub_dprintf calls, since they make "debug=all" mode unusable.
1807 (grub_console_checkkey): Likewise.
1808
5882ae4b 18092008-01-23 Robert Millan <rmh@aybabtu.com>
1810
1811 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add
1812 `term/i386/pc/at_keyboard.c'.
1813 (pkglib_MODULES): Add `serial.mod'.
1814 (serial_mod_SOURCES): New variable.
1815 (serial_mod_CFLAGS): Likewise.
1816 (serial_mod_LDFLAGS): Likewise.
1817
1818 * include/grub/i386/ieee1275/console.h: Add `<grub/symbol.h>'. Remove
1819 `<grub/powerpc/ieee1275/console.h>'.
1820 (grub_keyboard_controller_init): New function prototype.
1821 (grub_console_checkkey): Likewise.
1822 (grub_console_getkey): Likewise.
1823
1824 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize AT
1825 keyboard on i386.
1826
1827 * term/ieee1275/ofconsole.c (grub_ofconsole_term): On i386, use
1828 grub_ofconsole_checkkey() and grub_ofconsole_getkey() for input.
1829
06ab5303 18302008-01-23 Robert Millan <rmh@aybabtu.com>
1831
1832 * kern/i386/pc/init.c (make_install_device): When memdisk image is
1833 present, "(memdisk)/boot/grub" becomes the default prefix.
1834
1835 * util/i386/pc/grub-mkrescue.in: Switch to a minimal core.img plus
1836 a memdisk tarball with all the modules. Add --overlay=DIR option that
1837 allows users to overlay additional files into the image.
1838
dbb475a4 18392008-01-23 Robert Millan <rmh@aybabtu.com>
1840
1841 * conf/i386-ieee1275.rmk (kernel_elf_SOURCES): Add `machine/loader.h'
1842 and `machine/memory.h'.
1843 (pkglib_MODULES): Add `multiboot.mod' and `_multiboot.mod'.
1844 (_multiboot_mod_SOURCES): New variable.
1845 (_multiboot_mod_CFLAGS): Likewise.
1846 (_multiboot_mod_LDFLAGS): Likewise.
1847 (multiboot_mod_SOURCES): Likewise.
1848 (multiboot_mod_CFLAGS): Likewise.
1849 (multiboot_mod_LDFLAGS): Likewise.
1850
1851 * include/grub/i386/ieee1275/loader.h: New file.
1852
1853 * include/grub/i386/ieee1275/machine.h: Likewise.
1854
1855 * include/grub/i386/ieee1275/memory.h: Likewise.
1856
1857 * include/grub/i386/pc/init.h (grub_os_area_addr): Remove (redundant)
1858 variable declaration.
1859 (grub_os_area_size): Likewise.
1860
1861 * kern/i386/ieee1275/init.c (grub_os_area_addr, grub_os_area_size)
1862 (grub_lower_mem, grub_upper_mem): New variables.
1863 (grub_stop_floppy): New function (just to make
1864 grub_multiboot2_real_boot() happy).
1865
1866 * kern/i386/ieee1275/startup.S: Include `<grub/machine/memory.h>',
1867 `<grub/cpu/linux.h>', `<multiboot.h>' and `<multiboot2.h>'.
1868 (grub_stop): New function.
1869 Include `"../realmode.S"' and `"../loader.S"'.
1870
1871 * loader/multiboot_loader.c: Include `<grub/machine/machine.h>'.
1872 Replace `__i386__' #ifdefs with `GRUB_MACHINE_PCBIOS'.
1873
1874 * loader/powerpc/ieee1275/multiboot2.c (grub_mb2_arch_boot): On i386,
1875 rely on grub_multiboot2_real_boot() for final boot.
1876
25638629 18772008-01-22 Robert Millan <rmh@aybabtu.com>
1878
1879 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): When
1880 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag is set, skip any
1881 device that doesn't look like an SD card.
1882 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
1883 `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' flag.
1884 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_set_flag): Detect
1885 OLPC laptop, and set `GRUB_IEEE1275_FLAG_OFDISK_SDCARD_ONLY' when
1886 found.
1887
9dad816d 18882008-01-22 Robert Millan <rmh@aybabtu.com>
1889
1890 * kern/powerpc/ieee1275/init.c (grub_claim_heap): Add sanity check to
1891 avoid claiming over our own code.
1892
34842f2d 18932008-01-22 Bean <bean123ch@gmail.com>
1894
1895 * conf/i386-pc.rmk (pkglib_MODULES): Add `jpeg.mod'.
1896 (jpeg_mod_SOURCES): New variable.
1897 (jpeg_mod_CFLAGS): Likewise.
1898 (jpeg_mod_LDFLAGS): Likewise.
1899
1900 * video/readers/jpeg.c : New file.
1901
44023a28 19022008-01-22 Bean <bean123ch@gmail.com>
1903
1904 * fs/cpio.c (grub_cpio_find_file): Return GRUB_ERR_FILE_NOT_FOUND when
1905 there are no more items.
1906
bc2d8ac6 19072008-01-21 Robert Millan <rmh@aybabtu.com>
1908
1909 * kern/mm.c (grub_mm_init_region): Improve debug message.
1910
261bd4bc 19112008-01-21 Robert Millan <rmh@aybabtu.com>
1912
1913 * conf/i386-pc.rmk (GRUB_MEMORY_MACHINE_LINK_ADDR): New variable.
1914 (kernel_img_LDFLAGS): Use `GRUB_MEMORY_MACHINE_LINK_ADDR' as link
1915 address.
1916 (grub_mkimage_CFLAGS): Propagate `GRUB_MEMORY_MACHINE_LINK_ADDR' as
1917 a C macro.
1918 * include/grub/i386/pc/memory.h (GRUB_MEMORY_MACHINE_UPPER): New macro.
1919 Indicates start of upper memory.
1920 * util/i386/pc/grub-mkimage.c: Include `<grub/machine/memory.h>'.
1921 (generate_image): Abort when image size is big enough to corrupt
1922 upper memory.
1923
1924 * include/grub/i386/pc/vga.h: Include `<grub/machine/memory.h>'.
1925 (GRUB_MEMORY_MACHINE_VGA_ADDR): Alias for `GRUB_MEMORY_MACHINE_UPPER'.
1926 * term/i386/pc/vga.c (VGA_MEM): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
1927 instead of hardcoding 0xA0000.
1928 * video/i386/pc/vbe.c: Include `<grub/machine/vga.h>'.
1929 (grub_vbe_set_video_mode): Use `GRUB_MEMORY_MACHINE_VGA_ADDR'
1930 instead of hardcoding 0xA0000.
1931
f970b55e 19322008-01-21 Robert Millan <rmh@aybabtu.com>
1933
1934 * disk/memdisk.c (memdisk_size): New variable.
1935 (grub_memdisk_open): Replace grub_arch_memdisk_size() call with
1936 `memdisk_size'.
1937 (grub_memdisk_init): Initialize `memdisk_size'. Reallocate memdisk
1938 image to dynamic memory.
1939 (grub_memdisk_fini): Replace grub_arch_memdisk_size() call with
1940 `memdisk_size'. Free memdisk block.
1941
1a8b0526 19422008-01-21 Robert Millan <rmh@aybabtu.com>
1943
1944 Fix detection of very small filesystems (like tar).
1945
1946 * fs/reiserfs.c (grub_reiserfs_mount): When disk is too small to
1947 contain a ReiserFS, abort with GRUB_ERR_BAD_FS rather than
1948 GRUB_ERR_OUT_OF_RANGE (which made the upper layer think there's
1949 a problem with this disk).
1950
6e9b4aab 19512008-01-21 Robert Millan <rmh@aybabtu.com>
1952
1953 * disk/i386/pc/biosdisk.c (grub_biosdisk_iterate): Add debug message
1954 on grub_biosdisk_rw_standard() error.
1955
0d8837b2 19562008-01-21 Robert Millan <rmh@aybabtu.com>
1957
1958 * include/grub/ieee1275/ieee1275.h: Add 2008 to Copyright line for
1959 recent changes.
1960 * kern/elf.c: Likewise.
1961 * kern/ieee1275/ieee1275.c: Likewise.
1962 * kern/powerpc/ieee1275/openfw.c: Likewise.
1963 * term/ieee1275/ofconsole.c: Likewise.
1964
ffd36e34 19652008-01-21 Robert Millan <rmh@aybabtu.com>
1966
1967 * include/grub/i386/pc/kernel.h: Include `<grub/symbol.h>'.
1968
3f0093d0 1969 * include/grub/kernel.h (grub_arch_memdisk_addr)
1970 (grub_arch_memdisk_size): Moved from here ...
ffd36e34 1971
3f0093d0 1972 * include/grub/i386/pc/kernel.h (grub_arch_memdisk_addr)
1973 (grub_arch_memdisk_size): ... to here.
ffd36e34 1974
6c391b21 19752008-01-21 Robert Millan <rmh@aybabtu.com>
1976
1977 Mostly based on bugfix from Bean.
1978
1979 * kern/elf.c (grub_elf32_phdr_iterate): Use `NESTED_FUNC_ATTR'
1980 attribute with hook() parameter.
1981 (grub_elf32_load): Use `NESTED_FUNC_ATTR' with grub_elf32_load_segment()
1982 declaration.
1983 (grub_elf64_phdr_iterate): Use `NESTED_FUNC_ATTR'
1984 attribute with hook() parameter.
1985 (grub_elf64_load): Use `NESTED_FUNC_ATTR' with grub_elf64_load_segment()
1986 declaration.
1987
55a581dc 19882008-01-21 Robert Millan <rmh@aybabtu.com>
1989
1990 * conf/i386-pc.rmk (kernel_img_HEADERS): Add `machine/kernel.h'.
1991 (pkglib_MODULES): Add `memdisk.mod'.
1992 (memdisk_mod_SOURCES): New variable.
1993 (memdisk_mod_CFLAGS): Likewise.
1994 (memdisk_mod_LDFLAGS): Likewise.
1995
1996 * disk/memdisk.c: New file.
1997
1998 * include/grub/disk.h (grub_disk_dev_id): Add
1999 `GRUB_DISK_DEVICE_MEMDISK_ID'.
2000
2001 * include/grub/i386/pc/kernel.h
2002 (GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE): New macro.
2003 (GRUB_KERNEL_MACHINE_PREFIX): Increment by 4.
2004 (grub_kernel_image_size): New variable declaration.
2005 (grub_total_module_size): Likewise.
2006 (grub_memdisk_image_size): Likewise.
2007
2008 * include/grub/i386/pc/memory.h
2009 (GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR): New macro.
2010
2011 * include/grub/kernel.h: Include `<grub/symbol.h>'.
2012 (grub_arch_memdisk_addr): New variable declaration.
2013 (grub_arch_memdisk_size): Likewise.
2014
2015 * kern/i386/pc/init.c (grub_arch_memdisk_addr): New function.
2016 (grub_arch_memdisk_size): Likewise.
2017
2018 * kern/i386/pc/startup.S (grub_memdisk_image_size): New variable.
2019 (codestart): Replace hardcoded `0x100000' with
2020 `GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR' macro.
2021
2022 * util/i386/pc/grub-mkimage.c: Include `<grub/misc.h>'.
2023 (generate_image): Add `memdisk_path' parameter. When `memdisk_path' is
2024 not NULL, append the contents of the file it refers to, at the end of
2025 the compressed kernel image. Initialize `grub_memdisk_image_size'
2026 variable (at `GRUB_KERNEL_MACHINE_MEMDISK_IMAGE_SIZE' offset).
2027 (options): Add "memdisk"|'m' option.
2028 (main): Parse --memdisk|-m option, and pass user-provided path as
2029 parameter to generate_image().
2030
3d7f54c9 20312008-01-20 Robert Millan <rmh@aybabtu.com>
2032
2033 * kern/sparc64/ieee1275/openfw.c (grub_devalias_iterate): Copy debug
2034 grub_dprintf() calls from here ...
2035 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): ... to here.
2036
0bf74728 20372008-01-20 Robert Millan <rmh@aybabtu.com>
2038
2039 Fix detection of "real mode" when /options/real-mode? doesn't exist.
2040
2041 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_mmu): New variable
2042 declaration.
2043 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_mmu): New variable.
2044 (grub_ieee1275_find_options): If `grub_ieee1275_mmu' is 0, set
2045 `GRUB_IEEE1275_FLAG_REAL_MODE'.
2046 (cmain): Intialize `grub_ieee1275_mmu' (using /chosen/mmu integer
2047 property).
2048 * kern/powerpc/ieee1275/openfw.c (grub_map): Rely on pre-initialized
2049 `grub_ieee1275_mmu' rather than obtaining a handler on every call.
2050
33bf70a7 20512008-01-19 Robert Millan <rmh@aybabtu.com>
2052
2053 Get rid of confusing function (superceeded by
2054 `grub_ieee1275_get_integer_property')
2055 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_decode_int_4): Remove
2056 prototype.
2057 * kern/ieee1275/ieee1275.c (grub_ieee1275_decode_int_4): Remove
2058 function.
2059 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid use of
2060 grub_ieee1275_decode_int_4(), by obtaining integer properties directly
2061 in native endianess from grub_ieee1275_get_integer_property().
2062
e2da7d26 20632008-01-19 Robert Millan <rmh@aybabtu.com>
2064
2065 * kern/powerpc/ieee1275/openfw.c (grub_halt): Issue "power-off"
2066 command after "shut-down", since implementations differ on which
2067 the command for halt is.
2068
59f1fd8d 20692008-01-19 Robert Millan <rmh@aybabtu.com>
2070
2071 * include/grub/i386/linuxbios/console.h: Add header protection.
2072 (grub_keyboard_controller_init): New function prototype.
2073 * term/i386/pc/at_keyboard.c (KEYBOARD_COMMAND_ISREADY): New macro.
2074 (KEYBOARD_COMMAND_READ): Likewise.
2075 (KEYBOARD_COMMAND_WRITE): Likewise.
2076 (KEYBOARD_SCANCODE_SET1): Likewise.
2077 (grub_keyboard_controller_write): New function.
2078 (grub_keyboard_controller_read): Likewise.
2079 (grub_keyboard_controller_init): Likewise.
2080
2081 * term/i386/pc/console.c: Include `<grub/machine/machine.h>'.
2082 (grub_console_init): On coreboot/LinuxBIOS, call
2083 grub_keyboard_controller_init().
2084
5f5a7c15 20852008-01-19 Robert Millan <rmh@aybabtu.com>
2086
2087 PowerPC changes provided by Pavel Roskin.
2088
2089 * kern/powerpc/ieee1275/cmain.c (cmain): Don't take any arguments.
2090 * kern/powerpc/ieee1275/crt0.S: Store r5 in grub_ieee1275_entry_fn,
2091 don't rely on cmain() doing it.
2092 * kern/i386/ieee1275/startup.S (_start): Store %eax in
2093 grub_ieee1275_entry_fn, don't rely on cmain() doing it.
2094
1210e168 20952008-01-16 Robert Millan <rmh@aybabtu.com>
2096
2097 * include/grub/i386/linuxbios/memory.h
2098 (GRUB_MEMORY_MACHINE_LINUXBIOS_TABLE_ADDR): Remove macro.
2099 * kern/i386/linuxbios/table.c (grub_linuxbios_table_iterate): Do not
2100 receive `table_header' as argument. Instead, probe for it in the
2101 known memory ranges where it can be present.
2102 (grub_available_iterate): Do not pass a fixed `table_header' address
2103 to grub_linuxbios_table_iterate().
2104
3d04eab8 21052008-01-15 Robert Millan <rmh@aybabtu.com>
2106
2107 * configure.ac: Add `i386-ieee1275' to the list of supported targets.
2108 * conf/i386-ieee1275.rmk: New file.
2109 * include/grub/i386/ieee1275/console.h: Likewise.
2110 * include/grub/i386/ieee1275/ieee1275.h: Likewise.
2111 * include/grub/i386/ieee1275/kernel.h: Likewise.
2112 * include/grub/i386/ieee1275/time.h: Likewise.
2113 * kern/i386/ieee1275/init.c: Likewise.
2114 * kern/i386/ieee1275/startup.S: Likewise.
2115
d1bc1b73 21162008-01-15 Robert Millan <rmh@aybabtu.com>
2117
2118 * kern/misc.c (grub_vsprintf): Do not reset `longlongfmt' to zero
2119 when pointers are 32-bit (but still do set it to one when they are
2120 64-bit).
2121
66a65807 21222008-01-15 Robert Millan <rmh@aybabtu.com>
2123
2124 * include/grub/ieee1275/ieee1275.h
2125 (grub_ieee1275_get_integer_property): New function prototype.
2126
2127 * kern/ieee1275/ieee1275.c: Include `<grub/types.h>'.
2128 (grub_ieee1275_get_integer_property): New function. Wraps around
2129 grub_ieee1275_get_property() to handle endianess.
2130
2131 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Replace
2132 grub_ieee1275_get_property() with grub_ieee1275_get_integer_property()
2133 where appropiate.
2134 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Likewise.
2135 (grub_map): Likewise.
2136 * kern/sparc64/ieee1275/openfw.c (grub_map): Likewise.
2137
a83ccafd 21382008-01-15 Bean <bean123ch@gmail.com>
2139
2140 * normal/execute.c (grub_script_exec_argument_to_string): Check for undefined variable.
2141 (grub_script_execute_cmdline): Reset grub_errno.
2142
2143 * normal/main.c (read_config_file): Reset grub_errno.
2144
2145 * normal/parse.y (script_init): New.
2146 (script): Move function and menuentry here.
2147 (delimiter): New.
2148 (command): Add delimiter at the end of command.
2149 (commands): Adjust to match the new command.
2150 (commandblock): Remove grub_script_lexer_record_start.
2151 (menuentry): Add grub_script_lexer_record_start, use the new commands.
2152 (if): Use the new commands.
2153
2154 * conf/common.rmk (pkgdata_MODULES): Add echo.mod.
2155
df6ecfc6 21562008-01-15 Robert Millan <rmh@aybabtu.com>
2157
2158 * normal/menu.c (run_menu): Move timeout message from here ...
2159 (print_timeout): ... to here.
2160 (run_menu): Use print_timeout() once during initial draw to print
2161 the whole message, and again in every clock tick to update only
2162 the number of seconds.
2163
87ae25eb 21642008-01-15 Robert Millan <rmh@aybabtu.com>
2165
2166 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Obtain
2167 actual size of `available' from grub_ieee1275_get_property(), and
2168 restrict parsing to that bound.
2169
47bf09a4 21702008-01-15 Christian Franke <franke@computer.org>
2171
2172 * util/grub-emu.c: Replace <argp.h> by <getopt.h>.
2173 (argp_program_version): Remove variable.
2174 (argp_program_bug_address): Likewise.
2175 (options): Convert from struct argp_option to struct option.
2176 (struct arguments): Remove.
2177 (parse_opt): Remove.
2178 (usage): New function.
2179 (main): Replace struct args members by simple variables.
2180 Replace argp_parse() by getopt_long().
2181 Add switch to evaluate options.
2182 Add missing "(...)" around root_dev in prefix string.
2183
c86f1469 21842008-01-14 Robert Millan <rmh@aybabtu.com>
2185
2186 * kern/powerpc/ieee1275/init.c (grub_exit): Reimplement as a wrapper
2187 for grub_ieee1275_exit(), in order to improve portability.
2188
e622c559 21892008-01-14 Robert Millan <rmh@aybabtu.com>
2190
2191 * util/grub.d/10_linux.in (prefix): Define.
2192 (exec_prefix): Likewise. Both definitions are later used by `libdir'.
2193
44cb1ec8 21942008-01-13 Pavel Roskin <proski@gnu.org>
2195
2196 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Don't use
2197 grub_errno if no errors have been detected.
2198
1eb8c802 21992008-01-12 Robert Millan <rmh@aybabtu.com>
2200
2201 * include/grub/util/getroot.h (grub_dev_abstraction_types): New enum.
2202 (grub_util_get_dev_abstraction): New function prototype.
2203
2204 * util/getroot.c: Include `<grub/util/getroot.h>'
2205 (grub_util_get_grub_dev): Move detection of abstraction type to ...
2206 (grub_util_get_dev_abstraction): ... here (new function).
2207
2208 * util/grub-probe.c: Convert PRINT_* to an enum. Add
2209 `PRINT_ABSTRACTION'.
2210 (probe): Probe for abstraction type when requested.
2211 (main): Understand `--target=abstraction'.
2212
2213 * util/i386/efi/grub-install.in: Add abstraction module to core
2214 image when it is found to be necessary.
2215 * util/i386/pc/grub-install.in: Likewise.
2216 * util/powerpc/ieee1275/grub-install.in: Likewise.
2217
2218 * util/update-grub_lib.in (font_path): Return system path without
2219 converting to GRUB path.
2220 * util/update-grub.in: Convert system path returned by font_path()
2221 to a GRUB path. Use `grub-probe -t abstraction' to determine what
2222 abstraction module is needed for loading fonts (if any). Export
2223 that as `GRUB_PRELOAD_MODULES'.
2224 * util/grub.d/00_header.in: Process `GRUB_PRELOAD_MODULES' (print
2225 insmod commands).
2226
52bd3de9 22272008-01-12 Yoshinori K. Okuji <okuji@enbug.org>
2228
2229 Remove some unused code from reiserfs.
2230
2231 * fs/reiserfs.c (struct grub_reiserfs_key)
2232 [GRUB_REISERFS_KEYV2_BITFIELD]: Removed offset and type.
2233 (struct grub_reiserfs_node_body): Removed.
2234 (grub_reiserfs_get_key_v2_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
2235 Likewise.
2236 (grub_reiserfs_get_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
2237 Likewise.
2238 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
2239 Likewise.
2240 (grub_reiserfs_set_key_offset) [GRUB_REISERFS_KEYV2_BITFIELD]:
2241 Likewise.
2242 (grub_reiserfs_set_key_type) [GRUB_REISERFS_KEYV2_BITFIELD]:
2243 Likewise.
2244 (grub_reiserfs_iterate_dir) [GRUB_REISERFS_KEYV2_BITFIELD]:
2245 Likewise.
2246 (grub_reiserfs_open) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
2247 (grub_reiserfs_read) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
2248 (grub_reiserfs_dir) [GRUB_REISERFS_KEYV2_BITFIELD]: Likewise.
2249
2f80039d 22502008-01-10 Robert Millan <rmh@aybabtu.com>
2251
2252 * util/update-grub_lib.in (grub_file_is_not_garbage): New function.
2253 Determines if a file is garbage left by packaging systems, etc.
2254 * util/update-grub.in: Use grub_file_is_not_garbage() as a condition
2255 for processing /etc/grub.d scripts.
2256 * util/grub.d/10_hurd.in: Fix `GRUB_DISTRIBUTOR' comparison.
2257 * util/grub.d/10_linux.in: Likewise. Use grub_file_is_not_garbage()
2258 as a condition for processing Linux images.
2259
87888032 22602008-01-10 Pavel Roskin <proski@gnu.org>
2261
2262 * include/grub/powerpc/libgcc.h (__ucmpdi2): New export. Needed
2263 to compile reiserfs.c on PowerPC.
2264
7e54fced 22652008-01-10 Robert Millan <rmh@aybabtu.com>
de9993e0 2266
2267 * kern/device.c (grub_device_iterate): Do not abort device iteration
2268 when one of the devices cannot be opened.
2269 * kern/disk.c (grub_disk_open): Do not account previous failures of
2270 unrelated functions when grub_errno is checked for.
2271
5aa541e6 22722008-01-08 Robert Millan <rmh@aybabtu.com>
2273
2274 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): For
2275 `! grub_linux_is_bzimage', change order of address comparison to make
2276 it more intuitive, and improve "too big zImage" error message.
2277
7076340d 22782008-01-08 Robert Millan <rmh@aybabtu.com>
2279
2280 * Makefile.in (uninstall): Handle `$(update-grub_SCRIPTS)' and
2281 `$(update-grub_DATA)'.
2282 (distcheck): Fix race condition when invoking `$(MAKE)' on multiple
2283 targets.
2284
9ca70333 22852008-01-07 Robert Millan <rmh@aybabtu.com>
2286
2287 * boot/i386/pc/boot.S (boot_drive_check): Add a comment indicating
2288 which instruction is modified by grub-setup during installation
2289 (since it wasn't obvious by only looking at this file).
2290
38ccf575 22912008-01-07 Robert Millan <rmh@aybabtu.com>
2292
2293 * TODO: Rewrite. Just refer to the wiki and the BTS instead of
2294 listing actual TODO items.
2295
f5db4291 22962008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
2297
868967cf 2298 * fs/reiserfs.c (grub_reiserfs_get_key_v2_type): Handle endianness
2299 correctly.
2300 (grub_reiserfs_get_key_offset): Likewise.
2301 (grub_reiserfs_set_key_offset): Likewise.
2302 (grub_reiserfs_set_key_type): Likewise.
2303 (grub_reiserfs_iterate_dir): Return 1 if found, otheriwise 0.
2304
2305 (GRUB_REISERFS_KEYV2_BITFIELD): Undefined. Probably it would be
2306 better to remove the bitfield version completely.
2307
23082008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
2309
f5db4291 2310 * fs/reiserfs.c (grub_reiserfs_iterate_dir): ENTRY_ITEM must be
2311 allocated from the heap, due to the fshelp implementation.
2312 (grub_reiserfs_dir): Free NODE, due to the same reason.
2313
492e6d9d 23142008-01-06 Yoshinori K. Okuji <okuji@enbug.org>
2315
2316 Mostly from Vincent Pelletier:
2317
2318 * fs/reiserfs.c: New file.
2319
2320 * conf/common.rmk (pkglib_MODULES): Added reiserfs.mod.
2321 (reiserfs_mod_SOURCES): New variable.
2322 (reiserfs_mod_CFLAGS): Likewise.
2323 (reiserfs_mod_LDFLAGS): Likewise.
2324
2325 * DISTLIST: Added boot/i386/pc/lnxboot.S, commands/hexdump.c,
2326 disk/ata.c, fs/cpio.c, fs/ntfscomp.c, fs/reiserfs.c,
2327 include/grub/ntfs.h, include/grub/i386/pc/machine.h, and
2328 normal/color.c.
2329
9ce3e7c1 23302008-01-06 Robert Millan <rmh@aybabtu.com>
2331
2332 * normal/color.c: Remove `<grub/env.h>'.
2333
f3b58148 23342008-01-05 Jeroen Dekkers <jeroen@dekkers.cx>
2335
2336 * include/grub/normal.h: Include <grub/env.h>.
2337
7ac3bcfa 23382008-01-05 Robert Millan <rmh@aybabtu.com>
2339
2340 * util/i386/pc/grub-setup.c (usage): Replace obsolete `(hd0,0)' in
2341 usage example with `(hd0,1)'.
fb358190 2342 Reported by Samuel Thibault.
7ac3bcfa 2343
c8ee99d7 23442008-01-05 Robert Millan <rmh@aybabtu.com>
2345
2346 * kern/i386/loader.S (grub_linux_is_bzimage): New variable.
2347 (grub_linux_boot_zimage): Rename to ...
2348 (grub_linux_boot): ... this.
2349 (grub_linux_boot_bzimage): Merge with `grub_linux_boot_zimage'.
2350 (grub_linux_boot_zimage): Conditionalize zImage copy.
2351
2352 * include/grub/i386/loader.h (grub_linux_is_bzimage): Add prototype.
2353 (grub_linux_boot_bzimage): Remove prototype.
2354 (grub_linux_boot_zimage): Rename to ...
2355 (grub_linux_boot): ... this.
2356
2357 * loader/i386/pc/linux.c (big_linux): Replace with `grub_linux_is_bzimage'.
2358 (grub_linux_boot): Remove function.
2359
0ece25b1 23602008-01-05 Robert Millan <rmh@aybabtu.com>
2361
2362 * include/grub/normal.h (grub_env_write_color_normal): New prototype.
2363 (grub_env_write_color_highlight): Likewise.
2364 (grub_wait_after_message): Likewise.
2365
2366 * normal/color.c: New file.
2367
2368 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `normal/color.c'.
2369 (normal_mod_DEPENDENCIES): Likewise.
2370
2371 * conf/i386-efi.rmk (grub_emu_SOURCES): Add `normal/color.c'.
2372 (normal_mod_DEPENDENCIES): Likewise.
2373
2374 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add `normal/color.c'.
2375 (normal_mod_DEPENDENCIES): Likewise.
2376
2377 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `normal/color.c'.
2378 (normal_mod_DEPENDENCIES): Likewise.
2379
2380 * normal/menu_entry.c (run): Rely on grub_wait_after_message()
2381 for waiting after a message is printed.
2382 * normal/main.c (read_config_file): Likewise.
2383 (grub_normal_init): Register grub_env_write_color_normal() and
2384 grub_env_write_color_highlight() hooks. Mark `color_normal' and
2385 `color_highlight' variables as global.
2386
2387 * normal/menu.c (grub_wait_after_message): New function.
2388 (grub_color_menu_normal): New variable. Replaces ...
2389 (GRUB_COLOR_MENU_NORMAL): ... this macro.
2390 (grub_color_menu_highlight): New variable. Replaces ...
2391 (GRUB_COLOR_MENU_HIGHLIGHT): ... this macro.
2392 (draw_border): Set color state to `GRUB_TERM_COLOR_NORMAL' instead of
2393 `GRUB_TERM_COLOR_STANDARD'.
2394 (print_message): Use `grub_setcolorstate' to reload colors. Rename
2395 `normal_code' and `highlight_code' to `old_color_normal' and
2396 `old_color_highlight', respectively.
2397 (grub_menu_init_page): Update colors when drawing the menu, based on
2398 `menu_color_normal' and `menu_color_highlight' variables.
2399 (grub_menu_run): Rely on grub_wait_after_message() for waiting after
2400 a message is printed.
2401
182dd4e5 24022008-01-05 Robert Millan <rmh@aybabtu.com>
2403
2404 * kern/env.c (grub_env_context_open): Propagate hooks for global
2405 variables to new context.
2406
2407 * kern/main.c (grub_set_root_dev): Export `root' variable.
2408
ddf8f6ad 24092008-01-05 Robert Millan <rmh@aybabtu.com>
2410
2411 * util/biosdisk.c (get_os_disk): Check for devfs-style IDE and SCSI
2412 discs unconditionaly, since udev and others have options to provide
2413 them.
2414
d8b43d9b 24152008-01-05 Robert Millan <rmh@aybabtu.com>
2416
2417 * normal/completion.c (iterate_dir): Skip `.' and `..' directories.
2418
2bff2de3 24192008-01-04 Christian Franke <franke@computer.org>
2420
2421 * kern/i386/pc/init.c (grub_machine_init): Fix evaluation
2422 of eisa_mmap.
2423
97eab917 24242008-01-03 Pavel Roskin <proski@gnu.org>
2425
2426 * kern/i386/linuxbios/init.c: Put "void" to all function
2427 declarations with no arguments.
2428 * kern/powerpc/ieee1275/init.c: Likewise.
2429 * term/i386/pc/at_keyboard.c: Likewise.
2430 * term/i386/pc/vga_text.c: Likewise.
2431 * util/grub-mkdevicemap.c: Likewise.
2432
b9416d00 24332008-01-02 Robert Millan <rmh@aybabtu.com>
2434
2435 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Improve error
2436 message when loaded image is out of bounds.
2437 (grub_multiboot_load_elf64): Likewise.
2438
92695df9 24392008-01-02 Pavel Roskin <proski@gnu.org>
2440
2441 * util/grub.d/10_linux.in: Try version without ".old" when
2442 looking for initrd. It's better to use initrd from the newer
2443 kernel of the same version than no initrd at all.
2444
d98d9cad 24452008-01-01 Robert Millan <rmh@aybabtu.com>
2446
2447 * util/biosdisk.c (get_os_disk): Fix check for IDE or SCSI discs.
2448
dbfdce36 24492008-01-01 Vesa Jaaskelainen <chaac@nic.fi>
2450
2451 * include/grub/video.h: Added grub_video_unmap_color and
2452 grub_video_get_active_render_target.
2453 (grub_video_adapter): Added unmap_color and get_active_render_target.
2454
2455 * video/video.c: Added grub_video_unmap_color and
2456 grub_video_get_active_render_target.
2457 (grub_video_get_info): Changed method to accept NULL pointer as an
2458 argument to allow detection of active video adapter.
2459
2460 * video/i386/pc/vbe.c: Renamed grub_video_vbe_unmap_color as
2461 grub_video_vbe_unmap_color_int.
2462 Added grub_video_vbe_unmap_color and
2463 grub_video_vbe_get_active_render_target.
2464 (grub_video_vbe_adapter): Added unmap_color and
2465 get_active_render_target.
2466
2467 * video/i386/pc/vbeblit.c: Replaced grub_video_vbe_unmap_color usage
2468 with grub_video_vbe_unmap_color_int.
2469
2470 * term/gfxterm.c (DEFAULT_STANDARD_COLOR): Added.
2471 (DEFAULT_NORMAL_COLOR): Likewise.
2472 (DEFAULT_HIGHLIGHT_COLOR) Likewise.
2473 (DEFAULT_FG_COLOR): Removed.
2474 (DEFAULT_BG_COLOR): Likewise.
2475 (DEFAULT_CURSOR_COLOR): Changed value.
2476 (grub_virtual_screen): Added standard_color_setting,
2477 normal_color_setting, highlight_color_setting and term_color.
2478 (grub_virtual_screen): Removed fg_color_setting and bg_color_setting.
2479 (bitmap_width): Added.
2480 (bitmap_height): Likewise.
2481 (bitmap): Likewise.
2482 (set_term_color): Likewise.
2483 (grub_virtual_screen_setup): Changed to use new terminal coloring
2484 settings.
2485 (grub_gfxterm_init): Added init for bitmap.
2486 (grub_gfxterm_fini): Added destroy for bitmap.
2487 (redraw_screen_rect): Updated to use background bitmap and new
2488 terminal coloring.
2489 (scroll_up): Added optimization for case when there is no bitmap.
2490 (grub_gfxterm_cls): Fixed to use correct background color.
2491 (grub_virtual_screen_setcolorstate): Changed to use new terminal
2492 coloring.
2493 (grub_virtual_screen_setcolor): Likewise.
2494 (grub_virtual_screen_getcolor): Added.
2495 (grub_gfxterm_background_image_cmd): Likewise.
2496 (grub_video_term): Added setcolor and getcolor.
2497 (MOD_INIT): Added registration of background_image command.
2498 (MOD_TERM): Added unregistration for background_image command.
2499
c3c20931 25002007-12-30 Pavel Roskin <proski@gnu.org>
2501
2502 * loader/multiboot_loader.c: Fix multiboot command
2503 unregistration. Fix all typos in the word "multiboot".
2504
df266716 25052007-12-29 Pavel Roskin <proski@gnu.org>
94239199 2506
2507 * util/grub.d/10_linux.in: Refactor search for initrd. Add
2508 support for initrd names used in Fedora.
2509
fc6e896c 25102007-12-26 Bean <bean123ch@gmail.com>
2511
2512 * conf/common.rmk (pkgdata_MODULES): Add cpio.mod.
2513 (cpio_mod_SOURCES): New variable.
2514 (cpio_mod_CFLAGS): Likewise.
2515 (cpio_mod_LDFLAGS): Likewise.
2516
2517 * fs/cpio.c: New file.
2518
2519 * conf/i386-pc.rmk (grub_emu_SOURCES): Add cpio.c.
2520
2521 * conf/i386-efi.rmk (grub_emu_SOURCES): Likewise.
2522
2523 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Likewise.
2524
2525 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2526
533110ad 25272007-12-25 Robert Millan <rmh@aybabtu.com>
2528
2529 * include/grub/term.h (struct grub_term): Add `getcolor' function.
2530 (grub_getcolor): New function.
2531
2532 * kern/term.c (grub_getcolor): New function.
2533 * normal/menu.c (GRUB_COLOR_MENU_NORMAL): New macro.
2534 (GRUB_COLOR_MENU_HIGHLIGHT): New macro.
2535 (print_entry): Set normal and highlight colors to
2536 `GRUB_COLOR_MENU_NORMAL' and `GRUB_COLOR_MENU_HIGHLIGHT',
2537 respectively, before printing and restore them to old
2538 values afterwards.
2539 (grub_menu_init_page): Likewise. Fill an additional colored space
2540 that would otherwise be left blank.
2541
2542 * term/efi/console.c (grub_console_getcolor): New function.
2543 (struct grub_console_term.getcolor): New variable.
2544 * term/i386/pc/console.c (grub_console_getcolor): New function.
2545 (struct grub_console_term.getcolor): New variable.
2546 * term/ieee1275/ofconsole.c (grub_ofconsole_getcolor): New function.
2547 (struct grub_console_term.getcolor): New variable.
2548
2549 * term/i386/pc/serial.c (grub_serial_setcolor): Remove function.
2550 (struct grub_console_term.setcolor): Remove variable.
2551 * term/i386/pc/vesafb.c (grub_virtual_screen_setcolor): Remove function.
2552 (struct grub_console_term.setcolor): Remove variable.
2553 * term/i386/pc/vga.c (grub_vga_setcolor): Remove function.
2554 (struct grub_console_term.setcolor): Remove variable.
2555 * term/gfxterm.c (grub_virtual_screen_setcolor): Remove function.
2556 (struct grub_console_term.setcolor): Remove variable.
2557
4931827f 25582007-12-25 Robert Millan <rmh@aybabtu.com>
2559
2560 * configure.ac: Search for possible unifont.hex locations, and
2561 define UNIFONT_HEX if found.
2562
2563 * Makefile.in (UNIFONT_HEX): Define variable.
2564 (DATA): Rename to ...
2565 (PKGLIB): ... this. Update all users.
2566 (PKGDATA): New variable.
2567 (pkgdata_IMAGES): Rename to ...
2568 (pkglib_IMAGES): ... this. Update all users.
2569 (pkgdata_MODULES): Rename to ...
2570 (pkglib_MODULES): ... this. Update all users.
2571 (pkgdata_PROGRAMS): Rename to ...
2572 (pkglib_PROGRAMS): ... this. Update all users.
2573 (pkgdata_DATA): Rename to ...
2574 (pkglib_DATA): ... this. Update all users.
2575 (CLEANFILES): Redefine to `$(pkglib_DATA) $(pkgdata_DATA)'.
2576 (unicode.pff, ascii.pff): New rules.
2577 (all-local): Add `$(PKGDATA)' dependency.
2578 (install-local): Process `$(PKGDATA)'.
2579
2580 * util/update-grub_lib.in (font_path): Search for *.pff files in
2581 a few more locations, including `${pkgdata}'.
2582
57e57e31 25832007-12-23 Robert Millan <rmh@aybabtu.com>
2584
2585 Patch from Bean <bean123ch@gmail.com>:
2586 * disk/loopback.c (grub_loopback_read): Add missing bit shift to
2587 `size'.
2588
4bc72aa9 25892007-12-21 Bean <bean123ch@gmail.com>
2590
2591 * conf/common.rmk (pkgdata_MODULES): Add ntfscomp.mod.
2592 (ntfscomp_mod_SOURCES): New variable.
2593 (ntfscomp_mod_CFLAGS): Likewise.
2594 (ntfscomp_mod_LDFLAGS): Likewise.
2595
2596 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfscomp.c.
2597 (grub_probe_SOURCES): Likewise.
2598 (grub_emu_SOURCES): Likewise.
2599
2600 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
2601 (grub_emu_SOURCES): Likewise.
2602
2603 * conf/i386-linuxbios.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
2604 (grub_emu_SOURCES): Likewise.
2605
2606 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfscomp.c.
2607 (grub_emu_SOURCES): Likewise.
2608
2609 * fs/ntfs.c (grub_ntfscomp_func): New variable.
2610 (read_run_list): Renamed to grub_ntfs_read_run_list.
2611 (decomp_nextvcn): Moved to ntfscomp.c.
2612 (decomp_getch): Likewise.
2613 (decomp_get16): Likewise.
2614 (decomp_block): Likewise.
2615 (read_block): Likewise.
2616 (read_data): Partially moved to ntfscomp.c.
2617 (fixup): Change unsigned to grub_uint16_t.
2618 (read_mft): Change unsigned long to grub_uint32_t.
2619 (read_attr): Likewise.
2620 (read_data): Likewise.
2621 (read_run_data): Likewise.
2622 (read_run_list): Likewise.
2623 (read_mft): Likewise.
2624
2625 * fs/ntfscomp.c: New file.
2626
2627 * include/grub/ntfs.h: New file.
2628
af680a87 26292007-12-16 Robert Millan <rmh@aybabtu.com>
2630
2631 * util/grub-mkdevicemap.c (make_device_map): Iterate up to 20 for
2632 IDE disk check, since Linux is known to support 20 IDE disks.
2633 Reported by Colin Watson.
2634
84be7599 26352007-12-15 Bean <bean123ch@gmail.com>
2636
2637 * conf/i386-pc.rmk (pkgdata_IMAGES): Add lnxboot.img.
2638 (lnxboot_img_SOURCES): New variable.
2639 (lnxboot_img_ASFLAGS): Likewise.
2640 (lnxboot_img_LDFLAGS): Likewise.
2641
2642 * boot/i386/pc/lnxboot.S: New file.
2643
6af9db01 26442007-11-24 Pavel Roskin <proski@gnu.org>
2645
2646 * configure.ac: Test if '--build-id=none' is supported by the
2647 linker. If yes, add it to TARGET_LDFLAGS. Build ID causes
2648 objcopy to generate incorrect binary files (binutils
2649 2.17.50.0.18-1 as shipped by Fedora 8).
2650 * aclocal.m4 (grub_PROG_OBJCOPY_ABSOLUTE): Use LDFLAGS when
2651 linking, so that build ID doesn't break the test.
2652
7361cfe6 26532007-11-24 Pavel Roskin <proski@gnu.org>
2654
2655 * include/grub/i386/time.h: use "void" in the argument list
2656 of grub_cpu_idle().
2657 * include/grub/powerpc/time.h: Likewise.
2658 * include/grub/sparc64/time.h: Likewise.
2659
1593e10c 26602007-11-18 Christian Franke <franke@computer.org>
2661
2662 * util/console.c (grub_ncurses_getkey): Change curses KEY_* mapping,
2663 now return control chars instead of GRUB_CONSOLE_KEY_* constants.
2664 This fixes the problem that function keys did not work in grub-emu.
2665
3b8db1a8 26662007-11-18 Christian Franke <franke@computer.org>
2667
2668 * disk/host.c (grub_host_open): Remove attribute unused from
2669 name parameter. Add check for "host". This fixes the problem
2670 that grub-emu does not find partitions.
2671
2e29408d 26722007-11-18 Christian Franke <franke@computer.org>
2673
2674 * util/hostfs.c (is_dir): New function.
2675 (grub_hostfs_dir): Handle missing dirent.d_type case.
2676 (grub_hostfs_read): Add missing fseek().
2677 (grub_hostfs_label): Clear label pointer. This fixes a crash
2678 of grub-emu on "ls (host)".
2679
398cd047 26802007-11-18 Christian Franke <franke@computer.org>
2681
2682 * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
2683 Add attribute packed, gcc 3.4.4 on Cygwin aligns this
2684 to 64 bit boundary by default.
2685
c405c391 26862007-11-18 Bean <bean123ch@gmail.com>
2687
2688 * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
2689 (hexdump_mod_SOURCES): New variable.
2690 (hexdump_mod_CFLAGS): Likewise.
2691 (hexdump_mod_LDFLAGS): Likewise.
2692
2693 * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.
2694
2695 * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.
2696
2697 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.
2698
2699 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.
2700
2701 * include/grub/hexdump.h: New file.
2702
2703 * commands/hexdump.c: New file.
2704
5cced7fd 27052007-11-10 Robert Millan <rmh@aybabtu.com>
2706
2707 * commands/i386/pc/play.c (beep_off): Switch order of arguments
2708 in grub_outb() calls.
2709 (beep_on): Likewise.
2710
8b714eb0 27112007-11-10 Christian Franke <franke@computer.org>
2712
2713 * normal/menu.c (run_menu): Check for empty menu to avoid crash.
2714 (grub_menu_run): Likewise.
2715
ce0f1839 27162007-11-10 Robert Millan <rmh@aybabtu.com>
2717
2718 * include/grub/i386/efi/machine.h: New file.
2719 * include/grub/i386/linuxbios/machine.h: Likewise.
2720 * include/grub/i386/pc/machine.h: Likewise.
2721 * include/grub/powerpc/ieee1275/machine.h: Likewise.
2722 * include/grub/sparc64/ieee1275/machine.h: Likewise.
2723
2724 * term/i386/pc/serial.c: Include <grub/machine/machine.h>.
2725 (serial_hw_io_addr): New variable.
2726 (serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
2727 instead of `(unsigned short *) 0x400'.
2728
270c237d 27292007-11-10 Bean <bean123ch@gmail.com>
2730
2731 * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
2732
a87783bf 27332007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
2734
2735 * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
2736 (vga_mod_SOURCES): Added.
2737 (vga_mod_CFLAGS): Likewise.
2738 (vga_mod_LDFLAGS): Likewise.
2739
2740 * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
2741 grub_outb() calls.
2742 (set_map_mask): Likewise.
2743 (set_read_map): Likewise.
2744 (set_read_address): Likewise.
2745 (vga_font): Removed variable.
2746 (get_vga_glyph): Removed function.
2747 (invalidate_char): Likewise.
2748 (write_char): Changed to use grub_font_get_glyph() for font
2749 information.
2750 (grub_vga_putchar): Likewise.
2751 (grub_vga_getcharwidth): Likewise.
2752
6433b448 27532007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
2754
2755 * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
2756 flags.
2757 (pxeboot_img_LDFLAGS): Likewise.
2758 (diskboot_img_LDFLAGS): Likewise.
2759 (kernel_img_LDFLAGS): Likewise.
2760
49178511 27612007-11-06 Robert Millan <rmh@aybabtu.com>
2762
2763 * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
2764 in grub_outb() calls.
2765 (serial_hw_init): Likewise.
2766
53b052de 27672007-11-05 Robert Millan <rmh@aybabtu.com>
2768
2769 * util/update-grub.in: Allow files in ${update_grub_dir} to contain
2770 spaces. Skip non-regular files.
2771
5ab33bba 27722007-11-05 Robert Millan <rmh@aybabtu.com>
2773
2774 * kern/disk.c (grub_disk_firmware_fini)
2775 (grub_disk_firmware_is_tainted): New variables.
2776
2777 * include/grub/disk.h (grub_disk_firmware_fini)
2778 (grub_disk_firmware_is_tainted): Likewise.
2779
2780 * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
2781 (grub_disk_biosdisk_fini): ... to here.
2782 (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
2783 (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
2784 is set. Register grub_disk_biosdisk_fini() in
2785 `grub_disk_firmware_fini'.
2786
2787 * disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
2788 (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
2789 Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
2790 to finish existing firmware disk interface.
2791
2792 * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
2793 (ata_mod_SOURCES): New variable.
2794 (ata_mod_CFLAGS): Likewise.
2795 (ata_mod_LDFLAGS): Likewise.
2796
0149ab7c 27972007-11-05 Robert Millan <rmh@aybabtu.com>
2798
2799 * disk/ata.c: Remove `<grub/machine/time.h>'. Include `<grub/time.h>'.
2800 (grub_ata_wait): Reimplement using grub_millisleep().
2801
2802 * include/grub/misc.h (grub_div_roundup): Fix parenthesization.
2803 * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
2804
be7ac41e 28052007-11-03 Marco Gerards <marco@gnu.org>
2806
2807 * term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
2808 (CRTC_ADDR_PORT): New macro.
2809 (CRTC_DATA_PORT): Likewise.
2810 (CRTC_CURSOR): Likewise.
2811 (CRTC_CURSOR_ADDR_HIGH): Likewise.
2812 (CRTC_CURSOR_ADDR_LOW): Likewise.
2813 (update_cursor): New function.
2814 (grub_console_real_putchar): Call `update_cursor'.
2815 (grub_console_gotoxy): Likewise.
2816 (grub_console_cls): Set the default color when clearing the
2817 screen.
2818 (grub_console_setcursor): Implemented.
2819
bb06ab2e 28202007-11-03 Marco Gerards <marco@gnu.org>
2821
2822 * disk/ata.c (grub_ata_pio_read): Don't wait for the command to
2823 become activate.
2824 (grub_ata_pio_write): Likewise.
2825
2826 (grub_atapi_identify): Wait after issuing an ATA command.
2827 (grub_atapi_packet): Likewise.
2828 (grub_ata_identify): Likewise.
2829 (grub_ata_readwrite): Likewise.
2830
cf8f780b 28312007-11-03 Marco Gerards <marco@gnu.org>
2832
2833 * disk/ata.c (grub_ata_pio_read): Detect and return the error code.
2834 (grub_ata_pio_write): Likewise.
2835 (grub_ata_readwrite): Use `grub_error', instead of
2836 returning `grub_errno'.
2837
ed649e54 28382007-11-03 Marco Gerards <marco@gnu.org>
2839
2840 * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
2841 grub_ata_pio_write once for every single sector, instead of for
2842 multiple sectors.
2843
ca25d8f0 28442007-10-31 Robert Millan <rmh@aybabtu.com>
2845
2846 * configure.ac: Add `i386-linuxbios' to the list of supported targets.
2847
2848 * conf/i386-linuxbios.rmk: New file.
2849
2850 * kern/i386/pc/hardware.c: Likewise.
2851 * term/i386/pc/at_keyboard.c: Likewise.
2852 * term/i386/pc/vga_text.c: Likewise.
2853
2854 * include/grub/i386/linuxbios/boot.h: Likewise.
2855 * include/grub/i386/linuxbios/console.h: Likewise.
2856 * include/grub/i386/linuxbios/init.h: Likewise.
2857 * include/grub/i386/linuxbios/kernel.h: Likewise.
2858 * include/grub/i386/linuxbios/loader.h: Likewise.
2859 * include/grub/i386/linuxbios/memory.h: Likewise.
2860 * include/grub/i386/linuxbios/serial.h: Likewise.
2861 * include/grub/i386/linuxbios/time.h: Likewise.
2862
2863 * kern/i386/linuxbios/init.c: Likewise.
2864 * kern/i386/linuxbios/startup.S: Likewise.
2865 * kern/i386/linuxbios/table.c: Likewise.
2866
e911ecc1 28672007-10-31 Marco Gerards <marco@gnu.org>
2868
2869 * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
2870 (ata_mod_SOURCES): New variable.
2871 (ata_mod_CFLAGS): Likewise.
2872 (ata_mod_LDFLAGS): Likewise.
2873
2874 * disk/ata.c: New file.
2875
2876 * include/grub/disk.h (grub_disk_dev_id): Add
2877 `GRUB_DISK_DEV_ATA_ID'.
2878
7f66d0e0 28792007-10-31 Robert Millan <rmh@aybabtu.com>
2880
2881 * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
2882 * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.
2883
2884 * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
2885 * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.
2886
2887 * include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
2888 `<grub/types.h>'.
2889
2890 * loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
2891
5cd7dd46 28922007-10-27 Robert Millan <rmh@aybabtu.com>
2893
3236ca65 2894 * include/grub/types.h (ULONG_MAX): Define macro.
5cd7dd46 2895
2ebfc90f 28962007-10-22 Robert Millan <rmh@aybabtu.com>
2897
2898 * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'. Include
2899 `"../realmode.S"'.
2900 Remove `"kern/i386/loader.S"'. Include `"../loader.S"'.
2901
73fcb0f3 29022007-10-22 Robert Millan <rmh@aybabtu.com>
2903
2904 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
2905 (pkgdata_MODULES): Add `biosdisk.mod'.
2906 (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
2907 variables.
2908
2909 * disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
2910 (grub_biosdisk_init): Replace with ...
2911 (GRUB_MOD_INIT(biosdisk)): ... this.
2912 (grub_biosdisk_fini): Replace with ...
2913 (GRUB_MOD_FINI(biosdisk)): ... this.
2914
2915 * kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
2916 (grub_machine_init): Remove call to grub_biosdisk_init().
2917 (grub_machine_fini): Remove call to grub_machine_fini().
2918
2919 * util/i386/pc/grub-install.in (modules): Add `biosdisk'.
2920
3381d274 29212007-10-22 Robert Millan <rmh@aybabtu.com>
2922
2923 * include/grub/time.h: New file.
2924 * include/grub/i386/time.h: Likewise.
2925 * include/grub/powerpc/time.h: Likewise.
2926 * include/grub/sparc64/time.h: Likewise.
2927
2928 * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
2929 instances to ...
2930 (KERNEL_MACHINE_TIME_HEADER): ... this.
2931 * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
2932 instances to ...
2933 (KERNEL_MACHINE_TIME_HEADER): ... this.
2934 * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
2935 instances to ...
2936 (KERNEL_MACHINE_TIME_HEADER): ... this.
2937
2938 * kern/i386/efi/init.c: Include `<grub/time.h>'.
2939 (grub_millisleep): New function.
2940 * kern/i386/pc/init.c: Include `<grub/time.h>'.
2941 (grub_millisleep): New function.
2942 * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
2943 Remove `grub/machine/time.h' include.
2944 (grub_millisleep): New function.
2945 * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
2946 Remove `grub/machine/time.h' include.
2947 (grub_millisleep): New function.
2948
2949 * include/grub/misc.h (grub_div_roundup): New function.
2950
2951 * kern/misc.c: Include `<grub/time.h>'.
2952 (grub_millisleep_generic): New function.
2953
2954 * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
2955 Add `time.h'.
2956 * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
2957 Add `time.h'.
2958 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
2959 `machine/time.h'. Add `time.h'.
2960 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
2961
a39a0312 29622007-10-21 Robert Millan <rmh@aybabtu.com>
2963
2964 * include/grub/misc.h (grub_max): New function.
2965
2aad70e2 29662007-10-21 Robert Millan <rmh@aybabtu.com>
2967
2968 * util/misc.c (grub_util_info): Call fflush() before returning.
2969
54b71c4b 29702007-10-20 Robert Millan <rmh@aybabtu.com>
2971
2972 * genmk.rb (Image): Copy `extra_flags' from here ...
2973 (PModule): ... to here. Use it in `#{obj}: #{src}' rule.
2974
2975 * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
2976 to `argc' and `args' arguments.
2977
a979f513 29782007-10-17 Robert Millan <rmh@aybabtu.com>
2979
2980 * kern/i386/loader.S: New file.
2981
2982 * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
2983 * kern/i386/loader.S (grub_linux_prot_size)... to here.
2984 * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
2985 * kern/i386/loader.S (grub_linux_tmp_addr)... to here.
2986 * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
2987 * kern/i386/loader.S (grub_linux_real_addr)... to here.
2988 * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
2989 * kern/i386/loader.S (grub_linux_boot_zimage)... to here.
2990 * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
2991 * kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
2992 * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
2993 * kern/i386/loader.S (grub_multiboot_real_boot)... to here.
2994 * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
2995 * kern/i386/loader.S (grub_multiboot2_real_boot)... to here.
2996
2997 * kern/i386/realmode.S: New file.
2998
2999 * kern/i386/pc/startup.S (protstack): Moved from here ...
3000 * kern/i386/realmode.S (protstack)... to here.
3001 * kern/i386/pc/startup.S (gdt): Moved from here ...
3002 * kern/i386/realmode.S (gdt)... to here.
3003 * kern/i386/pc/startup.S (prot_to_real): Moved from here ...
3004 * kern/i386/realmode.S (prot_to_real)... to here.
3005
3006 * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
3007 `kern/i386/realmode.S'.
3008
825fc8fd 30092007-10-17 Robert Millan <rmh@aybabtu.com>
3010
3011 * include/grub/i386/loader.h: New file.
3012
3013 * include/grub/i386/pc/loader.h (grub_linux_prot_size)
3014 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
3015 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
3016 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
3017 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
3018 * include/grub/i386/loader.h (grub_linux_prot_size)
3019 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
3020 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
3021 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
3022 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.
3023
3024 * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
3025
e179b2f4 30262007-10-15 Robert Millan <rmh@aybabtu.com>
3027
3028 * normal/misc.c (grub_normal_print_device_info): Do not probe for
3029 filesystem when dev->disk is unset.
3030 Do probe for filesystem even when dev->disk->has_partitions is set.
3031 In case a filesystem is found, always report it.
3032 In case it isn't, if dev->disk->has_partitions is set, report that
3033 a partition table was found instead of reporting that no filesystem
3034 could be identified.
3035
5db82af6 30362007-10-12 Robert Millan <rmh@aybabtu.com>
3037
3038 * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
3039 to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.
3040
68f6ac74 3041 * include/grub/types.h (grub_host_to_target16): New macro.
3042 (grub_host_to_target32): Likewise.
3043 (grub_host_to_target64): Likewise.
3044 (grub_target_to_host16): Likewise.
3045 (grub_target_to_host32): Likewise.
3046 (grub_target_to_host64): Likewise.
5db82af6 3047
3048 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
3049 Renamed from to ...
3050 (GRUB_MOD_ALIGN): ...this. Update all users.
3051
68f6ac74 3052 * util/elf/grub-mkimage.c (load_note): Replace grub_cpu_to_be32 with
3053 grub_host_to_target32.
3054 Replace grub_be_to_cpu32 with grub_target_to_host32.
3055 (load_modules): Likewise.
3056 (add_segments): Replace grub_be_to_cpu16 with grub_target_to_host16.
3057 Replace grub_be_to_cpu32 with grub_target_to_host32.
3058 Replace grub_cpu_to_be16 with grub_host_to_target16.
3059 Replace grub_cpu_to_be32 grub_host_to_target32.
5db82af6 3060
3cf497cc 30612007-10-12 Robert Millan <rmh@aybabtu.com>
3062
3063 * util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
3064 * util/elf/grub-mkimage.c: ... here.
3065
3066 * DISTLIST: Add `util/elf/grub-mkimage.c'. Remove
3067 `util/powerpc/ieee1275/grub-mkimage.c'.
3068
c8cc3692 30692007-10-07 Robert Millan <rmh@aybabtu.com>
adbc4c9d 3070
c8cc3692 3071 * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
3072 and make it easier to figure out.
3073 Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
3074 (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
3075 Do not avoid claiming a region above HEAP_MAX_ADDR if that would
3076 leave us with less than HEAP_MIN_SIZE total heap.
3077 Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
adbc4c9d 3078
5c58b791 30792007-10-03 Robert Millan <rmh@aybabtu.com>
3080
3081 * include/grub/i386/io.h: New file.
3082 * commands/i386/pc/play.c (inb): Removed.
3083 (outb): Removed.
3084 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
3085 with grub_outb().
afcd2ef8 3086 * term/i386/pc/serial.c (inb): Removed.
3087 (outb): Removed.
3088 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
3089 with grub_outb().
3090 * term/i386/pc/vga.c (inb): Removed.
3091 (outb): Removed.
3092 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
3093 with grub_outb().
5c58b791 3094
1a477ed6 30952007-10-02 Robert Millan <rmh@aybabtu.com>
3096
3097 * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
3098 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3099 Reported by Marcin Kurek.
3100
6b5d80fa 31012007-09-07 Robert Millan <rmh@aybabtu.com>
3102
3103 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
3104 SmartFirmware version updates (as released by Sven Luther), and avoid
3105 setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
3106 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
3107 known broken.
3108
5618afbf 31092007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
3110
3111 From Hitoshi Ozeki:
3112 * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
3113 when merging two regions.
3114
6139dcd9 31152007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
3116
508e39ee 3117 * kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
3118 * normal/completion.c (grub_normal_do_completion): Likewise.
3119 Reported by Hitoshi Ozeki.
3120
31212007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
3122
6139dcd9 3123 Do not use devices at boot in chainloading.
3124
3125 * loader/i386/pc/chainloader.c (boot_drive): New variable.
3126 (boot_part_addr): Likewise.
3127 (grub_chainloader_boot): Simply call grub_chainloader_real_boot
3128 with BOOT_DRIVE and BOOT_PART_ADDR.
3129 (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
3130 Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
3131
38da6516 31322007-08-29 Robert Millan <rmh@aybabtu.com>
3133
3134 Patch from Simon Peter <dn.tlp@gmx.net>:
3135 * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
3136 * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
3137 util/grub-probe.c_DEPENDENCIES. Replace grub-setup_DEPENDENCIES with
3138 util/i386/pc/grub-setup.c_DEPENDENCIES.
3139 * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
3140 util/grub-probe.c_DEPENDENCIES.
3141 * conf/powerpc-ieee1275.rmk: Likewise.
3142
29d0928c 31432007-08-28 Robert Millan <rmh@aybabtu.com>
3144
3145 * util/i386/get_disk_name.c: New. Implement grub_util_get_disk_name()
3146 to tell grub-mkdevicemap how to name devices.
3147 * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
3148 feature).
3149
3150 * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
3151 util/i386/get_disk_name.c.
3152 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
3153 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
3154 util/ieee1275/get_disk_name.c.
3155
3156 * include/grub/util/misc.h: grub_util_get_disk_name() declaration.
3157
3158 * DISTLIST: Add util/i386/get_disk_name.c and
3159 util/ieee1275/get_disk_name.c.
3160
3161 * util/grub-mkdevicemap.c: Replace device naming logic with
3162 grub_util_get_disk_name() calls.
3163
5a0d3cca 31642007-08-20 Robert Millan <rmh@aybabtu.com>
3165
3166 * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
3167 (so that it works for both plural and singular quantities).
3168
8b72db2f 31692007-08-05 Robert Millan <rmh@aybabtu.com>
3170
3171 * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
3172 so that [xz] isn't taken into account when determining order.
3173
352466bf 31742007-08-02 Marco Gerards <marco@gnu.org>
3175
3176 * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
3177 `include/multiboot2.h', `include/grub/elfload.h',
3178 `include/multiboot.h', `include/grub/multiboot.h',
3179 `include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
3180 `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
3181 `kern/elf.c', `loader/multiboot_loader.c',
3182 `loader/multiboot_loader_normal.c', `loader/multiboot2.c',
3183 `loader/i386/pc/multiboot2.c',
3184 `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
3185 `util/i386/pc/grub-mkrescue.in'. Remove
3186 `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
3187 `include/grub/i386/pc/util/biosdisk.h' and
3188 `include/grub/powerpc/ieee1275/multiboot.h'.
3189
8f096014 31902007-08-02 Bean <bean123ch@gmail.com>
3191
3192 * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
3193 (ntfs_mod_SOURCES): New variable.
3194 (ntfs_mod_CFLAGS): Likewise.
3195 (ntfs_mod_LDFLAGS): Likewise.
3196
3197 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c.
3198 (grub_probe_SOURCES): Likewise.
3199 (grub_emu_SOURCES): Likewise.
3200
3201 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
3202 (grub_emu_SOURCES): Likewise.
3203
3204 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
3205 (grub_emu_SOURCES): Likewise.
3206
3207 * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.
3208
3209 * fs/ntfs.c: New file.
3210
9959f7db 32112007-08-02 Bean <bean123ch@gmail.com>
3212
3213 * disk.h (grub_disk): Use NESTED_FUNC_ATTR.
3214
3215 * file.h (grub_file): Likewise.
3216
3217 * fshelp.h (grub_fshelp_read_file): Likewise.
3218
3219 * util/i386/pc/grub-setup.c (setup): Likewise.
3220 (save_first_sector): Likewise.
3221 (save_blocklists): Likewise.
3222
3223 * fs/affs.c (grub_affs_read_file): Likewise.
3224
3225 * fs/ext2.c (grub_ext2_read_file): Likewise.
3226
3227 * fs/fat.c (grub_fat_read_data): Likewise.
3228
3229 * fs/fshelp.c (grub_fshelp_read_file): Likewise.
3230
3231 * fs/hfs.c (grub_hfs_read_file): Likewise.
3232
3233 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
3234
3235 * fs/jfs.c (grub_jfs_read_file): Likewise.
3236
3237 * fs/minix.c (grub_minix_read_file): Likewise.
3238
3239 * fs/sfs.c (grub_sfs_read_file): Likewise.
3240
3241 * fs/ufs.c (grub_ufs_read_file): Likewise.
3242
3243 * fs/xfs.c (grub_xfs_read_file): Likewise.
3244
3245 * command/blocklist.c (read_blocklist): Likewise.
3246 (print_blocklist): Likewise.
3247
0a203f83 32482007-08-02 Marco Gerards <marco@gnu.org>
3249
3250 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
3251 `util/hostfs.c'.
3252
3253 * disk/host.c: New file.
3254
3255 * util/hostfs.c: Likewise.
3256
3257 * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
3258 return `GRUB_ERR_BAD_FS'.
3259 * fs/sfs.c (grub_sfs_mount): Likewise.
3260 * fs/xfs.c (grub_xfs_mount): Likewise.
3261
3262 * include/grub/disk.h (enum grub_disk_dev_id): Add
3263 `GRUB_DISK_DEVICE_HOST_ID'.
3264
3265 * util/grub-emu.c (main): Initialize and de-initialize hostfs.
3266
e5dfe777 32672007-07-24 Jerone Young <jerone@gmail.com>
3268
3269 * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
3270 modules for compilation.
3271 * conf/powerpc-ieee1275.rmk: Likewise.
3272
3273 * include/multiboot.h: Move multiboot definitions to one file. Rename
3274 many definitions to not get grub specific.
3275 * include/multiboot2.h: Create header with multiboot 2 definitions.
3276 * include/grub/multiboot.h: Header for grub specific function
3277 prototypes and definitions.
3278 * include/grub/multiboot2.h: Likewise.
3279 * include/grub/multiboot_loader.h: Likewise.
3280 * include/grub/i386/pc/multiboot.h: Removed.
3281 * include/grub/powerpc/ieee1275/multiboot.h: Removed.
3282
3283 * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
3284 and 2 to allow for one multiboot and module commands.
3285 * loader/multiboot2.c: Add multiboot2 functionality.
3286 * loader/i386/pc/multiboot.c: Modify for new multiboot header location
3287 and definition names.
3288 * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
3289 2 functions.
3290 * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
3291 ieee1275 specific multiboot2 code.
3292
3293 * kern/i386/pc/startup.S: Change headers and definition names for
3294 multiboot. Add function grub_multiboot2_real_boot for multiboot 2.
3295
daf0f0ba 32962007-07-22 Robert Millan <rmh@aybabtu.com>
3297
3298 * geninitheader.sh: Process file specified in first parameter rather
3299 than hardcoding grub_modules_init.lst.
3300 * geninit.sh: Likewise. Also, construct header name dynamicaly rather
3301 than hardcoding grub_modules_init.h.
3302
3303 * conf/common.rmk: Rename grub_modules_init.[ch] files associated with
3304 grub-emu to grub_emu_init.[ch]. Add rules to build analogous
3305 grub_probe_init.[ch] and grub_setup_init.[ch].
3306
3307 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
3308 grub_modules_init.h with grub_emu_init.h.
3309 (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
3310 grub_probe_init.[ch] files.
3311 * conf/i386-efi.rmk: Likewise.
3312 * conf/i386-pc.rmk: Likewise.
3313 (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
3314 grub_setup_init.[ch] files.
3315
3316 * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
3317 * util/grub-probe.c: Include grub_probe_init.h. Use grub_init_all()
3318 to initialize modules rather than a list of hardcoded functions.
3319 * util/i386/pc/grub-setup.c: Include grub_setup_init.h. Use
3320 grub_init_all() to initialize modules rather than a list of hardcoded
3321 functions.
3322
54cdc1cc 33232007-07-22 Robert Millan <rmh@aybabtu.com>
3324
3325 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
3326 GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
3327
ad0686cc 33282007-07-22 Robert Millan <rmh@aybabtu.com>
3329
3330 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
3331 GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
3332 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
3333 flag when running on SmartFirmware.
3334 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
3335 "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
3336 was set.
3337
3338 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
3339 Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
3340 rather than decreasing it.
3341
3342 * util/i386/pc/grub-setup.c (setup): When embedding is required, but
3343 there's not enough space to do it, fail in the same way as when it
3344 can't be done because there are no partitions.
3345
3346 * util/powerpc/ieee1275/grub-install.in: Improve error message shown
3347 when nvsetenv failed.
3348
969c02ec 33492007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
3350
3351 * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
3352 because this rule is automatically generated.
3353 (grub-mkrescue): Removed for the same reason as above.
3354
5a79f472 33552007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
3356
3357 Migrate to GNU General Public License Version 3.
3358
3359 * COPYING: Replaced with the plain text version of GPLv3.
3360
3361 * config.guess: Updated from gnulib.
3362 * config.sub: Likewise.
3363
3364 * geninit.sh: Output a GPLv3 copyright notice.
3365 * geninitheader.sh: Likewise.
3366 * genmodsrc.sh: Likewise.
3367 * gensymlist.sh.in: Likewise.
3368
3369 * boot/i386/pc/boot.S: Upgraded to GPLv3.
3370 * boot/i386/pc/diskboot.S: Likewise.
3371 * boot/i386/pc/pxeboot.S: Likewise.
3372 * commands/blocklist.c: Likewise.
3373 * commands/boot.c: Likewise.
3374 * commands/cat.c: Likewise.
3375 * commands/cmp.c: Likewise.
3376 * commands/configfile.c: Likewise.
3377 * commands/echo.c: Likewise.
3378 * commands/help.c: Likewise.
3379 * commands/ls.c: Likewise.
3380 * commands/search.c: Likewise.
3381 * commands/terminal.c: Likewise.
3382 * commands/test.c: Likewise.
3383 * commands/videotest.c: Likewise.
3384 * commands/i386/cpuid.c: Likewise.
3385 * commands/i386/pc/halt.c: Likewise.
3386 * commands/i386/pc/play.c: Likewise.
3387 * commands/i386/pc/reboot.c: Likewise.
3388 * commands/i386/pc/vbeinfo.c: Likewise.
3389 * commands/i386/pc/vbetest.c: Likewise.
3390 * commands/ieee1275/halt.c: Likewise.
3391 * commands/ieee1275/reboot.c: Likewise.
3392 * commands/ieee1275/suspend.c: Likewise.
3393 * disk/loopback.c: Likewise.
3394 * disk/lvm.c: Likewise.
3395 * disk/raid.c: Likewise.
3396 * disk/efi/efidisk.c: Likewise.
3397 * disk/i386/pc/biosdisk.c: Likewise.
3398 * disk/ieee1275/ofdisk.c: Likewise.
3399 * font/manager.c: Likewise.
3400 * fs/affs.c: Likewise.
3401 * fs/ext2.c: Likewise.
3402 * fs/fat.c: Likewise.
3403 * fs/fshelp.c: Likewise.
3404 * fs/hfs.c: Likewise.
3405 * fs/hfsplus.c: Likewise.
3406 * fs/iso9660.c: Likewise.
3407 * fs/jfs.c: Likewise.
3408 * fs/minix.c: Likewise.
3409 * fs/sfs.c: Likewise.
3410 * fs/ufs.c: Likewise.
3411 * fs/xfs.c: Likewise.
3412 * hello/hello.c: Likewise.
3413 * include/grub/acorn_filecore.h: Likewise.
3414 * include/grub/arg.h: Likewise.
3415 * include/grub/bitmap.h: Likewise.
3416 * include/grub/boot.h: Likewise.
3417 * include/grub/cache.h: Likewise.
3418 * include/grub/device.h: Likewise.
3419 * include/grub/disk.h: Likewise.
3420 * include/grub/dl.h: Likewise.
3421 * include/grub/elfload.h: Likewise.
3422 * include/grub/env.h: Likewise.
3423 * include/grub/err.h: Likewise.
3424 * include/grub/file.h: Likewise.
3425 * include/grub/font.h: Likewise.
3426 * include/grub/fs.h: Likewise.
3427 * include/grub/fshelp.h: Likewise.
3428 * include/grub/gzio.h: Likewise.
3429 * include/grub/hfs.h: Likewise.
3430 * include/grub/kernel.h: Likewise.
3431 * include/grub/loader.h: Likewise.
3432 * include/grub/lvm.h: Likewise.
3433 * include/grub/misc.h: Likewise.
3434 * include/grub/mm.h: Likewise.
3435 * include/grub/net.h: Likewise.
3436 * include/grub/normal.h: Likewise.
3437 * include/grub/parser.h: Likewise.
3438 * include/grub/partition.h: Likewise.
3439 * include/grub/pc_partition.h: Likewise.
3440 * include/grub/raid.h: Likewise.
3441 * include/grub/rescue.h: Likewise.
3442 * include/grub/script.h: Likewise.
3443 * include/grub/setjmp.h: Likewise.
3444 * include/grub/symbol.h: Likewise.
3445 * include/grub/term.h: Likewise.
3446 * include/grub/terminfo.h: Likewise.
3447 * include/grub/tparm.h: Likewise.
3448 * include/grub/types.h: Likewise.
3449 * include/grub/video.h: Likewise.
3450 * include/grub/efi/api.h: Likewise.
3451 * include/grub/efi/chainloader.h: Likewise.
3452 * include/grub/efi/console.h: Likewise.
3453 * include/grub/efi/console_control.h: Likewise.
3454 * include/grub/efi/disk.h: Likewise.
3455 * include/grub/efi/efi.h: Likewise.
3456 * include/grub/efi/pe32.h: Likewise.
3457 * include/grub/efi/time.h: Likewise.
3458 * include/grub/i386/linux.h: Likewise.
3459 * include/grub/i386/setjmp.h: Likewise.
3460 * include/grub/i386/types.h: Likewise.
3461 * include/grub/i386/efi/kernel.h: Likewise.
3462 * include/grub/i386/efi/loader.h: Likewise.
3463 * include/grub/i386/efi/time.h: Likewise.
3464 * include/grub/i386/pc/biosdisk.h: Likewise.
3465 * include/grub/i386/pc/boot.h: Likewise.
3466 * include/grub/i386/pc/chainloader.h: Likewise.
3467 * include/grub/i386/pc/console.h: Likewise.
3468 * include/grub/i386/pc/init.h: Likewise.
3469 * include/grub/i386/pc/kernel.h: Likewise.
3470 * include/grub/i386/pc/loader.h: Likewise.
3471 * include/grub/i386/pc/memory.h: Likewise.
3472 * include/grub/i386/pc/multiboot.h: Likewise.
3473 * include/grub/i386/pc/serial.h: Likewise.
3474 * include/grub/i386/pc/time.h: Likewise.
3475 * include/grub/i386/pc/vbe.h: Likewise.
3476 * include/grub/i386/pc/vbeblit.h: Likewise.
3477 * include/grub/i386/pc/vbefill.h: Likewise.
3478 * include/grub/i386/pc/vbeutil.h: Likewise.
3479 * include/grub/i386/pc/vga.h: Likewise.
3480 * include/grub/ieee1275/ieee1275.h: Likewise.
3481 * include/grub/ieee1275/ofdisk.h: Likewise.
3482 * include/grub/powerpc/libgcc.h: Likewise.
3483 * include/grub/powerpc/setjmp.h: Likewise.
3484 * include/grub/powerpc/types.h: Likewise.
3485 * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
3486 * include/grub/powerpc/ieee1275/console.h: Likewise.
3487 * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
3488 * include/grub/powerpc/ieee1275/kernel.h: Likewise.
3489 * include/grub/powerpc/ieee1275/loader.h: Likewise.
3490 * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
3491 * include/grub/powerpc/ieee1275/time.h: Likewise.
3492 * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
3493 * include/grub/sparc64/libgcc.h: Likewise.
3494 * include/grub/sparc64/setjmp.h: Likewise.
3495 * include/grub/sparc64/types.h: Likewise.
3496 * include/grub/sparc64/ieee1275/console.h: Likewise.
3497 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
3498 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
3499 * include/grub/sparc64/ieee1275/time.h: Likewise.
3500 * include/grub/util/biosdisk.h: Likewise.
3501 * include/grub/util/getroot.h: Likewise.
3502 * include/grub/util/lvm.h: Likewise.
3503 * include/grub/util/misc.h: Likewise.
3504 * include/grub/util/raid.h: Likewise.
3505 * include/grub/util/resolve.h: Likewise.
3506 * io/gzio.c: Likewise.
3507 * kern/device.c: Likewise.
3508 * kern/disk.c: Likewise.
3509 * kern/dl.c: Likewise.
3510 * kern/elf.c: Likewise.
3511 * kern/env.c: Likewise.
3512 * kern/err.c: Likewise.
3513 * kern/file.c: Likewise.
3514 * kern/fs.c: Likewise.
3515 * kern/loader.c: Likewise.
3516 * kern/main.c: Likewise.
3517 * kern/misc.c: Likewise.
3518 * kern/mm.c: Likewise.
3519 * kern/parser.c: Likewise.
3520 * kern/partition.c: Likewise.
3521 * kern/rescue.c: Likewise.
3522 * kern/term.c: Likewise.
3523 * kern/efi/efi.c: Likewise.
3524 * kern/efi/init.c: Likewise.
3525 * kern/efi/mm.c: Likewise.
3526 * kern/i386/dl.c: Likewise.
3527 * kern/i386/efi/init.c: Likewise.
3528 * kern/i386/efi/startup.S: Likewise.
3529 * kern/i386/pc/init.c: Likewise.
3530 * kern/i386/pc/lzo1x.S: Likewise.
3531 * kern/i386/pc/startup.S: Likewise.
3532 * kern/ieee1275/ieee1275.c: Likewise.
3533 * kern/powerpc/cache.S: Likewise.
3534 * kern/powerpc/dl.c: Likewise.
3535 * kern/powerpc/ieee1275/cmain.c: Likewise.
3536 * kern/powerpc/ieee1275/crt0.S: Likewise.
3537 * kern/powerpc/ieee1275/init.c: Likewise.
3538 * kern/powerpc/ieee1275/openfw.c: Likewise.
3539 * kern/sparc64/cache.S: Likewise.
3540 * kern/sparc64/dl.c: Likewise.
3541 * kern/sparc64/ieee1275/init.c: Likewise.
3542 * kern/sparc64/ieee1275/openfw.c: Likewise.
3543 * loader/efi/chainloader.c: Likewise.
3544 * loader/efi/chainloader_normal.c: Likewise.
3545 * loader/i386/efi/linux.c: Likewise.
3546 * loader/i386/efi/linux_normal.c: Likewise.
3547 * loader/i386/pc/chainloader.c: Likewise.
3548 * loader/i386/pc/chainloader_normal.c: Likewise.
3549 * loader/i386/pc/linux.c: Likewise.
3550 * loader/i386/pc/linux_normal.c: Likewise.
3551 * loader/i386/pc/multiboot.c: Likewise.
3552 * loader/i386/pc/multiboot_normal.c: Likewise.
3553 * loader/powerpc/ieee1275/linux.c: Likewise.
3554 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
3555 * normal/arg.c: Likewise.
3556 * normal/cmdline.c: Likewise.
3557 * normal/command.c: Likewise.
3558 * normal/completion.c: Likewise.
3559 * normal/execute.c: Likewise.
3560 * normal/function.c: Likewise.
3561 * normal/lexer.c: Likewise.
3562 * normal/main.c: Likewise.
3563 * normal/menu.c: Likewise.
3564 * normal/menu_entry.c: Likewise.
3565 * normal/misc.c: Likewise.
3566 * normal/parser.y: Likewise.
3567 * normal/script.c: Likewise.
3568 * normal/i386/setjmp.S: Likewise.
3569 * normal/powerpc/setjmp.S: Likewise.
3570 * normal/sparc64/setjmp.S: Likewise.
3571 * partmap/acorn.c: Likewise.
3572 * partmap/amiga.c: Likewise.
3573 * partmap/apple.c: Likewise.
3574 * partmap/gpt.c: Likewise.
3575 * partmap/pc.c: Likewise.
3576 * partmap/sun.c: Likewise.
3577 * term/gfxterm.c: Likewise.
3578 * term/terminfo.c: Likewise.
3579 * term/efi/console.c: Likewise.
3580 * term/i386/pc/console.c: Likewise.
3581 * term/i386/pc/serial.c: Likewise.
3582 * term/i386/pc/vesafb.c: Likewise.
3583 * term/i386/pc/vga.c: Likewise.
3584 * term/ieee1275/ofconsole.c: Likewise.
3585 * util/biosdisk.c: Likewise.
3586 * util/console.c: Likewise.
3587 * util/genmoddep.c: Likewise.
3588 * util/getroot.c: Likewise.
3589 * util/grub-emu.c: Likewise.
3590 * util/grub-mkdevicemap.c: Likewise.
3591 * util/grub-probe.c: Likewise.
3592 * util/lvm.c: Likewise.
3593 * util/misc.c: Likewise.
3594 * util/raid.c: Likewise.
3595 * util/resolve.c: Likewise.
3596 * util/update-grub.in: Likewise.
3597 * util/update-grub_lib.in: Likewise.
3598 * util/grub.d/00_header.in: Likewise.
3599 * util/grub.d/10_hurd.in: Likewise.
3600 * util/grub.d/10_linux.in: Likewise.
3601 * util/i386/efi/grub-install.in: Likewise.
3602 * util/i386/efi/grub-mkimage.c: Likewise.
3603 * util/i386/pc/grub-install.in: Likewise.
3604 * util/i386/pc/grub-mkimage.c: Likewise.
3605 * util/i386/pc/grub-mkrescue.in: Likewise.
3606 * util/i386/pc/grub-setup.c: Likewise.
3607 * util/i386/pc/misc.c: Likewise.
3608 * util/powerpc/ieee1275/grub-install.in: Likewise.
3609 * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
3610 * util/powerpc/ieee1275/misc.c: Likewise.
3611 * video/bitmap.c: Likewise.
3612 * video/video.c: Likewise.
3613 * video/i386/pc/vbe.c: Likewise.
3614 * video/i386/pc/vbeblit.c: Likewise.
3615 * video/i386/pc/vbefill.c: Likewise.
3616 * video/i386/pc/vbeutil.c: Likewise.
3617 * video/readers/tga.c: Likewise.
3618
3572d015 36192007-07-02 Robert Millan <rmh@aybabtu.com>
3620
3621 * conf/i386-efi.rmk: Replace obsolete reference to
3622 util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
3623 with util/getroot.c.
3624 * conf/powerpc-ieee1275.rmk: Likewise.
3625 * conf/sparc64-ieee1275.rmk: Likewise.
3626
3627 * util/grub-emu.c (main): Fix unchecked pointer handling.
3628
2c2a681b 36292007-07-02 Robert Millan <rmh@aybabtu.com>
3630
3631 * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
3632 invocation to fail, in order to support partition-less media.
3633
3634 * util/i386/pc/grub-install.in: Likewise.
3635
3636 * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
3637 which fs or partmap modules are needed (akin to its sister scripts).
3638
3639 Also use grub-probe to get rid of unportable /proc/mounts check.
3640
3641 Print the same informational message that the other scripts do, before
3642 exitting.
3643
6193defe 36442007-06-23 Robert Millan <rmh@aybabtu.com>
3645
3646 * util/update-grub_lib.in (font_path): New function. Determine wether
3647 a font file can be found and, if so, echo the GRUB path to it.
3648
3649 * util/update-grub.in: Handle multiple terminals depending on user
3650 input, platform availability and font file presence. Propagate
3651 variables of our findings to /etc/grub.d/ children.
3652
3653 * util/grub.d/00_header.in: Handle multiple terminals, based on
3654 environment setup by update-grub.
3655
eface1dc 36562007-06-23 Robert Millan <rmh@aybabtu.com>
3657
ba50d28f 3658 * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.
eface1dc 3659
bf697e28 36602007-06-21 Robert Millan <rmh@aybabtu.com>
3661
3662 * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
3663 indicate end of data section in kernel image.
3664 * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
3665 GRUB_KERNEL_MACHINE_DATA_END.
3666
3667 * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
3668 space for it.
3669 * kern/i386/efi/startup.S: Likewise.
3670
3671 * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
3672 during image generation. Implement --prefix option to override this
3673 patch.
3674 * util/i386/efi/grub-mkimage.c: Likewise.
3675
3676 * util/update-grub_lib.in (convert_system_path_to_grub_path): Split
3677 code to make path relative to its root into a separate function.
3678
3679 * util/i386/pc/grub-install.in: Use newly provided
3680 make_system_path_relative_to_its_root() to convert ${grubdir}, then
3681 pass the result to grub-install --prefix.
3682
baa574b4 36832007-06-13 Robert Millan <rmh@aybabtu.com>
3684
3685 * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
3686 DEFAULT_DEVICE_MAP.
3687 * util/grub-emu.c: Use above definitions from misc.h instead of
3688 defining them.
3689 * util/grub-mkdevicemap.c: Likewise.
3690 * util/i386/pc/grub-setup.c: Likewise.
3691 * util/grub-probe.c: Likewise.
3692 (probe): Abort with grub_util_error() when either
3693 grub_guess_root_device or grub_util_get_grub_dev fails.
3694
0215dcbf 36952007-06-12 Robert Millan <rmh@aybabtu.com>
3696
3697 * normal/command.c (grub_command_execute): Use NULL rather than 0 for
3698 "pager" assignment.
3699 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
3700 "pcdata".
3701 * util/grub-probe.c (probe): Likewise for "drive_name".
3702
8af2ab7b 37032007-06-11 Robert Millan <rmh@aybabtu.com>
3704
3705 * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
3706 not just the cdrom one.
3707
59d31694 37082007-06-11 Robert Millan <rmh@aybabtu.com>
3709
3710 * util/i386/pc/grub-mkrescue.in: Add "set -e".
3711 Add --pkglibdir=DIR option to override pkglibdir.
3712 Mention --image-type=TYPE in help output.
3713 Fix --grub-mkimage (it was a no-op).
3714 Abort gracefuly when no parameter is given.
3715
7ee367e4 37162007-06-11 Robert Millan <rmh@aybabtu.com>
3717
3718 * util/i386/pc/grub-mkrescue.in: New file.
3719 * conf/i386-pc.rmk: Add its build declarations. Put it in bin_SCRIPTS.
3720 * Makefile.in: Handle bin_SCRIPTS.
3721
29b0ed46 37222007-06-10 Vesa Jaaskelainen <chaac@nic.fi>
3723
3724 * term/gfxterm.c (grub_gfxterm_init): Added support for specifying
3725 list of video modes.
3726
c0f90770 37272007-06-06 Robert Millan <rmh@aybabtu.com>
3728
3729 * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
3730 file doesn't exist, or if it is in a filesystem grub can't read.
3731
3732 * util/update-grub.in: Set fallback for GRUB_FS check to "unknown". Do
3733 not abort if GRUB_DRIVE could not be defined. Rearrange generated
3734 header comment to fit in 80 columns when the variables are resolved.
3735
3736 * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
3737 could be identified by update-grub. Remove redundant check for
3738 unifont.pff existance (since convert_system_path_to_grub_path now
3739 handles that).
3740
fb36dc26 37412007-06-04 Robert Millan <rmh@aybabtu.com>
3742
3743 * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.
3744
3745 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.
3746
3747 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
3748
0c68c93e 37492007-06-04 Robert Millan <rmh@aybabtu.com>
3750
3751 * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.
3752
3753 * include/grub/partition.h: Declare grub_apple_partition_map_init and
3754 grub_apple_partition_map_fini.
3755
3756 * util/biosdisk.c
3757 (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
3758 to access >2 TiB disks).
3759
3760 Print disk->total_sectors with %llu instead of %lu, since this
3761 variable is always 64-bit (prevents wrong disk size from being displayed
3762 on either >2 TiB disk or big-endian CPU).
3763
3764 (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
3765 into a generic case that supports all (sane) partition maps.
3766
3767 Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
3768 breaks big-endian.
3769
3770 * util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
3771 and grub_apple_partition_map_fini() after that.
3772
0f23eb74 37732007-06-01 Robert Millan <rmh@aybabtu.com>
3774
3775 * util/update-grub.in: Export GRUB_CMDLINE_LINUX.
3776
3777 * util/grub.d/00_header.in: Only enable gfxterm when
3778 convert_system_path_to_grub_path() succeeds.
3779
42c71976 37802007-05-20 Robert Millan <rmh@aybabtu.com>
3781
3782 * util/update-grub_lib.in: New file.
3783 * DISTLIST: Add update-grub_lib.in.
3784 * conf/common.rmk: Generate update-grub_lib and install it in
3785 $(lib_DATA).
3786 * Makefile.in: Add install routine for $(lib_DATA).
3787
3788 * util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
3789 function provided by update-grub_lib to support arbitrary paths of
3790 unifont.pff.
3791 * util/update-grub.in: Use convert_system_path_to_grub_path() to
3792 initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
3793
5beb2291 37942007-05-19 Robert Millan <rmh@aybabtu.com>
3795
3796 * commands/i386/cpuid.c: New module.
3797 * DISTLIST: Add it.
3798 * conf/i386-efi.rmk: Enable cpuid.mod.
3799 * conf/i386-pc.rmk: Likewise.
3800
7262eca1 38012007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
3802
3803 * kern/disk.c (grub_disk_read): Check return value of
3804 grub_realloc().
3805
260ba823 38062007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
3807
3808 * util/getroot.c (grub_util_get_grub_dev): Support partitionable
3809 arrays.
3810 * disk/raid.c (grub_raid_open): Likewise.
3811
1ecb6cf2 38122007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
3813
3814 * util/biosdisk.c (linux_find_partition): Allocate real_dev on the
3815 stack instead of on the heap.
3816
3817 * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
3818 before doing a read on it.
3819
3820 * configure.ac: Only use -fno-stack-protector for the target
3821 environment.
3822
21c8cbb1 38232007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
3824
3825 * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
3826 __attribute_ ((unused)) to mode_type argument.
3827
3828 * util/getroot.c (grub_guess_root_device): Fix #endif.
3829
3830 * kern/misc.c (memcmp): Fix prototype.
3831
3832 * include/grub/partition.h [GRUB_UTIL]
3833 (grub_gpt_partition_map_init): Add prototype.
3834 (grub_gpt_partition_map_fini): Likewise.
3835
3836 * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
3837 at the right place.
3838
3839 * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
3840 (grub_fat_read_data): Likewise.
3841 (grub_fat_find_dir): Likewise.
3842
3843 * font/manager.c (find_glyph): Make table a const.
3844 (grub_font_get_glyph): Remove bitmap from if statement.
3845
849d55d3 38462007-05-16 Jeroen Dekkers <jeroen@dekkers.cx>
3847
3848 * util/getroot.c (grub_guess_root_device): Remove RAID and LVM
3849 code, first search for device in /dev/mapper, then in /dev.
3850 (grub_util_get_grub_dev): New function.
3851 * include/grub/util/getroot.h (grub_util_get_grub_dev): Add
3852 prototype.
3853 * util/grub-probe.c (probe): Remove check for RAID, call
3854 grub_util_get_grub_dev() instead of
3855 grub_util_biosdisk_get_grub_dev().
3856 * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
3857 grub_util_biosdisk_get_grub_dev().
3858 * util/i386/pc/grub-setup.c (main): Likewise.
3859
8fff7c2f 38602007-05-16 Robert Millan <rmh@aybabtu.com>
3861
3862 * DISTLIST: Update for the latest changes.
3863 * conf/i386-pc.rmk: Use the new paths for util/getroot.c,
3864 util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
3865 * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
3866 grub/util/biosdisk.h.
3867 * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
3868 grub/util/biosdisk.h.
3869
48e12b52 38702007-05-16 Robert Millan <rmh@aybabtu.com>
3871
3872 * util/grub.d/00_header.in: Set default gfxmode to `640x480'.
3873
46b9d128 38742007-05-16 Robert Millan <rmh@aybabtu.com>
3875
3876 * util/i386/efi/grub-install.in: New.
3877 * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
3878 newly added grub-install.
3879 * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
3880 include.
3881 * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
3882 grub/util/biosdisk.h.
3883 * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
3884 grub/util/biosdisk.h.
3885
2d1a40a9 38862007-05-16 Robert Millan <rmh@aybabtu.com>
3887
3888 * include/grub/i386/pc/util/biosdisk.h: Moved to ...
3889 * include/grub/util/biosdisk.h: ... here.
3890 * util/i386/pc/biosdisk.c: Moved to ...
3891 * util/biosdisk.c: ... here.
3892 * util/i386/pc/getroot.c: Moved to ...
3893 * util/getroot.c: ... here.
3894 * util/i386/pc/grub-mkdevicemap.c: Moved to ...
3895 * util/grub-mkdevicemap.c: ... here.
3896 * util/i386/pc/grub-probe.c: Moved to ...
3897 * util/grub-probe.c: ... here.
3898
9e26e3bc 38992007-05-15 Robert Millan <rmh@aybabtu.com>
3900
3901 * util/update-grub.in: Remove duplicated line in grub.cfg header
3902 message.
3903
57f96397 39042007-05-13 Robert Millan <rmh@aybabtu.com>
3905
3906 * util/update-grub.in: Fix a few assumptions about the devices holding
3907 /, /boot and /boot/grub being the same.
3908 * util/grub.d/00_header.in: Likewise.
3909 * util/grub.d/10_hurd.in: Likewise.
3910 * util/grub.d/10_linux.in: Likewise.
3911
3912 * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
3913 patterns. Use that to define the `.old' suffix as older than `'.
3914
3915 * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.
3916
3917 * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
3918 the grub.cfg header message.
3919
2e610d62 39202007-05-11 Robert Millan <rmh@aybabtu.com>
3921
3922 * util/update-grub.in: Create device.map if it doesn't already exist,
3923 before attempting to run grub-probe.
3924 Check for grub-probe and grub-mkdevicemap with the same code
3925 grub-install is using.
3926 Remove test mode.
3927
3f6a10ef 39282007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
3929
3930 * Makefile.in: Add the datarootdir autoconf variable.
3931
02e7b75e 39322007-05-09 Robert Millan <rmh@aybabtu.com>
3933
3934 * util/i386/pc/grub-probe.c (probe): When detecting partition map,
3935 fail gracefuly if dev->disk->partition == NULL.
3936
75f396cc 39372007-05-07 Robert Millan <rmh@aybabtu.com>
3938
3939 * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
3940 determine partition map module.
3941 * util/i386/pc/grub-install.in: Use this feature to decide which
3942 partition module to load, instead of hardcoding pc and gpt.
3943
da65cb36 39442007-05-07 Robert Millan <rmh@aybabtu.com>
3945
3946 * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
3947 source directory differs from build directory.
3948
b57d6a91 39492007-05-05 Robert Millan <rmh@aybabtu.com>
3950
3951 * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
3952 initialisation.
3953
509d00f1 39542007-05-05 Robert Millan <rmh@aybabtu.com>
3955
3956 * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
3957
c48f23ef 39582007-05-05 Robert Millan <rmh@aybabtu.com>
3959
3960 * util/grub.d/10_linux.in: Allow the administrator to insert Linux
3961 command-line arguments via ${GRUB_CMDLINE_LINUX}.
3962
20b97658 39632007-05-05 Robert Millan <rmh@aybabtu.com>
3964
3965 * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
3966 (grub_probe_SOURCES): Likewise.
3967 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
3968 GPT and initialize dos_part and bsd_part accordingly.
3969 * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
3970 install_bsd_part.
3971 (main): Activate gpt module for use during partition identification,
3972 and deactivate it afterwards.
3973 * util/i386/pc/grub-install.in: Add gpt module to core.img.
3974 * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
3975 partition identification, and deactivate it afterwards.
3976
99123174 39772007-05-05 Robert Millan <rmh@aybabtu.com>
3978
3979 * term/i386/pc/console.c (grub_console_fini): Call
3980 grub_term_set_current() before grub_term_unregister().
3981
ebd97f6e 39822007-05-04 Robert Millan <rmh@aybabtu.com>
3983
3984 * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
3985 util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
3986 * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS
3987 and update-grub_DATA.
3988 * conf/common.rmk: Build and install update-grub components.
3989 * conf/common.mk: Regenerate.
3990 * util/update-grub.in: New. Core of update-grub.
3991 * util/grub.d/00_header.in: New. Generates grub.cfg header.
3992 * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd.
3993 * util/grub.d/10_linux.in: New. Generates boot entries for Linux.
3994 * util/grub.d/README: New. Document grub.d directory layout.
3995
b06a264d 39962007-05-01 Robert Millan <rmh@aybabtu.com>
3997
3998 * util/grub-emu.c: Move initialization functions
3999 grub_util_biosdisk_init() and grub_init_all() before
4000 grub_util_biosdisk_get_grub_dev(), which relies on them.
4001
41f0050e 40022007-04-19 Robert Millan <rmh@aybabtu.com>
4003
4004 * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
4005 it is used later.
4006
04582bb3 40072007-04-18 Jerone Young <jerone@gmail.com>
4008
4009 * kernel/elf.c: Add missing parenthesis for conditional statement
4010 stanza.
4011
08db4632 40122007-04-10 Jerone Young <jerone@gmail.com>
49892fdf 4013
08db4632 4014 * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
4015 continue on and look for device node with real device name.
4016
801b76be 40172007-04-10 Jerone Young <jerone@gmail.com>
1d543c3e 4018
4019 * configure.ac: Add argument for autoconf to use tranformation
4020 ability.
4021 * Makefile.in: Add autoconf package transformation code.
4022 * util/i386/pc/grub-install.in: Likewise.
4023 * util/powerpc/ieee1275/grub-install.in: Likewise.
4024
6795c4e1 40252007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
4026
4027 * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
4028 (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
4029 (EXT2_REVISION): Likewise.
4030 (EXT2_INODE_SIZE): Likewise.
4031 (struct grub_ext2_block_group): Added a missing member
4032 "used_dirs".
4033 (grub_ext2_read_inode): Divide by the inode size in a superblock
4034 instead of 128 to obtain INODES_PER_BLOCK.
4035 Use the macro EXT2_INODE_SIZE instead of directly using
4036 SBLOCK->INODE_SIZE.
4037
d70af616 40382007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
4039
4040 * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
4041 superblock instead of the structure size to compute an
4042 offset. This fixes the problem that GRUB could not read a
4043 filesystem when inode size is different from 128-byte.
4044
3b801603 40452007-03-05 Marco Gerards <marco@gnu.org>
4046
4047 * normal/main.c (read_config_file): When "menu" is not set, create
4048 an initial context.
4049
4785bfe4 40502007-02-21 Hollis Blanchard <hollis@penguinppc.org>
4051
4052 * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
4053 (HEAP_LIMIT): New macro.
4054 (grub_claim_heap): Claim memory up to `heaplimit'.
4055
a0cbb023 40562007-02-21 Hollis Blanchard <hollis@penguinppc.org>
4057
4058 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
4059 * kern/powerpc/ieee1275/init.c (_end): Add declaration.
4060 (_start): Likewise.
4061 (grub_arch_modules_addr): Return address after `_end'.
4062 * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
4063 (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
4064 (add_segments): Calculate `_end' from phdr size and location.
4065 (ALIGN_UP): Moved to ...
4066 * include/grub/misc.h: here.
4067 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
4068 New macro.
4069 (GRUB_IEEE1275_MODULE_BASE): Removed.
4070
fd7d8eba 40712007-02-20 Hollis Blanchard <hollis@penguinppc.org>
4072
4073 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
4074 loop boundary.
4075
9b09e6fc 40762007-02-20 Hollis Blanchard <hollis@penguinppc.org>
4077
4078 * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
4079 All users updated.
4080 (grub_elf64_load_hook_t): Likewise.
4081 * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
4082 debug output.
4083
3ce27299 40842007-02-20 Hollis Blanchard <hollis@penguinppc.org>
4085
4086 * kern/mm.c: Update copyright.
4087 (grub_mm_debug): Correct syntax error.
4088 (grub_mm_dump_free): New function.
4089 (grub_debug_free): Call `grub_free'.
4090 * include/grub/mm.h: Update copyright.
4091 (grub_mm_dump_free): Add declaration.
4092
077d5fee 40932007-02-12 Hollis Blanchard <hollis@penguinppc.org>
4094
4095 * include/grub/ieee1275/ieee1275.h: Update copyright.
4096 * kern/powerpc/ieee1275/init.c: Likewise.
4097 * kern/powerpc/ieee1275/openfw.c: Likewise.
4098
4099 * loader/powerpc/ieee1275/linux.c: Likewise.
4100 * include/grub/elfload.h: Likewise.
4101 * kern/elf.c: Likewise.
4102 (grub_elf32_load): Pass `base' and `size' parameters. Update all
4103 callers.
4104 (grub_elf64_load): Likewise.
4105 (grub_elf32_load_segment): Move to a nested function.
4106 (grub_elf64_load_segment): Likewise.
4107
dc946850 41082007-02-12 Hollis Blanchard <hollis@penguinppc.org>
4109
4110 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
4111 prototype.
4112 * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
4113 (grub_heap_len): Likewise.
4114 (HEAP_SIZE): New macro.
4115 (grub_claim_heap): New function.
4116 (grub_machine_init): Don't claim heap directly. Call
4117 `grub_claim_heap'.
4118 * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
4119 (grub_available_iterate): New function.
4120
baa2a121 41212007-02-03 Thomas Schwinge <tschwinge@gnu.org>
4122
4123 * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
4124 * configure.ac: Use it for testing the HOST and TARGET compilers.
4125
4fe9862e 41262006-12-13 Thomas Schwinge <tschwinge@gnu.org>
4127
4128 * Makefile.in (enable_grub_emu): New variable.
4129 * configure.ac (--enable-grub-emu): New option.
4130 Do the checks for (n)curses only if `--enable-grub-emu' is requested.
4131 * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
4132 * conf/i386-pc.rmk: Likewise.
4133 * conf/powerpc-ieee1275.rmk: Likewise.
4134 * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
4135
a8aa5762 41362006-12-12 Marco Gerards <marco@gnu.org>
4137
4138 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
4139
4140 * kern/env.c (grub_env_unset): Don't free the member `value' when
4141 the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
4142 pointer.
4143
4144 * normal/main.c (current_menu): Removed.
4145 (free_menu): Unset the `menu' environment variable.
4146 (grub_normal_menu_addentry): Make use of the environment variable
4147 `menu', instead of using the global `current_menu'. Allocate
4148 memory for the sourcecode of this entry.
4149 (read_config_file): New argument `nested', changed all callers.
4150 Only in the case of a new context, initialize a new menu. Set the
4151 `menu' environment variable.
4152 (grub_normal_execute): Don't set and unset the environment
4153 variable `menu' here anymore. Only free the menu when leaving the
4154 context.
4155
4156 * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
4157 leak.
4158
957b3a3e 41592006-12-11 Marco Gerards <marco@gnu.org>
4160
4161 * normal/menu_entry.c (run): Fix off by one bug so the last line
4162 is executed. Move the loader check to outside the loop.
4163
ef875714 41642006-12-08 Hollis Blanchard <hollis@penguinppc.org>
4165
4166 * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
4167
4e739985 41682006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
4169
4170 * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
4171 the number of sectors. Reported by Andrey Shuvikov
4172 <mr_hyro@yahoo.com>.
4173
790707f2 41742006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
4175
4176 * kern/disk.c (grub_disk_read): When there is a read error, always
4177 try to read only the necessary data.
4178
4179 * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
4180 disk/raid.c.
4181 * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
4182 prototype.
4183 [GRUB_UTIL] (grub_raid_fini): Likewise.
4184 [GRUB_UTIL] (grub_lvm_init): Likewise.
4185 [GRUB_UTIL] (grub_lvm_fini): Likewise.
4186 * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
4187 RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
4188 (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
4189 and grub_raid_fini().
4190
03e58196 41912006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
4192
4193 * include/grub/types.h (__unused): Rename to UNUSED.
4194 * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
4195 (grub_elf64_size): Likewise.
4196
ae4f23bf 41972006-11-03 Hollis Blanchard <hollis@penguinppc.org>
4198
4199 * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
4200 grub_error_push and grub_error_pop in the error-handling path.
4201 (grub_elf32_load_segment): Only call grub_file_read with non-zero
4202 length.
4203
2166cc83 42042006-11-03 Hollis Blanchard <hollis@penguinppc.org>
4205
4206 * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
4207 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
4208 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4209 (kernel_elf_SOURCES): Likewise.
4210 * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
4211 * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
4212 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
4213 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
4214 * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
4215 (elf_mod_SOURCES): New variable.
4216 (elf_mod_CFLAGS): Likewise.
4217 (elf_mod_LDFLAGS): Likewise.
4218 * include/grub/types.h (__unused): New macro.
4219 * include/grub/elfload.h: New file.
4220 * kern/elf.c: Likewise.
4221 * loader/powerpc/ieee1275/linux.c: Include elfload.h.
4222 (ELF32_LOADMASK): New macro.
4223 (ELF64_LOADMASK): Likewise.
4224 (vmlinux): Removed.
4225 (grub_linux_load32): New function.
4226 (grub_linux_load64): Likewise.
4227 (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
4228 Use grub_elf_t instead of grub_file_t.
4229
a09d5aa5 42302006-11-02 Hollis Blanchard <hollis@penguinppc.org>
4231
4232 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
4233 `catch_result' to struct set_color_args.
4234
d976fc51 42352006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
4236
4237 * normal/menu.c: Include grub/script.h.
4238 * normal/menu_entry.c: Likewise.
4239 * include/grub/normal.h: Do not include grub/script.h.
4240
67507549 42412006-10-27 Hollis Blanchard <hollis@penguinppc.org>
4242
4243 * kern/disk.c (grub_disk_read): Correct debug printf formatting.
4244
69203a99 42452006-10-27 Hollis Blanchard <hollis@penguinppc.org>
4246
4247 * kern/disk.c (grub_disk_open): Print debug messages when opening a
4248 disk.
4249 (grub_disk_close): Print debug messages when closing a disk.
4250 (grub_disk_read): Print debug messages when disk read fails.
4251 * kern/fs.c (grub_fs_probe): Print debug messages when detecting
4252 filesystem type.
4253 * kern/partition.c: Include misc.h.
4254 (grub_partition_iterate): Print debug messages when detecting
4255 partition type.
4256
e2b8278c 42572006-10-27 Hollis Blanchard <hollis@penguinppc.org>
4258
4259 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
4260 is negative.
4261 * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
4262
97b2f2ff 42632006-10-26 Hollis Blanchard <hollis@penguinppc.org>
4264
4265 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
4266 Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
4267
6555d655 42682006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
4269
4270 * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
4271 instead of sizeof(lv). Patch by Michael Guntsche.
4272
4d42b77f 42732006-10-18 Jeroen Dekkers <jeroen@dekkers.cx>
4274
4275 * disk/lvm.c: Rename VGS to VG_LIST.
4276 (grub_lvm_iterate): Change VGS->LV to VG-LV.
4277 (grub_lvm_open): Likewise.
4278 Thanks to Michael Guntsche for finding this bug.
4279
5d74d927 42802006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
4281
4282 * configure.ac (AC_INIT): Bumped to 1.95.
4283
a1bb27e4 42842006-10-14 Robert Millan <rmh@aybabtu.com>
4285
4286 * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
4287 with "/dev/.static/dev/md".
4288
e0994b8b 42892006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
4290
4291 * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
4292 DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
4293 DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
4294 DRIVE_NAME are always freed.
4295
4296 * util/i386/pc/biosdisk.c (make_device_name): Add one into
4297 DOS_PART, as a DOS partition is counted from one instead of zero
4298 now. Reported by Robert Millan.
4299
ddd5cee9 43002006-10-14 Robert Millan <rmh@aybabtu.com>
4301
4302 * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
4303 grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
4304 * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
4305 string returned by grub_guess_root_device.
4306 * util/i386/pc/grub-setup.c: Likewise.
4307 * util/i386/pc/grub-probefs.c: Likewise.
4308
4309 * util/i386/pc/grub-probefs.c: Rename to ...
4310 * util/i386/pc/grub-probe.c: ... this.
4311 * DISTLIST: Remove grub-probefs, add grub-probe.
4312 * conf/i386-efi.rmk: Likewise.
4313 * conf/i386-pc.rmk: Likewise.
4314 * util/i386/pc/grub-install.in: Likewise.
4315
4316 * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
4317 choose which information we want to print.
4318
2b002173 43192006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
4320
4321 * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
4322 include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
4323 include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
4324 include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
4325 video/readers/tga.c and video/i386/pc/vbeutil.c.
4326
43272006-10-14 Jeroen Dekkers <jeroen@dekkers.cx>
4328
4329 Added support for RAID and LVM.
4330
4331 * disk/lvm.c: New file.
4332 * disk/raid.c: Likewise.
4333 * include/grub/lvm.h: Likewise.
4334 * include/grub/raid.h: Likewise.
4335 * include/grub/util/lvm.h: Likewise.
4336 * include/grub/util/raid.h: Likewise.
4337 * util/lvm.c: Likewise.
4338 * util/raid.c: Likewise.
4339
4340 * include/grub/disk.h (grub_disk_dev_id): Add
4341 GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
4342 (grub_disk_get_size): New prototype.
4343 * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
4344 returns a partition.
4345 (grub_disk_get_size): New function.
4346
4347 * kern/i386/pc/init.c (make_install_device): Copy the prefix
4348 verbatim if grub_install_dos_part is -2.
4349
4350 * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
4351 and LVM devices.
4352
4353 * util/i386/pc/grub-setup.c (setup): New argument
4354 MUST_EMBED. Force embedding of GRUB when the argument is
4355 true. Close FILE before returning.
4356 (main): Add support for RAID and LVM.
4357
4358 * conf/common.rmk: Add RAID and LVM modules.
4359 * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
4360 util/lvm.c.
4361 (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
4362
4363 * kern/misc.c (grub_strstr): New function.
4364 * include/grub/misc.h (grub_strstr): New prototype.
4365
050548d0 43662006-10-10 Tristan Gingold <tristan.gingold@bull.net>
4367
4368 * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
4369
da849d2d 43702006-10-05 Tristan Gingold <tristan.gingold@bull.net>
4371
4372 * kern/misc.c (grub_strtoull): Guess the base only if not
4373 specified.
4374
97b2f2ff 43752006-10-01 Hollis Blanchard <hollis@penguinppc.org>
4f0acd39 4376
4377 * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
4378 PowerMac support.
4379
97b2f2ff 43802006-10-01 Hollis Blanchard <hollis@penguinppc.org>
fba51f48 4381
4382 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
4383
4384 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
4385 Remove `flags' argument. All callers changed.
4386 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
4387 (IEEE1275_IHANDLE_INVALID): New variable.
4388 (IEEE1275_CELL_INVALID): New variable.
4389 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
4390 grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
4391 grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
4392 grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
4393 grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
4394 codes from Open Firmware. All callers updated.
4395 (grub_ieee1275_next_property): Directly return Open Firmware return
4396 code.
4397 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
4398 Standardize error checking from `grub_ieee1275_get_property'.
4399 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
4400 `devalias' to `aliases'. Correct comments. Consolidate error paths.
4401
97b2f2ff 44022006-10-01 Hollis Blanchard <hollis@penguinppc.org>
cc6d3df3 4403
4404 * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
4405 `instance_to_package_args' to `instance_to_path_args'.
4406
4407 * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
4408 `grub_ieee1275_chosen'.
4409
4410 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
4411 `grub_ieee1275_interpret'.
4412
97b2f2ff 44132006-09-25 Hollis Blanchard <hollis@penguinppc.org>
02bb8acc 4414
4415 * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
4416
97b2f2ff 44172006-09-25 Hollis Blanchard <hollis@penguinppc.org>
663b72f0 4418
4419 * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
4420 (__cmpdi): Likewise.
4421
4422 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
4423 `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type
4424 `grub_ssize_t'.
4425
02bb8acc 4426 * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
663b72f0 4427
4428 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
4429 to type `grub_ssize_t'.
4430 (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
4431
7f9a8531 44322006-09-22 Marco Gerards <marco@gnu.org>
4433
4434 * normal/script.c (grub_script_create_cmdmenu): Skip leading
4435 newlines.
4436
b5ef1102 44372006-09-22 Marco Gerards <marco@gnu.org>
4438
4439 * commands/echo.c: New file.
4440
4441 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
4442
4443 * conf/common.rmk (echo_mod_SOURCES): New variable.
4444 (echo_mod_CFLAGS): Likewise.
4445 (echo_mod_LDFLAGS): Likewise.
4446
2cff3677 44472006-09-22 Marco Gerards <marco@gnu.org>
4448
4449 * normal/main.c (get_line): Malloc memory instead of using
4450 preallocated memory. Removed the arguments `cmdline' and
4451 `max_len'. Updated all callers.
4452
6ba4688b 44532006-09-22 Marco Gerards <marco@gnu.org>
4454
4455 * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
4456 (normal_mod_DEPENDENCIES): Likewise.
4457
4458 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
4459 (normal_mod_DEPENDENCIES): Likewise.
4460
4461 * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
4462
e02ac02c 44632006-09-22 Johan Rydberg <jrydberg@gnu.org>
4464
4465 * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
4466 programs.
4467 * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
4468 (normal_mod_DEPENDENCIES): Likewise.
4469 * conf/i386-pc.mk: Regenerate.
4470 * conf/i386-efi.mk: Likewise
4471 * conf/common.mk: Likewise.
4472 * conf/powerpc-ieee1275.mk: Likewise.
4473 * conf/sparc64-ieee1275.mk: Likewise.
4474
8d252e44 44752006-09-22 Robert Millan <rmh@aybabtu.com>
4476
4477 Sync with i386 version.
4478 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
4479 * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
4480
209bf7ac 44812006-09-21 Robert Millan <rmh@aybabtu.com>
4482
4483 Import from GRUB Legacy (lib/device.c):
4484 * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
4485 (init_device_map) [__linux__]: Add support for I2O devices.
4486
6b146090 44872006-09-14 Marco Gerards <marco@gnu.org>
4488
4489 * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
4490 `-melf_i386'.
4491
e38600a8 44922006-09-14 Robert Millan <rmh@aybabtu.com>
2952da5d 4493
4494 * util/i386/pc/grub-install.in: Skip menu.lst when removing
4495 /boot/grub/*.lst.
78fa1790 4496
2952da5d 4497 * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
6b146090 4498
2952da5d 4499 * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
4500 before adding it to device.map.
4501
01b82a64 45022006-08-15 Johan Rydberg <jrydberg@gnu.org>
4503
4504 * genmk.rb: Let GCC generate dependenceies the first time it
4505 compiles a file; using the -MD option.
4506 * conf/common.mk: Regenerate.
4507 * conf/i386-pc.mk: Likewise.
4508 * conf/i386-efi.mk: Likewise.
4509 * conf/powerpc-ieee1275.mk: Likewise.
4510 * conf/sparc64-ieee1275.mk: Likewise.
4511
1064790d 45122006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
4513
4514 Move the prototypes of grub_setjmp and grub_longjmp to
4515 cpu/setjmp.h, so that each architecture may specify different
4516 attributes.
4517
4518 * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
4519 (grub_longjmp): Likewise.
4520 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
4521 (grub_longjmp): Likewise.
4522 * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
4523 (grub_longjmp): Likewise.
4524
4525 * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
4526 [!GRUB_UTIL] (grub_longjmp): Removed.
4527
29dda3ed 45282006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
4529
4530 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
4531 "color!" method does not return any value.
4532
ad2a06ed 45332006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
4534
4535 * include/grub/bitmap.h: New file.
4536
4537 * include/grub/i386/pc/vbeutil.h: Likewise.
4538
4539 * video/bitmap.c: Likewise.
4540
4541 * video/readers/tga.c: Likewise.
4542
4543 * video/i386/pc/vbeutil.c: Likewise.
4544
4545 * commands/videotest.c: Code cleanup and updated to reflect to new
4546 video API.
4547
4548 * term/gfxterm.c: Likewise.
4549
4550 * video/video.c: Likewise.
4551
4552 * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
4553 (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
4554 (bitmap_mod_SOURCES): New entry.
4555 (bitmap_mod_CFLAGS): Likewise.
4556 (bitmap_mod_LDFLAGS): Likewise.
4557 (tga_mod_SOURCES): Likewise.
4558 (tga_mod_CFLAGS): Likewise.
4559 (tga_mod_LDFLAGS): Likewise.
4560
4561 * include/grub/video.h (grub_video_blit_operators): New enum type.
4562 (grub_video_render_target): Changed as forward declaration and moved
4563 actual definition to be video driver specific.
4564 (grub_video_adapter.blit_bitmap): Added blitting operator.
4565 (grub_video_adapter.blit_render_target): Likewise.
4566 (grub_video_blit_bitmap): Likewise.
4567 (grub_video_blit_render_target): Likewise.
4568
4569 * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
4570 driver specific render target definition.
4571 (grub_video_vbe_map_rgba): Added driver internal helper.
4572 (grub_video_vbe_unmap_color): Updated to use
4573 grub_video_i386_vbeblit_info.
4574 (grub_video_vbe_get_video_ptr): Likewise.
4575
4576 * include/grub/i386/pc/vbeblit.h
4577 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
4578 grub_video_i386_vbeblit_info.
4579 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
4580 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
4581 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
4582 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
4583 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
4584 (grub_video_i386_vbeblit_index_index): Likewise.
4585 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
4586 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
4587 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
4588 (grub_video_i386_vbeblit_blend): Added generic blitter for blend
4589 operator.
4590 (grub_video_i386_vbeblit_replace): Added generic blitter for replace
4591 operator.
4592
4593 * video/i386/pc/vbeblit.c: Updated to reflect changes on
4594 include/grub/i386/pc/vbeblit.h.
4595
4596 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
4597 Updated to use grub_video_i386_vbeblit_info.
4598 (grub_video_i386_vbefill_R8G8B8): Likewise.
4599 (grub_video_i386_vbefill_index): Likewise.
4600 (grub_video_i386_vbefill): Added generic filler.
4601
4602 * video/i386/pc/vbefill.c: Updated to reflect changes on
4603 include/grub/i386/pc/vbefill.h.
4604
4605 * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
4606 grub_video_i386_vbeblit_info.
4607 (grub_video_vbe_unmap_color): Likewise.
4608 (grub_video_vbe_blit_glyph): Likewise.
4609 (grub_video_vbe_scroll): Likewise.
4610 (grub_video_vbe_draw_pixel): Removed function.
4611 (grub_video_vbe_get_pixel): Likewise.
4612 (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
4613 updated code to use it.
4614 (common_blitter): Added common blitter for render target and bitmap.
4615 (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
4616 (grub_video_vbe_blit_render_target): Likewise.
4617
bc8c036d 46182006-07-30 Johan Rydberg <jrydberg@gnu.org>
4619
4620 * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
4621 is in text mode if there is no console control protocol instance
4622 available.
4623
684a8eff 46242006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
4625
4626 * include/grub/video.h: Code cleanup.
4627
4628 * include/grub/i386/pc/vbe.h: Likewise.
4629
4630 * video/i386/pc/vbe.c: Likewise.
4631
4632 * video/i386/pc/vbeblit.c: Likewise.
4633
4634 * video/i386/pc/vbefill.c: Likewise.
4635
4636 * video/video.c: Likewise. Also added more comments.
4637
5915059b 46382006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
4639
4640 * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
4641 (struct grub_biosdisk_dap): Likewise.
4642
4643 * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected
4644 linkage settings for all functions.
4645
90ce5d56 46462006-07-12 Marco Gerards <marco@gnu.org>
4647
4648 * configure.ac (--enable-mm-debug): Fix typo.
4649
4650 * genkernsyms.sh.in: Use proper quoting for `CC'.
4651
43e7f879 46522006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
4653
4654 * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
4655 (normal_mod_ASFLAGS): Remove "-m32".
4656
4889bdec 46572006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
4658
4659 * util/misc.c: Include config.h.
4660 [!HAVE_MEMALIGN]: Do not include malloc.h.
4661 (grub_memalign): Use posix_memalign, if present. Then, use
4662 memalign, if present. Otherwise, emit an error.
4663
4664 * util/grub-emu.c: Do not include malloc.h.
4665
4666 * include/grub/util/misc.h: Include unistd.h. This is required for
4667 FreeBSD, because off_t is defined in unistd.h. Reported by Harley
4668 D. Eades III <hde@foobar-qux.org>.
4669
4670 * configure.ac (AC_GNU_SOURCE): Added.
4671 (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
4672 type.
4673
fd39d4da 46742006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
4675
4676 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
4677 ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
4678
b786f3b5 46792006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
4680
4681 * include/grub/types.h (grub_host_addr_t): Rename to
4682 grub_target_addr_t.
4683 (grub_host_off_t): Rename to grub_target_off_t.
4684 (grub_host_size_t): Rename to grub_target_size_t.
4685 (grub_host_ssize_t): Rename to grub_target_ssize_t.
4686 Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
4687
4688 * include/grub/kernel.h (struct grub_module_header): Change type
4689 of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
4690 (grub_module_info): Likewise.
4691
051988bb 46922006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
4693
4694 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
4695 of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
4696 Velazquez <jesus.velazquez@gmail.com>.
4697
deae281b 46982006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
4699
4700 Count partitions from 1 instead of 0 in the string representation
4701 of partitions. Still use 0-based internally.
4702
4703 * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
4704 (sun_partition_map_iterate): Use grub_partition_t instead of
4705 struct grub_partition *. Cast DESC->START_CYLINDER to
4706 grub_uint64_t after converting the endian.
4707 (sun_partition_map_probe): Subtract 1 for PARTNUM.
4708 (sun_partition_map_get_name): Add 1 to P->INDEX.
4709
4710 * partmap/pc.c (grub_partition_parse): Subtract 1 for
4711 PCDATA->DOS_PART.
4712 (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
4713
4714 * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
4715 zero instead of one.
4716 (gpt_partition_map_probe): Subtract 1 for PARTNUM.
4717 (gpt_partition_map_get_name): Add 1 into P->INDEX.
4718
4719 * partmap/apple.c (apple_partition_map_iterate): Change the type
4720 of POS to unsigned.
4721 (apple_partition_map_probe): Subtract 1 for PARTNUM.
4722 (apple_partition_map_get_name): Add 1 into P->INDEX.
4723
4724 * partmap/amiga.c (amiga_partition_map_iterate): Change the type
4725 of POS to unsigned.
4726 (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
4727 calculate the offset of a partition.
4728 (amiga_partition_map_probe): Subtract 1 for PARTNUM.
4729 (amiga_partition_map_get_name): Add 1 into P->INDEX.
4730
4731 * partmap/acorn.c (acorn_partition_map_find): Change the type of
4732 SECTOR to grub_disk_addr_t.
4733 (acorn_partition_map_iterate): Likewise.
4734 (acorn_partition_map_probe): Subtract 1 for PARTNUM.
4735 Change the type of SECTOR to grub_disk_addr_t. Declare P on the
4736 top.
4737 (acorn_partition_map_get_name): Add 1 into P->INDEX.
4738
4739 * kern/i386/pc/init.c (make_install_device): Add 1 into
4740 GRUB_INSTALL_DOS_PART.
4741
4742 * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
4743 conditional.
4744
524a1e6a 47452006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
4746
4747 Clean up the code to support 64-bit addressing in disks and
4748 files. This change is not enough for filesystems yet.
4749
4750 * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
4751 type of "start" to grub_uint64_t.
4752 (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
4753 grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
4754 save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
4755 convert addresses.
4756
4757 * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
4758 to grub_disk_addr_t.
4759
4760 * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
4761 string.
4762
4763 * partmap/pc.c (pc_partition_map_iterate): Likewise.
4764
4765 * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
4766 to char *.
4767
4768 * normal/script.c (grub_script_parse): Remove unused MEMFREE.
4769
4770 * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
4771
4772 * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
4773
4774 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
4775 to grub_off_t, to detect an error from grub_file_seek.
4776 (grub_multiboot_load_elf32): Likewise.
4777
4778 * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
4779 maximum unsigned long value when an overflow is detected.
4780 (grub_strtoull): New function.
4781 (grub_divmod64): Likewise.
4782 (grub_lltoa): use grub_divmod64.
4783
4784 * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
4785 grub_disk_addr_t.
4786 (grub_fs_blocklist_open): Increase P if P is not NULL to advance
4787 the pointer to next character. Use grub_strtoull instead of
4788 grub_strtoul.
4789 (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
4790 SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
4791 respectively.
4792
4793 * kern/file.c (grub_file_read): Prevent an oveflow of LEN, as the
4794 return value is signed.
4795 (grub_file_seek): Change the type of OLD to grub_off_t. Do not
4796 test if OFFSET is less than zero, as OFFSET is unsigned now.
4797
4798 * kern/disk.c (struct grub_disk_cache): Change the type of
4799 "sector" to grub_disk_addr_t.
4800 (grub_disk_cache_get_index): Change the type of SECTOR to
4801 grub_disk_addr_t. Calculate the hash with SECTOR casted to
4802 unsigned after shifting.
4803 (grub_disk_cache_invalidate): Change the type of SECTOR to
4804 grub_disk_addr_t.
4805 (grub_disk_cache_unlock): Likewise.
4806 (grub_disk_cache_store): Likewise.
4807 (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
4808 START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
4809 grub_disk_addr_t and grub_uint64_t, respectively.
4810 (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
4811 body, as the value of OFFSET is tweaked by
4812 grub_disk_check_range. Change the types of START_SECTOR, LEN and
4813 POS to grub_disk_addr_t, grub_size_t and grub_size_t,
4814 respectively.
4815 (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
4816 body, as the value of OFFSET is tweaked by
4817 grub_disk_check_range. Change the types of LEN and N to
4818 grub_size_t.
4819
4820 * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
4821 and "saved_offset" to grub_off_t.
4822 (test_header): Cast BUF to char *.
4823 (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
4824 to char *.
4825 (grub_gzio_read): Change the types of OFFSET and SIZE to
4826 grub_off_t and grub_size_t, respectively.
4827
4828 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
4829 Removed.
4830 (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
4831 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
4832 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
4833 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
4834 (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
4835
4836 * include/grub/types.h (grub_off_t): Unconditionally set to
4837 grub_uint64_t.
4838 (grub_disk_addr_t): Changed to grub_uint64_t.
4839
4840 * include/grub/partition.h (struct grub_partition): Change the
4841 types of "start", "len" and "offset" to grub_disk_addr_t,
4842 grub_uint64_t and grub_disk_addr_t, respectively.
4843 (grub_partition_get_start): Return grub_disk_addr_t.
4844 (grub_partition_get_len): Return grub_uint64_t.
4845
4846 * include/grub/misc.h (grub_strtoull): New prototype.
4847 (grub_divmod64): Likewise.
4848
4849 * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
4850 of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
4851 grub_off_t, respectively.
4852 All callers and references changed.
4853
4854 * include/grub/fs.h (struct grub_fs): Change the type of LEN to
4855 grub_size_t in "read".
4856 All callers and references changed.
4857
4858 * include/grub/file.h (struct grub_file): Change the types of
4859 "offset" and "size" to grub_off_t and grub_off_t,
4860 respectively. Change the type of SECTOR to grub_disk_addr_t in
4861 "read_hook".
4862 (grub_file_read): Change the type of LEN to grub_size_t.
4863 (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
4864 grub_off_t.
4865 (grub_file_size): Return grub_off_t.
4866 (grub_file_tell): Likewise.
4867 All callers and references changed.
4868
4869 * include/grub/disk.h (struct grub_disk_dev): Change the types of
4870 SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
4871 "write".
4872 (struct grub_disk): Change the type of "total_sectors" to
4873 grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
4874 "read_hook".
4875 (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
4876 grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
4877 (grub_disk_write): Likewise.
4878 All callers and references changed.
4879
4880 * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
4881 char * for grub_strncmp to silence gcc.
4882 (grub_iso9660_mount): Likewise.
4883 (grub_iso9660_mount): Likewise.
4884 (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
4885 return statement.
4886 (grub_iso9660_iterate_dir): Likewise.
4887 (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
4888
4889 * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
4890 LEN to grub_disk_addr_t and grub_size_t, respectively.
4891
4892 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
4893
4894 * fs/jfs.c (grub_jfs_read_file): Likewise.
4895
4896 * fs/minix.c (grub_jfs_read_file): Likewise.
4897
4898 * fs/sfs.c (grub_jfs_read_file): Likewise.
4899
4900 * fs/ufs.c (grub_jfs_read_file): Likewise.
4901
4902 * fs/xfs.c (grub_jfs_read_file): Likewise.
4903
4904 * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
4905 and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
4906 respectively.
4907
4908 * fs/ext2.c (grub_ext2_read_block): When an error happens, set
4909 BLKNR to -1 instead of returning GRUB_ERRNO.
4910 (grub_ext2_read_file): Change the types of SECTOR and
4911 LEN to grub_disk_addr_t and grub_size_t, respectively.
4912
4913 * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
4914 LEN to grub_disk_addr_t and grub_size_t, respectively.
4915
4916 * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
4917 grub_file_read.
4918
4919 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
4920 string. Do not cast SECTOR explicitly.
4921
4922 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
4923 TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
4924 (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
4925 grub_disk_addr_t and grub_size_t, respectively. If the sector is
4926 over 2TB and LBA mode is not supported, raise an error.
4927 (get_safe_sectors): New function.
4928 (grub_biosdisk_read): Use get_safe_sectors.
4929 (grub_biosdisk_write): Likewise.
4930
4931 * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
4932 (grub_efidisk_write): Likewise.
4933
4934 * disk/loopback.c (delete_loopback): Cosmetic changes.
4935 (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
4936 correctly.
4937 (grub_loopback_open): Likewise.
4938 (grub_loopback_read): Likewise. Also, change the type of POS to
4939 grub_off_t, and fix the usage of grub_memset.
4940
4941 * commands/i386/pc/play.c: Include grub/machine/time.h.
4942
4943 * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
4944 print FILE->SIZE.
4945
4946 * commands/configfile.c: Include grub/env.h.
4947
4948 * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
4949 GRUB_ERRNO directly instead. Change the type of POS to
4950 grub_off_t. Follow the coding standard.
4951
4952 * commands/blocklist.c: Include grub/partition.h.
4953 (grub_cmd_blocklist): Return an error if the underlying device is
4954 not a disk. Take the starting sector of a partition into account,
4955 if a partition is used.
4956
4957 * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
4958 a length field.
4959 (lba_mode): Support 64-bit addresses.
4960 (chs_mode): Likewise.
4961 (copy_buffer): Adapted to the new offsets of a length field and a
4962 segment field.
4963 (blocklist_default_start): Allocate 64-bit space.
4964
4965 * boot/i386/pc/boot.S (force_lba): Removed.
4966 (boot_drive): Moved to under KERNEL_SECTOR.
4967 (kernel_sector): Moved to under KENREL_SEGMENT. Allocate 64-bit
4968 space.
4969 (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
4970 is useless.
4971 (lba_mode): Refactored to support a 64-bit address. More size
4972 optimization.
4973 (setup_sectors): Likewise.
4974
53af98ad 49752006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
4976
4977 * DISTLIST: Added include/grub/i386/linux.h. Removed
4978 include/grub/i386/pc/linux.h
4979
4980 * configure.ac (AC_INIT): Bumped to 1.94.
4981
4982 * config.guess: Updated from gnulib.
4983 * config.sub: Likewise.
4984 * install-sh: Likewise.
4985 * mkinstalldirs: Likewise.
4986
b4c1940a 49872006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
4988
4989 * conf/common.rmk (grub_modules_init.lst): Depended on
4990 grub_emu_SOURCES, excluding grub_emu_init.c, instead of
4991 MODSRCFILES.
4992
4993 * genmk.rb (PModule::rule): Reverted the previous change.
4994
cfca1cfd 49952006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
4996
4997 * conf/common.rmk (grub_modules_init.lst): Depends on
4998 $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
4999 that the target does not exist before producing.
5000 (grub_modules_init.h): Remove the target before generating.
5001 (grub_emu_init.c): Likewise.
5002
5003 * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
5004
aa6d7826 50052006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
5006
5007 * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
5008 for the target-specific tests. Make sure that we also have the
5009 up-to-date target variables for those tests.
5010
26c607b9 50112006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
5012
5013 * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
5014 (PModule::rule): Likewise.
5015
0162321a 50162006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
5017
5018 * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
5019 TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
5020 target-specific flags should be prefixed.
5021 (PModule::rule): Likewise.
5022
6c826348 50232006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
5024
5025 * configure.ac (CMP): Check if cmp is available explicitly.
5026
b977bf01 50272006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
5028
5029 * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
5030 (target_cpu): New variable.
5031 (pkglibdir): Use target_cpu instead of host_cpu.
5032
5033 * util/i386/pc/grub-install.in (host_cpu): Removed.
5034 (target_cpu): New variable.
5035 (pkglibdir): Use target_cpu instead of host_cpu.
5036
5037 * util/genmoddep.c: Removed.
5038
5039 * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
5040 instead of GRUB_HOST_SIZEOF_VOID_P.
5041 * kern/dl.c: Likewise.
5042
5043 * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
5044 ...
5045 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
5046 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
5047 (GRUB_TARGET_SIZEOF_LONG): ... this.
5048 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
5049 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
5050 * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
5051 to ...
5052 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
5053 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
5054 (GRUB_TARGET_SIZEOF_LONG): ... this.
5055 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
5056 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
5057 * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
5058 to ...
5059 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
5060 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
5061 (GRUB_TARGET_SIZEOF_LONG): ... this.
5062 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
5063 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
5064
5065 * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
5066 GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
5067 [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
5068 instead of GRUB_HOST_SIZEOF_LONG.
5069 [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
5070 GRUB_HOST_WORDS_BIGENDIAN to define or undefine
5071 GRUB_CPU_WORDS_BIGENDIAN.
5072 Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
5073 define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
5074 grub_host_ssize_t.
5075
5076 * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
5077 (genmoddep_SOURCES): Likewise.
5078 * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
5079 (genmoddep_SOURCES): Likewise.
5080 * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
5081 (genmoddep_SOURCES): Likewise.
5082 * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
5083 Likewise.
5084 (genmoddep_SOURCES): Likewise.
5085
5086 * genmoddep.awk: New file.
5087
5088 * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
5089 TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
5090 CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
5091 (PModule::rule): Likewise.
5092 (Program::rule): Likewise.
5093 (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
5094 BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
5095 respectively.
5096
5097 * configure.ac: Rewritten intensively to use host and target
5098 instead of build and host, respectively.
5099
5100 * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
5101 (host_cpu): Removed.
5102 (target_cpu): New variable.
5103 (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
5104 (BUILD_CC): Removed.
5105 (BUILD_CFLAGS): Likewise.
5106 (BUILD_CPPFLAGS): Likewise.
5107 (TARGET_CC): New variable.
5108 (TARGET_CFLAGS): Likewise.
5109 (TARGET_CPPFLAGS): Likewise.
5110 (TARGET_LDFLAGS): Likewise.
5111 (AWK): Likewise.
5112 (include): Use target_cpu instead of host_cpu.
5113 (moddep.lst:): Use genmoddep.awk instead of genmoddep.
5114
5115 * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
5116
f09771a1 51172006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
5118
5119 * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
5120 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed
5121 field 'false' to 'exec_on_false'.
5122 (grub_script_create_cmdif): Renamed argument names to reflect above
5123 changes.
5124
5125 * normal/execute.c (grub_script_execute_cmdif): Likewise.
5126
5127 * normal/script.c (grub_script_create_cmdif): Likewise.
5128
118f4fb3 51292006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
5130
5131 * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
5132 top.
5133 (grub_hfsplus_btree_recptr): Likewise.
5134 (grub_hfsplus_find_block): Do not take RETRY any longer. Use
5135 FILEBLOCK both to pass a block number and store next block
5136 number.
5137 (grub_hfsplus_read_block): Rewritten heavily to support an extent
5138 overflow file correctly. Specify errors appropriately, because
5139 fshelp expects that GRUB_ERRNO is set when fails. Reuse
5140 grub_hfsplus_btree_recptr to get the pointer to a found key.
5141 (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
5142 is found.
5143
5144 * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
5145 linux.mod.
5146 (_linux_mod_SOURCES): New variable.
5147 (_linux_mod_CFLAGS): Likewise.
5148 (_linux_mod_LDFLAGS): Likewise.
5149 (linux_mod_SOURCES): Likewise.
5150 (linux_mod_CFLAGS): Likewise.
5151 (linux_mod_LDFLAGS): Likewise.
5152
5153 * DISTLIST: Added loader/i386/efi/linux.c,
5154 loader/i386/efi/linux_normal.c and
5155 include/grub/i386/efi/loader.h.
5156
5157 * loader/i386/efi/linux.c: New file.
5158 * loader/i386/efi/linux_normal.c: Likewise.
5159 * include/grub/i386/efi/loader.h: Likewise.
5160
89a7d726 51612006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
5162
5163 * commands/blocklist.c: New file.
5164
5165 * DISTLIST: Added commands/blocklist.c.
5166
5167 * term/efi/console.c (grub_console_highlight_color): Use a lighter
43b553ad 5168 color for the background, and a darker color for the foreground.
89a7d726 5169 (grub_console_checkkey): Return READ_KEY.
5170 (grub_console_cls): Set the background to
5171 GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
5172
5173 * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
5174
5175 * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
5176 the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
5177
5178 * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
5179 prototype.
5180
5181 * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
5182 BG. The spec is wrong again.
5183
5184 * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
5185 prototype.
5186 [GRUB_UTIL] (grub_blocklist_fini): Likewise.
5187
5188 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
5189 commands/blocklist.c.
5190 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5191
5192 * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
5193 (blocklist_mod_SOURCES): New variable.
5194 (blocklist_mod_CFLAGS): Likewise.
5195 (blocklist_mod_LDFLAGS): Likewise.
5196
75c8f258 51972006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
5198
5199 * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
5200 duplication.
5201 (lba_mode): Use %eax more intensively to reduce the code size.
5202
da2eb181 52032006-05-20 Marco Gerards <marco@gnu.org>
5204
5205 * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
5206
5207 * normal/parser.y (commandblock): Defined as <cmd>. A subroutine
5208 for `menuentry'.
5209 (script): Accept leading newlines.
5210 (newlines): New rule to describe 0 or more newlines.
5211 (commands): Accept `command' with trailing newline. Fixed the
5212 order in which arguments were passed to `grub_script_add_cmd'.
5213 Accept commands separated by newlines.
5214 (function): Changed to accept newlines.
5215 (menuentry) Rewritten.
5216
5217 * normal/script.c (grub_script_create_cmdmenu): Add new entries in
5218 front of the list, instead of to the end.
5219
577b4050 52202006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
5221
5222 * util/i386/pc/grub-install.in (bindir): New variable.
5223 (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
5224 Shaver <lbgwjl@gmail.com>.
5225
0d6e1189 52262006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
5227
5228 * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
5229 grub/machine/linux.h
5230 * loader/i386/pc/linux.c: Likewise.
5231
5232 * include/grub/i386/pc/linux.h: Moved to ...
5233 * include/grub/i386/linux.h: ... here.
5234
5235 * include/grub/i386/linux.h (struct linux_kernel_params): New
5236 struct.
5237
31b86e9f 52382006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
5239
5240 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
5241 checking.
5242 (grub_video_vbe_blit_glyph): Likewise.
5243 (grub_video_vbe_blit_bitmap): Likewise.
5244 (grub_video_vbe_blit_render_target): Likewise.
5245
83b984de 52462006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
5247
5248 * configure.ac (--with-platform): Properly quote the square
5249 brackets.
5250
5f0413bd 52512006-05-08 Marco Gerards <marco@gnu.org>
5252
5253 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
5254 this...
5255 (kernel_elf_HEADERS): ...to this. Updated all users.
5256 (grubof_symlist.c): Renamed from this...
5257 (kernel_elf_symlist.c): ...to this. Updated all users.
5258 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
5259 (grubof_SOURCES): Renamed from this...
5260 (kernel_elf_SOURCES): ...to this.
5261 (grubof_HEADERS): Renamed from this...
5262 (kernel_elf_HEADERS): ...to this.
5263 (grubof_CFLAGS): Renamed from this...
5264 (kernel_elf_CFLAGS): ...to this.
5265 (grubof_ASFLAGS): Renamed from this...
5266 (kernel_elf_ASFLAGS): ...to this.
5267 (grubof_LDFLAGS): Renamed from this...
5268 (kernel_elf_LDFLAGS): ...to this.
5269
5270 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
5271 this...
5272 (kernel_elf_HEADERS): ...to this. Updated all users.
5273 (grubof_symlist.c): Renamed from this...
5274 (kernel_elf_symlist.c): ...to this. Updated all users.
5275 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
5276 (grubof_SOURCES): Renamed from this...
5277 (kernel_elf_SOURCES): ...to this.
5278 (grubof_HEADERS): Renamed from this...
5279 (kernel_elf_HEADERS): ...to this.
5280 (grubof_CFLAGS): Renamed from this...
5281 (kernel_elf_CFLAGS): ...to this.
5282 (grubof_ASFLAGS): Renamed from this...
5283 (kernel_elf_ASFLAGS): ...to this.
5284 (grubof_LDFLAGS): Renamed from this...
5285 (kernel_elf_LDFLAGS): ...to this.
5286
5287 * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
5288 `kernel.elf' instead of `grubof'.
5289
05568c2e 52902006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
5291
5292 Add --with-platform to configure. Use pkglibdir instead of
5293 pkgdatadir. This is reported by Roger Leigh.
5294
5295 * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
5296 (host_vendor): Likewise.
5297 (host_os): Likewise.
5298 (pkgdatadir): Likewise.
5299 (platform): New variable.
5300 (pkglibdir): Likewise.
5301 Use PKGLIBDIR instead of PKGDATADIR.
5302
5303 * util/i386/pc/grub-install.in (datadir): Removed.
5304 (host_vendor): Likewise.
5305 (host_os): Likewise.
5306 (pkgdatadir): Likewise.
5307 (platform): New variable.
5308 (pkglibdir): Likewise.
5309 Use PKGLIBDIR instead of PKGDATADIR.
5310
5311 * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
5312 instead of GRUB_DATADIR.
5313 (main): Likewise.
5314 * util/i386/pc/grub-mkimage.c (usage): Likewise.
5315 (main): Likewise.
5316 * util/i386/efi/grub-mkimage.c (usage): Likewise.
5317 (main): Likewise.
5318
5319 * configure.ac (--with-platform): New option.
5320 Use PLATFORM instead of HOST_VENDOR to specify a platform.
5321
5322 * Makefile.in: Include a makefile based on PLATFORM instead of
5323 HOST_VENDOR.
5324 (pkgdatadir): Not appended by the machine type.
5325 (pkglibdir): Appended by the machine type.
5326 (host_vendor): Removed.
5327 (platform): New variable.
5328 (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
5329 (install-local): Use PKGLIBDIR instead of PKGDATADIR.
5330 (uninstall): Likewise.
5331
4e93851c 53322006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
5333
5334 Use the environment context in the menu. Remove the commands
5335 "default" and "timeout", and use variables instead.
5336
5337 * normal/menu.c: Include grub/env.h.
5338 (print_entry): Cast TITLE to silence gcc.
5339 (get_timeout): New function.
5340 (set_timeout): Likewise.
5341 (get_entry_number): Likewise.
5342 (run_menu): Use a default entry, a fallback entry and a timeout
5343 in the environment variables "default", "fallback" and
5344 "timeout". Also, tweak the default entry if it is not within the
5345 current menu entries.
5346 (grub_menu_run): Use a fallback entry in the environment variable
5347 "fallback".
5348
5349 * normal/main.c (read_config_file): Do not initialize
5350 NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
5351 NEWMENU->TIMEOUT.
5352 (grub_normal_execute): Use a data slot to store the menu.
5353
5354 * include/grub/normal.h (struct grub_menu): Removed default_entry,
5355 fallback_entry and timeout.
5356 (struct grub_menu_list): Removed.
5357 (grub_menu_list_t): Likewise.
5358 (struct grub_context): Likewise.
5359 (grub_context_t): Likewise.
5360 (grub_context_get): Likewise.
5361 (grub_context_get_current_menu): Likewise.
5362 (grub_context_push_menu): Likewise.
5363 (grub_context_pop_menu): Likewise.
5364 (grub_default_init): Likewise.
5365 (grub_default_fini): Likewise.
5366 (grub_timeout_init): Likewise.
5367 (grub_timeout_fini): Likewise.
5368
5369 * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
5370 and timeout.mod.
5371 (normal_mod_SOURCES): Removed normal/context.c.
5372
5373 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
5374 commands/default.c, commands/timeout.c and normal/context.c.
5375 (normal_mod_SOURCES): Removed normal/context.c.
5376
5377 * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
5378 commands/timeout.c and normal/context.c.
5379 (normal_mod_SOURCES): Removed normal/context.c.
5380
5381 * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
5382 commands/default.c, commands/timeout.c and normal/context.c.
5383 (normal_mod_SOURCES): Removed normal/context.c.
5384
5385 * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
5386 timeout.mod.
5387 (default_mod_SOURCES): Removed.
5388 (default_mod_CFLAGS): Likewise.
5389 (default_mod_LDFLAGS): Likewise.
5390 (timeout_mod_SOURCES): Removed.
5391 (timeout_mod_CFLAGS): Likewise.
5392 (timeout_mod_LDFLAGS): Likewise.
5393
5394 * DISTLIST: Removed commands/default.c, commands/timeout.c and
5395 normal/context.c.
5396
5397 * commands/default.c: Removed.
5398 * commands/timeout.c: Likewise.
5399 * normal/context.c: Likewise.
5400
1eb9cc1d 54012006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
5402
5403 * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
5404
385bd9c1 54052006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
5406
5407 * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
5408 "next" to "prev" for readability.
5409 (struct grub_env_sorted_var): New struct.
5410 (grub_env_context): Renamed to ...
5411 (initial_context): ... this.
5412 (grub_env_var_context): Renamed to ...
5413 (current_context): ... this.
5414 (grub_env_find): Look only at CURRENT_CONTEXT.
5415 (grub_env_context_open): Rewritten to copy exported variables from
5416 previous context.
5417 (grub_env_context_close): Rewritten according to the new
5418 scheme. Also, add an assertion to prevent the initial context from
5419 removed.
5420 (grub_env_insert): Removed the code for the sorted list.
5421 (grub_env_remove): Likewise.
5422 (grub_env_export): Simply mark the variable with
5423 GRUB_ENV_VAR_GLOBAL.
5424 (grub_env_set): A cosmetic change for naming consistency.
5425 (grub_env_get): Likewise.
5426 (grub_env_unset): Likewise.
5427 (grub_env_iterate): Rewritten to sort variables within this
5428 function.
5429 (grub_register_variable_hook): Fixed for naming consistency. Call
5430 grub_env_find again, only if NAME is not found at the first time.
5431 (mangle_data_slot_name): New function.
5432 (grub_env_set_data_slot): Likewise.
5433 (grub_env_get_data_slot): Likewise.
5434 (grub_env_unset_data_slot): Likewise.
5435
5436 * include/grub/env.h (grub_env_var_type): New enum.
5437 (GRUB_ENV_VAR_LOCAL): New constant.
5438 (GRUB_ENV_VAR_GLOBAL): Likewise.
5439 (GRUB_ENV_VAR_DATA): Likewise.
5440 (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
5441 "type".
5442 (grub_env_set): Replace VAR with NAME for consistency.
5443 (grub_register_variable_hook): Likewise.
5444 (grub_env_export): Specify the name of the argument.
5445 (grub_env_set_data_slot): New prototype.
5446 (grub_env_get_data_slot): Likewise.
5447 (grub_env_unset_data_slot): Likewise.
5448
7f362539 54492006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
5450
5451 Extend the loader so that GRUB can accept a loader which comes
5452 back to GRUB when a loaded image exits. Also, this change adds
5453 support for a chainloader on EFI.
5454
5455 * term/efi/console.c: Include grub/misc.h.
5456 (grub_console_checkkey): Display a scan code on the top for
5457 debugging. This will be removed once the EFI port gets stable.
5458 Correct the scan code mapping.
5459
5460 * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
5461 allocate memory from larger regions, in order to reduce the number
5462 of allocated regions. Otherwise, the MacOSX loader panics.
5463 (filter_memory_map): Avoid less than 1MB for compatibility with
5464 other loaders.
5465 (add_memory_regions): Allocate from the tail of a region, if
5466 possible, to avoid allocating a region near to 1MB, for the MacOSX
5467 loader.
5468
5469 * kern/efi/init.c (grub_efi_set_prefix): Specify
5470 GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
5471
5472 * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
5473 argument IMAGE_HANDLE and specify it to get a loaded image.
5474 (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
5475 grub_efi_get_loaded_image.
5476 (grub_efi_get_filename): Divide the legnth by the size of
5477 grub_efi_char16_t.
5478 (grub_efi_get_device_path): New function.
5479 (grub_efi_print_device_path): Print End Device Path nodes. Divide
5480 the length by the size of grub_efi_char16_t for a file path device
5481 path node.
5482
5483 * kern/loader.c (grub_loader_noreturn): New variable.
5484 (grub_loader_set): Accept a new argument NORETURN. Set
5485 GRUB_LOADER_NORETURN to NORETURN.
5486 All callers changed.
5487 (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
5488 grub_machine_fini.
5489
5490 * include/grub/efi/efi.h (grub_efi_get_device_path): New
5491 prototype.
5492 (grub_efi_get_loaded_image): Take an argument to specify an image
5493 handle.
5494
5495 * include/grub/loader.h (grub_loader_set): Added one more argument
5496 NORETURN.
5497
5498 * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
5499 instead of grub_efi_open_protocol.
5500 (grub_efidisk_get_device_name): Likewise.
5501 (grub_efidisk_close): Print a newline.
5502 (grub_efidisk_get_device_handle): Fixed to use
5503 GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
5504 GRUB_EFI_DEVICE_PATH_TYPE.
5505
5506 * disk/efi/efidisk.c (device_path_guid): Moved to ...
5507 * kern/efi/efi.c (device_path_guid): ... here.
5508
5509 * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
5510 chain.mod.
5511 (kernel_mod_HEADERS): Added efi/disk.h.
5512 (_chain_mod_SOURCES): New variable.
5513 (_chain_mod_CFLAGS): Likewise.
5514 (_chain_mod_LDFLAGS): Likewise.
5515 (chain_mod_SOURCES): Likewise.
5516 (chain_mod_CFLAGS): Likewise.
5517 (chain_mod_LDFLAGS): Likewise.
5518
5519 * DISTLIST: Added include/grub/efi/chainloader.h,
5520 loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
5521
5522 * include/grub/efi/chainloader.h: New file.
5523 * loader/efi/chainloader.c: Likewise.
5524 * loader/efi/chainloader_normal.c: Likewise.
5525
c0111d6e 55262006-04-30 Marco Gerards <marco@gnu.org>
5527
5528 * commands/configfile.c (grub_cmd_source): New function.
5529 (GRUB_MOD_INIT): Register the commands `source' and `.'.
5530 (GRUB_MOD_FINI): De-register the commands `source' and `.'.
5531
df5341da 55322006-04-30 Marco Gerards <marco@gnu.org>
5533
5534 * normal/execute.c (grub_script_execute_cmd): Change the return
5535 type to `grub_err_t'. Correctly return the error.
5536 (grub_script_execute_cmdline): In case a command line is not a
5537 command or a function, try to interpret it as an assignment.
5538
f85934bd 55392006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
5540
5541 * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
5542 (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
5543 skip a node whose name is obviously invalid as UTF-16,
5544 i.e. contains a NUL character. Stop the iteration when the last
5545 directory entry is found. Instead of using the return value of
5546 grub_hfsplus_btree_iterate_node, store the value in RET and use
5547 it, because the iterator can be stopped by the last directory
5548 entry.
5549
8f8a2cf8 55502006-04-30 Marco Gerards <marco@gnu.org>
5551
5552 * include/grub/env.h (grub_env_export): New prototype. Reported
5553 by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
5554
a27e84ce 55552006-04-30 Marco Gerards <marco@gnu.org>
5556
5557 * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
5558 size of the extents in a catalog file record.
5559
eaef0553 55602006-04-29 Marco Gerards <marco@gnu.org>
5561
5562 * commands/configfile.c (grub_cmd_configfile): Execute the
5563 configfile within its own context.
5564
5565 * include/grub/env.h (grub_env_context_open): New prototype.
5566 (grub_env_context_close): Likewise.
5567
5568 * kern/env.c (grub_env): Removed.
5569 (grub_env_sorted): Likewise.
5570 (grub_env_context): New variable.
5571 (grub_env_var_context): Likewise.
5572 (grub_env_find): Search both the active context and the global
5573 context.
5574 (grub_env_context_open): New function.
5575 (grub_env_context_close): Likewise.
5576 (grub_env_insert): Likewise.
5577 (grub_env_remove): Likewise.
5578 (grub_env_export): Likewise.
5579 (grub_env_set): Changed to use helper functions to avoid code
5580 duplication.
5581 (grub_env_iterate): Rewritten so both the current context and the
5582 global context are being used.
5583
5584 * normal/command.c (export_command): New function.
5585 (grub_command_init): Register the `export' function.
5586
7b455f4d 55872006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
5588
5589 * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
5590 explicitly to suppress gcc's warnings.
5591 * fs/fat.c (grub_fat_find_dir): Likewise.
5592 (grub_fat_label): Likewise.
5593 * fs/xfs.c (grub_xfs_read_inode): Likewise.
5594 (grub_xfs_mount): Likewise.
5595 (grub_xfs_label): Likewise.
5596 * fs/affs.c (grub_affs_mount): Likewise.
5597 (grub_affs_label): Likewise.
5598 (grub_affs_iterate_dir): Likewise.
5599 * fs/sfs.c (grub_sfs_mount): Likewise.
5600 (grub_sfs_iterate_dir): Likewise.
5601 * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
5602 * fs/hfs.c (grub_hfs_mount): Likewise.
5603 (grub_hfs_cmp_catkeys): Likewise.
5604 (grub_hfs_find_dir): Likewise.
5605 (grub_hfs_dir): Likewise.
5606 (grub_hfs_label): Likewise.
5607 * fs/jfs.c (grub_jfs_mount): Likewise.
5608 (grub_jfs_opendir): Likewise.
5609 (grub_jfs_getent): Likewise.
5610 (grub_jfs_lookup_symlink): Likewise.
5611 (grub_jfs_label): Likewise.
5612 * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
5613 (grub_hfsplus_iterate_dir): Likewise.
5614 (grub_hfsplus_btree_iterate_node): Made static.
5615
5616 * util/grub-emu.c (prefix): New variable.
5617 (grub_machine_set_prefix): New function.
5618 (main): Do not set the environment variable "prefix" here. Only
5619 set PREFIX, which is used later by grub_machine_set_prefix.
5620
5621 * include/grub/video.h: Do not include grub/symbol.h.
5622 (grub_video_register): Not exported. This symbol is not defined in
5623 the kernel.
5624 (grub_video_unregister): Likewise.
5625 (grub_video_iterate): Likewise.
5626 (grub_video_setup): Likewise.
5627 (grub_video_restore): Likewise.
5628 (grub_video_get_info): Likewise.
5629 (grub_video_get_blit_format): Likewise.
5630 (grub_video_set_palette): Likewise.
5631 (grub_video_get_palette): Likewise.
5632 (grub_video_set_viewport): Likewise.
5633 (grub_video_get_viewport): Likewise.
5634 (grub_video_map_color): Likewise.
5635 (grub_video_map_rgb): Likewise.
5636 (grub_video_map_rgba): Likewise.
5637 (grub_video_fill_rect): Likewise.
5638 (grub_video_blit_glyph): Likewise.
5639 (grub_video_blit_bitmap): Likewise.
5640 (grub_video_blit_render_target): Likewise.
5641 (grub_video_scroll): Likewise.
5642 (grub_video_swap_buffers): Likewise.
5643 (grub_video_create_render_target): Likewise.
5644 (grub_video_delete_render_target): Likewise.
5645 (grub_video_set_active_render_target): Likewise.
5646
5647 * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
5648 Undefined.
5649 [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
5650
5651 * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
5652 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
5653 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
5654 instead of $(srcdir)/genkernsyms.sh.
5655
5656 * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
5657 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
5658 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
5659 instead of $(srcdir)/genkernsyms.sh.
5660
5661 * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
5662 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
5663 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
5664 instead of $(srcdir)/genkernsyms.sh.
5665
5666 * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
5667 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
5668 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
5669 instead of $(srcdir)/genkernsyms.sh.
5670
5671 * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
5672 genkernsyms.sh.
5673
5674 * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
5675 genkernsyms.sh.
5676 (gensymlist.sh): New target.
5677 (genkernsyms.sh): Likewise.
5678
5679 * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
5680 genkernsyms.sh.in and gensymlist.sh.in.
5681
5682 * genkernsyms.sh: Removed.
5683 * gensymlist.sh: Likewise.
5684
5685 * genkernsyms.sh.in: New file.
5686 * gensymlist.sh.in: Likewise.
5687
1885bb27 56882006-04-25 Hollis Blanchard <hollis@penguinppc.org>
5689
5690 * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
5691 clobber "prefix", since we may have already set it manually.
5692
71538dff 56932006-04-25 Hollis Blanchard <hollis@penguinppc.org>
5694
5695 * kern/misc.c (abort): New alias for grub_abort.
5696
2965c7cc 56972006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
5698
5699 A new machine-specific function "grub_machine_set_prefix" is
5700 defined. This is called after loading modules, so that a prefix
5701 initialization can use modules. Also, this change adds an
5702 intensive debugging feature for the memory manager via the
5703 configure option "--enable-mm-debug".
5704
5705 * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
5706 PART.LEN.
5707
5708 * kern/sparc64/ieee1275/init.c (abort): Removed.
5709 (grub_stop): Likewise.
5710 (grub_exit): New function.
5711 (grub_set_prefix): Renamed to ...
5712 (grub_machine_set_prefix): ... this.
5713 (grub_machine_init): Do not call grub_set_prefix.
5714
5715 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
5716 (grub_machine_set_prefix): ... this.
5717 (grub_machine_init): Do not call grub_set_prefix.
5718
5719 * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
5720 (grub_machine_init): Do not set the prefix here.
5721
5722 * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
5723
5724 * kern/efi/init.c: Include grub/mm.h.
5725 (grub_efi_set_prefix): New function.
5726
5727 * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
5728 (grub_efi_get_filename): New function.
5729 (grub_print_device_path): Renamed to ...
5730 (grub_efi_print_device_path): ... this.
5731
5732 * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
5733 [MM_DEBUG] (grub_realloc): Likewise.
5734 [MM_DEBUG] (grub_free): Likewise.
5735 [MM_DEBUG] (grub_memalign): Likewise.
5736 [MM_DEBUG] (grub_mm_debug): New variable.
5737 [MM_DEBUG] (grub_debug_malloc): New function.
5738 [MM_DEBUG] (grub_debug_free): New function.
5739 [MM_DEBUG] (grub_debug_realloc): New function.
5740 [MM_DEBUG] (grub_debug_memalign): New function.
5741
5742 * kern/misc.c (grub_abort): Print a newline to distinguish
5743 the message.
5744
5745 * kern/main.c (grub_main): Call grub_machine_set_prefix and
5746 grub_set_root_dev after loading modules. This is necessary when
5747 setting a prefix depends on modules.
5748
5749 * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
5750 (grub_efi_print_device_path): ... this.
5751 (grub_efi_get_filename): New prototype.
5752 (grub_efi_set_prefix): Likewise.
5753
5754 * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
5755 and grub/disk.h.
5756 (grub_efidisk_get_device_handle): New prototype.
5757 (grub_efidisk_get_device_name): Likewise.
5758
5759 * include/grub/mm.h: Include config.h.
5760 (MM_DEBUG): Removed.
5761 [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
5762 [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
5763 [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
5764 [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
5765 [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
5766 [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
5767 [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
5768 [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
5769 [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
5770
5771 * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
5772
5773 * disk/efi/efidisk.c: Include grub/partition.h.
5774 (iterate_child_devices): New function.
5775 (add_device): First, compare only last device path nodes, so that
5776 devices are sorted by the types.
5777 (grub_efidisk_get_device_handle): New function.
5778 (grub_efidisk_get_device_name): Likewise.
5779
5780 * configure.ac (--enable-mm-debug): New option to enable the
5781 memory manager debugging feature. This makes the binary much
5782 bigger, so is disabled by default.
5783
9cacaa17 57842006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
5785
5786 Use grub_abort instead of grub_stop, and grub_exit must be
5787 define in each architecture now. Also, this change adds support
5788 for EFI disks.
5789
5790 * util/i386/pc/grub-probefs.c: Include grub/term.h.
5791 (grub_getkey): New function.
5792 (grub_term_get_current): Likewise.
5793
5794 * util/i386/pc/grub-setup.c: Include grub/term.h.
5795 (grub_getkey): New function.
5796 (grub_term_get_current): Likewise.
5797
5798 * util/misc.c (grub_stop): Renamed to ...
5799 (grub_exit): ... this.
5800
5801 * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
5802 (grub_exit): ... this.
5803 (grub_machine_init): Use grub_abort instead of abort.
5804 (grub_stop): Removed.
5805
5806 * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
5807 abort.
5808
5809 * kern/i386/pc/startup.S (grub_exit): New function.
5810 (cold_reboot): New label.
5811
5812 * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
5813 (grub_efi_init): Call grub_efidisk_init.
5814 (grub_efi_fini): Call grub_efidisk_fini.
5815
5816 * kern/efi/efi.c: Include grub/mm.h.
5817 (grub_efi_console_control_guid): Renamed to ...
5818 (console_control_guid): ... this.
5819 (grub_efi_loaded_image_guid): Renamed to ...
5820 (loaded_image_guid): ... this.
5821 (grub_efi_locate_handle): New function.
5822 (grub_efi_open_protocol): Likewise.
5823 (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
5824 GRUB_EFI_CONSOLE_CONTROL_GUID.
5825 (grub_efi_exit): Removed.
5826 (grub_stop): Likewise.
5827 (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
5828 (grub_exit): New function.
5829 (grub_print_device_path): Likewise.
5830
5831 * kern/rescue.c (grub_rescue_cmd_exit): New function.
5832 (grub_enter_rescue_mode): Register "exit".
5833
5834 * kern/misc.c (grub_real_dprintf): A cosmetic change.
5835 (grub_abort): New function.
5836
5837 * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
5838
5839 * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
5840
5841 * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
5842
5843 * include/grub/efi/efi.h (grub_efi_exit): Removed.
5844 (grub_print_device_path): New prototype.
5845 (grub_efi_locate_handle): Likewise.
5846 (grub_efi_open_protocol): Likewise.
5847
5848 * include/grub/efi/disk.h (grub_efidisk_fini): New file.
5849 * disk/efi/efidisk.c: Likewise.
5850
5851 * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
5852
5853 * include/grub/efi/console_control.h
5854 (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
5855
5856 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
5857 last 8 bytes as an array.
5858 (GRUB_EFI_DISK_IO_GUID): New macro.
5859 (GRUB_EFI_BLOCK_IO_GUID): Likewise.
5860 (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
5861 (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
5862 grub_uint8_t.
5863 (struct grub_efi_guid): Use an array to specify the last 8 bytes.
5864 (struct grub_efi_device_path): Rename the member "sub_type" to
5865 "subtype".
5866 (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
5867 (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
5868 (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
5869 (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
5870 (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
5871 (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
5872 (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
5873 (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
5874 (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
5875 (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
5876 (struct grub_efi_pci_device_path): New structure.
5877 (grub_efi_pci_device_path_t): New type.
5878 (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
5879 (struct grub_efi_pccard_device_path): New structure.
5880 (grub_efi_pccard_device_path_t): New type.
5881 (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
5882 (struct grub_efi_memory_mapped_device_path): New structure.
5883 (grub_efi_memory_mapped_device_path_t): New type.
5884 (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
5885 (struct grub_efi_vendor_device_path): New structure.
5886 (grub_efi_vendor_device_path_t): New type.
5887 (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
5888 (struct grub_efi_controller_device_path): New structure.
5889 (grub_efi_controller_device_path_t): New type.
5890 (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
5891 (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
5892 (struct grub_efi_acpi_device_path): New structure.
5893 (grub_efi_acpi_device_path_t): New type.
5894 (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
5895 (struct grub_efi_expanded_acpi_device_path): New structure.
5896 (grub_efi_expanded_acpi_device_path_t): New type.
5897 (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
5898 (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
5899 (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
5900 (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
5901 (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
5902 (struct grub_efi_atapi_device_path): New structure.
5903 (grub_efi_atapi_device_path_t): New type.
5904 (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
5905 (struct grub_efi_fibre_channel_device_path): New structure.
5906 (grub_efi_fibre_channel_device_path_t): New type.
5907 (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
5908 (struct grub_efi_1394_device_path): New structure.
5909 (grub_efi_1394_device_path_t): New type.
5910 (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
5911 (struct grub_efi_usb_device_path): New structure.
5912 (grub_efi_usb_device_path_t): New type.
5913 (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
5914 (struct grub_efi_usb_class_device_path): New structure.
5915 (grub_efi_usb_class_device_path_t): New type.
5916 (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
5917 (struct grub_efi_i2o_device_path): New structure.
5918 (grub_efi_i2o_device_path_t): New type.
5919 (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
5920 (struct grub_efi_mac_address_device_path): New structure.
5921 (grub_efi_mac_address_device_path_t): New type.
5922 (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
5923 (struct grub_efi_ipv4_device_path): New structure.
5924 (grub_efi_ipv4_device_path_t): New type.
5925 (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
5926 (struct grub_efi_ipv6_device_path): New structure.
5927 (grub_efi_ipv6_device_path_t): New type.
5928 (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
5929 (struct grub_efi_infiniband_device_path): New structure.
5930 (grub_efi_infiniband_device_path_t): New type.
5931 (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
5932 (struct grub_efi_uart_device_path): New structure.
5933 (grub_efi_uart_device_path_t): New type.
5934 (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
5935 (struct grub_efi_vendor_messaging_device_path): New structure.
5936 (grub_efi_vendor_messaging_device_path_t): New type.
5937 (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
5938 (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
5939 (struct grub_efi_hard_drive_device_path): New structure.
5940 (grub_efi_hard_drive_device_path_t): New type.
5941 (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
5942 (struct grub_efi_cdrom_device_path): New structure.
5943 (grub_efi_cdrom_device_path_t): New type.
5944 (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
5945 (struct grub_efi_vendor_media_device_path): New structure.
5946 (grub_efi_vendor_media_device_path_t): New type.
5947 (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
5948 (struct grub_efi_file_path_device_path): New structure.
5949 (grub_efi_file_path_device_path_t): New type.
5950 (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
5951 (struct grub_efi_protocol_device_path): New structure.
5952 (grub_efi_protocol_device_path_t): New type.
5953 (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
5954 (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
5955 (struct grub_efi_bios_device_path): New structure.
5956 (grub_efi_bios_device_path_t): New type.
5957 (struct grub_efi_disk_io): New structure.
5958 (grub_efi_disk_io_t): New type.
5959 (struct grub_efi_block_io_media): New structure.
5960 (grub_efi_block_io_media_t): New type.
5961 (struct grub_efi_block_io): New structure.
5962 (grub_efi_block_io_t): New type.
5963
5964 * include/grub/misc.h (grub_stop): Removed.
5965 (grub_exit): New prototype.
5966 (grub_abort): Likewise.
5967
5968 * include/grub/disk.h (enum grub_disk_dev_id): Added
5969 GRUB_DISK_DEVICE_EFIDISK_ID.
5970
5971 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
5972 disk/efi/efidisk.c.
5973 (kernel_syms.lst): Remove the target if an error occurs.
5974
49986a9f 59752006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
5976
5977 * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
5978 as it was simply too buggy.
5979
970d3b8a 59802006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
5981
5982 * kern/misc.c (grub_lltoa): New function.
5983 (grub_vsprintf): Added support for the long long suffix,
5984 i.e. "ll".
5985
ff04ec24 59862006-04-20 Hollis Blanchard <hollis@penguinppc.org>
5987
5988 * Makefile.in (LDFLAGS): Add variable.
5989 (LD): Remove variable.
5990 * configure.ac: Add -m32 to LDFLAGS.
5991 * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
5992 * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
5993 (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
5994 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
5995 suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
5996 variables.
5997 * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
5998 * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
5999 * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
6000
37e5e1a4 60012006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
6002
6003 * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
6004 length for unknown glyph.
6005
c352d8dd 60062006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
6007
2eab1c0d 6008 Add support for pre-loaded modules into the EFI port.
6009
6010 * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
6011 completely. Accept one more argument DIR. The caller has changed.
6012
6013 * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
6014
6015 * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
6016 (grub_efi_loaded_image_guid): New variable.
6017 (grub_efi_get_loaded_image): New function.
6018 (grub_arch_modules_addr): Likewise.
6019
6020 * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
6021 prototype.
6022
6023 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
6024 (struct grub_efi_loaded_image): New structure.
6025 (grub_efi_loaded_image_t): New type.
6026
60272006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
6028
c352d8dd 6029 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
6030 size with GRUB_OS_AREA_SIZE as grub_size_t instead of
6031 grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
6032
6d01d6b4 60332006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
6034
6035 * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
6036
976a4ea0 60372006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
6038
6039 * DISTLIST: Added include/grub/efi/console.h,
6040 include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
6041 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
6042
6043 * include/grub/efi/console.h: New file.
6044 * include/grub/efi/time.h: Likewise.
6045 * include/grub/i386/efi/kernel.h: Likewise.
6046 * kern/efi/init.c: Likewise.
6047 * kern/efi/mm.c: Likewise.
6048 * term/efi/console.c: Likewise.
6049
6050 * kern/i386/efi/init.c: Do not include grub/machine/time.h.
6051 (grub_stop): Removed.
6052 (grub_get_rtc): Likewise.
6053 (grub_machine_init): Simply call grub_efi_init.
6054 (grub_machine_fini): Call grub_efi_fini.
6055
6056 * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
6057 (grub_efi_output_string): Removed.
6058 (grub_efi_stall): New function.
6059 (grub_stop): Likewise.
6060 (grub_get_rtc): Likewise.
6061
6062 * include/grub/efi/efi.h (grub_efi_output_string): Removed.
6063 (grub_efi_stall): New prototype.
6064 (grub_efi_allocate_pages): Likewise.
6065 (grub_efi_free_pages): Likewise.
6066 (grub_efi_get_memory_map): Likewise.
6067 (grub_efi_mm_init): Likewise.
6068 (grub_efi_mm_fini): Likewise.
6069 (grub_efi_init): Likewise.
6070 (grub_efi_fini): Likewise.
6071
6072 * include/grub/i386/efi/time.h: Do not include
6073 grub/symbol.h. Include grub/efi/time.h.
6074 (GRUB_TICKS_PER_SECOND): Removed.
6075 (grub_get_rtc): Likewise.
6076
6077 * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
6078 Added padding. The EFI spec is buggy.
6079 (GRUB_EFI_BLACK): New macro.
6080 (GRUB_EFI_BLUE): Likewise.
6081 (GRUB_EFI_GREEN): Likewise.
6082 (GRUB_EFI_CYAN): Likewise.
6083 (GRUB_EFI_RED): Likewise.
6084 (GRUB_EFI_MAGENTA): Likewise.
6085 (GRUB_EFI_BROWN): Likewise.
6086 (GRUB_EFI_LIGHTGRAY): Likewise.
6087 (GRUB_EFI_BRIGHT): Likewise.
6088 (GRUB_EFI_DARKGRAY): Likewise.
6089 (GRUB_EFI_LIGHTBLUE): Likewise.
6090 (GRUB_EFI_LIGHTGREEN): Likewise.
6091 (GRUB_EFI_LIGHTCYAN): Likewise.
6092 (GRUB_EFI_LIGHTRED): Likewise.
6093 (GRUB_EFI_LIGHTMAGENTA): Likewise.
6094 (GRUB_EFI_YELLOW): Likewise.
6095 (GRUB_EFI_WHITE): Likewise.
6096 (GRUB_EFI_BACKGROUND_BLACK): Likewise.
6097 (GRUB_EFI_BACKGROUND_BLUE): Likewise.
6098 (GRUB_EFI_BACKGROUND_GREEN): Likewise.
6099 (GRUB_EFI_BACKGROUND_CYAN): Likewise.
6100 (GRUB_EFI_BACKGROUND_RED): Likewise.
6101 (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
6102 (GRUB_EFI_BACKGROUND_BROWN): Likewise.
6103 (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
6104 (GRUB_EFI_TEXT_ATTR): Likewise.
6105
6106 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
6107 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
6108 (kernel_mod_HEADERS): Added efi/time.h.
6109
83709125 61102006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
6111
6112 * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
6113 include/grub/efi/api.h, include/grub/efi/console_control.h,
6114 include/grub/efi/efi.h, include/grub/efi/pe32.h,
6115 include/grub/i386/efi/time.h, kern/efi/efi.c,
6116 kern/i386/efi/init.c, kern/i386/efi/startup.S,
6117 and util/i386/efi/grub-mkimage.c.
6118
6119 * Makefile.in (RMKFILES): Added i386-efi.rmk.
6120
6121 * genmk.rb (PModule#rule): Do not export symbols if
6122 #{prefix}_EXPORTS is set to "no".
6123
6124 * conf/i386-efi.mk: New file.
6125 * conf/i386-efi.rmk: Likewise.
6126 * include/grub/efi/api.h: Likewise.
6127 * include/grub/efi/console_control.h: Likewise.
6128 * include/grub/efi/efi.h: Likewise.
6129 * include/grub/efi/pe32.h: Likewise.
6130 * include/grub/i386/efi/time.h: Likewise.
6131 * kern/efi/efi.c: Likewise.
6132 * kern/i386/efi/init.c: Likewise.
6133 * kern/i386/efi/startup.S: Likewise.
6134 * util/i386/efi/grub-mkimage.c: Likewise.
6135
61362006-04-17 Marco Gerards <marco@gnu.org>
bfa2bd9e 6137
6138 * include/grub/script.h: Include <grub/parser.h> and
6139 "grub_script.tab.h".
6140 (struct grub_lexer_param): New struct.
6141 (struct grub_parser_param): Likewise.
6142 (grub_script_create_arglist): Pass the state in an argument.
6143 (grub_script_add_arglist): Likewise.
6144 (grub_script_create_cmdline): Likewise.
6145 (grub_script_create_cmdblock): Likewise.
6146 (grub_script_create_cmdif): Likewise.
6147 (grub_script_create_cmdmenu): Likewise.
6148 (grub_script_add_cmd): Likewise.
6149 (grub_script_arg_add): Likewise.
6150 (grub_script_lexer_ref): Likewise.
6151 (grub_script_lexer_deref): Likewise.
6152 (grub_script_lexer_record_start): Likewise.
6153 (grub_script_lexer_record_stop): Likewise.
6154 (grub_script_mem_record): Likewise.
6155 (grub_script_mem_record_stop): Likewise.
6156 (grub_script_malloc): Likewise.
6157 (grub_script_yylex): Likewise.
6158 (grub_script_yyparse): Likewise.
6159 (grub_script_yyerror): Likewise.
6160 (grub_script_yylex): Likewise.
6161 (grub_script_lexer_init): Return the state.
6162
6163 * normal/lexer.c (grub_script_lexer_state): Removed variable.
6164 (grub_script_lexer_done): Likewise.
6165 (grub_script_lexer_getline): Likewise.
6166 (grub_script_lexer_refs): Likewise.
6167 (script): Likewise.
6168 (newscript): Likewise.
6169 (record): Likewise.
6170 (recording): Likewise.
6171 (recordpos): Likewise.
6172 (recordlen): Likewise.
6173 (grub_script_lexer_init): Return the state instead of setting
6174 global variables.
6175 (grub_script_lexer_ref): Use the newly added argument for state
6176 instead of globals.
6177 (grub_script_lexer_deref): Likewise.
6178 (grub_script_lexer_record_start): Likewise.
6179 (grub_script_lexer_record_stop): Likewise.
6180 (recordchar): Likewise.
6181 (nextchar): Likewise.
6182 (grub_script_yylex2): Likewise.
6183 (grub_script_yylex): Likewise.
6184 (grub_script_yyerror): Likewise.
6185
6186 * normal/parser.y (func_mem): Removed variable.
6187 (menu_entry): Likewise.
6188 (err): Likewise.
6189 (%lex-param): New parser option.
6190 (%parse-param): Likewise.
6191 (script): Always return the AST.
6192 (argument): Pass the state around.
6193 (arguments): Likewise.
6194 (grubcmd): Likewise.
6195 (commands): Likewise.
6196 (function): Likewise.
6197 (menuentry): Likewise.
6198 (if_statement): Likewise.
6199 (if): Likewise.
6200
6201 * normal/script.c (grub_script_memused): Removed variable.
6202 (grub_script_parsed): Likewise.
6203 (grub_script_malloc): Added a state argument. Use that instead of
6204 global variables.
6205 (grub_script_mem_record): Likewise.
6206 (grub_script_mem_record_stop): Likewise.
6207 (grub_script_arg_add): Likewise.
6208 (grub_script_add_arglist): Likewise.
6209 (grub_script_create_cmdline): Likewise.
6210 (grub_script_create_cmdif): Likewise.
6211 (grub_script_create_cmdmenu): Likewise.
6212 (grub_script_add_cmd): Likewise.
6213 (grub_script_parse): Setup the state before calling the parser.
6214
e2a8c904 62152006-04-16 Marco Gerards <marco@gnu.org>
6de2ee99 6216
6217 * normal/command.c (grub_command_init): Remove the title command.
6218
6219 * normal/lexer.c (grub_script_yylex): Renamed from this...
6220 (grub_script_yylex2): ... to this.
6221 (grub_script_yylex): New function. Temporary
6222 introduced to filter some tokens.
6223 (grub_script_yyerror): Print a newline.
6224
6225 * normal/main.c (read_config_file): Output information about the
6226 lines that contain errors. Wait for a key after all lines have
6227 been processed. Don't return an empty menu.
6228
6229 * normal/parser.y (func_mem): Don't initialize.
6230 (menu_entry): Likewise.
6231 (err): New variable.
6232 (script): Don't return anything when an error was encountered.
6233 (ws, returns): Removed rules.
6234 (argument): Disabled concatenated variable support.
6235 (arguments): Remove explicit separators.
6236 (grubcmd): Likewise.
6237 (function): Likewise.
6238 (menuentry): Likewise.
6239 (if): Likewise.
6240 (commands): Likewise. Add error handling.
6241
6242 * normal/script.c (grub_script_create_cmdline): If
6243 `grub_script_parsed' is 0, assume the parser encountered an error.
6244
c9a86192 62452006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
6246
6247 * configure.ac: Add support for EFI. Fix the typo
6248 BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
6249
70f3b243 62502006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
6251
6252 * util/unifont2pff.rb: Removed unnecessary byte ordering. Now
6253 foreign multibyte characters should be shown correctly.
6254
65f201ad 62552006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
6256
6257 * normal/main.c (grub_normal_menu_addentry): Fixed menu size
6258 calculation.
6259 (read_config_file): Made it to close file before returning.
6260
b4b93674 62612006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
6262
6263 * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
6264 include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
6265 video/i386/pc/vbefill.c.
6266
6267 * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
6268 video/i386/pc/vbefill.c.
6269
6270 * include/grub/video.h (grub_video_blit_format): New enum.
6271 (grub_video_mode_info): Added new member blit_format.
6272 (grub_video_get_blit_format): New function prototype.
6273
6274 * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
6275 function prototype.
6276 (grub_video_vbe_map_rgb): Likewise.
6277 (grub_video_vbe_unmap_color): Likewise.
6278
6279 * include/grub/i386/pc/vbeblit.h: New file.
6280
6281 * include/grub/i386/pc/vbefill.h: New file.
6282
6283 * video/video.c (grub_video_get_blit_format): New function.
6284 (grub_video_vbe_get_video_ptr): Re-declared as non-static.
6285 (grub_video_vbe_map_rgb): Likewise.
6286 (grub_video_vbe_unmap_color): Likewise.
6287
6288 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
6289 optimized fills.
6290 (grub_video_vbe_blit_render_target): Changed to use more optimized
6291 blits.
6292 (grub_video_vbe_setup): Added detection for optimized settings.
6293 (grub_video_vbe_create_render_target): Likewise.
6294
6295 * video/i386/pc/vbeblit.c: New file.
6296
6297 * video/i386/pc/vbefill.c: New file.
6298
c2379b9c 62992006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
6300
6301 * font/manager.c (grub_font_get_glyph): Removed font fixup from
6302 here...
6303
6304 * util/unifont2pff.rb: ... and moved it to here. Improved argument
6305 parsing to support both hex and dec ranges. If filename was missing
6306 show usage information.
6307
bd0d7896 63082006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
6309
6310 * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
6311 video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c.
6312
6313 * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
6314 gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod.
6315 (video_mod_SOURCES): Added.
6316 (video_mod_CFLAGS): Likewise.
6317 (video_mod_LDFLAGS): Likewise.
6318 (gfxterm_mod_SOURCES): Likewise.
6319 (gfxterm_mod_CFLAGS): Likewise.
6320 (gfxterm_mod_LDFLAGS): Likewise.
6321 (videotest_mod_SOURCES): Likewise.
6322 (videotest_mod_CFLAGS): Likewise.
6323 (videotest_mod_LDFLAGS): Likewise.
6324 (vesafb_mod_SOURCES): Removed.
6325 (vesafb_mod_CFLAGS): Likewise.
6326 (vesafb_mod_LDFLAGS): Likewise.
6327 (vga_mod_SOURCES): Likewise.
6328 (vga_mod_CFLAGS): Likewise.
6329 (vga_mod_LDFLAGS): Likewise.
6330
6331 * commands/videotest.c: New file.
6332
6333 * font/manager.c (fill_with_default_glyph): Modified to use
6334 grub_font_glyph.
6335 (grub_font_get_glyph): Likewise.
6336 (fontmanager): Renamed from this...
6337 (font_manager): ... to this.
6338
6339 * include/grub/font.h (grub_font_glyph): Added new structure.
6340 (grub_font_get_glyph): Modified to use grub_font_glyph.
6341
6342 * include/grub/misc.h (grub_abs): Added as inline function.
6343
6344 * include/grub/video.h: New file.
6345
6346 * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
6347 (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
6348 (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
6349 (grub_vbe_get_controller_info): Renamed from this...
6350 (grub_vbe_bios_get_controller_info): ... to this.
6351 (grub_vbe_get_mode_info): Renamed from this...
6352 (grub_vbe_bios_get_mode_info): ... to this.
6353 (grub_vbe_set_mode): Renamed from this...
6354 (grub_vbe_bios_set_mode): ... to this.
6355 (grub_vbe_get_mode): Renamed from this...
6356 (grub_vbe_bios_get_mode): ... to this.
6357 (grub_vbe_set_memory_window): Renamed from this...
6358 (grub_vbe_bios_set_memory_window): ... to this.
6359 (grub_vbe_get_memory_window): Renamed from this...
6360 (grub_vbe_bios_get_memory_window): ... to this.
6361 (grub_vbe_set_scanline_length): Renamed from this...
6362 (grub_vbe_set_scanline_length): ... to this.
6363 (grub_vbe_get_scanline_length): Renamed from this...
6364 (grub_vbe_bios_get_scanline_length): ... to this.
6365 (grub_vbe_set_display_start): Renamed from this...
6366 (grub_vbe_bios_set_display_start): ... to this.
6367 (grub_vbe_get_display_start): Renamed from this...
6368 (grub_vbe_bios_get_display_start): ... to this.
6369 (grub_vbe_set_palette_data): Renamed from this...
6370 (grub_vbe_bios_set_palette_data): ... to this.
6371 (grub_vbe_set_pixel_rgb): Removed.
6372 (grub_vbe_set_pixel_index): Likewise.
6373
6374 * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
6375 from this...
6376 (grub_vbe_bios_get_controller_info): ... to this.
6377 (grub_vbe_get_mode_info): Renamed from this...
6378 (grub_vbe_bios_get_mode_info): ... to this.
6379 (grub_vbe_set_mode): Renamed from this...
6380 (grub_vbe_bios_set_mode): ... to this.
6381 (grub_vbe_get_mode): Renamed from this...
6382 (grub_vbe_bios_get_mode): ... to this.
6383 (grub_vbe_set_memory_window): Renamed from this...
6384 (grub_vbe_bios_set_memory_window): ... to this.
6385 (grub_vbe_get_memory_window): Renamed from this...
6386 (grub_vbe_bios_get_memory_window): ... to this.
6387 (grub_vbe_set_scanline_length): Renamed from this...
6388 (grub_vbe_set_scanline_length): ... to this.
6389 (grub_vbe_get_scanline_length): Renamed from this...
6390 (grub_vbe_bios_get_scanline_length): ... to this.
6391 (grub_vbe_set_display_start): Renamed from this...
6392 (grub_vbe_bios_set_display_start): ... to this.
6393 (grub_vbe_get_display_start): Renamed from this...
6394 (grub_vbe_bios_get_display_start): ... to this.
6395 (grub_vbe_set_palette_data): Renamed from this...
6396 (grub_vbe_bios_set_palette_data): ... to this.
6397 (grub_vbe_bios_get_controller_info): Fixed problem with registers
6398 getting corrupted after calling it. Added more pushes and pops.
6399 (grub_vbe_bios_set_mode): Likewise.
6400 (grub_vbe_bios_get_mode): Likewise.
6401 (grub_vbe_bios_get_memory_window): Likewise.
6402 (grub_vbe_bios_set_scanline_length): Likewise.
6403 (grub_vbe_bios_get_scanline_length): Likewise.
6404 (grub_vbe_bios_get_display_start): Likewise.
6405 (grub_vbe_bios_set_palette_data): Likewise.
6406
6407 * normal/cmdline.c (cl_set_pos): Refresh the screen.
6408 (cl_insert): Likewise.
6409 (cl_delete): Likewise.
6410
6411 * term/gfxterm.c: New file.
6412
6413 * term/i386/pc/vesafb.c: Removed file.
6414
6415 * video/video.c: New file.
6416
6417 * video/i386/pc/vbe.c (real2pm): Added new function.
6418 (grub_video_vbe_draw_pixel): Likewise.
6419 (grub_video_vbe_get_video_ptr): Likewise.
6420 (grub_video_vbe_get_pixel): Likewise
6421 (grub_video_vbe_init): Likewise.
6422 (grub_video_vbe_fini): Likewise.
6423 (grub_video_vbe_setup): Likewise.
6424 (grub_video_vbe_get_info): Likewise.
6425 (grub_video_vbe_set_palette): Likewise.
6426 (grub_video_vbe_get_palette): Likewise.
6427 (grub_video_vbe_set_viewport): Likewise.
6428 (grub_video_vbe_get_viewport): Likewise.
6429 (grub_video_vbe_map_color): Likewise.
6430 (grub_video_vbe_map_rgb): Likewise.
6431 (grub_video_vbe_map_rgba): Likewise.
6432 (grub_video_vbe_unmap_color): Likewise.
6433 (grub_video_vbe_fill_rect): Likewise.
6434 (grub_video_vbe_blit_glyph): Likewise.
6435 (grub_video_vbe_blit_bitmap): Likewise.
6436 (grub_video_vbe_blit_render_target): Likewise.
6437 (grub_video_vbe_scroll): Likewise.
6438 (grub_video_vbe_swap_buffers): Likewise.
6439 (grub_video_vbe_create_render_target): Likewise.
6440 (grub_video_vbe_delete_render_target): Likewise.
6441 (grub_video_vbe_set_active_render_target): Likewise.
6442 (grub_vbe_set_pixel_rgb): Remove function.
6443 (grub_vbe_set_pixel_index): Likewise.
6444 (index_color_mode): Remove static variable.
6445 (active_mode): Likewise.
6446 (framebuffer): Likewise.
6447 (bytes_per_scan_line): Likewise.
6448 (grub_video_vbe_adapter): Added new static variable.
6449 (framebuffer): Likewise.
6450 (render_target): Likewise.
6451 (initial_mode): Likewise.
6452 (mode_in_use): Likewise.
6453 (mode_list): Likewise.
6454
5f97350b 64552006-03-10 Marco Gerards <marco@gnu.org>
6456
6457 * configure.ac (AC_INIT): Bumped to 1.93.
6458
6459 * DISTLIST: Added `include/grub/hfs.h'.
6460
a3c5c6f8 64612006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
6462
6463 * boot/i386/pc/boot.S (general_error): Before looping, try INT
6464 18H, which might help the BIOS falling back to next boot media.
6465
6de53d26 64662006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
6467
6468 * util/i386/pc/grub-install.in: Escape a backslash. Reported by
6469 Poe Chen <poe.poechen@gmail.com>.
6470
77c4a393 64712006-01-17 Marco Gerards <marco@gnu.org>
6472
6473 * include/grub/normal.h: Include <grub/script.h>.
6474 (grub_command_list): Removed struct.
6475 (grub_command_list_t): Removed type.
6476 (grub_menu_entry): Remove members `num' and `command_list'. Add
6477 members `commands' and `sourcecode'.
6478 * include/grub/script.h: Add inclusion guards.
6479 (grub_script_cmd_menuentry): New struct.
6480 (grub_script_execute_menuentry): New prototype.
6481 (grub_script_lexer_record_start): Likewise.
6482 (grub_script_lexer_record_stop): Likewise.
6483 * normal/execute.c (grub_script_execute_menuentry): New function.
6484 * normal/lexer.c (record, recording, recordpos, recordlen): New
6485 variables.
6486 (grub_script_lexer_record_start): New function.
6487 (grub_script_lexer_record_stop): Likewise.
6488 (recordchar): Likewise.
6489 (nextchar): Likewise.
6490 (grub_script_yylex): Use `nextchar' to fetch new characters. Use
6491 2048 as the buffer size. Add the tokens `menuentry' and `@'.
6492 * normal/main.c: Include <grub/parser.h> and <grub/script.h>
6493 (current_menu): New variable.
6494 (free_menu): Mainly rewritten.
6495 (grub_normal_menu_addentry): New function.
6496 (read_config_file): Rewritten.
6497 * normal/menu.c (run_menu_entry): Mainly rewritten.
6498 * normal/menu_entry.c (make_screen): Rewritten te code to insert
6499 the menu entry.
6500 (run): Mainly rewritten.
6501 * normal/parser.y (menu_entry): New variable.
6502 (GRUB_PARSER_TOKEN_MENUENTRY): New token.
6503 (menuentry): New rule.
6504 (command): Add `menuentry'.
6505 (if_statement): Allow additional returns before `fi'.
6506 * normal/script.c (grub_script_create_cmdmenu): New function.
6507
144f1f98 65082006-01-03 Marco Gerards <marco@gnu.org>
6509
6510 * INSTALL: GNU Bison is required.
6511 * configure.ac: Rewritten the test to detect Bison.
6512 * Makefile.in (YACC): New variable. Reported by Xun Sun
6513 <xun.sun.cn@gmail.com>.
6514
af4b2d89 65152006-01-03 Marco Gerards <marco@gnu.org>
6516
6517 * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
6518 the HFS+ filesystem to filesystem blocks.
6519 (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
6520 GCC warning is silenced.
6521
15643b71 65222006-01-03 Marco Gerards <marco@gnu.org>
6523
6524 * partmap/apple.c (apple_partition_map_iterate): Convert the data
6525 read from disk from big endian to host byte order.
6526
00905879 65272006-01-03 Hollis Blanchard <hollis@penguinppc.org>
6528
6529 * fs/hfs.c: Include <grub/hfs.h>. Added reference to the official
6530 documentation.
6531 (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
6532 (grub_hfs_mount): Grammar fix in error. Make sure this is not an
6533 embedded HFS+ filesystem.
6534 (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
6535 (grub_hfs_sblock): Move from here...
6536 * include/grub/hfs.h: To here... New file.
6537 * fs/hfsplus.c: Include <grub/hfs.h>. Added reference to the official
6538 documentation.
6539 (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
6540 New macros.
6541 (grub_hfsplus_volheader): Change type of member `magic' to
6542 `grub_uint16_t'.
6543 (grub_hfsplus_data): Add new member `embedded_offset'.
6544 (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
6545 returned block.
6546 (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
6547 Calculate the offset.
6548
8899bc3e 65492005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
6550
6551 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
6552 Removed.
6553 (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
6554
ae8c0277 65552005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
6556
6557 * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
6558 ENV->NAME is NULL after allocating ENV->VALUE.
6559
07084456 65602005-12-25 Marco Gerards <marco@gnu.org>
6561
6562 * kern/env.c (grub_env_set): Rewritten the error handling code.
6563
4750f5f1 65642005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
6565
6566 * geninit.sh: Made more robust, and more portable.
6567
50214199 65682005-12-25 Marco Gerards <marco@gnu.org>
6569
6570 Add support for Apple HFS+ filesystems.
6571
6572 * fs/hfsplus.c: New file.
6573
6574 * DISTLIST: Added `fs/hfsplus.c'.
6575
6576 * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
6577 (hfsplus_mod_SOURCES): New variable.
6578 (hfsplus_mod_CFLAGS): Likewise.
6579 (hfsplus_mod_LDFLAGS): Likewise.
6580 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
6581 (grub_setup_SOURCES): Likewise.
6582 (grub_mkdevicemap_SOURCES): Likewise.
6583 (grub_emu_SOURCES): Likewise.
6584 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6585
6586 * fs/fshelp.c (grub_fshelp_log2blksize): New function.
6587
6588 * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
6589
befaed6c 65902005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
6591
6592 * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
6593 commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
6594 include/grub/parser.h, include/grub/script.h, kern/parser.c,
6595 kern/sparc64/cache.S, normal/execute.c, normal/function.c,
6596 normal/lexer.c, normal/parser.y, normal/script.c, and
6597 partmap/gpt.c.
6598 Removed kern/sparc64/cache.c.
6599
6600 * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
6601 grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
6602 grub_emu_init.c.
6603
6604 * configure.ac (AC_INIT): Bumped to 1.92.
6605
6a124103 66062005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
6607
6608 * kern/err.c (grub_error_push): Added new function to support error
6609 stacks.
6610 (grub_error_pop): Likewise.
6611 (grub_error_stack_items): New local variable to support error stacks.
6612 (grub_error_stack_pos): Likewise.
6613 (grub_error_stack_assert): Likewise.
6614 (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
6615 stack depth.
6616 (grub_print_error): Added support to print errors from error stack.
6617
6618 * include/grub/err.h (grub_error_push): Added function prototype.
6619 (grub_error_pop): Likewise.
6620
be973c1b 66212005-12-09 Hollis Blanchard <hollis@penguinppc.org>
6622
6623 * configure.ac: Accept `powerpc64' as host_cpu.
6624 (amd64): Rename to `biarch32'.
6625
6626 * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
6627 non-cacheline-aligned addresses.
6628
6629 * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
6630 (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
6631 if `size' is non-zero.
6632
b04216ab 66332005-12-03 Marco Gerards <mgerards@xs4all.nl>
6634
6635 * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
6636 and `cd' to make sure the filename is not prefixed with a
6637 directory name.
6638 (pkgdata_MODULES): Add `gpt.mod'.
6639 (gpt_mod_SOURCES): New variable.
6640 (gpt_mod_CFLAGS): Likewise.
6641 (gpt_mod_LDFLAGS): Likewise.
6642
6643 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
6644
6645 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
6646 New macro.
6647
6648 * partmap/gpt.c: New file.
6649
6650 * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
6651 GPT partition map is detected.
6652
41730ed9 66532005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
6654
6655 * commands/i386/pc/play.c: New file.
6656 * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
6657 (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
6658 macros.
6659
95dc3643 66602005-11-27 Marco Gerards <mgerards@xs4all.nl>
6661
6662 * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
6663 ((unused))' to silence gcc warning.
6664
1569ec51 66652005-11-26 Hollis Blanchard <hollis@penguinppc.org>
6666
6667 * configure.ac: Correct `AC_PROG_YACC' test.
6668
9abde152 66692005-11-22 Hollis Blanchard <hollis@penguinppc.org>
6670
6671 * util/powerpc/ieee1275/grub-install.in: Run the mount point
6672 check before installing files.
6673
44b83271 66742005-11-22 Mike Small <smallm@panix.com>
6675
6676 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
6677 number regex so multidigit numbers are recognized correctly.
6678
66792005-11-22 Mike Small <smallm@panix.com>
6680
6681 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
6682 debugging message before attempting to claim memory.
6683 (grub_rescue_cmd_initrd): Add a claim debugging message and try
6684 multiple addresses in case of failure.
6685
9c12956b 66862005-11-22 Hollis Blanchard <hollis@penguinppc.org>
6687
6688 * term/tparm.c (get_space): Remove empty `if' statement.
6689
6690 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
6691
6692 * kern/parser.c (check_varstate): Rename `state' to 's'.
6693
aeaf81d9 66942005-11-22 Hollis Blanchard <hollis@penguinppc.org>
6695
6696 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
6697 variable definitions to the beginning of each function. Sort stack
6698 variables by size.
6699 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
6700 `buf' argument to `char *'.
6701
79bbb63f 67022005-11-22 Hollis Blanchard <hollis@penguinppc.org>
6703
6704 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
6705 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
6706 minux.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
6707 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
6708 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
6709 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
6710 configfile.mod, search.mod, gzio.mod and test.mod.
6711 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
6712 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
6713 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
6714 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
6715 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
6716 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
6717 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
6718 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
6719 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
6720 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
6721 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
6722 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
6723 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
6724 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
6725 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
6726 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
6727 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
6728 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
6729 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
6730 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
6731 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
6732 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
6733 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
6734
6735 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
6736 `grep --include'.
6737 (pkgdata_MODULES): Add test.mod.
6738
233b1628 67392005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
6740
6741 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
6742 appending to variables with "+=".
6743 (PModule): Use full pathname to generate *.lst filenames.
6744
6745 * Makefile.in: Fixed list rules moved from genmk.rb.
6746 (.DELETE_ON_ERROR): New special target.
6747 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
6748
6749 * conf/i386-pc.rmk: Include conf/common.mk.
6750 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
6751 minux.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
6752 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
6753 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
6754 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
6755 configfile.mod, search.mod, gzio.mod and test.mod.
6756 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
6757 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
6758 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
6759 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
6760 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
6761 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
6762 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
6763 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
6764 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
6765 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
6766 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
6767 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
6768 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
6769 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
6770 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
6771 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
6772 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
6773 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
6774 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
6775 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
6776 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
6777 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
6778 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
6779 here...
6780 * conf/common.rmk: ... to here. New file.
6781
6782 * conf/common.mk: New file.
6783
16f820c8 67842005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
6785
6786 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
6787 (grub_script.tab.c): ... here.
6788
6789 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
6790 (grub_script.tab.c): ... here.
6791
6792 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
6793 (grub_script.tab.c): ... here.
6794
6795 * normal/command.c (grub_command_find): Fixed a memory leak of
6796 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
6797
63ba1554 67982005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
6799
6800 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
6801 "@" which marks the start of a comment on ARM.
6802 (VARIABLE): Likewise.
6803
7f67dc13 68042005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
6805
79bbb63f 6806 Add support for Linux/ADFS partition tables.
7f67dc13 6807
6808 * partmap/acorn.c: New file.
6809
6810 * include/grub/acorn_filecore.h: Likewise.
6811
6812 * DISTLIST: Added `partmap/acorn.c' and
6813 `include/grub/acorn_filecore.h'.
6814
6815 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
6816 `partmap/acorn.c'.
6817 (pkgdata_MODULES): Add `acorn.mod'.
6818 (acorn_mod_SOURCES): New variable.
6819 (acorn_mod_CFLAGS): Likewise.
6820
6821 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
6822 `partmap/acorn.c'.
6823 (pkgdata_MODULES): Add `acorn.mod'.
6824 (acorn_mod_SOURCES): New variable.
6825 (acorn_mod_CFLAGS): Likewise.
6826
6827 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
6828 (pkgdata_MODULES): Add `acorn.mod'.
6829 (acorn_mod_SOURCES): New variable.
6830 (acorn_mod_CFLAGS): Likewise.
6831 (acorn_mod_LDFLAGS): Likewise.
6832
6833 * include/types.h (grub_disk_addr_t): New typedef.
6834
6d099807 68352005-11-13 Marco Gerards <mgerards@xs4all.nl>
6836
6837 * geninit.sh: New file.
6838
6839 * geninitheader.sh: Likewise.
6840
6841 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
6842 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
6843 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
6844 * commands/configfile.c (grub_configfile_init)
6845 (grub_configfile_fini): Likewise.
6846 * commands/default.c (grub_default_init, grub_default_fini):
6847 Likewise.
6848 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
6849 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
6850 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
6851 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
6852 Likewise.
6853 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
6854 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
6855 Likewise.
6856 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
6857 * commands/iee1275/halt.c (grub_halt_init, grub_halt_fini):
6858 Likewise.
6859 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
6860 Likewise.
6861 * commands/iee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
6862 Likewise.
6863 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
6864 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
6865 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
6866 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
6867 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
6868 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
6869 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
6870 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
6871 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
6872 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
6873 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
6874 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
6875 * partmap/amiga.c (grub_amiga_partition_map_init)
6876 (grub_amiga_partition_map_fini): Likewise.
6877 * partmap/apple.c (grub_apple_partition_map_init)
6878 (grub_apple_partition_map_fini): Likewise.
6879 * partmap/pc.c (grub_pc_partition_map_init)
6880 (grub_pc_partition_map_fini): Likewise.
6881 * partmap/sun.c (grub_sun_partition_map_init,
6882 grub_sun_partition_map_fini): Likewise.
6883 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
6884 Likewise.
6885
6886 * util/grub-emu.c: Include <grub_modules_init.h>.
6887 (main): Don't initialize and de-initialize any modules directly,
6888 use `grub_init_all' and `grub_fini_all' instead.
6889
6890 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
6891 `grub_vesafb_mod_init'.
6892 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
6893 all users.
6894 * term/i386/pc/vga.c (grub_vga_init): Renamed to
6895 `grub_vga_mod_init'. Updated all users.
6896 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
6897
6898 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
6899 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
6900 rules.
6901
6902 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
6903 Generate a function to initialize the module in utilities.
6904 Updated all callers.
6905 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
6906 initialize the module in utilities. Updated all callers.
6907
9046bcf0 69082005-11-09 Hollis Blanchard <hollis@penguinppc.org>
6909
6910 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
6911 escape sequence and a literal ^L to clear the screen.
6912
6913 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
6914 when returning from Open Firmware.
6915
d13ea639 69162005-11-09 Hollis Blanchard <hollis@penguinppc.org>
6917
6918 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
6919 (grub_ofconsole_height): Likewise.
6920 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
6921 manually insert a '\n'.
6922 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
6923 `grub_ofconsole_height'. Return early if these are already set.
6924
a8fcf206 69252005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
6926
6927 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
6928 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
6929 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
6930 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
6931 and `normal/script.c'.
6932 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
6933 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
6934 (test_mod_SOURCES): New variable.
6935 (test_mod_CFLAGS): Likewise.
6936 (test_mod_LDFLAGS): Likewise.
6937 (pkgdata_MODULES): Add `test.mod'.
6938 (grub_script.tab.c): New rule.
6939 (grub_script.tab.h): Likewise.
6940
b6b32745 69412005-11-07 Marco Gerards <mgerards@xs4all.nl>
6942
6943 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
6944 `commands/test.c', `normal/execute.c', `normal/lexer.c',
6945 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
6946 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
6947 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
6948 (test_mod_SOURCES): New variable.
6949 (test_mod_CFLAGS): Likewise.
6950 (pkgdata_MODULES): Add `test.mod'.
6951 (grub_script.tab.c): New rule.
6952 (grub_script.tab.h): Likewise.
6953
daac212a 69542005-11-06 Marco Gerards <mgerards@xs4all.nl>
6955
6956 Add initial scripting support.
6957
6958 * commands/test.c: New file.
6959 * include/grub/script.h: Likewise.
6960 * normal/execute.c: Likewise.
6961 * normal/function.c: Likewise.
6962 * normal/lexer.c: Likewise.
6963 * normal/parser.y: Likewise.
6964 * normal/script.c: Likewise.
6965
6966 * configure.ac: Add `AC_PROG_YACC' test.
6967
6968 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
6969 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
6970 `normal/function.c' and `normal/script.c'.
6971 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
6972 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
b6b32745 6973 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
6974 variables.
daac212a 6975 (pkgdata_MODULES): Add `test.mod'.
6976 (grub_script.tab.c): New rule.
6977 (grub_script.tab.h): Likewise.
6978
6979 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
6980
6981 * include/grub/normal.h (grub_test_init): New prototype.
6982 (grub_test_fini): Likewise.
6983
6984 * normal/command.c: Include <grub/script.h>.
6985 (grub_command_execute): Rewritten.
6986
6987 * util/grub-emu.c (main): Call `grub_test_init' and
6988 `grub_test_fini'.
6989
77500b2b 69902005-11-03 Hollis Blanchard <hollis@penguinppc.org>
6991
6992 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
6993 to 0.
6994 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
6995 there are no pending characters.
6996
e45deb9e 69972005-11-03 Hollis Blanchard <hollis@penguinppc.org>
6998
6999 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
7000 `grub_strndup' to drop device arguments. Replace unnecessary
7001 `grub_strndup' with `grub_strdup'.
7002
4ce32619 70032005-11-03 Hollis Blanchard <hollis@penguinppc.org>
7004
7005 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
7006 `debug' environment variable has been set.
7007
70082005-11-02 Hollis Blanchard <hollis@penguinppc.org>
7009
7010 * Makefile.in (install-local): Use $(DATA).
7011 (uninstall): Likewise.
7012 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
7013 (sbin_UTILITIES): ... to here.
7014 (sbin_SCRIPTS): New variable.
7015 (grub_install_SOURCES): New variable.
7016 * util/powerpc/ieee1275/grub-install.in: New file.
7017 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
7018 variable.
7019 (add_segments): Call `grub_util_get_path'.
7020
25fe6f03 70212005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
7022
7023 From Timothy Baldwin:
7024 * commands/ls.c (grub_ls_list_files): Close FILE with
7025 grub_file_close.
7026 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
7027
04ccf3ec 70282005-10-24 Marco Gerards <mgerards@xs4all.nl>
7029
7030 * include/grub/parser.h: New file.
7031
7032 * kern/parser.c: Likewise.
7033
7034 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
7035 (grub_setup_SOURCES): Likewise.
7036 (grub_probefs_SOURCES): Likewise.
7037 (grub_emu_SOURCES): Likewise.
7038 (kernel_img_HEADERS): Add `parser.h'.
7039
7040 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
7041 (grub_emu_SOURCES): Add `kern/parser.c'.
7042 (grubof_SOURCES): Likewise.
7043
7044 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
7045 (grubof_SOURCES): Add `kern/parser.c'.
7046
7047 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
7048
7049 * kern/misc.c (grub_split_cmdline): Removed function.
7050
7051 * kern/rescue.c: Include <grub/parser.h>.
7052 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
7053 of `grub_split_cmdline'.
7054
7055 * normal/command.c: Include <grub/parser.h>.
7056 (grub_command_execute): Use `grub_parser_split_cmdline' instead
7057 of `grub_split_cmdline'.
7058
7059 * normal/completion.c: Include <grub/parser.h>.
7060 (cmdline_state): New variable.
7061 (iterate_dir): End the filename with a quote depending on the
7062 command line state.
7063 (get_state): new function.
7064 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
7065 split the arguments and determine the current argument. When the
7066 argument string is not quoted, escape all spaces.
7067
6d8f4b0e 70682005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
7069
7070 * normal/sparc64/setjmp.S: New file.
7071
15cf03ed 70722005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
7073
7074 * include/grub/sparc64/libgcc.h: New file.
7075 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
7076 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
7077 normal/sparc64/setjmp.c.
7078
03e8661a 70792005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
7080
7081 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
7082 * kern/sparc64/cache.S: New file.
7083 * kern/sparc64/cache.c: Removed.
7084 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
7085 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
7086 -mtune=ultrasparc.
7087 (COMMON_LDFLAGS): Add -melf64_sparc.
7088 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
7089 (grubof_SOURCES): Use cache.S instead of cache.c.
7090 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
7091 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
7092 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
7093 commented though.
7094 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
7095 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
7096 (linux_mod_CFLAGS): Commented out.
7097 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
7098 out because module isn't built.
7099 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
7100 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
7101 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
7102 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
7103 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
7104 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
7105 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
7106 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
7107 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
7108 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
7109 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
7110 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
7111 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
7112 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
7113
34eeec8a 71142005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
7115
7116 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
7117 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
7118 longer, because HFS should not be used on PC.
7119
708367a3 71202005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
7121
7122 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
7123 consistently within the loop.
7124
6fa1251a 71252005-10-15 Marco Gerards <mgerards@xs4all.nl>
7126
7127 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
7128 directory can not be read.
7129
4801580b 71302005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
7131
7132 * configure.ac (AC_INIT): Increase the version number to 1.91.
7133
7134 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
7135 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
7136 term/i386/pc/serial.c.
7137
219ad426 71382005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
7139
7140 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
7141 file size must be permitted.
7142
7143 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
7144 between %ah and %al.
7145
688e5699 71462005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
7147
7148 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
7149 grub_uint64_t.
7150 Call the hook with a NUL-terminated filename.
7151 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
7152 grub_cpu_to_be32.
7153
7154 * kern/term.c (cursor_state): New variable.
7155 (grub_term_set_current): Reset the cursor state on a new
7156 terminal.
7157 (grub_setcursor): Rewritten to use CURSOR_STATE.
7158 (grub_getcursor): New function.
7159
7160 * include/grub/term.h (grub_getcursor): New prototype.
7161
7162 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
7163 integers on ARM. Reported by Timothy Baldwin
7164 <T.E.Baldwin99@members.leeds.ac.uk>.
7165
bb34586c 71662005-10-11 Marco Gerards <mgerards@xs4all.nl>
7167
7168 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
7169 allocated.
7170 (grub_sfs_dir): Likewise.
7171
9a909877 71722005-10-09 Marco Gerards <mgerards@xs4all.nl>
7173
7174 Add support for the SFS filesystem.
7175
7176 * fs/sfs.c: New file.
7177
7178 * DISTLIST: Added `fs/sfs.c'.
7179
7180 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
7181 (grub_probefs_SOURCES): Likewise.
7182 (grub_emu_SOURCES): Likewise.
7183 (pkgdata_MODULES): Add `sfs.mod'.
7184 (sfs_mod_SOURCES): New variable.
7185 (sfs_mod_CFLAGS): Likewise.
7186 (sfs_mod_LDFLAGS): Likewise.
7187
7188 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
7189 (pkgdata_MODULES): Add `sfs.mod'.
7190 (sfs_mod_SOURCES): New variable.
7191 (sfs_mod_CFLAGS): Likewise.
7192
7193 * util/grub-emu.c (main): Call `grub_sfs_init' and
7194 `grub_sfs_fini'.
7195
7196 * include/grub/fs.h (grub_sfs_init): New prototype.
7197 (grub_sfs_fini): Likewise.
7198
57bdbde3 71992005-10-07 Marco Gerards <mgerards@xs4all.nl>
7200
7201 Add support for the AFFS filesystem.
7202
7203 * fs/affs.c: New file.
7204
7205 * DISTLIST: Added `fs/affs.c'.
7206
7207 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
7208 (grub_probefs_SOURCES): Likewise.
7209 (grub_emu_SOURCES): Likewise.
7210 (pkgdata_MODULES): Add `affs.mod'.
7211 (affs_mod_SOURCES): New variable.
7212 (affs_mod_CFLAGS): Likewise.
7213 (affs_mod_LDFLAGS): Likewise.
7214
7215 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
7216 (pkgdata_MODULES): Add `affs.mod'.
7217 (affs_mod_SOURCES): New variable.
7218 (affs_mod_CFLAGS): Likewise.
7219
7220 * util/grub-emu.c (main): Call `grub_affs_init' and
7221 `grub_affs_fini'.
7222
7223 * include/grub/fs.h (grub_affs_init): New prototype.
7224 (grub_affs_fini): Likewise.
7225
047b67e0 72262005-10-01 Marco Gerards <mgerards@xs4all.nl>
7227
7228 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
7229
59b8208a 72302005-10-01 Marco Gerards <mgerards@xs4all.nl>
7231
7232 * configure.ac: Accept `x86_64' as host_cpu. In that case add
7233 `-m32' to CFLAGS.
7234
7235 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
7236 linking.
7237
7238 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
7239 (COMMON_LDFLAGS): New variable.
7240 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
7241 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
7242 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
7243 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
7244 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
7245 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
7246 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
7247 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
7248 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
7249 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
7250 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
7251 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
7252 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
7253 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
7254 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
7255 variables.
7256 (normal_mod_ASFLAGS): Add `-m32'.
7257
7258 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
7259 (grub_host_size_t, grub_host_ssize_t): New types.
7260 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
7261 dependant of `GRUB_CPU_SIZEOF_VOID_P' instead on
7262 `GRUB_HOST_SIZEOF_VOID_P'.
7263
7264 * include/grub/kernel.h (struct grub_module_header): Type of
7265 member offset changed to `grub_host_off_t'. Type of member size
7266 changed to `grub_host_size_t'.
7267 (struct grub_module_info): Type of member offset changed to
7268 `grub_host_off_t'. Type of member size changed to
7269 `grub_host_size_t'.
7270
b4093103 72712005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
7272
7273 Make GRUB's kernel compliant to Multiboot Specification.
7274
7275 * kern/i386/pc/startup.S (multiboot_header): New label.
7276 (multiboot_entry): Likewise.
7277 (multiboot_trampoline): Likewise.
7278
7279 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
7280 Increased to 0x4A0.
7281
7282 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
7283 put parentheses after a question mark.
7284 [!GRUB_UTIL] (my_mod): New variable.
7285
7286 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
7287
b2499b29 72882005-09-28 Marco Gerards <mgerards@xs4all.nl>
7289
7290 Adds support for the XFS filesystem. Btrees are not supported
7291 yet.
7292
7293 * fs/xfs.c: New file.
7294
7295 * DISTLIST: Added `fs/xfs.c'.
7296
7297 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
7298 (grub_probefs_SOURCES): Likewise.
7299 (grub_emu_SOURCES): Likewise.
7300 (pkgdata_MODULES): Add `xfs.mod'.
7301 (xfs_mod_SOURCES): New variable.
7302 (xfs_mod_CFLAGS): Likewise.
7303
7304 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
7305 (pkgdata_MODULES): Add `xfs.mod'.
7306 (xfs_mod_SOURCES): New variable.
7307 (xfs_mod_CFLAGS): Likewise.
7308
7309 * util/grub-emu.c (main): Call `grub_xfs_init' and
7310 `grub_xfs_fini'.
7311
7312 * include/grub/fs.h (grub_xfs_init): New prototype.
7313 (grub_xfs_fini): Likewise.
7314
7315
83d37a62 73162005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
7317
7318 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
7319 color modes, allow greater than 16 colors to be configured as
7320 a default palette.
7321
47d2d65e 73222005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
7323
7324 * normal/completion.c (complete_arguments): Add the qualifier
7325 const into OPTIONS.
7326
7327 From Omniflux <omniflux+lists@omniflux.com>:
7328 * include/grub/terminfo.h: New file.
7329 * include/grub/tparm.h: Likewise.
7330 * include/grub/i386/pc/serial.h: Likewise.
7331 * term/terminfo.c: Likewise.
7332 * term/tparm.c: Likewise.
7333 * term/i386/pc/serial.c: Likewise.
7334 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
7335 serial.mod.
7336 (terminfo_mod_SOURCES): New variable.
7337 (terminfo_mod_CFLAGS): Likewise.
7338 (serial_mod_SOURCES): Likewise.
7339 (serial_mod_CFLAGS): Likewise.
7340
48b671ff 73412005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
7342
7343 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
7344 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
7345 and kern/powerpc/ieee1275/cmain.c, respectively.
7346
7347 * boot/powerpc/ieee1275/crt0.S: Moved to ...
7348 * kern/powerpc/ieee1275/crt0.S: ... here.
7349
7350 * boot/powerpc/ieee1275/cmain.c: Moved to ...
7351 * kern/powerpc/ieee1275/cmain.c: ... here.
7352
7353 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
7354 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
7355 instead of boot/powerpc/ieee1275/crt0.S and
7356 boot/powerpc/ieee1275/cmain.c, respectively.
7357
7358 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
7359 sectors. It was not used anyway.
7360
09fc77a7 73612005-08-30 Hollis Blanchard <hollis@penguinppc.org>
7362
7363 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
7364 `unused parameter' warning.
7365
003789c7 73662005-08-30 Hollis Blanchard <hollis@penguinppc.org>
7367
7368 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
7369 function.
7370 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
7371 getcharwidth.
7372
67f44c86 73732005-08-28 Marco Gerards <metgerards@student.han.nl>
7374
7375 * include/grub/normal.h (enum grub_completion_type): Added
7376 `GRUB_COMPLETION_TYPE_ARGUMENT'.
7377
7378 * normal/cmdline.c (print_completion): Handle
7379 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
7380 * normal/menu_entry.c (store_completion): Likewise.
7381
7382 * normal/completion.c (complete_arguments): New function.
7383 (grub_normal_do_completion): Call `complete_arguments' when the
7384 current words start with a dash.
7385
0b5abe02 73862005-08-27 Marco Gerards <metgerards@student.han.nl>
7387
7388 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
7389 `gzio.mod' instead of `io.mod').
7390
d9864ee1 73912005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
7392
7393 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
7394 (DISTDIRS): Added io and video.
7395 Rewrite the search routine to make an output consistently.
7396
7397 * DISTLIST: Added conf/sparc64-ieee1275.mk,
7398 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
7399 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
7400 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
7401 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
7402 util/powerpc/ieee1275/misc.c.
7403
7404 * include/grub/gzio.h: New file.
7405 * io/gzio.c: Likewise.
7406
7407 * kern/file.c (grub_file_close): Call grub_device_close only if
7408 FILE->DEVICE is not NULL.
7409
7410 * include/grub/mm.h [!NULL] (NULL): New macro.
7411
7412 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
7413
7414 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
7415 (pkgdata_MODULES): Added gzio.mod.
7416 (gzio_mod_SOURCES): New variable.
7417 (gzio_mod_CFLAGS): Likewise.
7418
7419 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
7420 (pkgdata_MODULES): Added gzio.mod.
7421 (gzio_mod_SOURCES): New variable.
7422 (gzio_mod_CFLAGS): Likewise.
7423
7424 * commands/cat.c: Include grub/gzio.h.
7425 (grub_cmd_cat): Use grub_gzfile_open instead of
7426 grub_file_open.
7427
7428 * commands/cmp.c: Include grub/gzio.h.
7429 (grub_cmd_cmp): Use grub_gzfile_open instead of
7430 grub_file_open.
7431
7432 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
7433 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
7434 grub_file_open.
7435 (grub_rescue_cmd_module): Likewise.
7436
fa46f4b5 74372005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
7438
7439 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
7440 kern/sparc64/ieee1275/init.c because it contains _start.
7441 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
7442
e9211b5d 74432005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
7444
7445 * configure.ac: Add support for sparc64 host with ieee1275
7446 firmware.
7447 * configure: Generated from configure.ac.
7448 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
7449 instead of int.
7450 (grub_ofdisk_read): Likewise.
7451 (grub_ofdisk_open): Use %p to print pointer values, and cast the
7452 pointers as (void *) to remove a warning.
7453 (grub_ofdisk_close): Likewise.
7454 (grub_ofdisk_read): Likewise.
7455 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
7456 returns, so make it return void to remove a warning.
7457 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
7458 Corresponding prototype change.
7459 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
7460 values, and cast the pointers as (void *) to remove a warning.
7461 (grub_mm_dump): Likewise.
7462 * conf/sparc64-ieee1275.mk: New file.
7463 * conf/sparc64-ieee1275.rmk: Likewise.
7464 * include/grub/sparc64/setjmp.h: Likewise.
7465 * include/grub/sparc64/types.h: Likewise.
7466 * include/grub/sparc64/ieee1275/console.h: Likewise.
7467 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
7468 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
7469 * include/grub/sparc64/ieee1275/time.h: Likewise.
7470 * kern/sparc64/cache.c: Likewise.
7471 * kern/sparc64/dl.c: Likewise.
7472 * kern/sparc64/ieee1275/init.c: Likewise.
7473 * kern/sparc64/ieee1275/openfw.c: Likewise.
7474
385c6a92 74752005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
7476
7477 * util/console.c (grub_ncurses_putchar): If C is greater than
7478 0x7f, set C to a question mark.
7479 (grub_ncurses_getcharwidth): New function.
7480 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
7481 getcharwidth.
7482
7483 * normal/menu.c (print_entry): Made aware of Unicode. First,
7484 convert TITLE to UCS-4, and predict the cursor position by
7485 grub_getcharwidth.
7486
7487 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
7488 const to SRC.
7489 * kern/misc.c (grub_utf16_to_utf8): Likewise.
7490
16ccb8b1 74912005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
7492
7493 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
7494 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
7495 grub_strcat.
7496
7497 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
7498 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
7499 grub_strcpy and grub_strlen. Take it into account that a space
7500 character is inserted as a delimiter.
7501
6a85ce79 75022005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
7503
7504 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
7505 invalid magic in thre error.
7506
7507 * commands/search.c: New file.
7508
7509 * util/grub-emu.c (main): Call grub_search_init and
7510 grub_search_fini.
7511
7512 * kern/rescue.c (grub_rescue_print_disks): Removed.
7513 (grub_rescue_print_devices): New function.
7514 (grub_rescue_cmd_ls): Use grub_device_iterate with
7515 grub_rescue_print_devices instead of grub_disk_dev_iterate with
7516 grub_rescue_print_disks.
7517
7518 * kern/partition.c (grub_partition_iterate): Return the result of
7519 PARTMAP->ITERATE instead of GRUB_ERRNO.
7520
7521 * kern/device.c: Include grub/partition.h.
7522 (grub_device_iterate): New function.
7523
7524 * include/grub/partition.h (grub_partition_iterate): Return int
7525 instead of grub_err_t.
7526
7527 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
7528 prototype.
7529 [GRUB_UTIL] (grub_search_fini): Likewise.
7530
7531 * include/grub/device.h (grub_device_iterate): New prototype.
7532
7533 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
7534 commands/search.c.
7535 (pkgdata_MODULES): Added search.mod.
7536 (search_mod_SOURCES): New variable.
7537 (search_mod_CFLAGS): Likewise.
7538
7539 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
7540 (pkgdata_MODULES): Added search.mod.
7541 (search_mod_SOURCES): New variable.
7542 (search_mod_CFLAGS): Likewise.
7543
7544 * commands/ls.c (grub_ls_list_disks): Renamed to ...
7545 (grub_ls_list_devices): ... this, and use grub_device_iterate.
7546 All callers changed.
7547
7548 * DISTLIST: Added commands/search.c.
7549
ef095434 75502005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
7551
7552 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
7553 conversion.
7554 (grub_getcharwidth): New function.
7555
7556 * kern/misc.c (grub_utf8_to_ucs4): New function.
7557
7558 * include/grub/term.h (struct grub_term): Added a new member
7559 "getcharwidth".
7560 (grub_getcharwidth): New prototype.
7561
7562 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
7563
7564 * term/i386/pc/console.c (map_char): New function. Segregated from
7565 grub_console_putchar.
7566 (grub_console_putchar): Use map_char.
7567 (grub_console_getcharwidth): New function.
7568 (grub_console_term): Specified grub_console_getcharwidth as
7569 getcharwidth.
7570
7571 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
7572 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
7573
7574 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
7575 GRUB_ERRNO.
7576 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
7577 on grub_strtoul completely.
7578 (write_char): Declare local variables in the beginning of the
7579 function.
7580 (grub_vesafb_getcharwidth): New function.
7581 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
7582 getcharwidth.
7583
1f0a95e4 75842005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
7585
7586 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
7587 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
7588 commands/i386/pc/vbetest.c.
7589
7590 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
7591 call grub_vbe_get_controller_info again, because the returned
7592 information is volatile.
7593 (grub_vbe_set_video_mode): Mostly rewritten.
7594 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
7595 grub_vbe_status_t correctly.
7596 (grub_vbe_get_video_mode_info): Likewise.
7597 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
7598 several if statements.
7599
7600 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
7601 * commands/i386/pc/vbeinfo.c: ... this.
7602
7603 * commands/i386/pc/vbe_test.c: Renamed to ...
7604 * commands/i386/pc/vbetest.c: ... this.
7605
7606 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
7607 ...
7608 (grub_cmd_vbeinfo): ... this. Save video modes before
7609 iterating. Skip a video mode, if it is not available, not enough
7610 information is given or it is monochrome. Show the memory
7611 model. Leave the interpretation of MODEVAR to grub_strtoul
7612 completely.
7613 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
7614 (GRUB_MOD_FINI): Likewise.
7615
7616 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
7617 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
7618 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
7619 duplicated grub_env_get. Leave the interpretation of MODEVAR to
7620 grub_strtoul completely.
7621 (real2pm): Removed.
7622 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
7623 (GRUB_MOD_FINI): Likewise.
7624
7625 * normal/misc.c: Include grub/mm.h.
7626
7627 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
7628 vbe_list_modes with vbetest.mod and vbeinfo.mod.
7629 (vbe_list_modes_mod_SOURCES): Removed.
7630 (vbe_list_modes_mod_CFLAGS): Likewise.
7631 (vbe_test_mod_SOURCES): Likewise.
7632 (vbe_test_mod_CFLAGS): Likewise.
7633 (vbeinfo_mod_SOURCES): New variable.
7634 (vbeinfo_mod_CFLAGS): Likewise.
7635 (vbetest_mod_SOURCES): Likewise.
7636 (vbetest_mod_CFLAGS): Likewise.
7637
992ffbbe 76382005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
7639
7640 * normal/misc.c: New file.
7641
7642 * DISTLIST: Added normal/misc.c.
7643
7644 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
7645 DISK to HOOK. Call HOOK with DISK.
7646 * partmap/apple.c (apple_partition_map_iterate): Likewise.
7647 * partmap/pc.c (pc_partition_map_iterate): Likewise.
7648 * partmap/sun.c (sun_partition_map_iterate): Likewise.
7649
7650 * normal/menu_entry.c (struct screen): Added a new member
7651 "completion_shown".
7652 (completion_buffer): New global variable.
7653 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
7654 (store_completion): New function.
7655 (complete): Likewise.
7656 (clear_completions): Likewise.
7657 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
7658 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
7659 a tab, call complete.
7660
7661 * normal/completion.c (disk_dev): Removed.
7662 (print_simple_completion): Likewise.
7663 (print_partition_completion): Likewise.
7664 (print_func): New global variable.
7665 (add_completion): Do not take the arguments WHAT or PRINT any
7666 longer. Added a new argument TYPE. Instead of printing directly,
7667 call PRINT_FUNC if not NULL.
7668 All callers changed.
7669 (complete_device): Use a local variable DEV instead of
7670 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
7671 (grub_normal_do_completion): Take a new argument HOOK. Do not
7672 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
7673 empty string, return NULL instead.
7674 All callers changed.
7675
7676 * normal/cmdline.c (print_completion): New function.
7677
7678 * kern/partition.c (grub_partition_iterate): Add an argument DISK
7679 to HOOK.
7680 All callers changed.
7681
7682 * kern/disk.c (grub_print_partinfo): Removed.
7683
7684 * include/grub/partition.h (struct grub_partition_map): Add a new
7685 argument DISK into HOOK of ITERATE.
7686 (grub_partition_iterate): Add a new argument DISK to HOOK.
7687
7688 * include/grub/normal.h (enum grub_completion_type): New enum.
7689 (grub_completion_type_t): New type.
7690 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
7691 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
7692 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
7693 (GRUB_COMPLETION_TYPE_FILE): Likewise.
7694 (grub_normal_do_completion): Added a new argument HOOK.
7695 (grub_normal_print_device_info): New prototype.
7696
7697 * include/grub/disk.h (grub_print_partinfo): Removed.
7698
7699 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
7700 (normal_mod_SOURCES): Likewise.
7701 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
7702 (normal_mod_SOURCES): Likewise.
7703
7704 * commands/ls.c (grub_ls_list_disks): Use
7705 grub_normal_print_device_info instead of grub_print_partinfo. Free
7706 PNAME.
7707 (grub_ls_list_files): Use grub_normal_print_device_info instead of
7708 duplicating the code.
7709
0bd41162 77102005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
7711
7712 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
7713 follow GCS more precisely.
7714 * commands/i386/pc/vbe_test.c: Likewise.
7715 * include/grub/i386/pc/vbe.h: Likewise.
7716 * term/i386/pc/vesafb.c: Likewise.
7717 * video/i386/pc/vbe.c: Likewise.
7718
6323696a 77192005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
7720
7721 * DISTLIST: Added term/i386/pc/vesafb.c
7722 DISTLIST: Added video/i386/pc/vbe.c
7723 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
7724 DISTLIST: Added commands/i386/pc/vbe_test.c.
7725 * commands/i386/pc/vbe_list_modes.c: New file.
7726 * commands/i386/pc/vbe_test.c: Likewise.
7727 * term/i386/pc/vesafb.c: Likewise.
7728 * video/i386/pc/vbe.c: Likewise.
7729 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
7730 (grub_vbe_probe) Added prototype.
7731 (grub_vbe_set_video_mode) Likewise.
7732 (grub_vbe_get_video_mode) Likewise.
7733 (grub_vbe_get_video_mode_info) Likewise.
7734 (grub_vbe_set_pixel_rgb) Likewise.
7735 (grub_vbe_set_pixel_index) Likewise.
7736 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
7737 (pkgdata_MODULES): Added vesafb.mod.
7738 (pkgdata_MODULES): Added vbe_list_modes.mod.
7739 (pkgdata_MODULES): Added vbe_test.mod.
7740 (vbe_mod_SOURCES): Added.
7741 (vbe_mod_CFLAGS): Likewise.
7742 (vesafb_mod_SOURCES): Likewise.
7743 (vesafb_mod_CFLAGS): Likewise.
7744 (vbe_list_modes_mod_SOURCES): Likewise.
7745 (vbe_list_modes_mod_CFLAGS): Likewise.
7746 (vbe_test_mod_SOURCES): Likewise.
7747 (vbe_test_mod_CFLAGS): Likewise.
7748
0a74e62f 77492005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
7750
0a74e62f 7751 * normal/command.c (grub_command_execute): If INTERACTIVE is
7752 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
7753 CMDLINE. Disable the pager if INTERACTIVE is true.
7754 All callers are changed.
7755
7756 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
7757 before reading a config file.
7758 * normal/main.c (read_config_file): Even if a command is not
7759 found, register it if it is within an entry.
7760
7761 * util/grub-emu.c: Include sys/types.h and unistd.h.
7762 (options): Added --hold.
7763 (struct arguments): Added a new member "hold".
7764 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
7765 missing.
7766 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
7767 cleared by a debugger, if it is not zero.
7768
7769 * include/grub/normal.h (grub_command_execute): Add an argument
7770 INTERACTIVE.
7771
e51f85ae 77722005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
7773
7774 * DISTLIST: Added include/grub/i386/pc/vbe.h.
7775
e9c6f39b 77762005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
7777
7778 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
7779 program with another one, because the old one didn't detect a bug
7780 in gcc-3.4. Always use regparm 2, because the new test is still
7781 not enough for gcc-4.0. Someone must investigate a simple test
7782 case which detects a bug in gcc-4.0.
7783
8de3495c 77842005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
7785
7786 * DISTLIST: Added normal/completion.c.
7787
7788 * normal/completion.c: New file.
7789
7790 * term/i386/pc/console.c (grub_console_getwh): New function.
7791 (grub_console_term): Assign grub_console_getwh to getwh.
7792
7793 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
7794 function is defined in normal/completion.c as
7795 grub_normal_do_completion.
7796 (grub_cmdline_get): Use grub_normal_do_completion instead of
7797 grub_tab_complete.
7798
7799 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
7800 returns non-zero, otherwise return 0.
7801 (grub_partition_iterate): First, probe the partition map. Then,
7802 call ITERATE only for this partition map.
7803
7804 * kern/misc.c (grub_strncmp): Rewritten.
7805
7806 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
7807 returns non-zero. Otherwise return 0.
7808
7809 * include/grub/partition.h (grub_partition_map_iterate): Return
7810 int instead of void.
7811
7812 * include/grub/normal.h (grub_normal_do_completion): New prototype.
7813
7814 * include/grub/misc.h (grub_strncmp): Change the type of N to
7815 grub_size_t.
7816
7817 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
7818 of void.
7819
7820 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
7821 unsigned explictly before comparing it with I.
7822
7823 * kern/main.c (grub_env_write_root): Add the attribute unused into
7824 VAR.
7825
7826 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
7827 normal/completion.c.
7828 (normal_mod_SOURCES): Likewise.
7829 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
7830 (normal_mod_SOURCES): Likewise.
7831
7832 * normal/command.c (grub_iterate_commands): If ITERATE returns
7833 non-zero, return one immediately.
7834
e85e144b 78352005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
7836
7837 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
7838 * kern/i386/pc/startup.S: Updated Global Descriptor table's
7839 descriptions.
7840 (grub_vbe_get_controller_info): New function.
7841 (grub_vbe_get_mode_info): Likewise.
7842 (grub_vbe_set_mode): Likewise.
7843 (grub_vbe_get_mode): Likewise.
7844 (grub_vbe_set_memory_window): Likewise.
7845 (grub_vbe_get_memory_window): Likewise.
7846 (grub_vbe_set_scanline_length): Likewise.
7847 (grub_vbe_get_scanline_length): Likewise.
7848 (grub_vbe_set_display_start): Likewise.
7849 (grub_vbe_get_display_start): Likewise.
7850 (grub_vbe_set_palette_data): Likewise.
7851 * include/grub/i386/pc/vbe.h: New file.
7852
c46153d2 78532005-08-08 Hollis Blanchard <hollis@penguinppc.org>
7854
7855 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
7856 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
7857 * DISTLIST: Likewise.
7858 * kern/ieee1275/of.c: Moved to ...
7859 * kern/ieee1275/ieee1275.c: ... here.
7860
0cb90c45 78612005-08-08 Hollis Blanchard <hollis@penguinppc.org>
7862
7863 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
7864 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
7865 Pass 0 as `end' parameter to grub_strtoul().
7866
a19fb360 78672005-08-08 Hollis Blanchard <hollis@penguinppc.org>
7868
7869 * include/grub/powerpc/ieee1275/console.h: Do not include
7870 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
7871 ifdef.
7872 (grub_console_cur_color): Remove i386-specific prototype.
7873 (grub_console_real_putchar): Likewise.
7874 (grub_console_checkkey): Likewise.
7875 (grub_console_getkey): Likewise.
7876 (grub_console_getxy): Likewise.
7877 (grub_console_gotoxy): Likewise.
7878 (grub_console_cls): Likewise.
7879 (grub_console_setcursor): Likewise.
7880 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
7881 Include <grub/machine/console.h>.
7882 * term/ieee1275/ofconsole.c: Likewise.
7883
4ac9bd04 78842005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
7885
7886 * Makefile.in (LIBLZO): New variable.
7887
7888 * configure.ac: Check for LZO version 2.
7889
7890 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
7891 lzo/lzo1x.h instead of lzo1x.h.
7892
7893 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
7894 of -llzo.
7895
7896 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
7897 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
7898
7899 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
7900 copying the data from PARTITION to P.
7901
f4917dfd 79022005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
7903
7904 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
7905 negative, unload the module.
7906
7907 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
7908 map is "pc_partition_map" but not "pc".
7909 (usage): Fix the description. The options are --boot-image and
7910 --core-image but not --boot-file or --core-file.
7911 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
7912 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
7913 DEFAULT_DIRECTORY.
7914
7915 * util/i386/pc/grub-install.in: Do not specify --boot-file or
7916 --core-file. Specify INSTALL_DEVICE as an argument.
7917
7918 * util/console.c: Include config.h.
7919 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
7920 [HAVE_NCURSES_H]: Include ncurses.h.
7921 [HAVE_CURSES_H]: Include curses.h.
7922 [!A_NORMAL] (A_NORMAL): Defined as zero.
7923 [!A_STANDOUT] (A_STANDOUT): Likewise.
7924
7925 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
7926 -lncurses.
7927 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
7928
7929 * configure.ac: Check for curses libraries and headers.
7930
7931 * Makefile.in (LIBCURSES): New variable.
7932
7933 * genmk.rb (Script::rule): Set the executable bits.
7934
7935 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
7936 name of the PC partition map is "pc_partition_map" but not "pc".
7937
0e143073 79382005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
7939
7940 * util/i386/pc/grub-install.in (grub_probefs): New variable.
7941 (modules): Likewise.
7942 (usage): Added descriptions for --modules and --grub-probefs.
7943 Handle --modules and --grub-probefs. Save the arguments in MODULES
7944 and GRUB_PROBEFS, respectively.
7945 Auto-detect a filesystem module against GRUBDIR. If the result is
7946 empty and modules are not specified explicitly, abort the
7947 installation. Add the result to MODULES.
7948
7949 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
7950 disk/powerpc/ieee1275/ofdisk.c,
7951 include/grub/powerpc/ieee1275/init.h and
7952 term/powerpc/ieee1275/ofconsole.c.
7953 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
7954 term/ieee1275/ofconsole.c.
7955
7956 * include/grub/powerpc/ieee1275/console.h: Resurrected.
7957
7958 * COPYING: Upgraded to the latest version. Only the address of the
7959 FSF office has changed.
7960
efd6e6d5 79612005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
7962
7963 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
7964 kern/ieee1275.c with kern/ieee1275/of.c.
7965
7966 * kern/ieee1275.c: Moved to ...
7967 * kern/ieee1275/of.c: ... here.
7968
8ceafda2 79692005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
7970
7971 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
7972 readablity.
7973
7974 * config.guess: Updated to the latest version from gnulib.
7975 * config.sub: Likewise.
7976 * install.sh: Likewise.
7977 * mkinstalldirs: Likewise.
7978
7979 * include/grub/console.h: Removed. This file is arch-specific. Do
7980 not put this in include/grub.
7981
7982 * include/grub/i386/pc/console.h: Resurrected.
7983
7984 * util/console.c: Include grub/machine/console.h instead of
7985 grub/console.h.
7986 * util/grub-emu.c: Likewise.
7987
267f6cd9 79882005-08-04 Marco Gerards <metgerards@student.han.nl>
7989
7990 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
7991 hardcoded value.
7992
7993 From Vincent Pelletier <subdino2004@yahoo.fr>
7994 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
7995 Redefined to use grub_getwh.
7996 (grub_term): New member named getwh.
7997 (grub_getwh): New prototype.
7998 * kern/term.c (grub_getwh): New function.
7999 * term/i386/pc/console.c (grub_console_getwh): New function.
8000 (grub_console_term): New member `getwh'.
8001 * term/i386/pc/vga.c (grub_vga_getwh): New function.
8002 (grub_vga_term): New member `getwh'.
0b5abe02 8003 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
267f6cd9 8004 grub_ssize_t.
8005 (grub_ofconsole_getw): New function.
8006 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
8007 (grub_ofconsole_term): New field named getwh and new initial
8008 value.
8009
3be7266d 80102005-08-03 Hollis Blanchard <hollis@penguinppc.org>
8011
8012 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
8013 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
8014 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
8015 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
8016 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
8017 of <grub/machine/ieee1275.h>.
8018 * commands/ieee1275/reboot.c: Likewise.
8019 * boot/powerpc/ieee1275/ieee1275.c: Move ...
8020 * kern/ieee1275.c: ... to here. All users updated. Change all
8021 parameter structs to use new type `grub_ieee1275_cell_t'.
8022 * term/powerpc/ieee1275/ofconsole.c: Move ...
8023 * term/ieee1275/ofconsole.c: ... to here. All users updated.
8024 * disk/powerpc/ieee1275/ofdisk.c: Move ...
8025 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
8026 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
8027 to return int.
8028 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
8029 Remove unused prototypes. All users updated.
8030 * include/grub/powerpc/ieee1275/console.h: Removed.
8031 * include/grub/powerpc/ieee1275/ieee1275.h: Define
8032 `grub_ieee1275_cell_t'.
8033 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
8034 Cast comparisons with -1 to the correct type.
8035 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
8036 type to match `grub_ieee1275_entry_fn'.
8037
8b5f3938 80382005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
8039
8040 * DISTLIST: Added util/i386/pc/grub-probefs.c.
8041
8042 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
8043 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
8044 partmap/sun.c.
8045 (grub_probefs_SOURCES): New variable.
8046
8047 * util/i386/pc/grub-probefs.c: New file.
8048
8049 * util/i386/pc/grub-setup.c (main): Call
8050 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
8051 grub_hfs_init and grub_jfs_init to initialize the system. Call
8052 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
8053 grub_pc_partition_map_fini to finish the system.
8054
ea409713 80552005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
8056
8057 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
8058 function.
8059 (grub_multiboot_load_elf32): Likewise.
8060 (grub_multiboot_is_elf64): Likewise.
8061 (grub_multiboot_load_elf64): Likewise.
8062 (grub_multiboot_load_elf): Likewise.
8063 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
8064 an ELF32 or ELF64 file.
8065 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
8066
8067 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
8068 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
8069 NULL before calling FS->LABEL.
8070 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
8071 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
8072 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
8073 before calling FS->LABEL.
8074
141a288b 80752005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
8076
8077 * util/i386/pc/grub-install.in (datadir): New variable.
8078 (libdir): Removed.
8079 (pkgdatadir): New variable.
8080 (pkglibdir): Removed.
8081
0d5f8a54 80822005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
8083
8084 * DISTLIST: Added util/i386/pc/grub-install.in.
8085
8086 * util/i386/pc/grub-install.in: New file.
8087
8088 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
8089 (grub_install_SOURCES): Likewise.
8090
8091 * genmk.rb: Added support for scripts.
8092 (Script): New class.
8093 (scripts): New variable.
8094
8095 * Makefile.in (install-local): Install sbin_SCRIPTS by
8096 INSTALL_SCRIPT.
8097 (uninstall): Remove sbin_SCRIPTS.
8098
8099 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
8100 device, try to get a GRUB device by
8101 grub_util_biosdisk_get_grub_dev.
8102 Free DEST_DEV.
8103
8104 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
8105 description for --device-map.
8106
5f968e1e 81072005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
8108
8109 Change the semantics of variable hooks. They now return strings
8110 instead of error values.
8111
8112 * util/i386/pc/grub-setup.c: Include grub/env.h.
8113 (setup): Use grub_device_set_root instead of grub_env_set.
8114
8115 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
8116 grub_env_get instead of grub_device_set_root and
8117 grub_device_get_root, respectively.
8118
8119 * kern/main.c (grub_env_write_root): New function.
8120 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
8121 grub_env_set instead of grub_device_set_root.
8122
8123 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
8124 many variables.
8125 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
8126 rather than calling ENV->WRITE_HOOK afterwards.
8127 (grub_env_get): Return the result of ENV->READ_HOOK rather than
8128 passing a pointer of a pointer.
8129 (grub_register_variable_hook): Change the types of "read_hook" and
8130 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
8131 respectively.
8132 Allocate the default empty string on the heap, because this string
8133 may be freed later.
8134
8135 * kern/device.c: Include grub/env.h.
8136 (grub_device_set_root): Removed.
8137 (grub_device_get_root): Likewise.
8138 (grub_device_open): Use grub_env_get instead of
8139 grub_device_get_root.
8140
8141 * include/grub/env.h (grub_env_read_hook_t): New type.
8142 (grub_env_write_hook_t): Likewise.
8143 (grub_env_var): Change the types of "read_hook" and "write_hook"
8144 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
8145 (grub_register_variable_hook): Likewise.
8146
8147 * include/grub/device.h (grub_device_set_root): Removed.
8148 (grub_device_set_root): Likewise.
8149
8150 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
8151 make sure that DIRNAME terminates with '/', so that
8152 grub_fat_find_dir will fail if PATH is not a directory.
8153
8154 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
8155 from DIRNAME.
8156 Use the qualifier auto for print_files and print_files_long.
8157 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
8158 as a regular file.
8159 Put a newline only if there is no error.
8160 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
8161 used.
8162
896f0afd 81632005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
8164
8165 * kern/partition.c (grub_partition_probe): Initialize PART to
8166 NULL. Otherwise, when no partition map is registered, this returns
8167 a garbage.
8168
b28b81b2 81692005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
8170
8171 * partmap/apple.c (apple_partition_map_iterate): Check if POS
8172 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
8173 valid.
8174
5f3607e0 81752005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
8176
8177 * commands/ls.c (grub_ls_list_disks): Print the filesystem
8178 information on each device, if it does not have partitions. Print
8179 "Device" instead of "Disk", because this function is not specific
8180 to disk devices.
8181
8182 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
8183 static to ensure that it is put on the memory rather than a
8184 register.
8185
502c87e8 81862005-07-17 Yoshinori Okuji <okuji@enbug.org>
8187
8188 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
8189 (grub_cat_init): Likewise.
8190 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
8191 (options): Likewise.
8192 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
8193 (grub_configfile_init): Likewise.
8194 * font/manager.c (GRUB_MOD_INIT): Likewise.
8195 * commands/help.c (GRUB_MOD_INIT): Likewise.
8196 (grub_help_init): Likewise.
8197 * normal/command.c (grub_command_init): Likewise.
8198 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
8199 * disk/loopback.c (grub_loop_init): Likewise.
8200 (GRUB_MOD_INIT): Likewise.
8201 * commands/ls.c (grub_ls_init): Likewise.
8202 (GRUB_MOD_INIT): Likewise.
8203 (options): Likewise.
8204 * commands/boot.c (grub_boot_init): Likewise.
8205 (GRUB_MOD_INIT): Likewise.
8206 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
8207 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
8208 (GRUB_MOD_INIT): Likewise.
8209 * commands/cmp.c (grub_cmp_init): Likewise.
8210 (GRUB_MOD_INIT): Likewise.
8211
8212 * normal/arg.c: Use <> instead of "" to include header files.
8213 (SHORT_ARG_HELP): New macro.
8214 (SHORT_ARG_USAGE): Likewise.
8215 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
8216 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
8217 descriptions.
8218 (find_short): Check if C is 'h' or 'u' explicitly.
8219 (grub_arg_show_help): Use space characters instead of tabs. Treat
8220 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
8221 are shown with --help and --usage only if they are not used for
8222 the command itself.
8223 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
8224 'h' and 'u'.
8225
8226 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
8227 const into "longarg". Change the type of "shortarg" to int.
8228
f806d18e 82292005-07-17 Yoshinori Okuji <okuji@enbug.org>
8230
8231 * boot/i386/pc/boot.S (boot_drive_check): New label.
8232
8233 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
8234 macro.
8235
8236 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
8237 which do not pass a boot drive correctly. Copied from GRUB Legacy.
8238
e293232b 82392005-07-17 Yoshinori Okuji <okuji@enbug.org>
8240
8241 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
8242 When turning off Gate A20, skip the check and return immediately,
8243 because this is not fatal usually.
8244
ebedfd00 82452005-07-17 Yoshinori Okuji <okuji@enbug.org>
8246
8247 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
8248 be 0x7C00 instead of 0x8000.
8249
8250 * boot/i386/pc/pxeboot.S: Rewritten.
8251
8252 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
8253 EXT_C.
8254 (gate_a20_check_state): Read a byte from 0x108000. Invert the
8255 result.
8256
654fc59f 82572005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
8258
8259 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
8260 robustness. This routine now supports a BIOS call and System
8261 Control Port A to modify the gate A20.
8262
8263 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
8264 Increased to 0x440.
8265
09f9923f 82662005-07-12 Hollis Blanchard <hollis@penguinppc.org>
8267
8268 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
8269 device path and resulting ihandle.
8270 (grub_ofdisk_close): dprintf the ihandle being closed.
8271 (grub_ofdisk_read): dprintf function parameters.
8272 * kern/mm.c (grub_mm_init_region): Likewise.
8273 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
8274 (grub_linux_boot): dprintf the Linux entry point, initrd address and
8275 size, and boot arguments.
8276 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
8277 before loading into memory.
8278 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
8279 before loading into memory.
8280
7ef504d8 82812005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
8282
8283 * kern/mm.c: Added much documentation.
8284 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
8285 8, set to 5 instead of 8.
8286
e0f050c2 82872005-07-10 Yoshinori Okuji <okuji@enbug.org>
8288
8289 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
8290
8291 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
8292 (grub_mkdevicemap_SOURCES): New variable.
8293
8294 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
8295 lib/device.c of GRUB Legacy.
8296
7224189a 82972005-07-10 Yoshinori Okuji <okuji@enbug.org>
8298
8299 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
8300 instead of PATH is NULL.
8301
68c864eb 83022005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
8303
8304 * commands/cmp.c (BUFFER_SIZE): New macro.
8305 (grub_cmd_cmp): Close the right file at the right time. Compare
8306 only data just read. Don't report files of different size as
8307 identical. Dynamically allocate buffers. Move variable
8308 declarations at the beginning of function.
8309
e6f3e614 83102005-07-09 Yoshinori Okuji <okuji@enbug.org>
8311
8312 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
8313 reverse.
8314
f8f1559a 83152004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
8316
8317 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
8318 when backspace is pressed at beginning of line.
8319
39c9d41d 83202005-07-03 Yoshinori Okuji <okuji@enbug.org>
8321
8322 * DISTLIST: Added genfslist.sh.
8323
8324 * normal/main.c (fs_module_list): New variable.
8325 (autoload_fs_module): New function.
8326 (read_fs_list): Likewise.
8327 (grub_normal_execute): Call read_fs_list.
8328
8329 * kern/fs.c (grub_fs_autoload_hook): New variable.
8330 (grub_fs_probe): Added support for auto-loading.
8331
8332 * include/grub/normal.h (struct grub_fs_module_list): New struct.
8333 (grub_fs_module_list_t): New type.
8334
8335 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
8336 (grub_fs_autoload_hook): New prototype.
8337
8338 * genfslist.sh: New file.
8339
8340 * genmk.rb: Added a rule to generate a filesystem list.
8341
121c1d83 83422005-06-30 Marco Gerards <metgerards@student.han.nl>
8343
8344 * configure.ac: Fix the test for cross-compiling.
8345
8346 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
8347 define GRUB_UTIL anymore.
8348
8349 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
8350 so this function works on other systems than just big endian.
8351 (load_modules): Likewise.
8352 (add_segments): Likewise.
8353
e75d76e1 83542005-06-23 Hollis Blanchard <hollis@penguinppc.org>
8355
8356 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
8357 contains `l' modifier, get a long from va_arg().
8358
50b5a0a7 83592005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
8360
8361 * kern/mm.c (grub_free): If the next free block which is being
8362 merged is the first free block, set the first block to the block
8363 being freed.
8364 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
8365
89371b20 83662005-05-08 Hollis Blanchard <hollis@penguinppc.org>
8367
8368 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
8369 `grub_ieee1275_chosen'.
8370
168d6e58 83712005-05-08 Hollis Blanchard <hollis@penguinppc.org>
8372
8373 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
8374 (grub_ieee1275_chosen): New variable.
8375 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
8376 `chosen'.
8377 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
8378 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
8379 Rename first argument to `phandle' for consistency.
8380 (grub_ieee1275_get_property_length): Likewise.
8381 (grub_ieee1275_next_property): Likewise. Change type of first argument
8382 to grub_ieee1275_phandle_t.
8383 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
8384 Move export next to declaration.
8385 (grub_ieee1275_chosen): New variable.
8386 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
8387 Correct cosmetic typo.
8388 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
8389 `grub_ieee1275_chosen'.
8390 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
8391 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
8392 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
8393 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
8394 `grub_ieee1275_chosen'.
8395
ca5baa3f 83962005-05-10 Hollis Blanchard <hollis@penguinppc.org>
8397
8398 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
8399 /chosen/bootargs.
8400 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
8401 /chosen/bootargs as "variable=value" pairs.
8402
708b345f 84032005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
8404
8405 * include/grub/misc.h (grub_dprintf): New macro.
8406 (grub_real_dprintf): New prototype.
8407 (grub_strword): Likewise.
8408 (grub_iswordseparator): Likewise.
8409 * kern/misc.c (grub_real_dprintf): New function.
8410 (grub_strword): Likewise.
8411 (grub_iswordseparator): Likewise.
8412
f4c5e67c 84132005-04-30 Hollis Blanchard <hollis@penguinppc.org>
8414
8415 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
8416 (roundup): Remove macro.
8417 (grub_ieee1275_flags): Make static.
8418 (grub_ieee1275_realmode): Remove.
8419 (grub_ieee1275_test_flag): New function.
8420 (grub_ieee1275_set_flag): Likewise.
8421 (find_options): Rename to `grub_ieee1275_find_options'; update
8422 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
8423 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
8424 (cmain): New prototype.
8425 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
8426 `grub_ieee1275_flags' directly.
8427 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
8428 machine/biosdisk.h.
8429 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
8430 Don't include grub/machine/init.h.
8431 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
8432 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
8433 Remove prototype.
8434 (grub_ieee1275_realmode): Likewise.
8435 (grub_ieee1275_flag): New enum.
8436 (grub_ieee1275_test_flag): New prototype.
8437 (grub_ieee1275_set_flag): New prototype.
8438 * include/grub/powerpc/ieee1275/init.h: Remove file.
8439 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
8440 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
8441 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
8442 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
8443 comment.
8444 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
8445 `grub_ieee1275_test_flag'.
8446 (grub_ieee1275_encode_devname): Likewise.
8447
ed16607e 84482005-04-21 Hollis Blanchard <hollis@penguinppc.org>
8449
8450 * include/grub/powerpc/ieee1275/ieee1275.h
8451 (grub_ieee1275_encode_devname): New prototype.
8452 (grub_ieee1275_get_filename): Likewise.
8453 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
8454 function.
8455 (grub_set_prefix): Likewise.
8456 (grub_machine_init): Call grub_set_prefix.
8457 * kern/powerpc/ieee1275/openfw.c: Fix typos.
8458 (grub_parse_type): New enum.
8459 (grub_ieee1275_get_devargs): New function.
8460 (grub_ieee1275_get_devname): Likewise.
8461 (grub_ieee1275_parse_args): Likewise.
8462 (grub_ieee1275_get_filename): Likewise.
8463 (grub_ieee1275_encode_devname): Likewise.
8464
be369920 84652005-03-30 Marco Gerards <metgerards@student.han.nl>
8466
8467 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
8468 `grub_loader_unset'.
8469
a5ce3a4a 84702005-03-26 Hollis Blanchard <hollis@penguinppc.org>
8471
8472 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
8473 instead of grub_ieee1275_interpret.
8474 (grub_halt_init): New function.
8475 (grub_halt_fini): Likewise.
8476 (GRUB_MOD_INIT): Correct message grammar.
8477 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
8478 instead of grub_ieee1275_interpret.
8479 (grub_reboot_init): New function.
8480 (grub_reboot_fini): Likewise.
8481 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
8482 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
8483 util/i386/pc/misc.c with commands/ieee1275/halt.c,
8484 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
8485 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
8486 function.
8487 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
8488 Add prototype.
8489 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
8490 prototype.
8491 (grub_halt): Likewise.
8492 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
8493 (cmain): Remove __attribute__((unused)).
8494 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
8495 (grub_heap_len): Likewise.
8496 (grub_machine_fini): New function.
8497 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
8498 (grub_halt): Likewise.
8499 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
8500 function.
8501 * util/powerpc/ieee1275/misc.c: New file.
8502
0058f771 85032005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
8504
8505 * DISTLIST: New file.
8506 * gendistlist.sh: Likewise.
8507
8508 * Makefile.in (COMMON_DISTFILES): Removed.
8509 (BOOT_DISTFILES): Likewise.
8510 (CONF_DISTFILES): Likewise.
8511 (DISK_DISTFILES): Likewise.
8512 (FS_DISTFILES): Likewise.
8513 (INCLUDE_DISTFILES): Likewise.
8514 (KERN_DISTFILES): Likewise.
8515 (LOADER_DISTFILES): Likewise.
8516 (TERM_DISTFILES): Likewise.
8517 (UTIL_DISTFILES): Likewise.
8518 (DISTFILES): Likewise.
8519 (uninstall): Uninstall files in $(pkgdata_DATA).
8520 (DISTLIST): New target.
8521 (distdir): Use the contents of the file DISTLIST to get a list of
8522 distributed files.
8523
46b3b8a5 85242005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
8525
8526 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
8527 descriptor. This is ported from GRUB Legacy.
8528
8529 * gencmdlist.sh: Added an extra semicolon to make it work with
8530 old sed versions. Reported by Robert Bihlmeyer
8531 <robbe@orcus.priv.at>.
8532
5822ff87 85332005-03-08 Yoshinori Okuji <okuji@enbug.org>
8534
8535 Automatic loading of commands is supported.
8536
8537 * normal/main.c (read_command_list): New function.
8538 (grub_normal_execute): Call read_command_list.
8539
8540 * normal/command.c (grub_register_command): Return zero or CMD.
8541 Allocate CMD->NAME from the heap.
8542 Initialize CMD->MODULE_NAME to zero.
8543 Find the same name as well. If the same command is found and it is
8544 a dummy command, overwrite members. If it is not a dummy command,
8545 return zero.
8546 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
8547 (grub_command_find): If a dummy command is found, load a module
8548 and retry to find a command only once.
8549
8550 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
8551 make sure that each command is loaded.
8552
8553 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
8554 macro.
8555 (struct grub_command): Remove const from the member `name'.
8556 Add a new member `module_name'.
8557 (grub_register_command): Return grub_command_t.
8558
8559 * commands/help.c (grub_cmd_help): Call grub_command_find to make
8560 sure that each command is loaded.
8561
8562 * genmk.rb (PModule::rule): Specify a module name without the
8563 suffix ".mod" to gencmdlist.sh.
8564
7b1f4b57 85652005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
8566
8567 * gencmdlist.sh: New file.
8568
8569 * genmk.rb (PModule::rule): Generate a rule for a command list.
8570 Clean command.lst.
8571 Generate command.lst from $(COMMANDFILES).
8572
8573 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
8574 (DATA): Added $(pkgdata_DATA).
8575 (install-local): Install files in $(pkgdata_DATA).
8576
062aaf39 85772005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
8578
8579 * term/i386/pc/vga.c (debug_command): Removed.
8580 (GRUB_MOD_INIT): Do not register the command "debug".
8581
8582 From Hollis Blanchard:
8583 * commands/configfile.c: New file.
8584 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
8585 commands/configfile.c.
8586 (pkgdata_MODULES): Added configfile.mod.
8587 (configfile_mod_SOURCES): New variable.
8588 (configfile_mod_CFLAGS): Likewise.
8589 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
8590 commands/configfile.c.
8591 (pkgdata_MODULES): Added configfile.mod.
8592 (configfile_mod_SOURCES): New variable.
8593 (configfile_mod_CFLAGS): Likewise.
8594 * util/grub-emu.c (main): Call grub_configfile_init and
8595 grub_configfile_fini.
8596 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
8597 prototype.
8598 [GRUB_UTIL] (grub_configfile_fini): Likewise.
8599
cee01aa6 86002005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
8601
8602 * normal/arg.c (grub_arg_show_help): Do not show the bug report
8603 address.
8604
8605 * commands/help.c (grub_cmd_help): Do not print newlines after
8606 the last command in print_command_help.
8607
93f3a1d8 86082005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
8609
8610 * commands/default.h: New file.
8611 * commands/timeout.h: Likewise.
8612 * normal/context.c: Likewise.
8613
8614 * util/misc.c: Do not include sys/times.h.
8615 Include sys/time.h and grub/machine/time.h.
8616 (grub_get_rtc): Rewritten with gettimeofday.
8617
8618 * util/grub-emu.c (main): Call grub_default_init and
8619 grub_timeout_init before grub_normal_init, and call
8620 grub_timeout_fini and grub_default_fini after grub_main.
8621
8622 * util/console.c (grub_ncurses_checkkey): Return the read
8623 character or -1.
8624
8625 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
8626 timeouts.
8627
8628 * normal/main.c (read_config_file): Push MENU. If this fails,
8629 print an error and wait for a user input.
8630 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
8631 If a menu is empty or an error occurs, pop MENU.
8632 (grub_normal_execute): Pop and free MENU after grub_menu_run
8633 returns.
8634
8635 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
8636
8637 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
8638 include time.h.
8639 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
8640 without GRUB_UTIL.
8641 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
8642 time.h.
8643 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
8644 without GRUB_UTIL.
8645
8646 * include/grub/normal.h (struct grub_menu_list): New struct.
8647 (grub_menu_list_t): New type.
8648 (struct grub_context): New struct.
8649 (grub_context_t): New type.
8650 (grub_register_command): Got rid of EXPORT_FUNC.
8651 (grub_unregister_command): Likewise.
8652 (grub_context_get): New prototype.
8653 (grub_context_get_current_menu): Likewise.
8654 (grub_context_push_menu): Likewise.
8655 (grub_context_pop_menu): Likewise.
8656 [GRUB_UTIL] (grub_default_init): Likewise.
8657 [GRUB_UTIL] (grub_default_fini): Likewise.
8658 [GRUB_UTIL] (grub_timeout_init): Likewise.
8659 [GRUB_UTIL] (grub_timeout_fini): Likewise.
8660
8661 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
8662 commands/timeout.c and normal/context.c.
8663 (pkgdata_MODULES): Added default.mod and timeout.mod.
8664 (normal_mod_SOURCES): Added normal/context.c.
8665 (default_mod_SOURCES): New variable.
8666 (default_mod_CFLAGS): Likewise.
8667 (timeout_mod_SOURCES): Likewise.
8668 (timeout_mod_CFLAGS): Likewise.
8669 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
8670 conf/i386-pc.rmk.
8671 (pkgdata_MODULES): Added default.mod and timeout.mod.
8672 (normal_mod_SOURCES): Added normal/context.c.
8673 (default_mod_SOURCES): New variable.
8674 (default_mod_CFLAGS): Likewise.
8675 (timeout_mod_SOURCES): Likewise.
8676 (timeout_mod_CFLAGS): Likewise.
8677
8678 * Makefile.in (all-local): Added $(MKFILES).
8679
4ed2e1dd 86802005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
8681
8682 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
8683 (grub_emu_SOURCES): Likewise.
8684 (pkgdata_MODULES): Add `sun.mod'.
8685 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
8686 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
8687 `partmap/sun.c'.
8688 (pkgdata_MODULES): Add `sun.mod'.
8689 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
8690 * include/grub/partition.h (grub_sun_partition_map_init): New
8691 prototype.
8692 (grub_sun_partition_map_fini): Likewise.
8693 * partmap/sun.c: New file.
8694 * util/grub-emu.c (main): Initialize and de-initialize the sun
8695 partitionmap support.
8696
4d4e372e 86972005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
8698
8699 This implements an Emacs-like menu entry editor.
8700
8701 * normal/menu_entry.c: New file.
8702
8703 * util/console.c (grub_ncurses_putchar): Translate some Unicode
8704 characters to ASCII.
8705 (saved_char): New variable.
8706 (grub_ncurses_checkkey): Rewritten completely.
8707 (grub_ncurses_getkey): Likewise.
8708 (grub_ncurses_init): Call raw instead of cbreak.
8709
8710 * normal/menu.c (print_entry): Do not put a space.
8711 (init_page): Renamed to ...
8712 (grub_menu_init_page): ... this. All callers changed.
8713 (edit_menu_entry): Removed.
8714 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
8715
8716 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
8717
8718 * kern/misc.c (grub_vprintf): Call grub_refresh.
8719
8720 * normal/menu.c (DISP_LEFT): Renamed to ...
8721 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
8722 * normal/menu.c (DISP_UP): Renamed to ...
8723 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
8724 * normal/menu.c (DISP_RIGHT): Renamed to ...
8725 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
8726 * normal/menu.c (DISP_DOWN): Renamed to ...
8727 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
8728 * normal/menu.c (DISP_HLINE): Renamed to ...
8729 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
8730 * normal/menu.c (DISP_VLINE): Renamed to ...
8731 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
8732 * normal/menu.c (DISP_UL): Renamed to ...
8733 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
8734 * normal/menu.c (DISP_UR): Renamed to ...
8735 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
8736 * normal/menu.c (DISP_LL): Renamed to ...
8737 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
8738 * normal/menu.c (DISP_LR): Renamed to ...
8739 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
8740 * normal/menu.c (TERM_WIDTH): Renamed to ...
8741 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
8742 * normal/menu.c (TERM_HEIGHT): Renamed to ...
8743 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
8744 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
8745 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
8746 * normal/menu.c (TERM_MARGIN): Renamed to ...
8747 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
8748 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
8749 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
8750 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
8751 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
8752 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
8753 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
8754 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
8755 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
8756 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
8757 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
8758 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
8759 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
8760 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
8761 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
8762 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
8763 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
8764 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
8765 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
8766 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
8767 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
8768 All callers changed.
8769
8770 * include/grub/normal.h: New prototype.
8771
8772 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
8773 normal/menu_entry.c.
8774 (normal_mod_SOURCES): Likewise.
8775 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
8776 (normal_mod_SOURCES): Likewise.
8777
e6b92c8a 87782005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
8779
8780 * include/grub/normal.h (grub_halt_init): New prototype.
8781 (grub_halt_fini): Likewise.
8782 (grub_reboot_init): Likewise.
8783 (grub_reboot_fini): Likewise.
8784
8785 * util/grub-emu.c: Include signal.h.
8786 (main_env): New global variable.
8787 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
8788 catch C-c.
8789 (grub_machine_fini): New function.
8790 (main): Call grub_halt_init and grub_reboot_init before
8791 grub_main, and grub_reboot_fini and grub_halt_fini after it.
8792 Call setjmp with MAIN_ENV to go back afterwards.
8793 Call grub_machine_fini right before return.
8794
8795 * include/grub/util/misc.h: Include setjmp.h.
8796 (main_env): New prototype.
8797
8798 * include/grub/kernel.h (grub_machine_fini): New prototype.
8799 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
8800 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
8801
8802 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
8803 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
8804 * term/i386/pc/console.c (grub_console_fini): Likewise.
8805
8806 * util/i386/pc/misc.c: New file.
8807
8808 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
8809 util/i386/pc/misc.c, commands/i386/pc/halt.c and
8810 commands/i386/pc/reboot.c.
8811
c642636f 88122005-02-14 Guillem Jover <guillem@hadrons.org>
8813
8814 * include/grub/dl.h (grub_dl_check_header): New prototype.
8815 (grub_arch_dl_check_header): Change return type to grub_err_t,
8816 remove size parameter and export function. Update all callers.
8817 * kern/dl.c (grub_dl_check_header): New function.
8818 (grub_dl_load_core): Use `grub_dl_check_header' instead of
8819 `grub_arch_dl_check_header'. Check ELF type. Check if sections
8820 are inside the core.
8821 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
8822 independent ELF header checks.
8823 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
8824 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
8825 `grub_dl_check_header' instead of explicit checks. Check for the
8826 ELF type.
8827 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
8828 `grub_dl_check_header' instead of explicit checks. Remove arch
8829 specific ELF header checks.
8830
e6b92c8a 8831 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
8832 argument SIZE.
8833
5eabe94b 88342005-02-13 Hollis Blanchard <hollis@penguinppc.org>
8835
8836 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
8837 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
8838
1b14a681 88392005-02-12 Hollis Blanchard <hollis@penguinppc.org>
8840
8841 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
8842 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
8843 (part_map_iterate): Clear `grub_errno' and return 0 if
8844 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
8845 * partmap/amiga.c (amiga_partition_map_iterate): Return
8846 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
8847 * partmap/apple.c (apple_partition_map_iterate): Likewise.
8848
aca108aa 88492005-02-01 Guillem Jover <guillem@hadrons.org>
8850
8851 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
8852 help info.
8853
c9f9c556 88542005-01-31 Marco Gerards <metgerards@student.han.nl>
8855
8856 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
8857 Removed prototype.
8858 (grub_rescue_cmd_linux): New prototype.
8859 (grub_rescue_cmd_initrd): Likewise.
8860 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
8861 `bi_rec'.
8862 (grub_linux_release_mem): Release the memory for the initrd.
8863 (grub_load_linux): Renamed from this...
8864 (grub_rescue_cmd_linux): ...To this. Changed all callers.
8865 Changed `entry' not to be static. Loop over memory regions to
8866 find another one when the default fails.
8867 (grub_rescue_cmd_initrd): New function.
8868 (grub_linux_init): Remove function.
8869 (grub_linux_fini): Likewise.
8870 (GRUB_MOD_INIT): Register `initrd'.
8871 (GRUB_MOD_FINI): Unregister `initrd'.
8872 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
8873 Function removed.
8874 (grub_linux_normal_fini): Likewise.
8875 (GRUB_MOD_INIT): Register `initrd'.
8876 (GRUB_MOD_FINI): Unregister `initrd'.
8877
990cf3aa 88782005-01-31 Marco Gerards <metgerards@student.han.nl>
8879
8880 * commands/help.c: New file.
8881 * normal/arg.c (show_help): Renamed to...
8882 (grub_arg_show_help): ... this.
8883 * commands/i386/pc/halt.c: New file.
8884 * commands/i386/pc/reboot.c: Likewise.
8885 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
8886 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
8887 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
8888 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
8889 variables.
8890 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
8891 `commands/help.c'.
8892 (pkgdata_MODULES): Add `help.mod'.
8893 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
8894 * grub/i386/pc/init.h (grub_reboot): New prototype.
8895 (grub_halt): Likewise.
8896 * include/grub/normal.h (grub_arg_show_help): New prototype.
8897 (grub_help_init): Likewise.
8898 (grub_help_fini): Likewise.
8899 * util/grub-emu.c (main): Initialize and deinitialize the help
8900 command.
8901
8902 * normal/cmdline.c (grub_cmdline_get): Doc fix.
8903
8904 * normal/command.c (grub_command_init): Fixed the description of
8905 the `set' and `unset' commands.
8906
89072005-01-31 Marco Gerards <metgerards@student.han.nl>
0f79cdc1 8908
8909 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
8910 function.
8911 * commands/ieee1275/halt.c: New file.
8912 * commands/ieee1275/reboot.c: Likewise.
8913 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
8914 `__attribute__ ((unused))'. Some GCS related fixed.
8915 (grub_suspend_init) [GRUB_UTIL]: Function removed.
8916 (grub_suspend_fini): Likewise.
8917 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
8918 and `halt.mod'.
8919 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
8920 (halt_mod_CFLAGS): New variables.
8921 * include/grub/powerpc/ieee1275/ieee1275.h
8922 (grub_ieee1275_interpret): New prototype.
8923
1ab09cc7 89242005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
8925
8926 * include/grub/misc.h (memmove): New prototype.
8927 (memcpy): Likewise.
8928
8b8cbdb2 89292005-01-22 Hollis Blanchard <hollis@penguinppc.org>
8930
8931 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
8932 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
8933
e3741a27 89342005-01-22 Marco Gerards <metgerards@student.han.nl>
8935
8936 * kern/misc.c (grub_strndup): Function rewritten.
8937
776bd780 89382005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
8939
8940 * normal/menu.c (TERM_WIDTH): Macro redefined.
8941 (TERM_TOP_BORDER_Y): Likewise.
8942 (draw_border): Replaced while-loop by a for-loop. Make the number
8943 of lines consistent with the number of lines displayed in
8944 print_entries. Added a margin below the rectangle.
8945 (print_entry): Make the entry fit in the rectangle.
8946 (print_entries): Display the scroll arrows next to the right
8947 border.
8948
78026bce 89492005-01-21 Marco Gerards <metgerards@student.han.nl>
8950
8951 * fs/minix.c (grub_minix_find_file): Reserve more space for
8952 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
8953 `grub_strncpy' to copy `path' into it.
8954
67bbaf0f 89552005-01-21 Marco Gerards <metgerards@student.han.nl>
8956
8957 Add the loopback device, a device via which files can be accessed
8958 as devices.
8959
8960 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
8961 (pkgdata_MODULES): Add loopback.mod.
8962 (loopback_mod_SOURCES): New variable.
8963 (loopback_mod_CFLAGS): Likewise.
8964 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
8965 `disk/loopback.c'.
8966 (pkgdata_MODULES): Add loopback.mod.
8967 (loopback_mod_SOURCES): New variable.
8968 (loopback_mod_CFLAGS): Likewise.
8969 * disk/loopback.c: new file.
8970 * include/grub/normal.h (grub_loop_init): New prototype.
8971 (grub_loop_fini): New prototype.
8972 * util/grub-emu.c (main): Initialize and de-initialize loopback
8973 support.
8974 * include/grub/disk.h (grub_disk_dev_id): Add
8975 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
8976
6f1c18bd 89772005-01-20 Hollis Blanchard <hollis@penguinppc.org>
8978
8979 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
8980 function.
8981 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
8982 (suspend_mod_SOURCES): New variable.
8983 (suspend_mod_CFLAGS): Likewise.
8984 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
8985 New prototype.
8986 * commands/ieee1275/suspend.c: New file.
8987
b38551da 89882005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
8989
8990 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
8991 ((unused))' to `__attribute__ ((used))'.
8992 (GRUB_MOD_FINI): Likewise.
8993 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
8994 * genmk.rb (PModule): Assign space to common symbols when linking
8995 modules.
8996
777aff39 89972005-01-20 Marco Gerards <metgerards@student.han.nl>
8998
8999 * include/grub/mm.h (grub_mm_init_region): Change the type of the
9000 `unsigned' arguments to `grub_size_t'.
9001 (grub_malloc): Likewise.
9002 (grub_realloc): Likewise.
9003 (grub_memalign): Likewise.
9004 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
9005 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
9006 * util/misc.c (grub_malloc): Likewise.
9007 (grub_realloc): Likewise.
9008 * kern/mm.c (get_header_from_pointer): Change the casts to
9009 `unsigned' into a cast to `grub_size_t'.
9010
9011 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
9012 point to `currnode' when `currnode' is changed.
9013
9014 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
9015 Schottelius <nico-linux@schottelius.org>.
9016
d0ff18e1 90172005-01-09 Hollis Blanchard <hollis@penguinppc.org>
9018
9019 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
9020 (note_path): Remove variable.
9021 (GRUB_IEEE1275_NOTE_NAME): New macro.
9022 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
9023 (grub_ieee1275_note_hdr): New structure.
9024 (grub_ieee1275_note_desc): Likewise.
9025 (grub_ieee1275_note): Likewise.
9026 (load_note): Remove `dir' argument. All callers updated. Remove
9027 `note_img' and `path'. Do not load a file from `note_path'.
9028 Initialize a struct grub_ieee1275_note and write that to `out'.
9029 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
9030
4ca7004c 90312005-01-05 Marco Gerards <metgerards@student.han.nl>
9032
9033 * util/misc.c (grub_util_read_image): Revert last change. It
9034 called `grub_util_read_at', which seeks from the beginning of the
9035 file.
9036
0b412211 90372005-01-04 Hollis Blanchard <hollis@penguinppc.org>
9038
9039 * TODO: Add note about endianness in grub-mkimage.
9040 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
9041 section.
9042 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
9043 (grub_mkimage_SOURCES): New target.
9044 * include/grub/kernel.h (grub_start_addr): Remove variable.
9045 (grub_end_addr): Likewise.
9046 (grub_total_module_size): Likewise.
9047 (grub_kernel_image_size): Likewise.
9048 (GRUB_MODULE_MAGIC): New constant.
9049 (grub_module_info): New structure.
9050 (grub_arch_modules_addr): New prototype.
9051 (grub_get_end_addr): Remove prototype.
9052 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
9053 * include/grub/powerpc/ieee1275/kernel.h: New file.
9054 * include/grub/util/misc.h (grub_util_get_fp_size): New
9055 prototype.
9056 (grub_util_read_at): Likewise.
9057 (grub_util_write_image_at): Likewise.
9058 * kern/main.c (grub_get_end_addr): Remove function.
9059 (grub_load_modules): Call grub_arch_modules_addr instead of using
9060 grub_end_addr. Look for a grub_module_info struct in memory. Use
9061 the grub_module_info fields instead of calling grub_get_end_addr
9062 as loop conditions. Move grub_add_unused_region code here.
9063 (grub_add_unused_region): Remove function.
9064 * kern/i386/pc/init.c: Include grub/cache.h.
9065 (grub_machine_init): Remove call to grub_get_end_addr. Remove
9066 one call to add_mem_region.
9067 (grub_arch_modules_addr): New function.
9068 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
9069 (grub_total_module_size): Likewise.
9070 Include grub/machine/kernel.h.
9071 (grub_arch_modules_addr): New function.
9072 * util/grub-emu.c (grub_end_addr): Remove variable.
9073 (grub_total_module_size): Likewise.
9074 (grub_arch_modules_addr): New function.
9075 * util/misc.c: Include unistd.h.
9076 (grub_util_get_fp_size): New function.
9077 (grub_util_read_at): Likewise.
9078 (grub_util_write_image_at): Likewise.
9079 (grub_util_read_image): Call grub_util_read_at.
9080 (grub_util_write_image): Call grub_util_write_image_at.
9081 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
9082 additional memory in kernel_img for a struct grub_module_info.
9083 Fill in that grub_module_info.
9084 * util/powerpc/ieee1275/grub-mkimage.c: New file.
9085
458786f8 90862005-01-03 Hollis Blanchard <hollis@penguinppc.org>
9087
9088 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
9089 New function.
9090 * include/grub/powerpc/ieee1275/ieee1275.h
9091 (grub_ieee1275_milliseconds): New prototype.
9092 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
9093 Change to 1000.
9094 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
9095 grub_ieee1275_milliseconds.
9096
ac507d1b 90972005-01-03 Hollis Blanchard <hollis@penguinppc.org>
9098
9099 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
9100 variable.
9101 (find_options): New function.
9102 (cmain): Call find_options.
9103 * include/grub/powerpc/ieee1275/ieee1275.h
9104 (grub_ieee1275_realmode): New extern variable.
9105 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
9106 grub_map if grub_ieee1275_realmode is false.
9107
6b8fd1c4 91082004-12-29 Marco Gerards <metgerards@student.han.nl>
9109
9110 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
9111 lines are inserted and make it work like readline. Reported by
9112 Vincent Pelletier <subdino2004@yahoo.fr>.
9113
8514a1e0 91142004-12-28 Marco Gerards <metgerards@student.han.nl>
9115
9116 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
9117
9118 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
9119 `kern/powerpc/cache.S'.
9120
924b6140 91212004-12-27 Marco Gerards <metgerards@student.han.nl>
9122
9123 * genmk.rb: Handle the `Program' class in the main loop. Written
9124 by Johan Rydberg <jrydberg@gnu.org>.
9125 (Program): New class.
9126 (programs): New variable.
9127 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
9128 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
9129 instead of "grub/kernel.h". Include <grub/machine/init.h>.
9130 (help_arch): Function removed.
9131 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
9132 `powerpc/libgcc.h' and `loader.h'.
9133 (pkgdata_PROGRAMS): New variable.
9134 (sbin_UTILITIES): Variable removed.
9135 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
9136 (grubof_SOURCES): Variable re-defined so it only includes the
9137 core functionality.
9138 (grubof_CFLAGS): Remove `-DGRUBOF'.
9139 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
9140 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
9141 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
9142 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
9143 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
9144 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
9145 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
9146 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
9147 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
9148 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
9149 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
9150 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
9151 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
9152 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
9153 (pc_mod_CFLAGS): New variables.
9154 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
9155 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
9156 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
9157 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
9158 Moved from here...
9159 * include/grub/i386/pc/init.h (grub_os_area_addr)
9160 (rub_os_area_size): ... to here.
9161 * include/grub/powerpc/ieee1275/ieee1275.h
9162 (grub_ieee1275_entry_fn): Export symbol.
9163 * include/grub/powerpc/ieee1275/init.h: New file.
9164 * include/grub/powerpc/libgcc.h: Likewise.
9165 * include/grub/cache.h: Likewise.
9166 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
9167 <hollis@penguinppc.org>.
9168 * kern/dl.c: Include <grub/cache.h>.
9169 (grub_dl_flush_cache): New function.
9170 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
9171 for this module.
9172 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
9173 (grub_console_init): Removed prototypes.
9174 (grub_machine_init): Don't initialize the modules anymore.
9175 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
9176 static.
9177 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
9178 Macro undef removed.
9179 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
9180 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
9181 relocation `R_PPC_REL32'. Return an error when the relocation is
9182 unknown.
9183 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
9184 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
9185 * util/misc.c (grub_arch_sync_caches): Likewise.
9186
e4b47e0c 91872004-12-19 Marco Gerards <metgerards@student.han.nl>
9188
9189 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
9190 `symlist.c', add `grubof_symlist.c'.
9191 (symlist.c): Variable removed.
9192 (grubof_HEADERS): Variable added.
9193 (grubof_symlist.c): New target.
9194 (kernel_syms.lst): Use `grubof_HEADERS' instead of
9195 `kernel_img_HEADERS'.
9196 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
9197 * kern/powerpc/dl.c: New file.
9198 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
9199 Function removed.
9200 (grub_arch_dl_relocate_symbols): Likewise.
9201 (grub_register_exported_symbols): Likewise.
9202
4ceb3636 92032004-12-13 Marco Gerards <metgerards@student.han.nl>
9204
9205 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
9206 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
9207 to fail instead. Reported by Vincent Pelletier
9208 <subdino2004@yahoo.fr>.
9209
9210 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
9211 it is not allocated. Reported by Vincent Pelletier
9212 <subdino2004@yahoo.fr>.
9213
9214 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
9215 output so the output looks better.
9216
3f1578fe 92172004-12-04 Marco Gerards <metgerards@student.han.nl>
9218
9219 Modulize the partition map support and add support for the amiga
9220 partition map.
9221
9222 * commands/ls.c: Include <grub/partition.h> instead of
9223 <grub/machine/partition.h>.
9224 * kern/disk.c: Likewise.
9225 * kern/rescue.c: Likewise.
9226 * loader/i386/pc/chainloader.c: Likewise.
9227 * normal/cmdline.c: Likewise.
9228 * kern/powerpc/ieee1275/init.c: Likewise.
9229 (grub_machine_init): Call `grub_pc_partition_map_init',
9230 `grub_amiga_partition_map_init' and
9231 `grub_apple_partition_map_init'.
9232 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
9233 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
9234 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
9235 `partition.h' and `pc_partition.h'.
9236 (grub_setup_SOURCES): Remove
9237 `disk/i386/pc/partition.c'. Add `kern/partition.c',
9238 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
9239 (grub_emu_SOURCES): Likewise.
9240 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
9241 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
9242 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
9243 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
9244 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
9245 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
9246 (grubof_SOURCES): Likewise.
9247 * disk/i386/pc/partition.c: File removed.
9248 * disk/powerpc/ieee1275/partition.c: Likewise.
9249 * include/grub/powerpc/ieee1275/partition.h: Likewise.
9250 * include/grub/i386/pc/partition.h: Likewise.
9251 * kern/partition.c: New file.
9252 * partmap/amiga.c: Likewise.
9253 * partmap/apple.c: Likewise.
9254 * partmap/pc.c: Likewise.
9255 * include/grub/partition.h: Likewise..
9256 * include/grub/pc_partition.h: Likewise.
9257 * util/grub-emu.c: Include <grub/partition.h> instead of
9258 <grub/machine/partition.h>.
9259 (main): Call `grub_pc_partition_map_init',
9260 `grub_amiga_partition_map_init' and
9261 `grub_apple_partition_map_init' and deinitialize afterwards.
9262 * util/i386/pc/biosdisk.c: Include `#include
9263 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
9264 `<grub/machine/partition.h>'.
9265 * util/i386/pc/grub-setup.c: Likewise.
9266 * util/i386/pc/biosdisk.c: Likewise.
9267 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
9268 partition information in case of a PC partition.
9269 * util/i386/pc/grub-setup.c: Include `#include
9270 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
9271 `<grub/machine/partition.h>'.
9272 (setup): Only access the PC specific partition information in case
9273 of a PC partition.
9274
0ef4ced9 92752004-11-17 Hollis Blanchard <hollis@penguinppc.org>
9276
9277 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
9278 (grub_longjmp): Likewise.
9279 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
9280 20.
9281 * normal/powerpc/setjmp.S: New file.
9282 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
9283 `normal/powerpc/setjmp.S'.
9284 (grubof_CFLAGS): Add `-DGRUBOF'.
9285 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
9286 [GRUB_UTIL && !GRUBOF].
9287
19950e29 92882004-11-16 Marco Gerards <metgerards@student.han.nl>
9289
9290 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
9291 property named `name'. Correctly handle the error returned by
9292 `grub_ieee1275_finddevice' if a device can not be opened.
9293
a2fea427 92942004-11-02 Hollis Blanchard <hollis@penguinppc.org>
9295
9296 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
9297 `actual' for negativity.
9298 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
9299 kern/fshelp.c.
9300
41ea0ea3 93012004-11-01 Marco Gerards <metgerards@student.han.nl>
9302
9303 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
9304 (PAGE_OFFSET): New macro.
9305 (CRTC_ADDR_PORT): Likewise.
9306 (CRTC_DATA_PORT): Likewise.
9307 (START_ADDR_HIGH_REGISTER): Likewise.
9308 (START_ADDR_LOW_REGISTER): Likewise.
9309 (GRAPHICS_ADDR_PORT): Likewise.
9310 (GRAPHICS_DATA_PORT): Likewise.
9311 (READ_MAP_REGISTER): Likewise.
9312 (INPUT_STATUS1_REGISTER): Likewise.
9313 (INPUT_STATUS1_VERTR_BIT): Likewise.
9314 (page): New variable.
9315 (wait_vretrace): New function.
9316 (set_read_map): Likewise.
9317 (set_start_address): Likewise.
9318 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
9319 the right page.
9320 (check_vga_mem): Take the page into account.
9321 (write_char): Likewise.
9322 (write_cursor): Likewise.
9323 (scroll_up): Likewise. Copy the page to the page that is not
9324 shown and switch between both pages.
9325 (grub_vga_putchar): Fix off by one error.
9326 (grub_vga_cls): Wait for the vertical retrace. Take the page into
9327 account.
9328
ad0bd20b 93292004-11-01 Marco Gerards <metgerards@student.han.nl>
9330
9331 Add support for iso9660 (including rockridge).
9332
9333 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
9334 (iso9660_mod_SOURCES): New variable.
9335 (iso9660_mod_CFLAGS): Likewise.
9336 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
9337 * include/grub/fs.h (grub_iso9660_init): New prototype.
9338 * util/grub-emu.c (main): Call `grub_iso9660_init'.
9339 * fs/iso9660.c: New file.
9340
9341 * include/grub/misc.h (grub_strncat): New prototype.
9342 * kern/misc.c (grub_strncat): New function.
9343
9344 * fs/hfs.c (grub_hfs_mount): Translate the error
9345 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
9346 * fs/jfs.c (grub_jfs_mount): Likewise.
9347 * fs/ufs.c (grub_ufs_mount): Likewise.
9348
a5477a59 93492004-10-28 Hollis Blanchard <hollis@penguinppc.org>
9350
9351 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
9352 which initialized BAT registers.
9353 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
9354 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
9355 Move from here...
9356 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
9357 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
9358 ... to here.
9359 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
9360 (grub_mapclaim): Likewise.
9361 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
9362 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
9363 hand.
9364
9304c1f8 93652004-10-19 Hollis Blanchard <hollis@penguinppc.org>
9366
9367 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
9368 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
9369 -ffreestanding and -msoft-float.
9370
86f4ae25 93712004-10-15 Hollis Blanchard <hollis@penguinppc.org>
9372
9373 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
9374 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
9375 set in grub_ieee1275_flags.
9376
38912228 93772004-10-14 Hollis Blanchard <hollis@penguinppc.org>
9378
9379 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
9380 prototype.
9381 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
9382 grub_console_init first.
9383 Change the memory range used for grub_ieee1275_claim and
9384 grub_mm_init_region.
9385 Print an error message if the claim fails.
9386 Include <grub/misc.h>.
9387
d1923dc8 93882004-10-13 Hollis Blanchard <hollis@penguinppc.org>
9389
9390 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
9391 Call grub_children_iterate for device nodes of type `scsi',
9392 `ide', or `ata'.
9393 (grub_ofdisk_open): Remove manual device alias resolution.
9394 Fix memory leak when device cannot be opened.
9395 * include/grub/powerpc/ieee1275/ieee1275.h
9396 (grub_children_iterate): New prototype.
9397 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
9398 New function.
9399 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
9400 Return -1 if args.size was -1.
9401
4512e4f3 94022004-10-11 Hollis Blanchard <hollis@penguinppc.org>
9403
9404 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
9405 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
9406 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
9407 Open Firmware's memory for it; claim memory from _start to _end.
9408 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
9409 (_end): New extern.
9410 (_start): Zero BSS from __bss_start to _end.
9411 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
9412 New extern.
9413 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
9414
4d61feb0 94152004-10-11 Hollis Blanchard <hollis@penguinppc.org>
9416
ad0bd20b 9417 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
9418 -1 if args.base was -1.
4d61feb0 9419
026fa2f9 94202004-10-08 Hollis Blanchard <hollis@penguinppc.org>
9421
9422 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
9423 escape sequence instead of a literal ^L. Also call
9424 grub_ofconsole_gotoxy.
9425
9f2220ef 94262004-10-03 Hollis Blanchard <hollis@penguinppc.org>
9427
9428 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
9429 void * arguments to grub_addr_t. All callers updated. Also make
9430 the `result' argument optional.
9431 (grub_ieee1275_release): change void * arguments to grub_addr_t.
9432 All callers updated.
9433
8a572cd7 94342004-09-22 Hollis Blanchard <hollis@penguinppc.org>
9435
9436 * commands/ls.c (grub_ls_list_files): Use the string following the
9437 initial ')', if present, as the filesystem path.
9438 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
9439
9440 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
9441
18aa81f2 94422004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
9443
9444 Make the source code of the menu interface more readable.
9445
9446 * normal/menu.c: Include grub/mm.h.
9447 (TERM_WIDTH): New macro.
9448 (TERM_HEIGHT): Likewise.
9449 (TERM_INFO_HEIGHT): Likewise.
9450 (TERM_MARGIN): Likewise.
9451 (TERM_SCROLL_WIDTH): Likewise.
9452 (TERM_TOP_BORDER_Y): Likewise.
9453 (TERM_LEFT_BORDER_X): Likewise.
9454 (TERM_BORDER_WIDTH): Likewise.
9455 (TERM_MESSAGE_HEIGHT): Likewise.
9456 (TERM_BORDER_HEIGHT): Likewise.
9457 (TERM_NUM_ENTRIES): Likewise.
9458 (TERM_FIRST_ENTRY_Y): Likewise.
9459 (TERM_ENTRY_WIDTH): Likewise.
9460 (TERM_CURSOR_X): Likewise.
9461 (draw_border): Use macros instead of magic numbers.
9462 (print_entry): Likewise.
9463 (print_entries): Likewise.
9464 (run_menu): Likewise. Also, handle the key 'e'.
9465 (run_menu_entry): Ignore empty command lines.
9466 (print_message): Added a new argument EDIT. If EDIT is true,
9467 print a different message.
9468 (init_page): Likewise.
9469 (edit_menu_entry): New function. Not implemented yet.
9470
b47efe30 94712004-09-17 Marco Gerards <metgerards@student.han.nl>
9472
9473 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
9474 can be loaded from normal mode.
9475
9476 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
9477 `multiboot.mod'.
9478 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
9479 (multiboot_mod_CFLAGS): New variables.
9480 * loader/i386/pc/linux_normal.c: New file.
9481 * loader/i386/pc/multiboot_normal.c: Likewise.
9482
9483 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
9484 attribute `unused'.
9485
9486 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
9487 `fdiro' to read the mode information from instead of `diro'.
9488
9489 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
9490 looking up a symlink.
9491
9492 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
9493 macro.
9494 * normal/command.c (grub_command_execute): Don't parse the
9495 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
9496 flags of the command.
9497
9498 * normal/menu.c (grub_menu_run): Fix typo.
9499
da75ac71 95002004-09-14 Hollis Blanchard <hollis@penguinppc.org>
9501
9502 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
9503
9504 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
9505 `y + 1' instead of `y - 1'.
9506
9507 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
9508
062b24c2 95092004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
9510
9511 From Hollis Blanchard <hollis@penguinppc.org>:
9512 * kern/misc.c (memmove): New alias for grub_memmove.
9513 (memcmp): New alias for grub_memcmp.
9514 (memset): New alias for grub_memset.
9515 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
9516 Change "int handle" to "grub_ieee1275_phandle_t handle".
9517 * include/grub/powerpc/ieee1275/ieee1275.h
9518 (grub_ieee1275_get_property): Likewise.
9519
8ddad845 95202004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
9521
9522 Added normal mode command `chainloader' as module chain.mod, which
9523 depends on normal.mod and _chain.mod.
9524
9525 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
9526 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
9527 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
9528 Deleted prototype.
9529 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
9530 but arguments parsing moved to ...
9531 (grub_chainloader_cmd): ... here. New function.
9532 * include/grub/i386/pc/chainloader.h: New file.
9533 * loader/i386/pc/chainloader_normal.c: Likewise.
9534
2c1f4ce3 95352004-09-11 Marco Gerards <metgerards@student.han.nl>
9536
9537 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
9538 (grub_mkimage_LDFLAGS): Likewise.
9539 (grub_emu_SOURCES): Likewise.
9540 (kernel_img_HEADERS): Added fshelp.h.
9541 * fs/ext2.c: Include <grub/fshelp.h>.
9542 (FILETYPE_REG): New macro.
9543 (FILETYPE_INO_REG): Likewise.
9544 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
9545 Changed all users.
9546 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
9547 all users.
9548 (grub_fshelp_node): New struct.
9549 (grub_ext2_data): Added member `diropen'. Changed member `inode'
9550 to a pointer.
9551 (grub_ext2_get_file_block): Removed function.
9552 (grub_ext2_read_block): New function.
9553 (grub_ext2_read_file): Replaced parameter `data' by `node'.
9554 This function was written.
9555 (grub_ext2_mount): Read the root inode. Create a diropen struct.
9556 (grub_ext2_find_file): Removed function.
9557 (grub_ext2_read_symlink): New function.
9558 (grub_ext2_iterate_dir): Likewise.
9559 (grub_ext2_open): Rewritten.
9560 (grub_ext2_dir): Rewritten.
9561 * include/grub/fshelp.h: New file.
9562 * fs/fshelp.c: Likewise.
9563
3c52136a 95642004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
9565
9566 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
9567 (print_message): Add a missing newline.
9568 (run_menu): Added timeout support.
9569 (run_menu_entry): New local function.
9570 (grub_menu_run): Added support for booting.
9571
9572 * kern/loader.c (grub_loader_is_loaded): New function.
9573
9574 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
9575 (grub_get_rtc): Exported.
9576
9577 * include/grub/i386/pc/time.h: Include grub/symbol.h.
9578 (grub_get_rtc): Exported.
9579
9580 * include/grub/normal.h (struct grub_command_list): Remove
9581 constant from the member `command'.
9582
9583 * include/grub/loader.h (grub_loader_is_loaded): Declared.
9584
9585 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
9586
9587 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
9588
aa033560 95892004-08-28 Marco Gerards <metgerards@student.han.nl>
9590
9591 Add support for the JFS filesystem.
9592
9593 * fs/jfs.c: New file.
9594 * include/grub/fs.h (grub_jfs_init): New prototype.
9595 (grub_jfs_fini): New prototype.
9596 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
9597 (grub_emu_SOURCES): Likewise.
9598 (pkgdata_MODULES): Add jfs.mod.
9599 (jfs_mod_SOURCES): New variable.
9600 (jfs_mod_CFLAGS): Likewise.
9601 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
9602 (grubof_SOURCES): Likewise.
9603 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
9604
9605 * fs/fat.c (grub_fat_find_dir): Convert the filename little
9606 endian to the host endian.
9607 (grub_fat_utf16_to_utf8): Move function from there...
9608 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
9609 the endianess of the source string anymore.
9610 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
9611
94bc45af 96122004-08-24 Marco Gerards <metgerards@student.han.nl>
9613
9614 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
9615 (grub_boot_fini) [GRUB_UTIL]: Likewise.
9616 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
9617 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
9618
9619 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
9620 (grub_hfs_iterate_dir): Make the function static. Add prototypes
9621 for `node_found' and `it_dir'.
9622 (grub_hfs_dir): Add prototype for `dir_hook'.
9623
9624 * fs/minix.c (grub_minix_get_file_block): Add prototype for
9625 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
9626 and `indir32' to silence a gcc warning.
9627
9628 * include/grub/fs.h (grub_hfs_init): New prototype.
9629 (grub_hfs_fini): Likewise.
9630
9631
97543f08 96322004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
9633
9634 Each disk device has its own id now. This is useful to make use
9635 of multiple disk devices.
9636
9637 * include/grub/disk.h (grub_disk_dev_id): New enum.
9638 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
9639 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
9640
9641 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
9642 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
9643
9644 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
9645 GRUB_DISK_DEVICE_OFDISK_ID as an id.
9646
9647 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
9648 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
9649
9650 * include/grub/disk.h (struct grub_disk_dev): Added a new member
9651 "id" which is used by the cache manager.
9652
9653 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
9654 of just "GRUB".
9655
64372eb4 96562004-08-18 Marco Gerards <metgerards@student.han.nl>
9657
9658 * fs/hfs.c: New file.
9659 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
9660 (grub_emu_SOURCES): Likewise.
9661 (pkgdata_MODULES): Add hfs.mod.
9662 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
9663 (grubof_SOURCES): Likewise.
9664 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
9665
9666 * include/grub/misc.h (grub_strncasecmp): Add prototype.
9667 * kern/misc.c (grub_strncasecmp): Add function.
9668
cc61b58f 96692004-08-14 Marco Gerards <metgerards@student.han.nl>
9670
9671 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
9672 with parentheses.
9673
9674 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
9675 (grub_ext2_dir): In case the directory entry type is unknown, read
9676 it from the inode.
9677
0ef123f6 96782004-08-02 Peter Bruin <pjbruin@dds.nl>
9679
9680 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
9681 grub_load_linux instead of grub_rescue_cmd_linux as second
9682 argument of grub_rescue_register_command.
9683
9684 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
9685
a447c5df 96862004-07-27 Marco Gerards <metgerards@student.han.nl>
9687
9688 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
9689 function.
9690 * commands/boot.c: Remove the check for `GRUB_UTIL'.
9691 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
9692 `loader/powerpc/ieee1275/linux.c',
9693 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
9694 * include/grub/powerpc/ieee1275/ieee1275.h
9695 (grub_ieee1275_release): New prototype.
9696 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
9697 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
9698 normal, boot, linux and linux_normal.
9699 * loader/powerpc/ieee1275/linux.c: New file.
9700 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
9701
5a9e3546 97022004-07-12 Marco Gerards <metgerards@student.han.nl>
9703
9704 * normal/arg.c (grub_arg_parse): Correct error handling after
9705 reallocating the argumentlist (check if `argl' is not null instead
9706 of checking if `args' is not null).
9707 * kern/mm.c (grub_realloc): Return the same pointer when using the
9708 same region, instead of returning the header address.
9709
e15199cb 97102004-07-11 Marco Gerards <metgerards@student.han.nl>
9711
9712 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
9713 one block instead of two when looking for the initial partition.
9714 (grub_partition_probe): Initialize the local variable `p' with 0.
9715 Use base 10 for the grub_strtoul call.
9716 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
9717 need for one local variable.
9718 (grub_strtoul): Don't add the new value to `num', instead of that
9719 just assign it.
9720
020616c2 97212004-07-11 Marco Gerards <metgerards@student.han.nl>
9722
9723 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
9724 (pxeboot_img_SOURCES): New variable.
9725 (pxeboot_img_ASFLAGS): Likewise.
9726 (pxeboot_img_LDFLAGS): Likewise.
9727 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
9728 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
9729 <lode_leroy@hotmail.com>.
9730
6c51eb64 97312004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
9732
9733 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
9734 there was no input.
9735
cfb12aff 97362004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
9737
9738 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
9739 the history buffer logic.
9740
6eabba74 97412004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
9742
9743 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
9744 (FILETYPE_INO_SYMLINK): New macros.
9745 (grub_ext2_find_file): Check if the node is a directory using the
9746 inode stat information instead of using the filetype in the
9747 dirent. Exclude the first character of an absolute symlink.
9748 (grub_ext2_dir): Mask out the filetype part of the mode member of
9749 the inode.
9750
66e19ef8 97512004-05-24 Marco Gerards <metgerards@student.han.nl>
9752
9753 Add support for UFS version 1 and 2. Add support for the minix
9754 filesystem version 1 and 2, both the variants with 14 and 30 long
9755 filenames.
9756
9757 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
9758 fs/minix.c.
9759 (grub_emu_SOURCES): Likewise.
9760 (pkgdata_MODULES): Add ufs.mod and minix.mod.
9761 (ufs_mod_SOURCES): New variable.
9762 (ufs_mod_CFLAGS): Likewise.
9763 (minix_mod_SOURCES): Likewise.
9764 (minix_mod_CFLAGS): Likewise.
9765 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
9766 fs/minix.c.
9767 (grubof_SOURCES): Likewise.
9768 * fs/ufs.c: New file.
9769 * fs/minix.c: New file.
9770 * include/grub/fs.h (grub_ufs_init): New prototype.
9771 (grub_ufs_fini): Likewise.
9772 (grub_minix_init): Likewise.
9773 (grub_minix_fini): Likewise.
9774 * util/grub-emu.c (main): Initialize and deinitialize UFS and
9775 minix fs.
9776
cc2e748a 97772004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
9778
9779 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
9780 commands/ls.c, commands/terminal.c, commands/boot.c,
9781 commands/cmp.c and commands/cat.c.
9782 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
9783
9784 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
9785 "env.h"
9786
4b13b216 97872004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
9788
9789 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
9790 and grub_, respectively. Because the conversion is trivial and
9791 mechanical, I omit the details here. Please refer to the CVS
9792 if you need more information.
9793
6a142551 97942004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
9795
9796 * include/pupa: Renamed to ...
9797 * include/grub: ... this.
9798 * util/i386/pc/pupa-mkimage.c: Renamed to ...
9799 * util/i386/pc/grub-mkimage.c: ... this.
9800 * util/i386/pc/pupa-setup.c: Renamed to ...
9801 * util/i386/pc/grub-setup.c: ... this.
9802 * util/pupa-emu.c: Renamed to ...
9803 * util/grub-emu.c: ... this.
9804
e56cdf21 98052004-03-29 Marco Gerards <metgerards@student.han.nl>
9806
9807 Add support for the newworld apple macintosh (PPC). This has been
9808 tested on the powerbook 2000 only. It only adds support for
9809 generic ieee1275 functions, console and disk support. This should
9810 be easy to port to other architectures with support for Open
9811 Firmware.
9812
9813 * configure.ac: Accept the powerpc as host_cpu. In the case of
9814 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
9815 specific tests are only executed while building for the i386.
9816 Inverse test for crosscompile.
9817 * genmk.rb (Utility): Allow assembler files.
9818 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
9819 * conf/powerpc-ieee1275.rmk: New file.
9820 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
9821 * disk/powerpc/ieee1275/partition.c: Likewise.
9822 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
9823 * include/pupa/powerpc/ieee1275/console.h: Likewise.
9824 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
9825 * include/pupa/powerpc/ieee1275/time.h: Likewise.
9826 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
9827 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
9828 * include/pupa/powerpc/ieee1275/loader.h
9829 * include/pupa/powerpc/setjmp.h: Likewise.
9830 * include/pupa/powerpc/types.h: Likewise.
9831 * kern/powerpc/ieee1275/init.c: Likewise.
9832 * kern/powerpc/ieee1275/openfw.c: Likewise.
9833 * term/powerpc/ieee1275/ofconsole.c: Likewise.
9834
9835 These files were written by Johan Rydberg
9836 (jrydberg@night.trouble.net) and I only modified them slightly.
9837
9838 * boot/powerpc/ieee1275/cmain.c: New file.
9839 * boot/powerpc/ieee1275/crt0.S: Likewise.
9840 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
9841 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
9842
8c8cc205 98432004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
9844
9845 * Makefile.in: Update copyright.
9846 * genmodsrc.sh: Likewise.
9847 * gensymlist.sh: Likewise.
9848 * term/i386/pc/vga.c: Indent correctly.
9849
9850 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
9851 bugreporting address.
9852 * util/i386/pc/pupa-setup.c (usage): Likewise,
9853 (main): Call pupa_ext2_init and pupa_ext2_fini.
9854
9855 * fs/fat.c (log2): Renamed to ...
9856 (fat_log2): ... this.
9857 All callers changed.
9858 * kern/misc.c (memcpy): Alias to pupa_memmove.
9859 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
9860 lvalue cast.
9861 * util/console.c (pupa_ncurses_fini): Return 0.
9862
9863 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
9864 Move fail label here.
9865 [__GNU__]: Don't warn when using stat.
9866 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
9867 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
9868 long int. Use strtol instead of strtoul.
9869
db1771cf 98702004-03-14 Marco Gerards <metgerards@student.han.nl>
9871
9872 * commands/boot.c: New file.
9873 * commands/cat.c: Likewise.
9874 * commands/cmp.c: Likewise.
9875 * commands/ls.c: Likewise.
9876 * commands/terminal.c: Likewise.
9877 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
9878 (pupa_register_command): Changed interface to match the new
9879 argument parser.
9880 (pupa_command_execute): Changed (almost rewritten) so it uses
9881 pupa_split_command. Added support for setting variables using the
9882 syntax `foo=bar'.
9883 (rescue_command): Changed to work with the new argument parser.
9884 (terminal_command): Moved from here to commands/terminal.c.
9885 (set_command): New function.
9886 (unset_command): New function.
9887 (insmod_command): New function.
9888 (rmmod_command): New function.
9889 (lsmod_command): New function.
9890 (pupa_command_init): Don't initialize the command terminal
9891 anymore. Initialize the commands set, unset, insmod, rmmod and
9892 lsmod.
9893 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
9894 (kernel_img_HEADERS): Add arg.h and env.h.
9895 (pupa_mkimage_LDFLAGS): Add kern/env.c.
9896 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
9897 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
9898 normal/arg.c.
9899 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
9900 terminal.mod.
9901 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
9902 (boot_mod_SOURCES): New variable.
9903 (terminal_mod_SOURCES): Likewise.
9904 (ls_mod_SOURCES): Likewise.
9905 (cmp_mod_SOURCES): Likewise.
9906 (cat_mod_SOURCES): Likewise.
9907
9908 * normal/arg.c: New file.
9909 * kern/env.c: Likewise.
9910 * include/pupa/arg.h: Likewise.
9911 * include/pupa/env.h: Likewise.
9912 * font/manager.c (font_command): Changed to match argument parsing
9913 interface changes.
9914 (PUPA_MOD_INIT): Likewise.
9915 * hello/hello.c (pupa_cmd_hello): Likewise.
9916 (PUPA_MOD_INIT): Likewise.
9917 * include/pupa/disk.h: Include <pupa/device.h>.
9918 (pupa_print_partinfo): New prototype.
9919 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
9920 (pupa_dl_get_prefix): Likewise.
9921 * include/pupa/misc.h: Include <pupa/err.h>.
9922 (pupa_isgraph): New prototype.
9923 (pupa_isdigit): Likewise.
9924 (pupa_split_cmdline): Likewise.
9925 * include/pupa/normal.h: Include <pupa/arg.h>.
9926 (pupa_command): Changed the prototype of the member `func' to
9927 match the argument parsing interface. Added member `options'.
9928 (pupa_register_command): Updated to match function.
9929 (pupa_arg_parse): New prototype.
9930 (pupa_hello_init) [PUPA_UTIL]: New prototype.
9931 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
9932 (pupa_ls_init) [PUPA_UTIL]: Likewise.
9933 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
9934 (pupa_cat_init) [PUPA_UTIL]: Likewise.
9935 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
9936 (pupa_boot_init) [PUPA_UTIL]: Likewise.
9937 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
9938 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
9939 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
9940 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
9941 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
9942 * kern/disk.c: Include <pupa/file.h>.
9943 (pupa_print_partinfo): New function.
9944 * kern/dl.c: Include <pupa/env.h>.
9945 (pupa_dl_dir): Variable removed.
9946 (pupa_dl_load): Use the environment variable `prefix' instead of
9947 the variable pupa_dl_dir.
9948 (pupa_dl_set_prefix): Function removed.
9949 (pupa_dl_get_prefix): Likewise.
9950 * kern/i386/pc/init.c: Include <pupa/env.h>.
9951 (pupa_machine_init): Use the environment variable `prefix' instead of
9952 using pupa_dl_set_prefix to set the prefix.
9953 * kern/main.c: Include <pupa/env.h>.
9954 (pupa_set_root_dev): Use the environment variable `prefix' instead of
9955 using pupa_dl_get_prefix to get the prefix.
9956 * kern/misc.c: Include <pupa/env.h>.
9957 (pupa_isdigit): New function.
9958 (pupa_isgraph): Likewise.
9959 (pupa_ftoa): Likewise.
9960 (pupa_vsprintf): Added support for printing values of the type
9961 `double'. Make it possible to format variable output when using
9962 formatting like `%1.2%f'.
9963 (pupa_split_cmdline): New function.
9964 * kern/rescue.c: Include <pupa/env.h>.
9965 (next_word): Removed function.
9966 (pupa_rescue_cmd_prefix): Likewise.
9967 (pupa_rescue_cmd_set): New function.
9968 (pupa_rescue_cmd_unset): New function.
9969 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
9970 split the command line instead of splitting it here. Added
9971 support for setting variables using the syntax `foo=bar'. Don't
9972 initialize the prefix command anymore. Initialized the set and
9973 unset commands.
9974 * normal/cmdline.c: Include <pupa/env.h>.
9975 (pupa_tab_complete): Added prototypes for print_simple_completion,
9976 print_partition_completion, add_completion, iterate_commands,
9977 iterate_dev, iterate_part and iterate_dir. Moved code to print
9978 partition information from here to kern/disk.c.
9979 (pupa_cmdline_run): Don't check if the funtion exists anymore.
9980 * normal/main.c: Include <pupa/env.h>.
9981 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
9982 instead of using pupa_dl_get_prefix to get the prefix.
9983 * term/i386/pc/vga.c: Include <pupa/arg.h>.
9984 (check_vga_mem): Cast pointers to `void *' to silence a gcc
9985 warning.
9986 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
9987 (pupa_vga_setcolor): Declare unused variables with `__attribute__
9988 ((unused))' to silence a gcc warning.
9989 (pupa_vga_setcolor): Likewise.
9990 (debug_command): Changed to match argument parsing
9991 interface changes.
9992 * util/pupa-emu.c: Include <pupa/env.h>.
9993 (options): Added 0's for unused fields to silence a gcc warning.
9994 (argp): Likewise.
9995 (main): Use the environment variable `prefix' instead of using
9996 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
9997 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
9998 and terminal.
9999
10000 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
10001 * util/misc.c: Include <malloc.h>.
10002 (pupa_malloc): Rewritten so errors are correctly reported.
10003 (pupa_realloc): Likewise.
10004 (pupa_memalign): Likewise.
10005 (pupa_mm_init_region): Declare unused variables with
10006 `__attribute__ ((unused))' to silence a gcc warning.
10007 * normal/i386/setjmp.S: Remove tab at the end of the file to
10008 silence a gcc warning.
10009 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
10010 variables with `__attribute__ ((unused))' to silence a gcc
10011 warning.
10012 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
10013 local variable i unsigned to silence a gcc warning.
10014
10015 * kern/term.c: Include <pupa/misc.h>.
10016 (pupa_more_lines): New variable.
10017 (pupa_more): Likewise.
10018 (pupa_putcode): When the pager is active pause at the end of every
10019 screen.
10020 (pupa_set_more): New function.
10021 * include/pupa/term.h (pupa_set_more): New prototype.
10022
10023
3b1139cb 100242004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
10025
10026 Now this project is GRUB 2 rather than PUPA. The location of
10027 the CVS repository was moved to GRUB's.
10028
10029 * configure.ac: Use bug-grub as the reporting address.
10030 Use GRUB instead of PUPA.
10031 Change the version number to 1.90.
10032
8367695c 100332004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
10034
10035 * genkernsyms.sh: Updated copyright information.
10036 * genmk.rb: Likewise.
10037 * genmodsrc.sh: Likewise.
10038 * gensymlist.sh: Likewise.
10039 * boot/i386/pc/boot.S: Likewise.
10040 * boot/i386/pc/diskboot.S: Likewise.
10041 * disk/i386/pc/biosdisk.c: Likewise.
10042 * disk/i386/pc/partition.c: Likewise.
10043 * font/manager.c: Likewise.
10044 * fs/ext2.c: Likewise.
10045 * fs/fat.c: Likewise.
10046 * include/pupa/boot.h: Likewise.
10047 * include/pupa/device.h: Likewise.
10048 * include/pupa/disk.h: Likewise.
10049 * include/pupa/dl.h: Likewise.
10050 * include/pupa/elf.h: Likewise.
10051 * include/pupa/err.h: Likewise.
10052 * include/pupa/file.h: Likewise.
10053 * include/pupa/font.h: Likewise.
10054 * include/pupa/fs.h: Likewise.
10055 * include/pupa/kernel.h: Likewise.
10056 * include/pupa/loader.h: Likewise.
10057 * include/pupa/misc.h: Likewise.
10058 * include/pupa/mm.h: Likewise.
10059 * include/pupa/net.h: Likewise.
10060 * include/pupa/normal.h: Likewise.
10061 * include/pupa/rescue.h: Likewise.
10062 * include/pupa/setjmp.h: Likewise.
10063 * include/pupa/symbol.h: Likewise.
10064 * include/pupa/term.h: Likewise.
10065 * include/pupa/types.h: Likewise.
10066 * include/pupa/i386/setjmp.h: Likewise.
10067 * include/pupa/i386/types.h: Likewise.
10068 * include/pupa/i386/pc/biosdisk.h: Likewise.
10069 * include/pupa/i386/pc/boot.h: Likewise.
10070 * include/pupa/i386/pc/console.h: Likewise.
10071 * include/pupa/i386/pc/init.h: Likewise.
10072 * include/pupa/i386/pc/kernel.h: Likewise.
10073 * include/pupa/i386/pc/linux.h: Likewise.
10074 * include/pupa/i386/pc/loader.h: Likewise.
10075 * include/pupa/i386/pc/memory.h: Likewise.
10076 * include/pupa/i386/pc/multiboot.h: Likewise.
10077 * include/pupa/i386/pc/partition.h: Likewise.
10078 * include/pupa/i386/pc/time.h: Likewise.
10079 * include/pupa/i386/pc/vga.h: Likewise.
10080 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
10081 * include/pupa/util/getroot.h: Likewise.
10082 * include/pupa/util/misc.h: Likewise.
10083 * include/pupa/util/resolve.h: Likewise.
10084 * kern/device.c: Likewise.
10085 * kern/disk.c: Likewise.
10086 * kern/dl.c: Likewise.
10087 * kern/err.c: Likewise.
10088 * kern/file.c: Likewise.
10089 * kern/fs.c: Likewise.
10090 * kern/loader.c: Likewise.
10091 * kern/main.c: Likewise.
10092 * kern/misc.c: Likewise.
10093 * kern/mm.c: Likewise.
10094 * kern/rescue.c: Likewise.
10095 * kern/term.c: Likewise.
10096 * kern/i386/dl.c: Likewise.
10097 * kern/i386/pc/init.c: Likewise.
10098 * kern/i386/pc/lzo1x.S: Likewise.
10099 * kern/i386/pc/startup.S: Likewise.
10100 * loader/i386/pc/chainloader.c: Likewise.
10101 * loader/i386/pc/linux.c: Likewise.
10102 * loader/i386/pc/multiboot.c: Likewise.
10103 * normal/cmdline.c: Likewise.
10104 * normal/command.c: Likewise.
10105 * normal/main.c: Likewise.
10106 * normal/menu.c: Likewise.
10107 * normal/i386/setjmp.S: Likewise.
10108 * term/i386/pc/console.c: Likewise.
10109 * term/i386/pc/vga.c: Likewise.
10110 * util/console.c: Likewise.
10111 * util/genmoddep.c: Likewise.
10112 * util/misc.c: Likewise.
10113 * util/pupa-emu.c: Likewise.
10114 * util/resolve.c: Likewise.
10115 * util/unifont2pff.rb: Likewise.
10116 * util/i386/pc/biosdisk.c: Likewise.
10117 * util/i386/pc/getroot.c: Likewise.
10118 * util/i386/pc/pupa-mkimage.c: Likewise.
10119 * util/i386/pc/pupa-setup.c: Likewise.
10120
e6eced71 101212004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
10122
10123 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
10124 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
10125 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
10126 reading and reset it after reading.
10127 (pupa_ext2_close): Return PUPA_ERR_NONE.
10128
10129 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
10130 Correct value.
10131 (struct linux_kernel_header): Add kernel_version and
10132 initrd_addr_max.
10133 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
10134 pupa_file_read succeeds.
10135 (pupa_rescue_cmd_initrd): Implement.
10136
5aded270 101372003-12-03 Marco Gerards <metgerards@student.han.nl>
10138
10139 * fs/ext2.c (pupa_ext2_label): New function.
10140 (pupa_ext2_fs): Added label.
10141 * fs/fat.c (pupa_fat_label): New function.
10142 (pupa_fat_fs): Added label.
10143 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
10144
10145 * kern/misc.c (pupa_strndup): New function.
10146 * include/pupa/misc.h (pupa_strndup): New prototype.
10147
10148 * include/pupa/normal.h: Include <pupa/err.h>.
10149 (pupa_set_history): New prototype.
10150 (pupa_iterate_commands): New prototype.
10151 * normal/cmdline.c: Include <pupa/machine/partition.h>,
10152 <pupa/disk.h>, <pupa/file.h>.
10153 (hist_size): New variable.
10154 (hist_lines): Likewise.
10155 (hist_end): Likewise.
10156 (hist_used): Likewise.
10157 (pupa_set_history): New function.
10158 (pupa_history_get): Likewise.
10159 (pupa_history_add): Likewise.
10160 (pupa_history_replace): Likewise.
10161 (pupa_tab_complete): Likewise.
10162 (pupa_cmdline_run): Added tab completion and history buffer. Tab
10163 completion shows partitionnames while completing partitions, this
10164 feature was suggested by Jeff Bailey.
10165 * normal/command.c (pupa_iterate_commands): New function.
10166 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
10167 (pupa_normal_init): Initialize history buffer.
10168 (PUPA_MOD_INIT): Likewise.
10169 (pupa_normal_fini): Free the history buffer.
10170 (PUPA_MOD_FINI): Likewise.
10171
10172 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
10173 key.
10174
10175 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
10176 * configure.ac [i386]: Check for regparam bug.
10177 (NESTED_FUNC_ATTR) [! i386]: Defined.
10178
1f7315a3 101792003-11-17 Marco Gerards <metgerards@student.han.nl>
10180
10181 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
10182 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
10183 (pupa_emu_SOURCES): New variable.
10184 (pupa_emu_LDFLAGS): Likewise.
10185 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
10186 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
10187 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
10188 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
10189 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
10190 (pupa_jmp_buf): New typedef.
10191 (pupa_setjmp) [PUPA_UTIL]: New macro.
10192 (pupa_longjmp) [PUPA_UTIL]: Likewise.
10193 * include/pupa/term.h (struct pupa_term): New member `refresh'.
10194 (pupa_refresh): New prototype.
10195 * include/pupa/util/getroot.h: New file.
10196 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
10197 it.
10198 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
10199 (pupa_rescue_cmd_cat): Likewise.
10200 (pupa_rescue_cmd_ls): Likewise.
10201 (pupa_rescue_cmd_testload): Likewise.
10202 (pupa_rescue_cmd_lsmod): Likewise.
10203 * normal/cmdline.c (pupa_cmdline_get): Likewise.
10204 * normal/menu.c (run_menu): Likewise.
10205 * kern/term.c (pupa_cls): Likewise.
10206 (pupa_refresh): New function.
10207 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
10208 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
10209 * util/console.c: New file.
10210
10211 * util/i386/pc/getroot.c: New file.
10212 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
10213 (pupa_putchar): New function.
10214 (pupa_refresh): Likewise.
10215 (xgetcwd): Function moved to ...
10216 (strip_extra_slashes): Likewise.
10217 (get_prefix): Likewise.
10218 * util/i386/pc/getroot.c: ... here.
10219 (find_root_device): Function moved and renamed to...
10220 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
10221 Changed all callers.
10222 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
10223 and renamed to...
10224 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
10225 Changed all callers.
10226 * util/misc.c (pupa_memalign): New function.
10227 (pupa_mm_init_region): Likewise.
10228 (pupa_register_exported_symbols): Likewise.
10229 (pupa_putchar): Function removed.
10230 * util/pupa-emu.c: New file.
10231
9a5c1ade 102322003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
10233
10234 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
10235 (_multiboot_mod_SOURCES): New variable.
10236 (_multiboot_mod_CFLAGS): Likewise.
10237 * loader/i386/pc/multiboot.c: New file.
10238 * include/pupa/i386/pc/multiboot.h: Likewise.
10239 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
10240 (pupa_multiboot_real_boot): New function.
10241 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
10242 (pupa_multiboot_real_boot): New prototype.
10243 (pupa_rescue_cmd_multiboot): Likewise
10244 (pupa_rescue_cmd_module): Likewise.
10245
10246 * kern/loader.c (pupa_loader_set): Continue when
10247 pupa_loader_unload_func() fails.
10248 (pupa_loader_unset): New function.
10249 * include/pupa/loader.h (pupa_loader_unset): New prototype.
10250
10251 * kern/misc.c (pupa_stpcpy): New function.
10252 * include/pupa/misc.h (pupa_stpcpy): New prototype.
10253
8e72a9c0 102542003-11-12 Marco Gerards <metgerards@student.han.nl>
10255
10256 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
10257 for available extensions.
10258
10259 * include/pupa/i386/pc/time.h: New file.
10260 * kern/disk.c: Include <pupa/machine/time.h>.
10261 (PUPA_CACHE_TIMEOUT): New macro.
10262 (pupa_last_time): New variable.
10263 (pupa_disk_open): Flush the cache when there was a timeout.
10264 (pupa_disk_close): Reset the timer.
10265 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
10266 pupa_currticks.
10267 * util/misc.c: Include <sys/times.h>
10268 (pupa_get_rtc): New function.
10269
c4adbd32 102702003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
10271
10272 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
10273 as blocks.
10274 (pupa_ext2_get_file_block): Use blocks member.
10275
10276 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
10277 first block. Return -1 instead of pupa_errno on error.
10278
bfd30f06 102792003-10-27 Marco Gerards <metgerards@student.han.nl>
10280
10281 * README: In the pupa-mkimage example use _chain instead of chain
10282 and ext2 instead of fat.
10283 * TODO: Replace ext2fs with jfs as an example. Add an item for
10284 adding journal playback for ext2fs.
10285 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
10286 (pkgdata_MODULES): Added ext2.mod.
10287 (ext2_mod_SOURCES): New variable.
10288 (ext2_mod_CFLAGS): Likewise.
10289 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
10290 * include/pupa/misc.h (pupa_strncpy): New prototype.
10291 (pupa_strcat): Likewise.
10292 (pupa_strncmp): Likewise.
10293 * kern/misc.c (pupa_strcat): Enable function.
10294 (pupa_strncpy): New function.
10295 (pupa_strncmp): Likewise.
10296 * fs/ext2.c: New file.
10297
10298 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
10299 when the read failed before retrying.
10300 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
10301 (_FILE_OFFSET_BITS): Likewise.
10302 * configure.ac: Added AC_SYS_LARGEFILE.
10303
98d15063 103042003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
10305
10306 * genmk.rb (PModule#rule): Make sure to get only symbol names
10307 from the output of nm.
10308 Reported by Robert Millan <zeratul2@wanadoo.es>.
10309
18d9c7cd 103102003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
10311
10312 I forgot to check in these changes for a long time. This adds
10313 incomplete support for VGA console, and this is still very
10314 buggy. Also, a lot of consideration is required for I18N,
10315 UNICODE, and VGA font issues. Therefore, assume that this is
10316 such that "better than nothing".
10317
10318 * font/manager.c: New file.
10319 * include/pupa/font.h: Likewise.
10320 * include/pupa/i386/pc/vga.h: Likewise.
10321 * term/i386/pc/vga.c: Likewise.
10322 * util/unifont2pff.rb: Likewise.
10323
10324 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
10325 (pkgdata_MODULES): Added vga.mod and font.mod.
10326 (vga_mod_SOURCES): New variables.
10327 (vga_mod_CFLAGS): Likewise.
10328 (font_mod_SOURCES): Likewise.
10329 (font_mod_CFLAGS): Likewise.
10330
10331 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
10332
10333 * include/pupa/term.h: Include pupa/err.h.
10334 (struct pupa_term): Added init and fini.
10335 Changed the argument of putchar to pupa_uint32_t.
10336
10337 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
10338 (pupa_console_real_putchar): New prototype.
10339 (pupa_console_putchar): Removed.
10340 (pupa_console_checkkey): Exported.
10341 (pupa_console_getkey): Likewise.
10342
10343 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
10344 characters.
10345
10346 * kern/term.c (pupa_term_set_current): Rewritten.
10347 (pupa_putchar): Likewise.
10348 (pupa_putcode): New function.
10349
10350 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
10351 (pupa_console_real_putchar): ... this.
10352 (pupa_vga_set_mode): New function.
10353 (pupa_vga_get_font): Likewise.
10354
10355 * normal/command.c: Include pupa/term.h.
10356 (terminal_command): New function.
10357 (pupa_command_init): Register the command "terminal".
10358
10359 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
10360 (DISP_UP): Likewise.
10361 (DISP_RIGHT): Likewise.
10362 (DISP_DOWN): Likewise.
10363 (DISP_HLINE): Likewise.
10364 (DISP_VLINE): Likewise.
10365 (DISP_UL): Likewise.
10366 (DISP_UR): Likewise.
10367 (DISP_LL): Likewise.
10368 (DISP_LR): Likewise.
10369
10370 * term/i386/pc/console.c (pupa_console_putchar): New function.
10371
977329f5 103722003-02-08 NIIBE Yutaka <gniibe@m17n.org>
10373
10374 * util/resolve.c (pupa_util_resolve_dependencies): BUG
10375 FIX. Reverse the path_list.
10376
10377 * include/pupa/normal.h: Export pupa_register_command and
10378 pupa_unregister_command.
10379
10380 * hello/hello.c (pupa_cmd_hello): New module.
10381 * conf/i386-pc.rmk: Added hello.mod.
10382
1f5ab428 103832003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
10384
10385 * kern/i386/pc/lzo1x.S: New file.
10386
10387 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
10388 (compress_kernel): New variable.
10389 (generate_image): Heavily modified to support compressing a
10390 large part of the core image.
10391
10392 * util/misc.c (pupa_util_read_image): Fix a file descriptor
10393 leak.
10394 (pupa_util_load_image): New function.
10395
10396 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
10397 (pupa_compressed_size): New variable.
10398 (codestart): Enable Gate A20 here.
10399 Decompress the compressed part of the core image.
10400 Rearrange the code to put functions and variables which are
10401 required for initialization in the non-compressed part.
10402 Include lzo1x.S.
10403
10404 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
10405 here.
10406
10407 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
10408
10409 * include/pupa/i386/pc/kernel.h
10410 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
10411 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
10412 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
10413 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
10414 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
10415
10416 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
10417
10418 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
10419 (Utility#rule): Likewise.
10420
10421 * configure.ac: Check if LZO is available.
10422
ce5bf700 104232003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
10424
10425 * include/pupa/normal.h: New file.
10426 * include/pupa/setjmp.h: Likewise.
10427 * include/pupa/i386/setjmp.h: Likewise.
10428 * normal/cmdline.c: Likewise.
10429 * normal/command.c: Likewise.
10430 * normal/main.c: Likewise.
10431 * normal/menu.c: Likewise.
10432 * normal/i386/setjmp.S: Likewise.
10433
10434 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
10435 (pupa_rescue_cmd_initrd): Likewise.
10436
10437 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
10438 Likewise.
10439
10440 * kern/i386/pc/startup.S (translation_table): New variable.
10441 (translate_keycode): New function.
10442 (pupa_console_getkey): Call translate_keycode.
10443
10444 * kern/rescue.c (attempt_normal_mode): New function.
10445 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
10446 it failed, print a message.
10447
10448 * kern/mm.c (pupa_real_malloc): Print more information when a
10449 free magic is broken.
10450 (pupa_free): If the first free header is not free actually, set
10451 it to P.
10452
10453 * kern/main.c (pupa_load_normal_mode): Just load the module
10454 "normal".
10455 (pupa_main): Don't print the message
10456 "Entering into rescue mode..." here.
10457
10458 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
10459 Declared.
10460 (pupa_rescue_cmd_initrd): Likewise.
10461 (pupa_rescue_cmd_initrd): Likewise.
10462
10463 * include/pupa/symbol.h (FUNCTION): Specify the type.
10464 (VARIABLE): Likewise.
10465
10466 * include/pupa/err.h (pupa_err_t): Added
10467 PUPA_ERR_UNKNOWN_COMMAND.
10468
10469 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
10470 (pupa_dl_get_prefix): Likewise.
10471
10472 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
10473 Added _chain.mod and _linux.mod instead of chain.mod and
10474 linux.mod.
10475 (chain_mod_SOURCES): Renamed to ...
10476 (_chain_mod_SOURCES): ... this.
10477 (chain_mod_CFLAGS): Renamed to ...
10478 (_chain_mod_CFLAGS): ... this.
10479 (linux_mod_SOURCES): Renamed to ...
10480 (_linux_mod_SOURCES): ... this.
10481 (linux_mod_CFLAGS): Renamed to ...
10482 (_linux_mod_CFLAGS): ... this.
10483 (normal_mod_SOURCES): New variable.
10484 (normal_mod_CFLAGS): Likewise.
10485 (normal_mod_ASFLAGS): Likewise.
10486
104872003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
10488
10489 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
10490 possible.
10491
10492 * kern/dl.c (pupa_dl_ref): Refer dependending modules
10493 recursively.
10494 (pupa_dl_unref): Unrefer depending modules recursively.
10495 Don't call pupa_dl_unload implicitly, because PUPA can crash if
10496 a module is unloaded before one depending on that module is
10497 unloaded.
10498 (pupa_dl_unload): Unload depending modules explicitly,
10499 if possible.
10500
c04da074 105012003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
10502
10503 * include/pupa/i386/pc/linux.h: New file.
10504 * loader/i386/pc/linux.c: Likewise.
10505
10506 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
10507 Removed.
10508 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
10509 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
10510 of PUPA_CHAINLOADER_BOOT_SECTOR.
10511
10512 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
10513 (pupa_linux_prot_size): New variable.
10514 (pupa_linux_tmp_addr): Likewise.
10515 (pupa_linux_real_addr): Likewise.
10516 (pupa_linux_boot_zimage): New function.
10517 (pupa_linux_boot_bzimage): Likewise.
10518
10519 * kern/i386/pc/init.c (struct mem_region): New structure.
10520 (MAX_REGIONS): New macro.
10521 (mem_regions): New variable.
10522 (num_regions): Likewise.
10523 (pupa_os_area_addr): Likewise.
10524 (pupa_os_area_size): Likewise.
10525 (pupa_lower_mem): Likewise.
10526 (pupa_upper_mem): Likewise.
10527 (add_mem_region): New function.
10528 (compact_mem_regions): Likewise.
10529 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
10530 the size of the conventional memory and that of so-called upper
10531 memory (before the first memory hole).
10532 Instead of adding each found region to free memory, use
10533 add_mem_region and add them after removing overlaps.
10534 Also, add only 1/4 of the upper memory to free memory. The rest
10535 is used for loading OS images. Maybe this is ad hoc, but this
10536 makes it much easier to relocate OS images when booting.
10537
10538 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
10539 (pupa_enter_rescue_mode): Don't register initrd and module.
10540
10541 * kern/mm.c: Include pupa/dl.h.
10542
10543 * kern/main.c: Include pupa/file.h and pupa/device.h.
10544
10545 * kern/loader.c (pupa_loader_load_module_func): Removed.
10546 (pupa_loader_load_module): Likewise.
10547
10548 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
10549 ``.o''.
10550
10551 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
10552 (pupa_linux_tmp_addr): Likewise.
10553 (pupa_linux_real_addr): Likewise.
10554 (pupa_linux_boot_zimage): Likewise.
10555 (pupa_linux_boot_bzimage): Likewise.
10556
10557 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
10558 (pupa_upper_mem): Likewise.
10559 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
10560 module is too dangerous.
10561
10562 * include/pupa/loader.h (pupa_os_area_addr): Declared.
10563 (pupa_os_area_size): Likewise.
10564 (pupa_loader_set): Remove the first argument. Loader doesn't
10565 manage modules or initrd any longer.
10566 (pupa_loader_load_module): Removed.
10567
10568 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
10569 (linux_mod_SOURCES): New variable.
10570 (linux_mod_CFLAGS): Likewise.
10571
a13f9237 105722003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
10573
10574 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
10575 the length of a blocklist correctly.
10576
10577 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
10578 Use ioctl only if the OS file is a block device.
10579 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
10580 not very useful for normal files.
10581
10582 * kern/main.c (pupa_set_root_dev): New function.
10583 (pupa_load_normal_mode): Likewise.
10584 (pupa_main): Call those above.
10585
10586 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
10587 pupa_uint16_t.
10588
10589 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
10590
a5ffe966 105912003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
10592
10593 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
10594 (setup): Configure the installed partition information and the
10595 dl prefix.
10596
10597 * loader/i386/pc/chainloader.c (my_mod): New variable.
10598 (pupa_chainloader_unload): New function.
10599 (pupa_rescue_cmd_chainloader): Refer itself.
10600 (PUPA_MOD_INIT): Save its own module in MY_MOD.
10601
10602 * kern/i386/pc/startup.S (install_partition): Removed.
10603 (version_string): Likewise.
10604 (config_file): Likewise.
10605 (pupa_install_dos_part): New variable.
10606 (pupa_install_bsd_part): Likewise.
10607 (pupa_prefix): Likewise.
10608 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
10609
10610 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
10611 and pupa/misc.h.
10612 (make_install_device): New function.
10613 (pupa_machine_init): Set the dl prefix.
10614
10615 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
10616 (buf): Renamed to ...
10617 (linebuf): ... this.
10618 (pupa_rescue_cmd_prefix): New function.
10619 (pupa_rescue_cmd_insmod): Likewise.
10620 (pupa_rescue_cmd_rmmod): Likewise.
10621 (pupa_rescue_cmd_lsmod): Likewise.
10622 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
10623 rmmod and lsmod.
10624
10625 * kern/mm.c (pupa_memalign): If failed even after invalidating
10626 disk caches, unload unneeded modules and retry.
10627
10628 * kern/misc.c (pupa_memmove): New function.
10629 (pupa_memcpy): Removed.
10630 (pupa_strcpy): New function.
10631 (pupa_itoa): Made static.
10632
10633 * kern/dl.c (pupa_dl_iterate): New function.
10634 (pupa_dl_ref): Likewise.
10635 (pupa_dl_unref): Likewise.
10636 (pupa_dl_unload): Return if succeeded or not.
10637 (pupa_dl_unload_unneeded): New function.
10638 (pupa_dl_unload_all): Likewise.
10639 (pupa_dl_init): Renamed to ...
10640 (pupa_dl_set_prefix): ... this.
10641 (pupa_dl_get_prefix): New function.
10642
10643 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
10644 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
10645 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
10646 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
10647 (pupa_install_dos_part): Declared.
10648 (pupa_install_bsd_part): Likewise.
10649 (pupa_prefix): Likewise.
10650 (pupa_boot_drive): Likewise.
10651
10652 * include/pupa/types.h: Fix a typo.
10653
10654 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
10655 pupa_memmove.
10656 (pupa_memmove): Declared.
10657 (pupa_strcpy): Likewise.
10658
10659 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
10660 pupa_mod_init takes one argument, its own module.
10661 (pupa_dl_unload_unneeded): Declared.
10662 (pupa_dl_unload_all): Likewise.
10663 (pupa_dl_ref): Likewise.
10664 (pupa_dl_unref): Likewise.
10665 (pupa_dl_iterate): Likewise.
10666 (pupa_dl_init): Renamed to ...
10667 (pupa_dl_set_prefix): ... this.
10668 (pupa_dl_get_prefix): Declared.
10669
10670 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
10671 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
10672 unloaded.
10673 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
10674 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
10675
10676 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
10677 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
10678
012d7999 106792003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
10680
10681 * util/i386/pc/pupa-setup.c (setup): Define the internal
10682 function find_first_partition_start at the top level, because GCC
10683 3.0.x cannot compile internal functions in deeper scopes
10684 correctly.
10685 (find_root_device): Use lstat instead of stat.
10686 Don't follow symbolic links.
10687 Fix the path-constructing code.
10688
10689 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
10690 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
10691 by a BLKGETSIZE ioctl first, because block devices don't fill
10692 the member st_mode of the structure stat on Linux.
10693 [__linux__] (linux_find_partition): Use a temporary buffer
10694 REAL_DEV for the working space. Copy it to DEV before returning.
10695 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
10696 buffer cache consistent.
10697 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
10698 strncmp. The previous value was merely wrong.
10699 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
10700
10701 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
10702 FAT size is 12. The previous value was merely wrong.
10703
10704 * kern/main.c (pupa_main): Don't split the starting message from
10705 newlines.
10706
10707 * kern/term.c (pupa_putchar): Put CR after LF instead of before
10708 LF, because BIOS goes crazy about character attributes in this
10709 case.
10710
1cc73a62 107112003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
10712
10713 * include/i386/pc/util/biosdisk.h: New file.
10714 * util/i386/pc/biosdisk.c: Likewise.
10715 * util/i386/pc/pupa-setup.c: Likewise.
10716
10717 * Makefile.in (INCLUDE_DISTFILES): Added
10718 include/pupa/i386/pc/util/biosdisk.h.
10719 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
10720 directory util/i386/pc.
10721 (install-local): Added a rule for sbin_UTILITIES.
10722 (uninstall): Likewise.
10723
10724 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
10725
10726 * util/misc.c (xrealloc): New function.
10727 (pupa_malloc): Likewise.
10728 (pupa_free): Likewise.
10729 (pupa_realloc): Likewise.
10730 (pupa_stop): Likewise.
10731 (pupa_putchar): Likewise.
10732
10733 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
10734
10735 * include/pupa/util/misc.h (xrealloc): Declared.
10736
10737 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
10738 macro.
10739 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
10740 (PUPA_BOOT_MACHINE_BPB_END): ... this.
10741
10742 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
10743 [PUPA_UTIL] (pupa_fat_fini): Likewise.
10744
10745 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
10746 way should be implemented.
10747 [PUPA_UTIL] (pupa_fat_fini): Likewise.
10748
10749 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
10750 the size of NAME for safety.
10751 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
10752 0x88.
10753
10754 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
10755 (pupa_setup_SOURCES): Likewise.
10756
10757 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
10758
08b70fe8 107592002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
10760
10761 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
10762 bunch of pushl's from pusha, because this destroys the return
10763 value.
10764
62ddcc8f 107652002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
10766
10767 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
10768 This means that any missing prototypes could be fatal. Also, you
10769 must take care when writing assembly code. See the comments at
10770 the beginning of startup.S, for more details.
10771
10772 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
10773 compilation mechanism.
10774 (pupa_chainloader_real_boot): Likewise.
10775 (pupa_biosdisk_rw_int13_extensions): Likewise.
10776 (pupa_biosdisk_rw_standard): Likewise.
10777 (pupa_biosdisk_check_int13_extensions): Likewise.
10778 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
10779 (pupa_biosdisk_get_diskinfo_standard): Likewise.
10780 (pupa_get_memsize): Likewise.
10781 (pupa_get_mmap_entry): Likewise.
10782 (pupa_console_putchar): Likewise.
10783 (pupa_console_setcursor): Likewise.
10784 (pupa_getrtsecs): Use pushl instead of push.
10785
10786 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
10787 memory instead of the stack for a mmap entry, because some
10788 BIOSes may ignore the maximum size and overflow.
10789
10790 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
10791
10792 * genmk.rb (PModule#rule): Compile automatically generated
10793 sources with module-specific CFLAGS as well as other sources.
10794
9962ed99 107952002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
10796
10797 * configure.ac: Check ld.
10798 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
10799 respectively, before checking endianness and sizes.
10800
10801 * Makefile.in (LD): New variable.
10802
abdfc3c5 108032002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
10804
10805 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
10806
6a161fa9 108072002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
10808
10809 * Changelog: New file.
10810