]> git.proxmox.com Git - grub2.git/blame - ChangeLog
2007-05-11 Robert Millan <rmh@aybabtu.com>
[grub2.git] / ChangeLog
CommitLineData
2e610d62 12007-05-11 Robert Millan <rmh@aybabtu.com>
2
3 * util/update-grub.in: Create device.map if it doesn't already exist,
4 before attempting to run grub-probe.
5 Check for grub-probe and grub-mkdevicemap with the same code
6 grub-install is using.
7 Remove test mode.
8
3f6a10ef 92007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
10
11 * Makefile.in: Add the datarootdir autoconf variable.
12
02e7b75e 132007-05-09 Robert Millan <rmh@aybabtu.com>
14
15 * util/i386/pc/grub-probe.c (probe): When detecting partition map,
16 fail gracefuly if dev->disk->partition == NULL.
17
75f396cc 182007-05-07 Robert Millan <rmh@aybabtu.com>
19
20 * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
21 determine partition map module.
22 * util/i386/pc/grub-install.in: Use this feature to decide which
23 partition module to load, instead of hardcoding pc and gpt.
24
da65cb36 252007-05-07 Robert Millan <rmh@aybabtu.com>
26
27 * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
28 source directory differs from build directory.
29
b57d6a91 302007-05-05 Robert Millan <rmh@aybabtu.com>
31
32 * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
33 initialisation.
34
509d00f1 352007-05-05 Robert Millan <rmh@aybabtu.com>
36
37 * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
38
c48f23ef 392007-05-05 Robert Millan <rmh@aybabtu.com>
40
41 * util/grub.d/10_linux.in: Allow the administrator to insert Linux
42 command-line arguments via ${GRUB_CMDLINE_LINUX}.
43
20b97658 442007-05-05 Robert Millan <rmh@aybabtu.com>
45
46 * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
47 (grub_probe_SOURCES): Likewise.
48 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
49 GPT and initialize dos_part and bsd_part accordingly.
50 * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
51 install_bsd_part.
52 (main): Activate gpt module for use during partition identification,
53 and deactivate it afterwards.
54 * util/i386/pc/grub-install.in: Add gpt module to core.img.
55 * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
56 partition identification, and deactivate it afterwards.
57
99123174 582007-05-05 Robert Millan <rmh@aybabtu.com>
59
60 * term/i386/pc/console.c (grub_console_fini): Call
61 grub_term_set_current() before grub_term_unregister().
62
ebd97f6e 632007-05-04 Robert Millan <rmh@aybabtu.com>
64
65 * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
66 util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
67 * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS
68 and update-grub_DATA.
69 * conf/common.rmk: Build and install update-grub components.
70 * conf/common.mk: Regenerate.
71 * util/update-grub.in: New. Core of update-grub.
72 * util/grub.d/00_header.in: New. Generates grub.cfg header.
73 * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd.
74 * util/grub.d/10_linux.in: New. Generates boot entries for Linux.
75 * util/grub.d/README: New. Document grub.d directory layout.
76
b06a264d 772007-05-01 Robert Millan <rmh@aybabtu.com>
78
79 * util/grub-emu.c: Move initialization functions
80 grub_util_biosdisk_init() and grub_init_all() before
81 grub_util_biosdisk_get_grub_dev(), which relies on them.
82
41f0050e 832007-04-19 Robert Millan <rmh@aybabtu.com>
84
85 * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
86 it is used later.
87
04582bb3 882007-04-18 Jerone Young <jerone@gmail.com>
89
90 * kernel/elf.c: Add missing parenthesis for conditional statement
91 stanza.
92
08db4632 932007-04-10 Jerone Young <jerone@gmail.com>
49892fdf 94
08db4632 95 * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
96 continue on and look for device node with real device name.
97
801b76be 982007-04-10 Jerone Young <jerone@gmail.com>
1d543c3e 99
100 * configure.ac: Add argument for autoconf to use tranformation
101 ability.
102 * Makefile.in: Add autoconf package transformation code.
103 * util/i386/pc/grub-install.in: Likewise.
104 * util/powerpc/ieee1275/grub-install.in: Likewise.
105
6795c4e1 1062007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
107
108 * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
109 (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
110 (EXT2_REVISION): Likewise.
111 (EXT2_INODE_SIZE): Likewise.
112 (struct grub_ext2_block_group): Added a missing member
113 "used_dirs".
114 (grub_ext2_read_inode): Divide by the inode size in a superblock
115 instead of 128 to obtain INODES_PER_BLOCK.
116 Use the macro EXT2_INODE_SIZE instead of directly using
117 SBLOCK->INODE_SIZE.
118
d70af616 1192007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
120
121 * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
122 superblock instead of the structure size to compute an
123 offset. This fixes the problem that GRUB could not read a
124 filesystem when inode size is different from 128-byte.
125
3b801603 1262007-03-05 Marco Gerards <marco@gnu.org>
127
128 * normal/main.c (read_config_file): When "menu" is not set, create
129 an initial context.
130
4785bfe4 1312007-02-21 Hollis Blanchard <hollis@penguinppc.org>
132
133 * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
134 (HEAP_LIMIT): New macro.
135 (grub_claim_heap): Claim memory up to `heaplimit'.
136
a0cbb023 1372007-02-21 Hollis Blanchard <hollis@penguinppc.org>
138
139 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
140 * kern/powerpc/ieee1275/init.c (_end): Add declaration.
141 (_start): Likewise.
142 (grub_arch_modules_addr): Return address after `_end'.
143 * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
144 (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
145 (add_segments): Calculate `_end' from phdr size and location.
146 (ALIGN_UP): Moved to ...
147 * include/grub/misc.h: here.
148 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
149 New macro.
150 (GRUB_IEEE1275_MODULE_BASE): Removed.
151
fd7d8eba 1522007-02-20 Hollis Blanchard <hollis@penguinppc.org>
153
154 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
155 loop boundary.
156
9b09e6fc 1572007-02-20 Hollis Blanchard <hollis@penguinppc.org>
158
159 * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
160 All users updated.
161 (grub_elf64_load_hook_t): Likewise.
162 * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
163 debug output.
164
3ce27299 1652007-02-20 Hollis Blanchard <hollis@penguinppc.org>
166
167 * kern/mm.c: Update copyright.
168 (grub_mm_debug): Correct syntax error.
169 (grub_mm_dump_free): New function.
170 (grub_debug_free): Call `grub_free'.
171 * include/grub/mm.h: Update copyright.
172 (grub_mm_dump_free): Add declaration.
173
077d5fee 1742007-02-12 Hollis Blanchard <hollis@penguinppc.org>
175
176 * include/grub/ieee1275/ieee1275.h: Update copyright.
177 * kern/powerpc/ieee1275/init.c: Likewise.
178 * kern/powerpc/ieee1275/openfw.c: Likewise.
179
180 * loader/powerpc/ieee1275/linux.c: Likewise.
181 * include/grub/elfload.h: Likewise.
182 * kern/elf.c: Likewise.
183 (grub_elf32_load): Pass `base' and `size' parameters. Update all
184 callers.
185 (grub_elf64_load): Likewise.
186 (grub_elf32_load_segment): Move to a nested function.
187 (grub_elf64_load_segment): Likewise.
188
dc946850 1892007-02-12 Hollis Blanchard <hollis@penguinppc.org>
190
191 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
192 prototype.
193 * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
194 (grub_heap_len): Likewise.
195 (HEAP_SIZE): New macro.
196 (grub_claim_heap): New function.
197 (grub_machine_init): Don't claim heap directly. Call
198 `grub_claim_heap'.
199 * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
200 (grub_available_iterate): New function.
201
baa2a121 2022007-02-03 Thomas Schwinge <tschwinge@gnu.org>
203
204 * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
205 * configure.ac: Use it for testing the HOST and TARGET compilers.
206
4fe9862e 2072006-12-13 Thomas Schwinge <tschwinge@gnu.org>
208
209 * Makefile.in (enable_grub_emu): New variable.
210 * configure.ac (--enable-grub-emu): New option.
211 Do the checks for (n)curses only if `--enable-grub-emu' is requested.
212 * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
213 * conf/i386-pc.rmk: Likewise.
214 * conf/powerpc-ieee1275.rmk: Likewise.
215 * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
216
a8aa5762 2172006-12-12 Marco Gerards <marco@gnu.org>
218
219 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
220
221 * kern/env.c (grub_env_unset): Don't free the member `value' when
222 the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
223 pointer.
224
225 * normal/main.c (current_menu): Removed.
226 (free_menu): Unset the `menu' environment variable.
227 (grub_normal_menu_addentry): Make use of the environment variable
228 `menu', instead of using the global `current_menu'. Allocate
229 memory for the sourcecode of this entry.
230 (read_config_file): New argument `nested', changed all callers.
231 Only in the case of a new context, initialize a new menu. Set the
232 `menu' environment variable.
233 (grub_normal_execute): Don't set and unset the environment
234 variable `menu' here anymore. Only free the menu when leaving the
235 context.
236
237 * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
238 leak.
239
957b3a3e 2402006-12-11 Marco Gerards <marco@gnu.org>
241
242 * normal/menu_entry.c (run): Fix off by one bug so the last line
243 is executed. Move the loader check to outside the loop.
244
ef875714 2452006-12-08 Hollis Blanchard <hollis@penguinppc.org>
246
247 * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
248
4e739985 2492006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
250
251 * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
252 the number of sectors. Reported by Andrey Shuvikov
253 <mr_hyro@yahoo.com>.
254
790707f2 2552006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
256
257 * kern/disk.c (grub_disk_read): When there is a read error, always
258 try to read only the necessary data.
259
260 * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
261 disk/raid.c.
262 * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
263 prototype.
264 [GRUB_UTIL] (grub_raid_fini): Likewise.
265 [GRUB_UTIL] (grub_lvm_init): Likewise.
266 [GRUB_UTIL] (grub_lvm_fini): Likewise.
267 * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
268 RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
269 (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
270 and grub_raid_fini().
271
03e58196 2722006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
273
274 * include/grub/types.h (__unused): Rename to UNUSED.
275 * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
276 (grub_elf64_size): Likewise.
277
ae4f23bf 2782006-11-03 Hollis Blanchard <hollis@penguinppc.org>
279
280 * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
281 grub_error_push and grub_error_pop in the error-handling path.
282 (grub_elf32_load_segment): Only call grub_file_read with non-zero
283 length.
284
2166cc83 2852006-11-03 Hollis Blanchard <hollis@penguinppc.org>
286
287 * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
288 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
289 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
290 (kernel_elf_SOURCES): Likewise.
291 * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
292 * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
293 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
294 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
295 * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
296 (elf_mod_SOURCES): New variable.
297 (elf_mod_CFLAGS): Likewise.
298 (elf_mod_LDFLAGS): Likewise.
299 * include/grub/types.h (__unused): New macro.
300 * include/grub/elfload.h: New file.
301 * kern/elf.c: Likewise.
302 * loader/powerpc/ieee1275/linux.c: Include elfload.h.
303 (ELF32_LOADMASK): New macro.
304 (ELF64_LOADMASK): Likewise.
305 (vmlinux): Removed.
306 (grub_linux_load32): New function.
307 (grub_linux_load64): Likewise.
308 (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
309 Use grub_elf_t instead of grub_file_t.
310
a09d5aa5 3112006-11-02 Hollis Blanchard <hollis@penguinppc.org>
312
313 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
314 `catch_result' to struct set_color_args.
315
d976fc51 3162006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
317
318 * normal/menu.c: Include grub/script.h.
319 * normal/menu_entry.c: Likewise.
320 * include/grub/normal.h: Do not include grub/script.h.
321
67507549 3222006-10-27 Hollis Blanchard <hollis@penguinppc.org>
323
324 * kern/disk.c (grub_disk_read): Correct debug printf formatting.
325
69203a99 3262006-10-27 Hollis Blanchard <hollis@penguinppc.org>
327
328 * kern/disk.c (grub_disk_open): Print debug messages when opening a
329 disk.
330 (grub_disk_close): Print debug messages when closing a disk.
331 (grub_disk_read): Print debug messages when disk read fails.
332 * kern/fs.c (grub_fs_probe): Print debug messages when detecting
333 filesystem type.
334 * kern/partition.c: Include misc.h.
335 (grub_partition_iterate): Print debug messages when detecting
336 partition type.
337
e2b8278c 3382006-10-27 Hollis Blanchard <hollis@penguinppc.org>
339
340 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
341 is negative.
342 * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
343
97b2f2ff 3442006-10-26 Hollis Blanchard <hollis@penguinppc.org>
345
346 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
347 Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
348
6555d655 3492006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
350
351 * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
352 instead of sizeof(lv). Patch by Michael Guntsche.
353
4d42b77f 3542006-10-18 Jeroen Dekkers <jeroen@dekkers.cx>
355
356 * disk/lvm.c: Rename VGS to VG_LIST.
357 (grub_lvm_iterate): Change VGS->LV to VG-LV.
358 (grub_lvm_open): Likewise.
359 Thanks to Michael Guntsche for finding this bug.
360
5d74d927 3612006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
362
363 * configure.ac (AC_INIT): Bumped to 1.95.
364
a1bb27e4 3652006-10-14 Robert Millan <rmh@aybabtu.com>
366
367 * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
368 with "/dev/.static/dev/md".
369
e0994b8b 3702006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
371
372 * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
373 DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
374 DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
375 DRIVE_NAME are always freed.
376
377 * util/i386/pc/biosdisk.c (make_device_name): Add one into
378 DOS_PART, as a DOS partition is counted from one instead of zero
379 now. Reported by Robert Millan.
380
ddd5cee9 3812006-10-14 Robert Millan <rmh@aybabtu.com>
382
383 * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
384 grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
385 * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
386 string returned by grub_guess_root_device.
387 * util/i386/pc/grub-setup.c: Likewise.
388 * util/i386/pc/grub-probefs.c: Likewise.
389
390 * util/i386/pc/grub-probefs.c: Rename to ...
391 * util/i386/pc/grub-probe.c: ... this.
392 * DISTLIST: Remove grub-probefs, add grub-probe.
393 * conf/i386-efi.rmk: Likewise.
394 * conf/i386-pc.rmk: Likewise.
395 * util/i386/pc/grub-install.in: Likewise.
396
397 * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
398 choose which information we want to print.
399
2b002173 4002006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
401
402 * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
403 include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
404 include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
405 include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
406 video/readers/tga.c and video/i386/pc/vbeutil.c.
407
4082006-10-14 Jeroen Dekkers <jeroen@dekkers.cx>
409
410 Added support for RAID and LVM.
411
412 * disk/lvm.c: New file.
413 * disk/raid.c: Likewise.
414 * include/grub/lvm.h: Likewise.
415 * include/grub/raid.h: Likewise.
416 * include/grub/util/lvm.h: Likewise.
417 * include/grub/util/raid.h: Likewise.
418 * util/lvm.c: Likewise.
419 * util/raid.c: Likewise.
420
421 * include/grub/disk.h (grub_disk_dev_id): Add
422 GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
423 (grub_disk_get_size): New prototype.
424 * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
425 returns a partition.
426 (grub_disk_get_size): New function.
427
428 * kern/i386/pc/init.c (make_install_device): Copy the prefix
429 verbatim if grub_install_dos_part is -2.
430
431 * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
432 and LVM devices.
433
434 * util/i386/pc/grub-setup.c (setup): New argument
435 MUST_EMBED. Force embedding of GRUB when the argument is
436 true. Close FILE before returning.
437 (main): Add support for RAID and LVM.
438
439 * conf/common.rmk: Add RAID and LVM modules.
440 * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
441 util/lvm.c.
442 (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
443
444 * kern/misc.c (grub_strstr): New function.
445 * include/grub/misc.h (grub_strstr): New prototype.
446
050548d0 4472006-10-10 Tristan Gingold <tristan.gingold@bull.net>
448
449 * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
450
da849d2d 4512006-10-05 Tristan Gingold <tristan.gingold@bull.net>
452
453 * kern/misc.c (grub_strtoull): Guess the base only if not
454 specified.
455
97b2f2ff 4562006-10-01 Hollis Blanchard <hollis@penguinppc.org>
4f0acd39 457
458 * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
459 PowerMac support.
460
97b2f2ff 4612006-10-01 Hollis Blanchard <hollis@penguinppc.org>
fba51f48 462
463 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
464
465 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
466 Remove `flags' argument. All callers changed.
467 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
468 (IEEE1275_IHANDLE_INVALID): New variable.
469 (IEEE1275_CELL_INVALID): New variable.
470 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
471 grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
472 grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
473 grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
474 grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
475 codes from Open Firmware. All callers updated.
476 (grub_ieee1275_next_property): Directly return Open Firmware return
477 code.
478 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
479 Standardize error checking from `grub_ieee1275_get_property'.
480 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
481 `devalias' to `aliases'. Correct comments. Consolidate error paths.
482
97b2f2ff 4832006-10-01 Hollis Blanchard <hollis@penguinppc.org>
cc6d3df3 484
485 * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
486 `instance_to_package_args' to `instance_to_path_args'.
487
488 * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
489 `grub_ieee1275_chosen'.
490
491 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
492 `grub_ieee1275_interpret'.
493
97b2f2ff 4942006-09-25 Hollis Blanchard <hollis@penguinppc.org>
02bb8acc 495
496 * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
497
97b2f2ff 4982006-09-25 Hollis Blanchard <hollis@penguinppc.org>
663b72f0 499
500 * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
501 (__cmpdi): Likewise.
502
503 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
504 `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type
505 `grub_ssize_t'.
506
02bb8acc 507 * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
663b72f0 508
509 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
510 to type `grub_ssize_t'.
511 (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
512
7f9a8531 5132006-09-22 Marco Gerards <marco@gnu.org>
514
515 * normal/script.c (grub_script_create_cmdmenu): Skip leading
516 newlines.
517
b5ef1102 5182006-09-22 Marco Gerards <marco@gnu.org>
519
520 * commands/echo.c: New file.
521
522 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
523
524 * conf/common.rmk (echo_mod_SOURCES): New variable.
525 (echo_mod_CFLAGS): Likewise.
526 (echo_mod_LDFLAGS): Likewise.
527
2cff3677 5282006-09-22 Marco Gerards <marco@gnu.org>
529
530 * normal/main.c (get_line): Malloc memory instead of using
531 preallocated memory. Removed the arguments `cmdline' and
532 `max_len'. Updated all callers.
533
6ba4688b 5342006-09-22 Marco Gerards <marco@gnu.org>
535
536 * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
537 (normal_mod_DEPENDENCIES): Likewise.
538
539 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
540 (normal_mod_DEPENDENCIES): Likewise.
541
542 * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
543
e02ac02c 5442006-09-22 Johan Rydberg <jrydberg@gnu.org>
545
546 * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
547 programs.
548 * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
549 (normal_mod_DEPENDENCIES): Likewise.
550 * conf/i386-pc.mk: Regenerate.
551 * conf/i386-efi.mk: Likewise
552 * conf/common.mk: Likewise.
553 * conf/powerpc-ieee1275.mk: Likewise.
554 * conf/sparc64-ieee1275.mk: Likewise.
555
8d252e44 5562006-09-22 Robert Millan <rmh@aybabtu.com>
557
558 Sync with i386 version.
559 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
560 * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
561
209bf7ac 5622006-09-21 Robert Millan <rmh@aybabtu.com>
563
564 Import from GRUB Legacy (lib/device.c):
565 * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
566 (init_device_map) [__linux__]: Add support for I2O devices.
567
6b146090 5682006-09-14 Marco Gerards <marco@gnu.org>
569
570 * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
571 `-melf_i386'.
572
e38600a8 5732006-09-14 Robert Millan <rmh@aybabtu.com>
2952da5d 574
575 * util/i386/pc/grub-install.in: Skip menu.lst when removing
576 /boot/grub/*.lst.
78fa1790 577
2952da5d 578 * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
6b146090 579
2952da5d 580 * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
581 before adding it to device.map.
582
01b82a64 5832006-08-15 Johan Rydberg <jrydberg@gnu.org>
584
585 * genmk.rb: Let GCC generate dependenceies the first time it
586 compiles a file; using the -MD option.
587 * conf/common.mk: Regenerate.
588 * conf/i386-pc.mk: Likewise.
589 * conf/i386-efi.mk: Likewise.
590 * conf/powerpc-ieee1275.mk: Likewise.
591 * conf/sparc64-ieee1275.mk: Likewise.
592
1064790d 5932006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
594
595 Move the prototypes of grub_setjmp and grub_longjmp to
596 cpu/setjmp.h, so that each architecture may specify different
597 attributes.
598
599 * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
600 (grub_longjmp): Likewise.
601 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
602 (grub_longjmp): Likewise.
603 * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
604 (grub_longjmp): Likewise.
605
606 * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
607 [!GRUB_UTIL] (grub_longjmp): Removed.
608
29dda3ed 6092006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
610
611 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
612 "color!" method does not return any value.
613
ad2a06ed 6142006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
615
616 * include/grub/bitmap.h: New file.
617
618 * include/grub/i386/pc/vbeutil.h: Likewise.
619
620 * video/bitmap.c: Likewise.
621
622 * video/readers/tga.c: Likewise.
623
624 * video/i386/pc/vbeutil.c: Likewise.
625
626 * commands/videotest.c: Code cleanup and updated to reflect to new
627 video API.
628
629 * term/gfxterm.c: Likewise.
630
631 * video/video.c: Likewise.
632
633 * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
634 (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
635 (bitmap_mod_SOURCES): New entry.
636 (bitmap_mod_CFLAGS): Likewise.
637 (bitmap_mod_LDFLAGS): Likewise.
638 (tga_mod_SOURCES): Likewise.
639 (tga_mod_CFLAGS): Likewise.
640 (tga_mod_LDFLAGS): Likewise.
641
642 * include/grub/video.h (grub_video_blit_operators): New enum type.
643 (grub_video_render_target): Changed as forward declaration and moved
644 actual definition to be video driver specific.
645 (grub_video_adapter.blit_bitmap): Added blitting operator.
646 (grub_video_adapter.blit_render_target): Likewise.
647 (grub_video_blit_bitmap): Likewise.
648 (grub_video_blit_render_target): Likewise.
649
650 * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
651 driver specific render target definition.
652 (grub_video_vbe_map_rgba): Added driver internal helper.
653 (grub_video_vbe_unmap_color): Updated to use
654 grub_video_i386_vbeblit_info.
655 (grub_video_vbe_get_video_ptr): Likewise.
656
657 * include/grub/i386/pc/vbeblit.h
658 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
659 grub_video_i386_vbeblit_info.
660 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
661 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
662 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
663 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
664 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
665 (grub_video_i386_vbeblit_index_index): Likewise.
666 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
667 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
668 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
669 (grub_video_i386_vbeblit_blend): Added generic blitter for blend
670 operator.
671 (grub_video_i386_vbeblit_replace): Added generic blitter for replace
672 operator.
673
674 * video/i386/pc/vbeblit.c: Updated to reflect changes on
675 include/grub/i386/pc/vbeblit.h.
676
677 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
678 Updated to use grub_video_i386_vbeblit_info.
679 (grub_video_i386_vbefill_R8G8B8): Likewise.
680 (grub_video_i386_vbefill_index): Likewise.
681 (grub_video_i386_vbefill): Added generic filler.
682
683 * video/i386/pc/vbefill.c: Updated to reflect changes on
684 include/grub/i386/pc/vbefill.h.
685
686 * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
687 grub_video_i386_vbeblit_info.
688 (grub_video_vbe_unmap_color): Likewise.
689 (grub_video_vbe_blit_glyph): Likewise.
690 (grub_video_vbe_scroll): Likewise.
691 (grub_video_vbe_draw_pixel): Removed function.
692 (grub_video_vbe_get_pixel): Likewise.
693 (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
694 updated code to use it.
695 (common_blitter): Added common blitter for render target and bitmap.
696 (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
697 (grub_video_vbe_blit_render_target): Likewise.
698
bc8c036d 6992006-07-30 Johan Rydberg <jrydberg@gnu.org>
700
701 * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
702 is in text mode if there is no console control protocol instance
703 available.
704
684a8eff 7052006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
706
707 * include/grub/video.h: Code cleanup.
708
709 * include/grub/i386/pc/vbe.h: Likewise.
710
711 * video/i386/pc/vbe.c: Likewise.
712
713 * video/i386/pc/vbeblit.c: Likewise.
714
715 * video/i386/pc/vbefill.c: Likewise.
716
717 * video/video.c: Likewise. Also added more comments.
718
5915059b 7192006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
720
721 * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
722 (struct grub_biosdisk_dap): Likewise.
723
724 * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected
725 linkage settings for all functions.
726
90ce5d56 7272006-07-12 Marco Gerards <marco@gnu.org>
728
729 * configure.ac (--enable-mm-debug): Fix typo.
730
731 * genkernsyms.sh.in: Use proper quoting for `CC'.
732
43e7f879 7332006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
734
735 * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
736 (normal_mod_ASFLAGS): Remove "-m32".
737
4889bdec 7382006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
739
740 * util/misc.c: Include config.h.
741 [!HAVE_MEMALIGN]: Do not include malloc.h.
742 (grub_memalign): Use posix_memalign, if present. Then, use
743 memalign, if present. Otherwise, emit an error.
744
745 * util/grub-emu.c: Do not include malloc.h.
746
747 * include/grub/util/misc.h: Include unistd.h. This is required for
748 FreeBSD, because off_t is defined in unistd.h. Reported by Harley
749 D. Eades III <hde@foobar-qux.org>.
750
751 * configure.ac (AC_GNU_SOURCE): Added.
752 (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
753 type.
754
fd39d4da 7552006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
756
757 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
758 ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
759
b786f3b5 7602006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
761
762 * include/grub/types.h (grub_host_addr_t): Rename to
763 grub_target_addr_t.
764 (grub_host_off_t): Rename to grub_target_off_t.
765 (grub_host_size_t): Rename to grub_target_size_t.
766 (grub_host_ssize_t): Rename to grub_target_ssize_t.
767 Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
768
769 * include/grub/kernel.h (struct grub_module_header): Change type
770 of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
771 (grub_module_info): Likewise.
772
051988bb 7732006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
774
775 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
776 of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
777 Velazquez <jesus.velazquez@gmail.com>.
778
deae281b 7792006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
780
781 Count partitions from 1 instead of 0 in the string representation
782 of partitions. Still use 0-based internally.
783
784 * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
785 (sun_partition_map_iterate): Use grub_partition_t instead of
786 struct grub_partition *. Cast DESC->START_CYLINDER to
787 grub_uint64_t after converting the endian.
788 (sun_partition_map_probe): Subtract 1 for PARTNUM.
789 (sun_partition_map_get_name): Add 1 to P->INDEX.
790
791 * partmap/pc.c (grub_partition_parse): Subtract 1 for
792 PCDATA->DOS_PART.
793 (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
794
795 * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
796 zero instead of one.
797 (gpt_partition_map_probe): Subtract 1 for PARTNUM.
798 (gpt_partition_map_get_name): Add 1 into P->INDEX.
799
800 * partmap/apple.c (apple_partition_map_iterate): Change the type
801 of POS to unsigned.
802 (apple_partition_map_probe): Subtract 1 for PARTNUM.
803 (apple_partition_map_get_name): Add 1 into P->INDEX.
804
805 * partmap/amiga.c (amiga_partition_map_iterate): Change the type
806 of POS to unsigned.
807 (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
808 calculate the offset of a partition.
809 (amiga_partition_map_probe): Subtract 1 for PARTNUM.
810 (amiga_partition_map_get_name): Add 1 into P->INDEX.
811
812 * partmap/acorn.c (acorn_partition_map_find): Change the type of
813 SECTOR to grub_disk_addr_t.
814 (acorn_partition_map_iterate): Likewise.
815 (acorn_partition_map_probe): Subtract 1 for PARTNUM.
816 Change the type of SECTOR to grub_disk_addr_t. Declare P on the
817 top.
818 (acorn_partition_map_get_name): Add 1 into P->INDEX.
819
820 * kern/i386/pc/init.c (make_install_device): Add 1 into
821 GRUB_INSTALL_DOS_PART.
822
823 * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
824 conditional.
825
524a1e6a 8262006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
827
828 Clean up the code to support 64-bit addressing in disks and
829 files. This change is not enough for filesystems yet.
830
831 * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
832 type of "start" to grub_uint64_t.
833 (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
834 grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
835 save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
836 convert addresses.
837
838 * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
839 to grub_disk_addr_t.
840
841 * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
842 string.
843
844 * partmap/pc.c (pc_partition_map_iterate): Likewise.
845
846 * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
847 to char *.
848
849 * normal/script.c (grub_script_parse): Remove unused MEMFREE.
850
851 * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
852
853 * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
854
855 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
856 to grub_off_t, to detect an error from grub_file_seek.
857 (grub_multiboot_load_elf32): Likewise.
858
859 * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
860 maximum unsigned long value when an overflow is detected.
861 (grub_strtoull): New function.
862 (grub_divmod64): Likewise.
863 (grub_lltoa): use grub_divmod64.
864
865 * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
866 grub_disk_addr_t.
867 (grub_fs_blocklist_open): Increase P if P is not NULL to advance
868 the pointer to next character. Use grub_strtoull instead of
869 grub_strtoul.
870 (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
871 SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
872 respectively.
873
874 * kern/file.c (grub_file_read): Prevent an oveflow of LEN, as the
875 return value is signed.
876 (grub_file_seek): Change the type of OLD to grub_off_t. Do not
877 test if OFFSET is less than zero, as OFFSET is unsigned now.
878
879 * kern/disk.c (struct grub_disk_cache): Change the type of
880 "sector" to grub_disk_addr_t.
881 (grub_disk_cache_get_index): Change the type of SECTOR to
882 grub_disk_addr_t. Calculate the hash with SECTOR casted to
883 unsigned after shifting.
884 (grub_disk_cache_invalidate): Change the type of SECTOR to
885 grub_disk_addr_t.
886 (grub_disk_cache_unlock): Likewise.
887 (grub_disk_cache_store): Likewise.
888 (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
889 START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
890 grub_disk_addr_t and grub_uint64_t, respectively.
891 (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
892 body, as the value of OFFSET is tweaked by
893 grub_disk_check_range. Change the types of START_SECTOR, LEN and
894 POS to grub_disk_addr_t, grub_size_t and grub_size_t,
895 respectively.
896 (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
897 body, as the value of OFFSET is tweaked by
898 grub_disk_check_range. Change the types of LEN and N to
899 grub_size_t.
900
901 * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
902 and "saved_offset" to grub_off_t.
903 (test_header): Cast BUF to char *.
904 (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
905 to char *.
906 (grub_gzio_read): Change the types of OFFSET and SIZE to
907 grub_off_t and grub_size_t, respectively.
908
909 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
910 Removed.
911 (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
912 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
913 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
914 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
915 (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
916
917 * include/grub/types.h (grub_off_t): Unconditionally set to
918 grub_uint64_t.
919 (grub_disk_addr_t): Changed to grub_uint64_t.
920
921 * include/grub/partition.h (struct grub_partition): Change the
922 types of "start", "len" and "offset" to grub_disk_addr_t,
923 grub_uint64_t and grub_disk_addr_t, respectively.
924 (grub_partition_get_start): Return grub_disk_addr_t.
925 (grub_partition_get_len): Return grub_uint64_t.
926
927 * include/grub/misc.h (grub_strtoull): New prototype.
928 (grub_divmod64): Likewise.
929
930 * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
931 of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
932 grub_off_t, respectively.
933 All callers and references changed.
934
935 * include/grub/fs.h (struct grub_fs): Change the type of LEN to
936 grub_size_t in "read".
937 All callers and references changed.
938
939 * include/grub/file.h (struct grub_file): Change the types of
940 "offset" and "size" to grub_off_t and grub_off_t,
941 respectively. Change the type of SECTOR to grub_disk_addr_t in
942 "read_hook".
943 (grub_file_read): Change the type of LEN to grub_size_t.
944 (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
945 grub_off_t.
946 (grub_file_size): Return grub_off_t.
947 (grub_file_tell): Likewise.
948 All callers and references changed.
949
950 * include/grub/disk.h (struct grub_disk_dev): Change the types of
951 SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
952 "write".
953 (struct grub_disk): Change the type of "total_sectors" to
954 grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
955 "read_hook".
956 (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
957 grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
958 (grub_disk_write): Likewise.
959 All callers and references changed.
960
961 * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
962 char * for grub_strncmp to silence gcc.
963 (grub_iso9660_mount): Likewise.
964 (grub_iso9660_mount): Likewise.
965 (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
966 return statement.
967 (grub_iso9660_iterate_dir): Likewise.
968 (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
969
970 * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
971 LEN to grub_disk_addr_t and grub_size_t, respectively.
972
973 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
974
975 * fs/jfs.c (grub_jfs_read_file): Likewise.
976
977 * fs/minix.c (grub_jfs_read_file): Likewise.
978
979 * fs/sfs.c (grub_jfs_read_file): Likewise.
980
981 * fs/ufs.c (grub_jfs_read_file): Likewise.
982
983 * fs/xfs.c (grub_jfs_read_file): Likewise.
984
985 * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
986 and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
987 respectively.
988
989 * fs/ext2.c (grub_ext2_read_block): When an error happens, set
990 BLKNR to -1 instead of returning GRUB_ERRNO.
991 (grub_ext2_read_file): Change the types of SECTOR and
992 LEN to grub_disk_addr_t and grub_size_t, respectively.
993
994 * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
995 LEN to grub_disk_addr_t and grub_size_t, respectively.
996
997 * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
998 grub_file_read.
999
1000 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
1001 string. Do not cast SECTOR explicitly.
1002
1003 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
1004 TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
1005 (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
1006 grub_disk_addr_t and grub_size_t, respectively. If the sector is
1007 over 2TB and LBA mode is not supported, raise an error.
1008 (get_safe_sectors): New function.
1009 (grub_biosdisk_read): Use get_safe_sectors.
1010 (grub_biosdisk_write): Likewise.
1011
1012 * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
1013 (grub_efidisk_write): Likewise.
1014
1015 * disk/loopback.c (delete_loopback): Cosmetic changes.
1016 (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
1017 correctly.
1018 (grub_loopback_open): Likewise.
1019 (grub_loopback_read): Likewise. Also, change the type of POS to
1020 grub_off_t, and fix the usage of grub_memset.
1021
1022 * commands/i386/pc/play.c: Include grub/machine/time.h.
1023
1024 * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
1025 print FILE->SIZE.
1026
1027 * commands/configfile.c: Include grub/env.h.
1028
1029 * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
1030 GRUB_ERRNO directly instead. Change the type of POS to
1031 grub_off_t. Follow the coding standard.
1032
1033 * commands/blocklist.c: Include grub/partition.h.
1034 (grub_cmd_blocklist): Return an error if the underlying device is
1035 not a disk. Take the starting sector of a partition into account,
1036 if a partition is used.
1037
1038 * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
1039 a length field.
1040 (lba_mode): Support 64-bit addresses.
1041 (chs_mode): Likewise.
1042 (copy_buffer): Adapted to the new offsets of a length field and a
1043 segment field.
1044 (blocklist_default_start): Allocate 64-bit space.
1045
1046 * boot/i386/pc/boot.S (force_lba): Removed.
1047 (boot_drive): Moved to under KERNEL_SECTOR.
1048 (kernel_sector): Moved to under KENREL_SEGMENT. Allocate 64-bit
1049 space.
1050 (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
1051 is useless.
1052 (lba_mode): Refactored to support a 64-bit address. More size
1053 optimization.
1054 (setup_sectors): Likewise.
1055
53af98ad 10562006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
1057
1058 * DISTLIST: Added include/grub/i386/linux.h. Removed
1059 include/grub/i386/pc/linux.h
1060
1061 * configure.ac (AC_INIT): Bumped to 1.94.
1062
1063 * config.guess: Updated from gnulib.
1064 * config.sub: Likewise.
1065 * install-sh: Likewise.
1066 * mkinstalldirs: Likewise.
1067
b4c1940a 10682006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
1069
1070 * conf/common.rmk (grub_modules_init.lst): Depended on
1071 grub_emu_SOURCES, excluding grub_emu_init.c, instead of
1072 MODSRCFILES.
1073
1074 * genmk.rb (PModule::rule): Reverted the previous change.
1075
cfca1cfd 10762006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
1077
1078 * conf/common.rmk (grub_modules_init.lst): Depends on
1079 $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
1080 that the target does not exist before producing.
1081 (grub_modules_init.h): Remove the target before generating.
1082 (grub_emu_init.c): Likewise.
1083
1084 * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
1085
aa6d7826 10862006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
1087
1088 * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
1089 for the target-specific tests. Make sure that we also have the
1090 up-to-date target variables for those tests.
1091
26c607b9 10922006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
1093
1094 * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
1095 (PModule::rule): Likewise.
1096
0162321a 10972006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
1098
1099 * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
1100 TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
1101 target-specific flags should be prefixed.
1102 (PModule::rule): Likewise.
1103
6c826348 11042006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
1105
1106 * configure.ac (CMP): Check if cmp is available explicitly.
1107
b977bf01 11082006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
1109
1110 * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
1111 (target_cpu): New variable.
1112 (pkglibdir): Use target_cpu instead of host_cpu.
1113
1114 * util/i386/pc/grub-install.in (host_cpu): Removed.
1115 (target_cpu): New variable.
1116 (pkglibdir): Use target_cpu instead of host_cpu.
1117
1118 * util/genmoddep.c: Removed.
1119
1120 * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
1121 instead of GRUB_HOST_SIZEOF_VOID_P.
1122 * kern/dl.c: Likewise.
1123
1124 * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
1125 ...
1126 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
1127 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
1128 (GRUB_TARGET_SIZEOF_LONG): ... this.
1129 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
1130 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
1131 * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
1132 to ...
1133 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
1134 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
1135 (GRUB_TARGET_SIZEOF_LONG): ... this.
1136 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
1137 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
1138 * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
1139 to ...
1140 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
1141 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
1142 (GRUB_TARGET_SIZEOF_LONG): ... this.
1143 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
1144 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
1145
1146 * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
1147 GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
1148 [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
1149 instead of GRUB_HOST_SIZEOF_LONG.
1150 [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
1151 GRUB_HOST_WORDS_BIGENDIAN to define or undefine
1152 GRUB_CPU_WORDS_BIGENDIAN.
1153 Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
1154 define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
1155 grub_host_ssize_t.
1156
1157 * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
1158 (genmoddep_SOURCES): Likewise.
1159 * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
1160 (genmoddep_SOURCES): Likewise.
1161 * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
1162 (genmoddep_SOURCES): Likewise.
1163 * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
1164 Likewise.
1165 (genmoddep_SOURCES): Likewise.
1166
1167 * genmoddep.awk: New file.
1168
1169 * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
1170 TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
1171 CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
1172 (PModule::rule): Likewise.
1173 (Program::rule): Likewise.
1174 (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
1175 BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
1176 respectively.
1177
1178 * configure.ac: Rewritten intensively to use host and target
1179 instead of build and host, respectively.
1180
1181 * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
1182 (host_cpu): Removed.
1183 (target_cpu): New variable.
1184 (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
1185 (BUILD_CC): Removed.
1186 (BUILD_CFLAGS): Likewise.
1187 (BUILD_CPPFLAGS): Likewise.
1188 (TARGET_CC): New variable.
1189 (TARGET_CFLAGS): Likewise.
1190 (TARGET_CPPFLAGS): Likewise.
1191 (TARGET_LDFLAGS): Likewise.
1192 (AWK): Likewise.
1193 (include): Use target_cpu instead of host_cpu.
1194 (moddep.lst:): Use genmoddep.awk instead of genmoddep.
1195
1196 * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
1197
f09771a1 11982006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
1199
1200 * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
1201 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed
1202 field 'false' to 'exec_on_false'.
1203 (grub_script_create_cmdif): Renamed argument names to reflect above
1204 changes.
1205
1206 * normal/execute.c (grub_script_execute_cmdif): Likewise.
1207
1208 * normal/script.c (grub_script_create_cmdif): Likewise.
1209
118f4fb3 12102006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
1211
1212 * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
1213 top.
1214 (grub_hfsplus_btree_recptr): Likewise.
1215 (grub_hfsplus_find_block): Do not take RETRY any longer. Use
1216 FILEBLOCK both to pass a block number and store next block
1217 number.
1218 (grub_hfsplus_read_block): Rewritten heavily to support an extent
1219 overflow file correctly. Specify errors appropriately, because
1220 fshelp expects that GRUB_ERRNO is set when fails. Reuse
1221 grub_hfsplus_btree_recptr to get the pointer to a found key.
1222 (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
1223 is found.
1224
1225 * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
1226 linux.mod.
1227 (_linux_mod_SOURCES): New variable.
1228 (_linux_mod_CFLAGS): Likewise.
1229 (_linux_mod_LDFLAGS): Likewise.
1230 (linux_mod_SOURCES): Likewise.
1231 (linux_mod_CFLAGS): Likewise.
1232 (linux_mod_LDFLAGS): Likewise.
1233
1234 * DISTLIST: Added loader/i386/efi/linux.c,
1235 loader/i386/efi/linux_normal.c and
1236 include/grub/i386/efi/loader.h.
1237
1238 * loader/i386/efi/linux.c: New file.
1239 * loader/i386/efi/linux_normal.c: Likewise.
1240 * include/grub/i386/efi/loader.h: Likewise.
1241
89a7d726 12422006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
1243
1244 * commands/blocklist.c: New file.
1245
1246 * DISTLIST: Added commands/blocklist.c.
1247
1248 * term/efi/console.c (grub_console_highlight_color): Use a lighter
43b553ad 1249 color for the background, and a darker color for the foreground.
89a7d726 1250 (grub_console_checkkey): Return READ_KEY.
1251 (grub_console_cls): Set the background to
1252 GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
1253
1254 * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
1255
1256 * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
1257 the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
1258
1259 * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
1260 prototype.
1261
1262 * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
1263 BG. The spec is wrong again.
1264
1265 * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
1266 prototype.
1267 [GRUB_UTIL] (grub_blocklist_fini): Likewise.
1268
1269 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
1270 commands/blocklist.c.
1271 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1272
1273 * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
1274 (blocklist_mod_SOURCES): New variable.
1275 (blocklist_mod_CFLAGS): Likewise.
1276 (blocklist_mod_LDFLAGS): Likewise.
1277
75c8f258 12782006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
1279
1280 * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
1281 duplication.
1282 (lba_mode): Use %eax more intensively to reduce the code size.
1283
da2eb181 12842006-05-20 Marco Gerards <marco@gnu.org>
1285
1286 * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
1287
1288 * normal/parser.y (commandblock): Defined as <cmd>. A subroutine
1289 for `menuentry'.
1290 (script): Accept leading newlines.
1291 (newlines): New rule to describe 0 or more newlines.
1292 (commands): Accept `command' with trailing newline. Fixed the
1293 order in which arguments were passed to `grub_script_add_cmd'.
1294 Accept commands separated by newlines.
1295 (function): Changed to accept newlines.
1296 (menuentry) Rewritten.
1297
1298 * normal/script.c (grub_script_create_cmdmenu): Add new entries in
1299 front of the list, instead of to the end.
1300
577b4050 13012006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
1302
1303 * util/i386/pc/grub-install.in (bindir): New variable.
1304 (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
1305 Shaver <lbgwjl@gmail.com>.
1306
0d6e1189 13072006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
1308
1309 * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
1310 grub/machine/linux.h
1311 * loader/i386/pc/linux.c: Likewise.
1312
1313 * include/grub/i386/pc/linux.h: Moved to ...
1314 * include/grub/i386/linux.h: ... here.
1315
1316 * include/grub/i386/linux.h (struct linux_kernel_params): New
1317 struct.
1318
31b86e9f 13192006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
1320
1321 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
1322 checking.
1323 (grub_video_vbe_blit_glyph): Likewise.
1324 (grub_video_vbe_blit_bitmap): Likewise.
1325 (grub_video_vbe_blit_render_target): Likewise.
1326
83b984de 13272006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
1328
1329 * configure.ac (--with-platform): Properly quote the square
1330 brackets.
1331
5f0413bd 13322006-05-08 Marco Gerards <marco@gnu.org>
1333
1334 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
1335 this...
1336 (kernel_elf_HEADERS): ...to this. Updated all users.
1337 (grubof_symlist.c): Renamed from this...
1338 (kernel_elf_symlist.c): ...to this. Updated all users.
1339 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
1340 (grubof_SOURCES): Renamed from this...
1341 (kernel_elf_SOURCES): ...to this.
1342 (grubof_HEADERS): Renamed from this...
1343 (kernel_elf_HEADERS): ...to this.
1344 (grubof_CFLAGS): Renamed from this...
1345 (kernel_elf_CFLAGS): ...to this.
1346 (grubof_ASFLAGS): Renamed from this...
1347 (kernel_elf_ASFLAGS): ...to this.
1348 (grubof_LDFLAGS): Renamed from this...
1349 (kernel_elf_LDFLAGS): ...to this.
1350
1351 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
1352 this...
1353 (kernel_elf_HEADERS): ...to this. Updated all users.
1354 (grubof_symlist.c): Renamed from this...
1355 (kernel_elf_symlist.c): ...to this. Updated all users.
1356 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
1357 (grubof_SOURCES): Renamed from this...
1358 (kernel_elf_SOURCES): ...to this.
1359 (grubof_HEADERS): Renamed from this...
1360 (kernel_elf_HEADERS): ...to this.
1361 (grubof_CFLAGS): Renamed from this...
1362 (kernel_elf_CFLAGS): ...to this.
1363 (grubof_ASFLAGS): Renamed from this...
1364 (kernel_elf_ASFLAGS): ...to this.
1365 (grubof_LDFLAGS): Renamed from this...
1366 (kernel_elf_LDFLAGS): ...to this.
1367
1368 * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
1369 `kernel.elf' instead of `grubof'.
1370
05568c2e 13712006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
1372
1373 Add --with-platform to configure. Use pkglibdir instead of
1374 pkgdatadir. This is reported by Roger Leigh.
1375
1376 * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
1377 (host_vendor): Likewise.
1378 (host_os): Likewise.
1379 (pkgdatadir): Likewise.
1380 (platform): New variable.
1381 (pkglibdir): Likewise.
1382 Use PKGLIBDIR instead of PKGDATADIR.
1383
1384 * util/i386/pc/grub-install.in (datadir): Removed.
1385 (host_vendor): Likewise.
1386 (host_os): Likewise.
1387 (pkgdatadir): Likewise.
1388 (platform): New variable.
1389 (pkglibdir): Likewise.
1390 Use PKGLIBDIR instead of PKGDATADIR.
1391
1392 * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
1393 instead of GRUB_DATADIR.
1394 (main): Likewise.
1395 * util/i386/pc/grub-mkimage.c (usage): Likewise.
1396 (main): Likewise.
1397 * util/i386/efi/grub-mkimage.c (usage): Likewise.
1398 (main): Likewise.
1399
1400 * configure.ac (--with-platform): New option.
1401 Use PLATFORM instead of HOST_VENDOR to specify a platform.
1402
1403 * Makefile.in: Include a makefile based on PLATFORM instead of
1404 HOST_VENDOR.
1405 (pkgdatadir): Not appended by the machine type.
1406 (pkglibdir): Appended by the machine type.
1407 (host_vendor): Removed.
1408 (platform): New variable.
1409 (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
1410 (install-local): Use PKGLIBDIR instead of PKGDATADIR.
1411 (uninstall): Likewise.
1412
4e93851c 14132006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
1414
1415 Use the environment context in the menu. Remove the commands
1416 "default" and "timeout", and use variables instead.
1417
1418 * normal/menu.c: Include grub/env.h.
1419 (print_entry): Cast TITLE to silence gcc.
1420 (get_timeout): New function.
1421 (set_timeout): Likewise.
1422 (get_entry_number): Likewise.
1423 (run_menu): Use a default entry, a fallback entry and a timeout
1424 in the environment variables "default", "fallback" and
1425 "timeout". Also, tweak the default entry if it is not within the
1426 current menu entries.
1427 (grub_menu_run): Use a fallback entry in the environment variable
1428 "fallback".
1429
1430 * normal/main.c (read_config_file): Do not initialize
1431 NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
1432 NEWMENU->TIMEOUT.
1433 (grub_normal_execute): Use a data slot to store the menu.
1434
1435 * include/grub/normal.h (struct grub_menu): Removed default_entry,
1436 fallback_entry and timeout.
1437 (struct grub_menu_list): Removed.
1438 (grub_menu_list_t): Likewise.
1439 (struct grub_context): Likewise.
1440 (grub_context_t): Likewise.
1441 (grub_context_get): Likewise.
1442 (grub_context_get_current_menu): Likewise.
1443 (grub_context_push_menu): Likewise.
1444 (grub_context_pop_menu): Likewise.
1445 (grub_default_init): Likewise.
1446 (grub_default_fini): Likewise.
1447 (grub_timeout_init): Likewise.
1448 (grub_timeout_fini): Likewise.
1449
1450 * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
1451 and timeout.mod.
1452 (normal_mod_SOURCES): Removed normal/context.c.
1453
1454 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
1455 commands/default.c, commands/timeout.c and normal/context.c.
1456 (normal_mod_SOURCES): Removed normal/context.c.
1457
1458 * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
1459 commands/timeout.c and normal/context.c.
1460 (normal_mod_SOURCES): Removed normal/context.c.
1461
1462 * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
1463 commands/default.c, commands/timeout.c and normal/context.c.
1464 (normal_mod_SOURCES): Removed normal/context.c.
1465
1466 * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
1467 timeout.mod.
1468 (default_mod_SOURCES): Removed.
1469 (default_mod_CFLAGS): Likewise.
1470 (default_mod_LDFLAGS): Likewise.
1471 (timeout_mod_SOURCES): Removed.
1472 (timeout_mod_CFLAGS): Likewise.
1473 (timeout_mod_LDFLAGS): Likewise.
1474
1475 * DISTLIST: Removed commands/default.c, commands/timeout.c and
1476 normal/context.c.
1477
1478 * commands/default.c: Removed.
1479 * commands/timeout.c: Likewise.
1480 * normal/context.c: Likewise.
1481
1eb9cc1d 14822006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
1483
1484 * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
1485
385bd9c1 14862006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
1487
1488 * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
1489 "next" to "prev" for readability.
1490 (struct grub_env_sorted_var): New struct.
1491 (grub_env_context): Renamed to ...
1492 (initial_context): ... this.
1493 (grub_env_var_context): Renamed to ...
1494 (current_context): ... this.
1495 (grub_env_find): Look only at CURRENT_CONTEXT.
1496 (grub_env_context_open): Rewritten to copy exported variables from
1497 previous context.
1498 (grub_env_context_close): Rewritten according to the new
1499 scheme. Also, add an assertion to prevent the initial context from
1500 removed.
1501 (grub_env_insert): Removed the code for the sorted list.
1502 (grub_env_remove): Likewise.
1503 (grub_env_export): Simply mark the variable with
1504 GRUB_ENV_VAR_GLOBAL.
1505 (grub_env_set): A cosmetic change for naming consistency.
1506 (grub_env_get): Likewise.
1507 (grub_env_unset): Likewise.
1508 (grub_env_iterate): Rewritten to sort variables within this
1509 function.
1510 (grub_register_variable_hook): Fixed for naming consistency. Call
1511 grub_env_find again, only if NAME is not found at the first time.
1512 (mangle_data_slot_name): New function.
1513 (grub_env_set_data_slot): Likewise.
1514 (grub_env_get_data_slot): Likewise.
1515 (grub_env_unset_data_slot): Likewise.
1516
1517 * include/grub/env.h (grub_env_var_type): New enum.
1518 (GRUB_ENV_VAR_LOCAL): New constant.
1519 (GRUB_ENV_VAR_GLOBAL): Likewise.
1520 (GRUB_ENV_VAR_DATA): Likewise.
1521 (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
1522 "type".
1523 (grub_env_set): Replace VAR with NAME for consistency.
1524 (grub_register_variable_hook): Likewise.
1525 (grub_env_export): Specify the name of the argument.
1526 (grub_env_set_data_slot): New prototype.
1527 (grub_env_get_data_slot): Likewise.
1528 (grub_env_unset_data_slot): Likewise.
1529
7f362539 15302006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
1531
1532 Extend the loader so that GRUB can accept a loader which comes
1533 back to GRUB when a loaded image exits. Also, this change adds
1534 support for a chainloader on EFI.
1535
1536 * term/efi/console.c: Include grub/misc.h.
1537 (grub_console_checkkey): Display a scan code on the top for
1538 debugging. This will be removed once the EFI port gets stable.
1539 Correct the scan code mapping.
1540
1541 * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
1542 allocate memory from larger regions, in order to reduce the number
1543 of allocated regions. Otherwise, the MacOSX loader panics.
1544 (filter_memory_map): Avoid less than 1MB for compatibility with
1545 other loaders.
1546 (add_memory_regions): Allocate from the tail of a region, if
1547 possible, to avoid allocating a region near to 1MB, for the MacOSX
1548 loader.
1549
1550 * kern/efi/init.c (grub_efi_set_prefix): Specify
1551 GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
1552
1553 * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
1554 argument IMAGE_HANDLE and specify it to get a loaded image.
1555 (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
1556 grub_efi_get_loaded_image.
1557 (grub_efi_get_filename): Divide the legnth by the size of
1558 grub_efi_char16_t.
1559 (grub_efi_get_device_path): New function.
1560 (grub_efi_print_device_path): Print End Device Path nodes. Divide
1561 the length by the size of grub_efi_char16_t for a file path device
1562 path node.
1563
1564 * kern/loader.c (grub_loader_noreturn): New variable.
1565 (grub_loader_set): Accept a new argument NORETURN. Set
1566 GRUB_LOADER_NORETURN to NORETURN.
1567 All callers changed.
1568 (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
1569 grub_machine_fini.
1570
1571 * include/grub/efi/efi.h (grub_efi_get_device_path): New
1572 prototype.
1573 (grub_efi_get_loaded_image): Take an argument to specify an image
1574 handle.
1575
1576 * include/grub/loader.h (grub_loader_set): Added one more argument
1577 NORETURN.
1578
1579 * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
1580 instead of grub_efi_open_protocol.
1581 (grub_efidisk_get_device_name): Likewise.
1582 (grub_efidisk_close): Print a newline.
1583 (grub_efidisk_get_device_handle): Fixed to use
1584 GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
1585 GRUB_EFI_DEVICE_PATH_TYPE.
1586
1587 * disk/efi/efidisk.c (device_path_guid): Moved to ...
1588 * kern/efi/efi.c (device_path_guid): ... here.
1589
1590 * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
1591 chain.mod.
1592 (kernel_mod_HEADERS): Added efi/disk.h.
1593 (_chain_mod_SOURCES): New variable.
1594 (_chain_mod_CFLAGS): Likewise.
1595 (_chain_mod_LDFLAGS): Likewise.
1596 (chain_mod_SOURCES): Likewise.
1597 (chain_mod_CFLAGS): Likewise.
1598 (chain_mod_LDFLAGS): Likewise.
1599
1600 * DISTLIST: Added include/grub/efi/chainloader.h,
1601 loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
1602
1603 * include/grub/efi/chainloader.h: New file.
1604 * loader/efi/chainloader.c: Likewise.
1605 * loader/efi/chainloader_normal.c: Likewise.
1606
c0111d6e 16072006-04-30 Marco Gerards <marco@gnu.org>
1608
1609 * commands/configfile.c (grub_cmd_source): New function.
1610 (GRUB_MOD_INIT): Register the commands `source' and `.'.
1611 (GRUB_MOD_FINI): De-register the commands `source' and `.'.
1612
df5341da 16132006-04-30 Marco Gerards <marco@gnu.org>
1614
1615 * normal/execute.c (grub_script_execute_cmd): Change the return
1616 type to `grub_err_t'. Correctly return the error.
1617 (grub_script_execute_cmdline): In case a command line is not a
1618 command or a function, try to interpret it as an assignment.
1619
f85934bd 16202006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
1621
1622 * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
1623 (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
1624 skip a node whose name is obviously invalid as UTF-16,
1625 i.e. contains a NUL character. Stop the iteration when the last
1626 directory entry is found. Instead of using the return value of
1627 grub_hfsplus_btree_iterate_node, store the value in RET and use
1628 it, because the iterator can be stopped by the last directory
1629 entry.
1630
8f8a2cf8 16312006-04-30 Marco Gerards <marco@gnu.org>
1632
1633 * include/grub/env.h (grub_env_export): New prototype. Reported
1634 by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
1635
a27e84ce 16362006-04-30 Marco Gerards <marco@gnu.org>
1637
1638 * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
1639 size of the extents in a catalog file record.
1640
eaef0553 16412006-04-29 Marco Gerards <marco@gnu.org>
1642
1643 * commands/configfile.c (grub_cmd_configfile): Execute the
1644 configfile within its own context.
1645
1646 * include/grub/env.h (grub_env_context_open): New prototype.
1647 (grub_env_context_close): Likewise.
1648
1649 * kern/env.c (grub_env): Removed.
1650 (grub_env_sorted): Likewise.
1651 (grub_env_context): New variable.
1652 (grub_env_var_context): Likewise.
1653 (grub_env_find): Search both the active context and the global
1654 context.
1655 (grub_env_context_open): New function.
1656 (grub_env_context_close): Likewise.
1657 (grub_env_insert): Likewise.
1658 (grub_env_remove): Likewise.
1659 (grub_env_export): Likewise.
1660 (grub_env_set): Changed to use helper functions to avoid code
1661 duplication.
1662 (grub_env_iterate): Rewritten so both the current context and the
1663 global context are being used.
1664
1665 * normal/command.c (export_command): New function.
1666 (grub_command_init): Register the `export' function.
1667
7b455f4d 16682006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
1669
1670 * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
1671 explicitly to suppress gcc's warnings.
1672 * fs/fat.c (grub_fat_find_dir): Likewise.
1673 (grub_fat_label): Likewise.
1674 * fs/xfs.c (grub_xfs_read_inode): Likewise.
1675 (grub_xfs_mount): Likewise.
1676 (grub_xfs_label): Likewise.
1677 * fs/affs.c (grub_affs_mount): Likewise.
1678 (grub_affs_label): Likewise.
1679 (grub_affs_iterate_dir): Likewise.
1680 * fs/sfs.c (grub_sfs_mount): Likewise.
1681 (grub_sfs_iterate_dir): Likewise.
1682 * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
1683 * fs/hfs.c (grub_hfs_mount): Likewise.
1684 (grub_hfs_cmp_catkeys): Likewise.
1685 (grub_hfs_find_dir): Likewise.
1686 (grub_hfs_dir): Likewise.
1687 (grub_hfs_label): Likewise.
1688 * fs/jfs.c (grub_jfs_mount): Likewise.
1689 (grub_jfs_opendir): Likewise.
1690 (grub_jfs_getent): Likewise.
1691 (grub_jfs_lookup_symlink): Likewise.
1692 (grub_jfs_label): Likewise.
1693 * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
1694 (grub_hfsplus_iterate_dir): Likewise.
1695 (grub_hfsplus_btree_iterate_node): Made static.
1696
1697 * util/grub-emu.c (prefix): New variable.
1698 (grub_machine_set_prefix): New function.
1699 (main): Do not set the environment variable "prefix" here. Only
1700 set PREFIX, which is used later by grub_machine_set_prefix.
1701
1702 * include/grub/video.h: Do not include grub/symbol.h.
1703 (grub_video_register): Not exported. This symbol is not defined in
1704 the kernel.
1705 (grub_video_unregister): Likewise.
1706 (grub_video_iterate): Likewise.
1707 (grub_video_setup): Likewise.
1708 (grub_video_restore): Likewise.
1709 (grub_video_get_info): Likewise.
1710 (grub_video_get_blit_format): Likewise.
1711 (grub_video_set_palette): Likewise.
1712 (grub_video_get_palette): Likewise.
1713 (grub_video_set_viewport): Likewise.
1714 (grub_video_get_viewport): Likewise.
1715 (grub_video_map_color): Likewise.
1716 (grub_video_map_rgb): Likewise.
1717 (grub_video_map_rgba): Likewise.
1718 (grub_video_fill_rect): Likewise.
1719 (grub_video_blit_glyph): Likewise.
1720 (grub_video_blit_bitmap): Likewise.
1721 (grub_video_blit_render_target): Likewise.
1722 (grub_video_scroll): Likewise.
1723 (grub_video_swap_buffers): Likewise.
1724 (grub_video_create_render_target): Likewise.
1725 (grub_video_delete_render_target): Likewise.
1726 (grub_video_set_active_render_target): Likewise.
1727
1728 * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
1729 Undefined.
1730 [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
1731
1732 * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
1733 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
1734 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
1735 instead of $(srcdir)/genkernsyms.sh.
1736
1737 * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
1738 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
1739 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
1740 instead of $(srcdir)/genkernsyms.sh.
1741
1742 * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
1743 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
1744 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
1745 instead of $(srcdir)/genkernsyms.sh.
1746
1747 * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
1748 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
1749 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
1750 instead of $(srcdir)/genkernsyms.sh.
1751
1752 * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
1753 genkernsyms.sh.
1754
1755 * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
1756 genkernsyms.sh.
1757 (gensymlist.sh): New target.
1758 (genkernsyms.sh): Likewise.
1759
1760 * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
1761 genkernsyms.sh.in and gensymlist.sh.in.
1762
1763 * genkernsyms.sh: Removed.
1764 * gensymlist.sh: Likewise.
1765
1766 * genkernsyms.sh.in: New file.
1767 * gensymlist.sh.in: Likewise.
1768
1885bb27 17692006-04-25 Hollis Blanchard <hollis@penguinppc.org>
1770
1771 * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
1772 clobber "prefix", since we may have already set it manually.
1773
71538dff 17742006-04-25 Hollis Blanchard <hollis@penguinppc.org>
1775
1776 * kern/misc.c (abort): New alias for grub_abort.
1777
2965c7cc 17782006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
1779
1780 A new machine-specific function "grub_machine_set_prefix" is
1781 defined. This is called after loading modules, so that a prefix
1782 initialization can use modules. Also, this change adds an
1783 intensive debugging feature for the memory manager via the
1784 configure option "--enable-mm-debug".
1785
1786 * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
1787 PART.LEN.
1788
1789 * kern/sparc64/ieee1275/init.c (abort): Removed.
1790 (grub_stop): Likewise.
1791 (grub_exit): New function.
1792 (grub_set_prefix): Renamed to ...
1793 (grub_machine_set_prefix): ... this.
1794 (grub_machine_init): Do not call grub_set_prefix.
1795
1796 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
1797 (grub_machine_set_prefix): ... this.
1798 (grub_machine_init): Do not call grub_set_prefix.
1799
1800 * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
1801 (grub_machine_init): Do not set the prefix here.
1802
1803 * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
1804
1805 * kern/efi/init.c: Include grub/mm.h.
1806 (grub_efi_set_prefix): New function.
1807
1808 * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
1809 (grub_efi_get_filename): New function.
1810 (grub_print_device_path): Renamed to ...
1811 (grub_efi_print_device_path): ... this.
1812
1813 * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
1814 [MM_DEBUG] (grub_realloc): Likewise.
1815 [MM_DEBUG] (grub_free): Likewise.
1816 [MM_DEBUG] (grub_memalign): Likewise.
1817 [MM_DEBUG] (grub_mm_debug): New variable.
1818 [MM_DEBUG] (grub_debug_malloc): New function.
1819 [MM_DEBUG] (grub_debug_free): New function.
1820 [MM_DEBUG] (grub_debug_realloc): New function.
1821 [MM_DEBUG] (grub_debug_memalign): New function.
1822
1823 * kern/misc.c (grub_abort): Print a newline to distinguish
1824 the message.
1825
1826 * kern/main.c (grub_main): Call grub_machine_set_prefix and
1827 grub_set_root_dev after loading modules. This is necessary when
1828 setting a prefix depends on modules.
1829
1830 * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
1831 (grub_efi_print_device_path): ... this.
1832 (grub_efi_get_filename): New prototype.
1833 (grub_efi_set_prefix): Likewise.
1834
1835 * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
1836 and grub/disk.h.
1837 (grub_efidisk_get_device_handle): New prototype.
1838 (grub_efidisk_get_device_name): Likewise.
1839
1840 * include/grub/mm.h: Include config.h.
1841 (MM_DEBUG): Removed.
1842 [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
1843 [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
1844 [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
1845 [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
1846 [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
1847 [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
1848 [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
1849 [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
1850 [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
1851
1852 * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
1853
1854 * disk/efi/efidisk.c: Include grub/partition.h.
1855 (iterate_child_devices): New function.
1856 (add_device): First, compare only last device path nodes, so that
1857 devices are sorted by the types.
1858 (grub_efidisk_get_device_handle): New function.
1859 (grub_efidisk_get_device_name): Likewise.
1860
1861 * configure.ac (--enable-mm-debug): New option to enable the
1862 memory manager debugging feature. This makes the binary much
1863 bigger, so is disabled by default.
1864
9cacaa17 18652006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
1866
1867 Use grub_abort instead of grub_stop, and grub_exit must be
1868 define in each architecture now. Also, this change adds support
1869 for EFI disks.
1870
1871 * util/i386/pc/grub-probefs.c: Include grub/term.h.
1872 (grub_getkey): New function.
1873 (grub_term_get_current): Likewise.
1874
1875 * util/i386/pc/grub-setup.c: Include grub/term.h.
1876 (grub_getkey): New function.
1877 (grub_term_get_current): Likewise.
1878
1879 * util/misc.c (grub_stop): Renamed to ...
1880 (grub_exit): ... this.
1881
1882 * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
1883 (grub_exit): ... this.
1884 (grub_machine_init): Use grub_abort instead of abort.
1885 (grub_stop): Removed.
1886
1887 * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
1888 abort.
1889
1890 * kern/i386/pc/startup.S (grub_exit): New function.
1891 (cold_reboot): New label.
1892
1893 * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
1894 (grub_efi_init): Call grub_efidisk_init.
1895 (grub_efi_fini): Call grub_efidisk_fini.
1896
1897 * kern/efi/efi.c: Include grub/mm.h.
1898 (grub_efi_console_control_guid): Renamed to ...
1899 (console_control_guid): ... this.
1900 (grub_efi_loaded_image_guid): Renamed to ...
1901 (loaded_image_guid): ... this.
1902 (grub_efi_locate_handle): New function.
1903 (grub_efi_open_protocol): Likewise.
1904 (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
1905 GRUB_EFI_CONSOLE_CONTROL_GUID.
1906 (grub_efi_exit): Removed.
1907 (grub_stop): Likewise.
1908 (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
1909 (grub_exit): New function.
1910 (grub_print_device_path): Likewise.
1911
1912 * kern/rescue.c (grub_rescue_cmd_exit): New function.
1913 (grub_enter_rescue_mode): Register "exit".
1914
1915 * kern/misc.c (grub_real_dprintf): A cosmetic change.
1916 (grub_abort): New function.
1917
1918 * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
1919
1920 * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
1921
1922 * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
1923
1924 * include/grub/efi/efi.h (grub_efi_exit): Removed.
1925 (grub_print_device_path): New prototype.
1926 (grub_efi_locate_handle): Likewise.
1927 (grub_efi_open_protocol): Likewise.
1928
1929 * include/grub/efi/disk.h (grub_efidisk_fini): New file.
1930 * disk/efi/efidisk.c: Likewise.
1931
1932 * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
1933
1934 * include/grub/efi/console_control.h
1935 (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
1936
1937 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
1938 last 8 bytes as an array.
1939 (GRUB_EFI_DISK_IO_GUID): New macro.
1940 (GRUB_EFI_BLOCK_IO_GUID): Likewise.
1941 (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
1942 (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
1943 grub_uint8_t.
1944 (struct grub_efi_guid): Use an array to specify the last 8 bytes.
1945 (struct grub_efi_device_path): Rename the member "sub_type" to
1946 "subtype".
1947 (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
1948 (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
1949 (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
1950 (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
1951 (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
1952 (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
1953 (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
1954 (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
1955 (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
1956 (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
1957 (struct grub_efi_pci_device_path): New structure.
1958 (grub_efi_pci_device_path_t): New type.
1959 (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
1960 (struct grub_efi_pccard_device_path): New structure.
1961 (grub_efi_pccard_device_path_t): New type.
1962 (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
1963 (struct grub_efi_memory_mapped_device_path): New structure.
1964 (grub_efi_memory_mapped_device_path_t): New type.
1965 (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
1966 (struct grub_efi_vendor_device_path): New structure.
1967 (grub_efi_vendor_device_path_t): New type.
1968 (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
1969 (struct grub_efi_controller_device_path): New structure.
1970 (grub_efi_controller_device_path_t): New type.
1971 (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
1972 (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
1973 (struct grub_efi_acpi_device_path): New structure.
1974 (grub_efi_acpi_device_path_t): New type.
1975 (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
1976 (struct grub_efi_expanded_acpi_device_path): New structure.
1977 (grub_efi_expanded_acpi_device_path_t): New type.
1978 (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
1979 (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
1980 (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
1981 (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
1982 (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
1983 (struct grub_efi_atapi_device_path): New structure.
1984 (grub_efi_atapi_device_path_t): New type.
1985 (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
1986 (struct grub_efi_fibre_channel_device_path): New structure.
1987 (grub_efi_fibre_channel_device_path_t): New type.
1988 (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
1989 (struct grub_efi_1394_device_path): New structure.
1990 (grub_efi_1394_device_path_t): New type.
1991 (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
1992 (struct grub_efi_usb_device_path): New structure.
1993 (grub_efi_usb_device_path_t): New type.
1994 (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
1995 (struct grub_efi_usb_class_device_path): New structure.
1996 (grub_efi_usb_class_device_path_t): New type.
1997 (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
1998 (struct grub_efi_i2o_device_path): New structure.
1999 (grub_efi_i2o_device_path_t): New type.
2000 (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
2001 (struct grub_efi_mac_address_device_path): New structure.
2002 (grub_efi_mac_address_device_path_t): New type.
2003 (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
2004 (struct grub_efi_ipv4_device_path): New structure.
2005 (grub_efi_ipv4_device_path_t): New type.
2006 (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
2007 (struct grub_efi_ipv6_device_path): New structure.
2008 (grub_efi_ipv6_device_path_t): New type.
2009 (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
2010 (struct grub_efi_infiniband_device_path): New structure.
2011 (grub_efi_infiniband_device_path_t): New type.
2012 (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
2013 (struct grub_efi_uart_device_path): New structure.
2014 (grub_efi_uart_device_path_t): New type.
2015 (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
2016 (struct grub_efi_vendor_messaging_device_path): New structure.
2017 (grub_efi_vendor_messaging_device_path_t): New type.
2018 (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
2019 (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
2020 (struct grub_efi_hard_drive_device_path): New structure.
2021 (grub_efi_hard_drive_device_path_t): New type.
2022 (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
2023 (struct grub_efi_cdrom_device_path): New structure.
2024 (grub_efi_cdrom_device_path_t): New type.
2025 (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
2026 (struct grub_efi_vendor_media_device_path): New structure.
2027 (grub_efi_vendor_media_device_path_t): New type.
2028 (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
2029 (struct grub_efi_file_path_device_path): New structure.
2030 (grub_efi_file_path_device_path_t): New type.
2031 (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
2032 (struct grub_efi_protocol_device_path): New structure.
2033 (grub_efi_protocol_device_path_t): New type.
2034 (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
2035 (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
2036 (struct grub_efi_bios_device_path): New structure.
2037 (grub_efi_bios_device_path_t): New type.
2038 (struct grub_efi_disk_io): New structure.
2039 (grub_efi_disk_io_t): New type.
2040 (struct grub_efi_block_io_media): New structure.
2041 (grub_efi_block_io_media_t): New type.
2042 (struct grub_efi_block_io): New structure.
2043 (grub_efi_block_io_t): New type.
2044
2045 * include/grub/misc.h (grub_stop): Removed.
2046 (grub_exit): New prototype.
2047 (grub_abort): Likewise.
2048
2049 * include/grub/disk.h (enum grub_disk_dev_id): Added
2050 GRUB_DISK_DEVICE_EFIDISK_ID.
2051
2052 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
2053 disk/efi/efidisk.c.
2054 (kernel_syms.lst): Remove the target if an error occurs.
2055
49986a9f 20562006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
2057
2058 * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
2059 as it was simply too buggy.
2060
970d3b8a 20612006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
2062
2063 * kern/misc.c (grub_lltoa): New function.
2064 (grub_vsprintf): Added support for the long long suffix,
2065 i.e. "ll".
2066
ff04ec24 20672006-04-20 Hollis Blanchard <hollis@penguinppc.org>
2068
2069 * Makefile.in (LDFLAGS): Add variable.
2070 (LD): Remove variable.
2071 * configure.ac: Add -m32 to LDFLAGS.
2072 * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
2073 * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
2074 (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
2075 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
2076 suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
2077 variables.
2078 * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
2079 * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
2080 * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
2081
37e5e1a4 20822006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
2083
2084 * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
2085 length for unknown glyph.
2086
c352d8dd 20872006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
2088
2eab1c0d 2089 Add support for pre-loaded modules into the EFI port.
2090
2091 * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
2092 completely. Accept one more argument DIR. The caller has changed.
2093
2094 * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
2095
2096 * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
2097 (grub_efi_loaded_image_guid): New variable.
2098 (grub_efi_get_loaded_image): New function.
2099 (grub_arch_modules_addr): Likewise.
2100
2101 * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
2102 prototype.
2103
2104 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
2105 (struct grub_efi_loaded_image): New structure.
2106 (grub_efi_loaded_image_t): New type.
2107
21082006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
2109
c352d8dd 2110 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
2111 size with GRUB_OS_AREA_SIZE as grub_size_t instead of
2112 grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
2113
6d01d6b4 21142006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
2115
2116 * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
2117
976a4ea0 21182006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
2119
2120 * DISTLIST: Added include/grub/efi/console.h,
2121 include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
2122 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
2123
2124 * include/grub/efi/console.h: New file.
2125 * include/grub/efi/time.h: Likewise.
2126 * include/grub/i386/efi/kernel.h: Likewise.
2127 * kern/efi/init.c: Likewise.
2128 * kern/efi/mm.c: Likewise.
2129 * term/efi/console.c: Likewise.
2130
2131 * kern/i386/efi/init.c: Do not include grub/machine/time.h.
2132 (grub_stop): Removed.
2133 (grub_get_rtc): Likewise.
2134 (grub_machine_init): Simply call grub_efi_init.
2135 (grub_machine_fini): Call grub_efi_fini.
2136
2137 * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
2138 (grub_efi_output_string): Removed.
2139 (grub_efi_stall): New function.
2140 (grub_stop): Likewise.
2141 (grub_get_rtc): Likewise.
2142
2143 * include/grub/efi/efi.h (grub_efi_output_string): Removed.
2144 (grub_efi_stall): New prototype.
2145 (grub_efi_allocate_pages): Likewise.
2146 (grub_efi_free_pages): Likewise.
2147 (grub_efi_get_memory_map): Likewise.
2148 (grub_efi_mm_init): Likewise.
2149 (grub_efi_mm_fini): Likewise.
2150 (grub_efi_init): Likewise.
2151 (grub_efi_fini): Likewise.
2152
2153 * include/grub/i386/efi/time.h: Do not include
2154 grub/symbol.h. Include grub/efi/time.h.
2155 (GRUB_TICKS_PER_SECOND): Removed.
2156 (grub_get_rtc): Likewise.
2157
2158 * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
2159 Added padding. The EFI spec is buggy.
2160 (GRUB_EFI_BLACK): New macro.
2161 (GRUB_EFI_BLUE): Likewise.
2162 (GRUB_EFI_GREEN): Likewise.
2163 (GRUB_EFI_CYAN): Likewise.
2164 (GRUB_EFI_RED): Likewise.
2165 (GRUB_EFI_MAGENTA): Likewise.
2166 (GRUB_EFI_BROWN): Likewise.
2167 (GRUB_EFI_LIGHTGRAY): Likewise.
2168 (GRUB_EFI_BRIGHT): Likewise.
2169 (GRUB_EFI_DARKGRAY): Likewise.
2170 (GRUB_EFI_LIGHTBLUE): Likewise.
2171 (GRUB_EFI_LIGHTGREEN): Likewise.
2172 (GRUB_EFI_LIGHTCYAN): Likewise.
2173 (GRUB_EFI_LIGHTRED): Likewise.
2174 (GRUB_EFI_LIGHTMAGENTA): Likewise.
2175 (GRUB_EFI_YELLOW): Likewise.
2176 (GRUB_EFI_WHITE): Likewise.
2177 (GRUB_EFI_BACKGROUND_BLACK): Likewise.
2178 (GRUB_EFI_BACKGROUND_BLUE): Likewise.
2179 (GRUB_EFI_BACKGROUND_GREEN): Likewise.
2180 (GRUB_EFI_BACKGROUND_CYAN): Likewise.
2181 (GRUB_EFI_BACKGROUND_RED): Likewise.
2182 (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
2183 (GRUB_EFI_BACKGROUND_BROWN): Likewise.
2184 (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
2185 (GRUB_EFI_TEXT_ATTR): Likewise.
2186
2187 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
2188 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
2189 (kernel_mod_HEADERS): Added efi/time.h.
2190
83709125 21912006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
2192
2193 * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
2194 include/grub/efi/api.h, include/grub/efi/console_control.h,
2195 include/grub/efi/efi.h, include/grub/efi/pe32.h,
2196 include/grub/i386/efi/time.h, kern/efi/efi.c,
2197 kern/i386/efi/init.c, kern/i386/efi/startup.S,
2198 and util/i386/efi/grub-mkimage.c.
2199
2200 * Makefile.in (RMKFILES): Added i386-efi.rmk.
2201
2202 * genmk.rb (PModule#rule): Do not export symbols if
2203 #{prefix}_EXPORTS is set to "no".
2204
2205 * conf/i386-efi.mk: New file.
2206 * conf/i386-efi.rmk: Likewise.
2207 * include/grub/efi/api.h: Likewise.
2208 * include/grub/efi/console_control.h: Likewise.
2209 * include/grub/efi/efi.h: Likewise.
2210 * include/grub/efi/pe32.h: Likewise.
2211 * include/grub/i386/efi/time.h: Likewise.
2212 * kern/efi/efi.c: Likewise.
2213 * kern/i386/efi/init.c: Likewise.
2214 * kern/i386/efi/startup.S: Likewise.
2215 * util/i386/efi/grub-mkimage.c: Likewise.
2216
22172006-04-17 Marco Gerards <marco@gnu.org>
bfa2bd9e 2218
2219 * include/grub/script.h: Include <grub/parser.h> and
2220 "grub_script.tab.h".
2221 (struct grub_lexer_param): New struct.
2222 (struct grub_parser_param): Likewise.
2223 (grub_script_create_arglist): Pass the state in an argument.
2224 (grub_script_add_arglist): Likewise.
2225 (grub_script_create_cmdline): Likewise.
2226 (grub_script_create_cmdblock): Likewise.
2227 (grub_script_create_cmdif): Likewise.
2228 (grub_script_create_cmdmenu): Likewise.
2229 (grub_script_add_cmd): Likewise.
2230 (grub_script_arg_add): Likewise.
2231 (grub_script_lexer_ref): Likewise.
2232 (grub_script_lexer_deref): Likewise.
2233 (grub_script_lexer_record_start): Likewise.
2234 (grub_script_lexer_record_stop): Likewise.
2235 (grub_script_mem_record): Likewise.
2236 (grub_script_mem_record_stop): Likewise.
2237 (grub_script_malloc): Likewise.
2238 (grub_script_yylex): Likewise.
2239 (grub_script_yyparse): Likewise.
2240 (grub_script_yyerror): Likewise.
2241 (grub_script_yylex): Likewise.
2242 (grub_script_lexer_init): Return the state.
2243
2244 * normal/lexer.c (grub_script_lexer_state): Removed variable.
2245 (grub_script_lexer_done): Likewise.
2246 (grub_script_lexer_getline): Likewise.
2247 (grub_script_lexer_refs): Likewise.
2248 (script): Likewise.
2249 (newscript): Likewise.
2250 (record): Likewise.
2251 (recording): Likewise.
2252 (recordpos): Likewise.
2253 (recordlen): Likewise.
2254 (grub_script_lexer_init): Return the state instead of setting
2255 global variables.
2256 (grub_script_lexer_ref): Use the newly added argument for state
2257 instead of globals.
2258 (grub_script_lexer_deref): Likewise.
2259 (grub_script_lexer_record_start): Likewise.
2260 (grub_script_lexer_record_stop): Likewise.
2261 (recordchar): Likewise.
2262 (nextchar): Likewise.
2263 (grub_script_yylex2): Likewise.
2264 (grub_script_yylex): Likewise.
2265 (grub_script_yyerror): Likewise.
2266
2267 * normal/parser.y (func_mem): Removed variable.
2268 (menu_entry): Likewise.
2269 (err): Likewise.
2270 (%lex-param): New parser option.
2271 (%parse-param): Likewise.
2272 (script): Always return the AST.
2273 (argument): Pass the state around.
2274 (arguments): Likewise.
2275 (grubcmd): Likewise.
2276 (commands): Likewise.
2277 (function): Likewise.
2278 (menuentry): Likewise.
2279 (if_statement): Likewise.
2280 (if): Likewise.
2281
2282 * normal/script.c (grub_script_memused): Removed variable.
2283 (grub_script_parsed): Likewise.
2284 (grub_script_malloc): Added a state argument. Use that instead of
2285 global variables.
2286 (grub_script_mem_record): Likewise.
2287 (grub_script_mem_record_stop): Likewise.
2288 (grub_script_arg_add): Likewise.
2289 (grub_script_add_arglist): Likewise.
2290 (grub_script_create_cmdline): Likewise.
2291 (grub_script_create_cmdif): Likewise.
2292 (grub_script_create_cmdmenu): Likewise.
2293 (grub_script_add_cmd): Likewise.
2294 (grub_script_parse): Setup the state before calling the parser.
2295
e2a8c904 22962006-04-16 Marco Gerards <marco@gnu.org>
6de2ee99 2297
2298 * normal/command.c (grub_command_init): Remove the title command.
2299
2300 * normal/lexer.c (grub_script_yylex): Renamed from this...
2301 (grub_script_yylex2): ... to this.
2302 (grub_script_yylex): New function. Temporary
2303 introduced to filter some tokens.
2304 (grub_script_yyerror): Print a newline.
2305
2306 * normal/main.c (read_config_file): Output information about the
2307 lines that contain errors. Wait for a key after all lines have
2308 been processed. Don't return an empty menu.
2309
2310 * normal/parser.y (func_mem): Don't initialize.
2311 (menu_entry): Likewise.
2312 (err): New variable.
2313 (script): Don't return anything when an error was encountered.
2314 (ws, returns): Removed rules.
2315 (argument): Disabled concatenated variable support.
2316 (arguments): Remove explicit separators.
2317 (grubcmd): Likewise.
2318 (function): Likewise.
2319 (menuentry): Likewise.
2320 (if): Likewise.
2321 (commands): Likewise. Add error handling.
2322
2323 * normal/script.c (grub_script_create_cmdline): If
2324 `grub_script_parsed' is 0, assume the parser encountered an error.
2325
c9a86192 23262006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
2327
2328 * configure.ac: Add support for EFI. Fix the typo
2329 BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
2330
70f3b243 23312006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
2332
2333 * util/unifont2pff.rb: Removed unnecessary byte ordering. Now
2334 foreign multibyte characters should be shown correctly.
2335
65f201ad 23362006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
2337
2338 * normal/main.c (grub_normal_menu_addentry): Fixed menu size
2339 calculation.
2340 (read_config_file): Made it to close file before returning.
2341
b4b93674 23422006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
2343
2344 * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
2345 include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
2346 video/i386/pc/vbefill.c.
2347
2348 * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
2349 video/i386/pc/vbefill.c.
2350
2351 * include/grub/video.h (grub_video_blit_format): New enum.
2352 (grub_video_mode_info): Added new member blit_format.
2353 (grub_video_get_blit_format): New function prototype.
2354
2355 * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
2356 function prototype.
2357 (grub_video_vbe_map_rgb): Likewise.
2358 (grub_video_vbe_unmap_color): Likewise.
2359
2360 * include/grub/i386/pc/vbeblit.h: New file.
2361
2362 * include/grub/i386/pc/vbefill.h: New file.
2363
2364 * video/video.c (grub_video_get_blit_format): New function.
2365 (grub_video_vbe_get_video_ptr): Re-declared as non-static.
2366 (grub_video_vbe_map_rgb): Likewise.
2367 (grub_video_vbe_unmap_color): Likewise.
2368
2369 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
2370 optimized fills.
2371 (grub_video_vbe_blit_render_target): Changed to use more optimized
2372 blits.
2373 (grub_video_vbe_setup): Added detection for optimized settings.
2374 (grub_video_vbe_create_render_target): Likewise.
2375
2376 * video/i386/pc/vbeblit.c: New file.
2377
2378 * video/i386/pc/vbefill.c: New file.
2379
c2379b9c 23802006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
2381
2382 * font/manager.c (grub_font_get_glyph): Removed font fixup from
2383 here...
2384
2385 * util/unifont2pff.rb: ... and moved it to here. Improved argument
2386 parsing to support both hex and dec ranges. If filename was missing
2387 show usage information.
2388
bd0d7896 23892006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
2390
2391 * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
2392 video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c.
2393
2394 * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
2395 gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod.
2396 (video_mod_SOURCES): Added.
2397 (video_mod_CFLAGS): Likewise.
2398 (video_mod_LDFLAGS): Likewise.
2399 (gfxterm_mod_SOURCES): Likewise.
2400 (gfxterm_mod_CFLAGS): Likewise.
2401 (gfxterm_mod_LDFLAGS): Likewise.
2402 (videotest_mod_SOURCES): Likewise.
2403 (videotest_mod_CFLAGS): Likewise.
2404 (videotest_mod_LDFLAGS): Likewise.
2405 (vesafb_mod_SOURCES): Removed.
2406 (vesafb_mod_CFLAGS): Likewise.
2407 (vesafb_mod_LDFLAGS): Likewise.
2408 (vga_mod_SOURCES): Likewise.
2409 (vga_mod_CFLAGS): Likewise.
2410 (vga_mod_LDFLAGS): Likewise.
2411
2412 * commands/videotest.c: New file.
2413
2414 * font/manager.c (fill_with_default_glyph): Modified to use
2415 grub_font_glyph.
2416 (grub_font_get_glyph): Likewise.
2417 (fontmanager): Renamed from this...
2418 (font_manager): ... to this.
2419
2420 * include/grub/font.h (grub_font_glyph): Added new structure.
2421 (grub_font_get_glyph): Modified to use grub_font_glyph.
2422
2423 * include/grub/misc.h (grub_abs): Added as inline function.
2424
2425 * include/grub/video.h: New file.
2426
2427 * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
2428 (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
2429 (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
2430 (grub_vbe_get_controller_info): Renamed from this...
2431 (grub_vbe_bios_get_controller_info): ... to this.
2432 (grub_vbe_get_mode_info): Renamed from this...
2433 (grub_vbe_bios_get_mode_info): ... to this.
2434 (grub_vbe_set_mode): Renamed from this...
2435 (grub_vbe_bios_set_mode): ... to this.
2436 (grub_vbe_get_mode): Renamed from this...
2437 (grub_vbe_bios_get_mode): ... to this.
2438 (grub_vbe_set_memory_window): Renamed from this...
2439 (grub_vbe_bios_set_memory_window): ... to this.
2440 (grub_vbe_get_memory_window): Renamed from this...
2441 (grub_vbe_bios_get_memory_window): ... to this.
2442 (grub_vbe_set_scanline_length): Renamed from this...
2443 (grub_vbe_set_scanline_length): ... to this.
2444 (grub_vbe_get_scanline_length): Renamed from this...
2445 (grub_vbe_bios_get_scanline_length): ... to this.
2446 (grub_vbe_set_display_start): Renamed from this...
2447 (grub_vbe_bios_set_display_start): ... to this.
2448 (grub_vbe_get_display_start): Renamed from this...
2449 (grub_vbe_bios_get_display_start): ... to this.
2450 (grub_vbe_set_palette_data): Renamed from this...
2451 (grub_vbe_bios_set_palette_data): ... to this.
2452 (grub_vbe_set_pixel_rgb): Removed.
2453 (grub_vbe_set_pixel_index): Likewise.
2454
2455 * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
2456 from this...
2457 (grub_vbe_bios_get_controller_info): ... to this.
2458 (grub_vbe_get_mode_info): Renamed from this...
2459 (grub_vbe_bios_get_mode_info): ... to this.
2460 (grub_vbe_set_mode): Renamed from this...
2461 (grub_vbe_bios_set_mode): ... to this.
2462 (grub_vbe_get_mode): Renamed from this...
2463 (grub_vbe_bios_get_mode): ... to this.
2464 (grub_vbe_set_memory_window): Renamed from this...
2465 (grub_vbe_bios_set_memory_window): ... to this.
2466 (grub_vbe_get_memory_window): Renamed from this...
2467 (grub_vbe_bios_get_memory_window): ... to this.
2468 (grub_vbe_set_scanline_length): Renamed from this...
2469 (grub_vbe_set_scanline_length): ... to this.
2470 (grub_vbe_get_scanline_length): Renamed from this...
2471 (grub_vbe_bios_get_scanline_length): ... to this.
2472 (grub_vbe_set_display_start): Renamed from this...
2473 (grub_vbe_bios_set_display_start): ... to this.
2474 (grub_vbe_get_display_start): Renamed from this...
2475 (grub_vbe_bios_get_display_start): ... to this.
2476 (grub_vbe_set_palette_data): Renamed from this...
2477 (grub_vbe_bios_set_palette_data): ... to this.
2478 (grub_vbe_bios_get_controller_info): Fixed problem with registers
2479 getting corrupted after calling it. Added more pushes and pops.
2480 (grub_vbe_bios_set_mode): Likewise.
2481 (grub_vbe_bios_get_mode): Likewise.
2482 (grub_vbe_bios_get_memory_window): Likewise.
2483 (grub_vbe_bios_set_scanline_length): Likewise.
2484 (grub_vbe_bios_get_scanline_length): Likewise.
2485 (grub_vbe_bios_get_display_start): Likewise.
2486 (grub_vbe_bios_set_palette_data): Likewise.
2487
2488 * normal/cmdline.c (cl_set_pos): Refresh the screen.
2489 (cl_insert): Likewise.
2490 (cl_delete): Likewise.
2491
2492 * term/gfxterm.c: New file.
2493
2494 * term/i386/pc/vesafb.c: Removed file.
2495
2496 * video/video.c: New file.
2497
2498 * video/i386/pc/vbe.c (real2pm): Added new function.
2499 (grub_video_vbe_draw_pixel): Likewise.
2500 (grub_video_vbe_get_video_ptr): Likewise.
2501 (grub_video_vbe_get_pixel): Likewise
2502 (grub_video_vbe_init): Likewise.
2503 (grub_video_vbe_fini): Likewise.
2504 (grub_video_vbe_setup): Likewise.
2505 (grub_video_vbe_get_info): Likewise.
2506 (grub_video_vbe_set_palette): Likewise.
2507 (grub_video_vbe_get_palette): Likewise.
2508 (grub_video_vbe_set_viewport): Likewise.
2509 (grub_video_vbe_get_viewport): Likewise.
2510 (grub_video_vbe_map_color): Likewise.
2511 (grub_video_vbe_map_rgb): Likewise.
2512 (grub_video_vbe_map_rgba): Likewise.
2513 (grub_video_vbe_unmap_color): Likewise.
2514 (grub_video_vbe_fill_rect): Likewise.
2515 (grub_video_vbe_blit_glyph): Likewise.
2516 (grub_video_vbe_blit_bitmap): Likewise.
2517 (grub_video_vbe_blit_render_target): Likewise.
2518 (grub_video_vbe_scroll): Likewise.
2519 (grub_video_vbe_swap_buffers): Likewise.
2520 (grub_video_vbe_create_render_target): Likewise.
2521 (grub_video_vbe_delete_render_target): Likewise.
2522 (grub_video_vbe_set_active_render_target): Likewise.
2523 (grub_vbe_set_pixel_rgb): Remove function.
2524 (grub_vbe_set_pixel_index): Likewise.
2525 (index_color_mode): Remove static variable.
2526 (active_mode): Likewise.
2527 (framebuffer): Likewise.
2528 (bytes_per_scan_line): Likewise.
2529 (grub_video_vbe_adapter): Added new static variable.
2530 (framebuffer): Likewise.
2531 (render_target): Likewise.
2532 (initial_mode): Likewise.
2533 (mode_in_use): Likewise.
2534 (mode_list): Likewise.
2535
5f97350b 25362006-03-10 Marco Gerards <marco@gnu.org>
2537
2538 * configure.ac (AC_INIT): Bumped to 1.93.
2539
2540 * DISTLIST: Added `include/grub/hfs.h'.
2541
a3c5c6f8 25422006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
2543
2544 * boot/i386/pc/boot.S (general_error): Before looping, try INT
2545 18H, which might help the BIOS falling back to next boot media.
2546
6de53d26 25472006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
2548
2549 * util/i386/pc/grub-install.in: Escape a backslash. Reported by
2550 Poe Chen <poe.poechen@gmail.com>.
2551
77c4a393 25522006-01-17 Marco Gerards <marco@gnu.org>
2553
2554 * include/grub/normal.h: Include <grub/script.h>.
2555 (grub_command_list): Removed struct.
2556 (grub_command_list_t): Removed type.
2557 (grub_menu_entry): Remove members `num' and `command_list'. Add
2558 members `commands' and `sourcecode'.
2559 * include/grub/script.h: Add inclusion guards.
2560 (grub_script_cmd_menuentry): New struct.
2561 (grub_script_execute_menuentry): New prototype.
2562 (grub_script_lexer_record_start): Likewise.
2563 (grub_script_lexer_record_stop): Likewise.
2564 * normal/execute.c (grub_script_execute_menuentry): New function.
2565 * normal/lexer.c (record, recording, recordpos, recordlen): New
2566 variables.
2567 (grub_script_lexer_record_start): New function.
2568 (grub_script_lexer_record_stop): Likewise.
2569 (recordchar): Likewise.
2570 (nextchar): Likewise.
2571 (grub_script_yylex): Use `nextchar' to fetch new characters. Use
2572 2048 as the buffer size. Add the tokens `menuentry' and `@'.
2573 * normal/main.c: Include <grub/parser.h> and <grub/script.h>
2574 (current_menu): New variable.
2575 (free_menu): Mainly rewritten.
2576 (grub_normal_menu_addentry): New function.
2577 (read_config_file): Rewritten.
2578 * normal/menu.c (run_menu_entry): Mainly rewritten.
2579 * normal/menu_entry.c (make_screen): Rewritten te code to insert
2580 the menu entry.
2581 (run): Mainly rewritten.
2582 * normal/parser.y (menu_entry): New variable.
2583 (GRUB_PARSER_TOKEN_MENUENTRY): New token.
2584 (menuentry): New rule.
2585 (command): Add `menuentry'.
2586 (if_statement): Allow additional returns before `fi'.
2587 * normal/script.c (grub_script_create_cmdmenu): New function.
2588
144f1f98 25892006-01-03 Marco Gerards <marco@gnu.org>
2590
2591 * INSTALL: GNU Bison is required.
2592 * configure.ac: Rewritten the test to detect Bison.
2593 * Makefile.in (YACC): New variable. Reported by Xun Sun
2594 <xun.sun.cn@gmail.com>.
2595
af4b2d89 25962006-01-03 Marco Gerards <marco@gnu.org>
2597
2598 * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
2599 the HFS+ filesystem to filesystem blocks.
2600 (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
2601 GCC warning is silenced.
2602
15643b71 26032006-01-03 Marco Gerards <marco@gnu.org>
2604
2605 * partmap/apple.c (apple_partition_map_iterate): Convert the data
2606 read from disk from big endian to host byte order.
2607
00905879 26082006-01-03 Hollis Blanchard <hollis@penguinppc.org>
2609
2610 * fs/hfs.c: Include <grub/hfs.h>. Added reference to the official
2611 documentation.
2612 (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
2613 (grub_hfs_mount): Grammar fix in error. Make sure this is not an
2614 embedded HFS+ filesystem.
2615 (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
2616 (grub_hfs_sblock): Move from here...
2617 * include/grub/hfs.h: To here... New file.
2618 * fs/hfsplus.c: Include <grub/hfs.h>. Added reference to the official
2619 documentation.
2620 (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
2621 New macros.
2622 (grub_hfsplus_volheader): Change type of member `magic' to
2623 `grub_uint16_t'.
2624 (grub_hfsplus_data): Add new member `embedded_offset'.
2625 (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
2626 returned block.
2627 (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
2628 Calculate the offset.
2629
8899bc3e 26302005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
2631
2632 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
2633 Removed.
2634 (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
2635
ae8c0277 26362005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
2637
2638 * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
2639 ENV->NAME is NULL after allocating ENV->VALUE.
2640
07084456 26412005-12-25 Marco Gerards <marco@gnu.org>
2642
2643 * kern/env.c (grub_env_set): Rewritten the error handling code.
2644
4750f5f1 26452005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
2646
2647 * geninit.sh: Made more robust, and more portable.
2648
50214199 26492005-12-25 Marco Gerards <marco@gnu.org>
2650
2651 Add support for Apple HFS+ filesystems.
2652
2653 * fs/hfsplus.c: New file.
2654
2655 * DISTLIST: Added `fs/hfsplus.c'.
2656
2657 * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
2658 (hfsplus_mod_SOURCES): New variable.
2659 (hfsplus_mod_CFLAGS): Likewise.
2660 (hfsplus_mod_LDFLAGS): Likewise.
2661 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
2662 (grub_setup_SOURCES): Likewise.
2663 (grub_mkdevicemap_SOURCES): Likewise.
2664 (grub_emu_SOURCES): Likewise.
2665 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2666
2667 * fs/fshelp.c (grub_fshelp_log2blksize): New function.
2668
2669 * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
2670
befaed6c 26712005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
2672
2673 * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
2674 commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
2675 include/grub/parser.h, include/grub/script.h, kern/parser.c,
2676 kern/sparc64/cache.S, normal/execute.c, normal/function.c,
2677 normal/lexer.c, normal/parser.y, normal/script.c, and
2678 partmap/gpt.c.
2679 Removed kern/sparc64/cache.c.
2680
2681 * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
2682 grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
2683 grub_emu_init.c.
2684
2685 * configure.ac (AC_INIT): Bumped to 1.92.
2686
6a124103 26872005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
2688
2689 * kern/err.c (grub_error_push): Added new function to support error
2690 stacks.
2691 (grub_error_pop): Likewise.
2692 (grub_error_stack_items): New local variable to support error stacks.
2693 (grub_error_stack_pos): Likewise.
2694 (grub_error_stack_assert): Likewise.
2695 (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
2696 stack depth.
2697 (grub_print_error): Added support to print errors from error stack.
2698
2699 * include/grub/err.h (grub_error_push): Added function prototype.
2700 (grub_error_pop): Likewise.
2701
be973c1b 27022005-12-09 Hollis Blanchard <hollis@penguinppc.org>
2703
2704 * configure.ac: Accept `powerpc64' as host_cpu.
2705 (amd64): Rename to `biarch32'.
2706
2707 * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
2708 non-cacheline-aligned addresses.
2709
2710 * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
2711 (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
2712 if `size' is non-zero.
2713
b04216ab 27142005-12-03 Marco Gerards <mgerards@xs4all.nl>
2715
2716 * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
2717 and `cd' to make sure the filename is not prefixed with a
2718 directory name.
2719 (pkgdata_MODULES): Add `gpt.mod'.
2720 (gpt_mod_SOURCES): New variable.
2721 (gpt_mod_CFLAGS): Likewise.
2722 (gpt_mod_LDFLAGS): Likewise.
2723
2724 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
2725
2726 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
2727 New macro.
2728
2729 * partmap/gpt.c: New file.
2730
2731 * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
2732 GPT partition map is detected.
2733
41730ed9 27342005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
2735
2736 * commands/i386/pc/play.c: New file.
2737 * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
2738 (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
2739 macros.
2740
95dc3643 27412005-11-27 Marco Gerards <mgerards@xs4all.nl>
2742
2743 * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
2744 ((unused))' to silence gcc warning.
2745
1569ec51 27462005-11-26 Hollis Blanchard <hollis@penguinppc.org>
2747
2748 * configure.ac: Correct `AC_PROG_YACC' test.
2749
9abde152 27502005-11-22 Hollis Blanchard <hollis@penguinppc.org>
2751
2752 * util/powerpc/ieee1275/grub-install.in: Run the mount point
2753 check before installing files.
2754
44b83271 27552005-11-22 Mike Small <smallm@panix.com>
2756
2757 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
2758 number regex so multidigit numbers are recognized correctly.
2759
27602005-11-22 Mike Small <smallm@panix.com>
2761
2762 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
2763 debugging message before attempting to claim memory.
2764 (grub_rescue_cmd_initrd): Add a claim debugging message and try
2765 multiple addresses in case of failure.
2766
9c12956b 27672005-11-22 Hollis Blanchard <hollis@penguinppc.org>
2768
2769 * term/tparm.c (get_space): Remove empty `if' statement.
2770
2771 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
2772
2773 * kern/parser.c (check_varstate): Rename `state' to 's'.
2774
aeaf81d9 27752005-11-22 Hollis Blanchard <hollis@penguinppc.org>
2776
2777 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
2778 variable definitions to the beginning of each function. Sort stack
2779 variables by size.
2780 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
2781 `buf' argument to `char *'.
2782
79bbb63f 27832005-11-22 Hollis Blanchard <hollis@penguinppc.org>
2784
2785 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
2786 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
2787 minux.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
2788 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
2789 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
2790 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
2791 configfile.mod, search.mod, gzio.mod and test.mod.
2792 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
2793 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
2794 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
2795 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
2796 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
2797 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
2798 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
2799 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
2800 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
2801 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
2802 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
2803 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
2804 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
2805 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
2806 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
2807 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
2808 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
2809 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
2810 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
2811 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
2812 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
2813 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
2814 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
2815
2816 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
2817 `grep --include'.
2818 (pkgdata_MODULES): Add test.mod.
2819
233b1628 28202005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
2821
2822 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
2823 appending to variables with "+=".
2824 (PModule): Use full pathname to generate *.lst filenames.
2825
2826 * Makefile.in: Fixed list rules moved from genmk.rb.
2827 (.DELETE_ON_ERROR): New special target.
2828 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
2829
2830 * conf/i386-pc.rmk: Include conf/common.mk.
2831 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
2832 minux.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
2833 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
2834 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
2835 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
2836 configfile.mod, search.mod, gzio.mod and test.mod.
2837 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
2838 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
2839 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
2840 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
2841 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
2842 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
2843 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
2844 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
2845 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
2846 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
2847 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
2848 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
2849 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
2850 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
2851 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
2852 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
2853 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
2854 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
2855 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
2856 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
2857 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
2858 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
2859 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
2860 here...
2861 * conf/common.rmk: ... to here. New file.
2862
2863 * conf/common.mk: New file.
2864
16f820c8 28652005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
2866
2867 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
2868 (grub_script.tab.c): ... here.
2869
2870 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
2871 (grub_script.tab.c): ... here.
2872
2873 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
2874 (grub_script.tab.c): ... here.
2875
2876 * normal/command.c (grub_command_find): Fixed a memory leak of
2877 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
2878
63ba1554 28792005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
2880
2881 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
2882 "@" which marks the start of a comment on ARM.
2883 (VARIABLE): Likewise.
2884
7f67dc13 28852005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
2886
79bbb63f 2887 Add support for Linux/ADFS partition tables.
7f67dc13 2888
2889 * partmap/acorn.c: New file.
2890
2891 * include/grub/acorn_filecore.h: Likewise.
2892
2893 * DISTLIST: Added `partmap/acorn.c' and
2894 `include/grub/acorn_filecore.h'.
2895
2896 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
2897 `partmap/acorn.c'.
2898 (pkgdata_MODULES): Add `acorn.mod'.
2899 (acorn_mod_SOURCES): New variable.
2900 (acorn_mod_CFLAGS): Likewise.
2901
2902 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
2903 `partmap/acorn.c'.
2904 (pkgdata_MODULES): Add `acorn.mod'.
2905 (acorn_mod_SOURCES): New variable.
2906 (acorn_mod_CFLAGS): Likewise.
2907
2908 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
2909 (pkgdata_MODULES): Add `acorn.mod'.
2910 (acorn_mod_SOURCES): New variable.
2911 (acorn_mod_CFLAGS): Likewise.
2912 (acorn_mod_LDFLAGS): Likewise.
2913
2914 * include/types.h (grub_disk_addr_t): New typedef.
2915
6d099807 29162005-11-13 Marco Gerards <mgerards@xs4all.nl>
2917
2918 * geninit.sh: New file.
2919
2920 * geninitheader.sh: Likewise.
2921
2922 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
2923 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
2924 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
2925 * commands/configfile.c (grub_configfile_init)
2926 (grub_configfile_fini): Likewise.
2927 * commands/default.c (grub_default_init, grub_default_fini):
2928 Likewise.
2929 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
2930 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
2931 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
2932 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
2933 Likewise.
2934 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
2935 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
2936 Likewise.
2937 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
2938 * commands/iee1275/halt.c (grub_halt_init, grub_halt_fini):
2939 Likewise.
2940 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
2941 Likewise.
2942 * commands/iee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
2943 Likewise.
2944 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
2945 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
2946 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
2947 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
2948 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
2949 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
2950 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
2951 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
2952 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
2953 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
2954 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
2955 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
2956 * partmap/amiga.c (grub_amiga_partition_map_init)
2957 (grub_amiga_partition_map_fini): Likewise.
2958 * partmap/apple.c (grub_apple_partition_map_init)
2959 (grub_apple_partition_map_fini): Likewise.
2960 * partmap/pc.c (grub_pc_partition_map_init)
2961 (grub_pc_partition_map_fini): Likewise.
2962 * partmap/sun.c (grub_sun_partition_map_init,
2963 grub_sun_partition_map_fini): Likewise.
2964 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
2965 Likewise.
2966
2967 * util/grub-emu.c: Include <grub_modules_init.h>.
2968 (main): Don't initialize and de-initialize any modules directly,
2969 use `grub_init_all' and `grub_fini_all' instead.
2970
2971 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
2972 `grub_vesafb_mod_init'.
2973 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
2974 all users.
2975 * term/i386/pc/vga.c (grub_vga_init): Renamed to
2976 `grub_vga_mod_init'. Updated all users.
2977 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
2978
2979 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
2980 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
2981 rules.
2982
2983 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
2984 Generate a function to initialize the module in utilities.
2985 Updated all callers.
2986 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
2987 initialize the module in utilities. Updated all callers.
2988
9046bcf0 29892005-11-09 Hollis Blanchard <hollis@penguinppc.org>
2990
2991 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
2992 escape sequence and a literal ^L to clear the screen.
2993
2994 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
2995 when returning from Open Firmware.
2996
d13ea639 29972005-11-09 Hollis Blanchard <hollis@penguinppc.org>
2998
2999 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
3000 (grub_ofconsole_height): Likewise.
3001 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
3002 manually insert a '\n'.
3003 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
3004 `grub_ofconsole_height'. Return early if these are already set.
3005
a8fcf206 30062005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
3007
3008 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
3009 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
3010 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
3011 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
3012 and `normal/script.c'.
3013 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
3014 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
3015 (test_mod_SOURCES): New variable.
3016 (test_mod_CFLAGS): Likewise.
3017 (test_mod_LDFLAGS): Likewise.
3018 (pkgdata_MODULES): Add `test.mod'.
3019 (grub_script.tab.c): New rule.
3020 (grub_script.tab.h): Likewise.
3021
b6b32745 30222005-11-07 Marco Gerards <mgerards@xs4all.nl>
3023
3024 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
3025 `commands/test.c', `normal/execute.c', `normal/lexer.c',
3026 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
3027 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
3028 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
3029 (test_mod_SOURCES): New variable.
3030 (test_mod_CFLAGS): Likewise.
3031 (pkgdata_MODULES): Add `test.mod'.
3032 (grub_script.tab.c): New rule.
3033 (grub_script.tab.h): Likewise.
3034
daac212a 30352005-11-06 Marco Gerards <mgerards@xs4all.nl>
3036
3037 Add initial scripting support.
3038
3039 * commands/test.c: New file.
3040 * include/grub/script.h: Likewise.
3041 * normal/execute.c: Likewise.
3042 * normal/function.c: Likewise.
3043 * normal/lexer.c: Likewise.
3044 * normal/parser.y: Likewise.
3045 * normal/script.c: Likewise.
3046
3047 * configure.ac: Add `AC_PROG_YACC' test.
3048
3049 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
3050 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
3051 `normal/function.c' and `normal/script.c'.
3052 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
3053 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
b6b32745 3054 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
3055 variables.
daac212a 3056 (pkgdata_MODULES): Add `test.mod'.
3057 (grub_script.tab.c): New rule.
3058 (grub_script.tab.h): Likewise.
3059
3060 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
3061
3062 * include/grub/normal.h (grub_test_init): New prototype.
3063 (grub_test_fini): Likewise.
3064
3065 * normal/command.c: Include <grub/script.h>.
3066 (grub_command_execute): Rewritten.
3067
3068 * util/grub-emu.c (main): Call `grub_test_init' and
3069 `grub_test_fini'.
3070
77500b2b 30712005-11-03 Hollis Blanchard <hollis@penguinppc.org>
3072
3073 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
3074 to 0.
3075 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
3076 there are no pending characters.
3077
e45deb9e 30782005-11-03 Hollis Blanchard <hollis@penguinppc.org>
3079
3080 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
3081 `grub_strndup' to drop device arguments. Replace unnecessary
3082 `grub_strndup' with `grub_strdup'.
3083
4ce32619 30842005-11-03 Hollis Blanchard <hollis@penguinppc.org>
3085
3086 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
3087 `debug' environment variable has been set.
3088
30892005-11-02 Hollis Blanchard <hollis@penguinppc.org>
3090
3091 * Makefile.in (install-local): Use $(DATA).
3092 (uninstall): Likewise.
3093 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
3094 (sbin_UTILITIES): ... to here.
3095 (sbin_SCRIPTS): New variable.
3096 (grub_install_SOURCES): New variable.
3097 * util/powerpc/ieee1275/grub-install.in: New file.
3098 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
3099 variable.
3100 (add_segments): Call `grub_util_get_path'.
3101
25fe6f03 31022005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
3103
3104 From Timothy Baldwin:
3105 * commands/ls.c (grub_ls_list_files): Close FILE with
3106 grub_file_close.
3107 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
3108
04ccf3ec 31092005-10-24 Marco Gerards <mgerards@xs4all.nl>
3110
3111 * include/grub/parser.h: New file.
3112
3113 * kern/parser.c: Likewise.
3114
3115 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
3116 (grub_setup_SOURCES): Likewise.
3117 (grub_probefs_SOURCES): Likewise.
3118 (grub_emu_SOURCES): Likewise.
3119 (kernel_img_HEADERS): Add `parser.h'.
3120
3121 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
3122 (grub_emu_SOURCES): Add `kern/parser.c'.
3123 (grubof_SOURCES): Likewise.
3124
3125 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
3126 (grubof_SOURCES): Add `kern/parser.c'.
3127
3128 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
3129
3130 * kern/misc.c (grub_split_cmdline): Removed function.
3131
3132 * kern/rescue.c: Include <grub/parser.h>.
3133 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
3134 of `grub_split_cmdline'.
3135
3136 * normal/command.c: Include <grub/parser.h>.
3137 (grub_command_execute): Use `grub_parser_split_cmdline' instead
3138 of `grub_split_cmdline'.
3139
3140 * normal/completion.c: Include <grub/parser.h>.
3141 (cmdline_state): New variable.
3142 (iterate_dir): End the filename with a quote depending on the
3143 command line state.
3144 (get_state): new function.
3145 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
3146 split the arguments and determine the current argument. When the
3147 argument string is not quoted, escape all spaces.
3148
6d8f4b0e 31492005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
3150
3151 * normal/sparc64/setjmp.S: New file.
3152
15cf03ed 31532005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
3154
3155 * include/grub/sparc64/libgcc.h: New file.
3156 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
3157 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
3158 normal/sparc64/setjmp.c.
3159
03e8661a 31602005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
3161
3162 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
3163 * kern/sparc64/cache.S: New file.
3164 * kern/sparc64/cache.c: Removed.
3165 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
3166 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
3167 -mtune=ultrasparc.
3168 (COMMON_LDFLAGS): Add -melf64_sparc.
3169 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
3170 (grubof_SOURCES): Use cache.S instead of cache.c.
3171 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
3172 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
3173 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
3174 commented though.
3175 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
3176 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
3177 (linux_mod_CFLAGS): Commented out.
3178 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
3179 out because module isn't built.
3180 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
3181 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
3182 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
3183 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
3184 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
3185 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
3186 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
3187 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
3188 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
3189 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
3190 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
3191 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
3192 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
3193 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
3194
34eeec8a 31952005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
3196
3197 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
3198 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
3199 longer, because HFS should not be used on PC.
3200
708367a3 32012005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
3202
3203 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
3204 consistently within the loop.
3205
6fa1251a 32062005-10-15 Marco Gerards <mgerards@xs4all.nl>
3207
3208 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
3209 directory can not be read.
3210
4801580b 32112005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
3212
3213 * configure.ac (AC_INIT): Increase the version number to 1.91.
3214
3215 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
3216 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
3217 term/i386/pc/serial.c.
3218
219ad426 32192005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
3220
3221 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
3222 file size must be permitted.
3223
3224 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
3225 between %ah and %al.
3226
688e5699 32272005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
3228
3229 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
3230 grub_uint64_t.
3231 Call the hook with a NUL-terminated filename.
3232 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
3233 grub_cpu_to_be32.
3234
3235 * kern/term.c (cursor_state): New variable.
3236 (grub_term_set_current): Reset the cursor state on a new
3237 terminal.
3238 (grub_setcursor): Rewritten to use CURSOR_STATE.
3239 (grub_getcursor): New function.
3240
3241 * include/grub/term.h (grub_getcursor): New prototype.
3242
3243 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
3244 integers on ARM. Reported by Timothy Baldwin
3245 <T.E.Baldwin99@members.leeds.ac.uk>.
3246
bb34586c 32472005-10-11 Marco Gerards <mgerards@xs4all.nl>
3248
3249 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
3250 allocated.
3251 (grub_sfs_dir): Likewise.
3252
9a909877 32532005-10-09 Marco Gerards <mgerards@xs4all.nl>
3254
3255 Add support for the SFS filesystem.
3256
3257 * fs/sfs.c: New file.
3258
3259 * DISTLIST: Added `fs/sfs.c'.
3260
3261 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
3262 (grub_probefs_SOURCES): Likewise.
3263 (grub_emu_SOURCES): Likewise.
3264 (pkgdata_MODULES): Add `sfs.mod'.
3265 (sfs_mod_SOURCES): New variable.
3266 (sfs_mod_CFLAGS): Likewise.
3267 (sfs_mod_LDFLAGS): Likewise.
3268
3269 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
3270 (pkgdata_MODULES): Add `sfs.mod'.
3271 (sfs_mod_SOURCES): New variable.
3272 (sfs_mod_CFLAGS): Likewise.
3273
3274 * util/grub-emu.c (main): Call `grub_sfs_init' and
3275 `grub_sfs_fini'.
3276
3277 * include/grub/fs.h (grub_sfs_init): New prototype.
3278 (grub_sfs_fini): Likewise.
3279
57bdbde3 32802005-10-07 Marco Gerards <mgerards@xs4all.nl>
3281
3282 Add support for the AFFS filesystem.
3283
3284 * fs/affs.c: New file.
3285
3286 * DISTLIST: Added `fs/affs.c'.
3287
3288 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
3289 (grub_probefs_SOURCES): Likewise.
3290 (grub_emu_SOURCES): Likewise.
3291 (pkgdata_MODULES): Add `affs.mod'.
3292 (affs_mod_SOURCES): New variable.
3293 (affs_mod_CFLAGS): Likewise.
3294 (affs_mod_LDFLAGS): Likewise.
3295
3296 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
3297 (pkgdata_MODULES): Add `affs.mod'.
3298 (affs_mod_SOURCES): New variable.
3299 (affs_mod_CFLAGS): Likewise.
3300
3301 * util/grub-emu.c (main): Call `grub_affs_init' and
3302 `grub_affs_fini'.
3303
3304 * include/grub/fs.h (grub_affs_init): New prototype.
3305 (grub_affs_fini): Likewise.
3306
047b67e0 33072005-10-01 Marco Gerards <mgerards@xs4all.nl>
3308
3309 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
3310
59b8208a 33112005-10-01 Marco Gerards <mgerards@xs4all.nl>
3312
3313 * configure.ac: Accept `x86_64' as host_cpu. In that case add
3314 `-m32' to CFLAGS.
3315
3316 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
3317 linking.
3318
3319 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
3320 (COMMON_LDFLAGS): New variable.
3321 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
3322 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
3323 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
3324 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
3325 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
3326 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
3327 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
3328 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
3329 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
3330 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
3331 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
3332 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
3333 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
3334 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
3335 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
3336 variables.
3337 (normal_mod_ASFLAGS): Add `-m32'.
3338
3339 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
3340 (grub_host_size_t, grub_host_ssize_t): New types.
3341 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
3342 dependant of `GRUB_CPU_SIZEOF_VOID_P' instead on
3343 `GRUB_HOST_SIZEOF_VOID_P'.
3344
3345 * include/grub/kernel.h (struct grub_module_header): Type of
3346 member offset changed to `grub_host_off_t'. Type of member size
3347 changed to `grub_host_size_t'.
3348 (struct grub_module_info): Type of member offset changed to
3349 `grub_host_off_t'. Type of member size changed to
3350 `grub_host_size_t'.
3351
b4093103 33522005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
3353
3354 Make GRUB's kernel compliant to Multiboot Specification.
3355
3356 * kern/i386/pc/startup.S (multiboot_header): New label.
3357 (multiboot_entry): Likewise.
3358 (multiboot_trampoline): Likewise.
3359
3360 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
3361 Increased to 0x4A0.
3362
3363 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
3364 put parentheses after a question mark.
3365 [!GRUB_UTIL] (my_mod): New variable.
3366
3367 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
3368
b2499b29 33692005-09-28 Marco Gerards <mgerards@xs4all.nl>
3370
3371 Adds support for the XFS filesystem. Btrees are not supported
3372 yet.
3373
3374 * fs/xfs.c: New file.
3375
3376 * DISTLIST: Added `fs/xfs.c'.
3377
3378 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
3379 (grub_probefs_SOURCES): Likewise.
3380 (grub_emu_SOURCES): Likewise.
3381 (pkgdata_MODULES): Add `xfs.mod'.
3382 (xfs_mod_SOURCES): New variable.
3383 (xfs_mod_CFLAGS): Likewise.
3384
3385 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
3386 (pkgdata_MODULES): Add `xfs.mod'.
3387 (xfs_mod_SOURCES): New variable.
3388 (xfs_mod_CFLAGS): Likewise.
3389
3390 * util/grub-emu.c (main): Call `grub_xfs_init' and
3391 `grub_xfs_fini'.
3392
3393 * include/grub/fs.h (grub_xfs_init): New prototype.
3394 (grub_xfs_fini): Likewise.
3395
3396
83d37a62 33972005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
3398
3399 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
3400 color modes, allow greater than 16 colors to be configured as
3401 a default palette.
3402
47d2d65e 34032005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
3404
3405 * normal/completion.c (complete_arguments): Add the qualifier
3406 const into OPTIONS.
3407
3408 From Omniflux <omniflux+lists@omniflux.com>:
3409 * include/grub/terminfo.h: New file.
3410 * include/grub/tparm.h: Likewise.
3411 * include/grub/i386/pc/serial.h: Likewise.
3412 * term/terminfo.c: Likewise.
3413 * term/tparm.c: Likewise.
3414 * term/i386/pc/serial.c: Likewise.
3415 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
3416 serial.mod.
3417 (terminfo_mod_SOURCES): New variable.
3418 (terminfo_mod_CFLAGS): Likewise.
3419 (serial_mod_SOURCES): Likewise.
3420 (serial_mod_CFLAGS): Likewise.
3421
48b671ff 34222005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
3423
3424 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
3425 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
3426 and kern/powerpc/ieee1275/cmain.c, respectively.
3427
3428 * boot/powerpc/ieee1275/crt0.S: Moved to ...
3429 * kern/powerpc/ieee1275/crt0.S: ... here.
3430
3431 * boot/powerpc/ieee1275/cmain.c: Moved to ...
3432 * kern/powerpc/ieee1275/cmain.c: ... here.
3433
3434 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
3435 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
3436 instead of boot/powerpc/ieee1275/crt0.S and
3437 boot/powerpc/ieee1275/cmain.c, respectively.
3438
3439 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
3440 sectors. It was not used anyway.
3441
09fc77a7 34422005-08-30 Hollis Blanchard <hollis@penguinppc.org>
3443
3444 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
3445 `unused parameter' warning.
3446
003789c7 34472005-08-30 Hollis Blanchard <hollis@penguinppc.org>
3448
3449 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
3450 function.
3451 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
3452 getcharwidth.
3453
67f44c86 34542005-08-28 Marco Gerards <metgerards@student.han.nl>
3455
3456 * include/grub/normal.h (enum grub_completion_type): Added
3457 `GRUB_COMPLETION_TYPE_ARGUMENT'.
3458
3459 * normal/cmdline.c (print_completion): Handle
3460 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
3461 * normal/menu_entry.c (store_completion): Likewise.
3462
3463 * normal/completion.c (complete_arguments): New function.
3464 (grub_normal_do_completion): Call `complete_arguments' when the
3465 current words start with a dash.
3466
0b5abe02 34672005-08-27 Marco Gerards <metgerards@student.han.nl>
3468
3469 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
3470 `gzio.mod' instead of `io.mod').
3471
d9864ee1 34722005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
3473
3474 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
3475 (DISTDIRS): Added io and video.
3476 Rewrite the search routine to make an output consistently.
3477
3478 * DISTLIST: Added conf/sparc64-ieee1275.mk,
3479 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
3480 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
3481 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
3482 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
3483 util/powerpc/ieee1275/misc.c.
3484
3485 * include/grub/gzio.h: New file.
3486 * io/gzio.c: Likewise.
3487
3488 * kern/file.c (grub_file_close): Call grub_device_close only if
3489 FILE->DEVICE is not NULL.
3490
3491 * include/grub/mm.h [!NULL] (NULL): New macro.
3492
3493 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
3494
3495 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
3496 (pkgdata_MODULES): Added gzio.mod.
3497 (gzio_mod_SOURCES): New variable.
3498 (gzio_mod_CFLAGS): Likewise.
3499
3500 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
3501 (pkgdata_MODULES): Added gzio.mod.
3502 (gzio_mod_SOURCES): New variable.
3503 (gzio_mod_CFLAGS): Likewise.
3504
3505 * commands/cat.c: Include grub/gzio.h.
3506 (grub_cmd_cat): Use grub_gzfile_open instead of
3507 grub_file_open.
3508
3509 * commands/cmp.c: Include grub/gzio.h.
3510 (grub_cmd_cmp): Use grub_gzfile_open instead of
3511 grub_file_open.
3512
3513 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
3514 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
3515 grub_file_open.
3516 (grub_rescue_cmd_module): Likewise.
3517
fa46f4b5 35182005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
3519
3520 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
3521 kern/sparc64/ieee1275/init.c because it contains _start.
3522 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
3523
e9211b5d 35242005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
3525
3526 * configure.ac: Add support for sparc64 host with ieee1275
3527 firmware.
3528 * configure: Generated from configure.ac.
3529 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
3530 instead of int.
3531 (grub_ofdisk_read): Likewise.
3532 (grub_ofdisk_open): Use %p to print pointer values, and cast the
3533 pointers as (void *) to remove a warning.
3534 (grub_ofdisk_close): Likewise.
3535 (grub_ofdisk_read): Likewise.
3536 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
3537 returns, so make it return void to remove a warning.
3538 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
3539 Corresponding prototype change.
3540 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
3541 values, and cast the pointers as (void *) to remove a warning.
3542 (grub_mm_dump): Likewise.
3543 * conf/sparc64-ieee1275.mk: New file.
3544 * conf/sparc64-ieee1275.rmk: Likewise.
3545 * include/grub/sparc64/setjmp.h: Likewise.
3546 * include/grub/sparc64/types.h: Likewise.
3547 * include/grub/sparc64/ieee1275/console.h: Likewise.
3548 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
3549 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
3550 * include/grub/sparc64/ieee1275/time.h: Likewise.
3551 * kern/sparc64/cache.c: Likewise.
3552 * kern/sparc64/dl.c: Likewise.
3553 * kern/sparc64/ieee1275/init.c: Likewise.
3554 * kern/sparc64/ieee1275/openfw.c: Likewise.
3555
385c6a92 35562005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
3557
3558 * util/console.c (grub_ncurses_putchar): If C is greater than
3559 0x7f, set C to a question mark.
3560 (grub_ncurses_getcharwidth): New function.
3561 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
3562 getcharwidth.
3563
3564 * normal/menu.c (print_entry): Made aware of Unicode. First,
3565 convert TITLE to UCS-4, and predict the cursor position by
3566 grub_getcharwidth.
3567
3568 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
3569 const to SRC.
3570 * kern/misc.c (grub_utf16_to_utf8): Likewise.
3571
16ccb8b1 35722005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
3573
3574 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
3575 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
3576 grub_strcat.
3577
3578 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
3579 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
3580 grub_strcpy and grub_strlen. Take it into account that a space
3581 character is inserted as a delimiter.
3582
6a85ce79 35832005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
3584
3585 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
3586 invalid magic in thre error.
3587
3588 * commands/search.c: New file.
3589
3590 * util/grub-emu.c (main): Call grub_search_init and
3591 grub_search_fini.
3592
3593 * kern/rescue.c (grub_rescue_print_disks): Removed.
3594 (grub_rescue_print_devices): New function.
3595 (grub_rescue_cmd_ls): Use grub_device_iterate with
3596 grub_rescue_print_devices instead of grub_disk_dev_iterate with
3597 grub_rescue_print_disks.
3598
3599 * kern/partition.c (grub_partition_iterate): Return the result of
3600 PARTMAP->ITERATE instead of GRUB_ERRNO.
3601
3602 * kern/device.c: Include grub/partition.h.
3603 (grub_device_iterate): New function.
3604
3605 * include/grub/partition.h (grub_partition_iterate): Return int
3606 instead of grub_err_t.
3607
3608 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
3609 prototype.
3610 [GRUB_UTIL] (grub_search_fini): Likewise.
3611
3612 * include/grub/device.h (grub_device_iterate): New prototype.
3613
3614 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
3615 commands/search.c.
3616 (pkgdata_MODULES): Added search.mod.
3617 (search_mod_SOURCES): New variable.
3618 (search_mod_CFLAGS): Likewise.
3619
3620 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
3621 (pkgdata_MODULES): Added search.mod.
3622 (search_mod_SOURCES): New variable.
3623 (search_mod_CFLAGS): Likewise.
3624
3625 * commands/ls.c (grub_ls_list_disks): Renamed to ...
3626 (grub_ls_list_devices): ... this, and use grub_device_iterate.
3627 All callers changed.
3628
3629 * DISTLIST: Added commands/search.c.
3630
ef095434 36312005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
3632
3633 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
3634 conversion.
3635 (grub_getcharwidth): New function.
3636
3637 * kern/misc.c (grub_utf8_to_ucs4): New function.
3638
3639 * include/grub/term.h (struct grub_term): Added a new member
3640 "getcharwidth".
3641 (grub_getcharwidth): New prototype.
3642
3643 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
3644
3645 * term/i386/pc/console.c (map_char): New function. Segregated from
3646 grub_console_putchar.
3647 (grub_console_putchar): Use map_char.
3648 (grub_console_getcharwidth): New function.
3649 (grub_console_term): Specified grub_console_getcharwidth as
3650 getcharwidth.
3651
3652 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
3653 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
3654
3655 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
3656 GRUB_ERRNO.
3657 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
3658 on grub_strtoul completely.
3659 (write_char): Declare local variables in the beginning of the
3660 function.
3661 (grub_vesafb_getcharwidth): New function.
3662 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
3663 getcharwidth.
3664
1f0a95e4 36652005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
3666
3667 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
3668 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
3669 commands/i386/pc/vbetest.c.
3670
3671 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
3672 call grub_vbe_get_controller_info again, because the returned
3673 information is volatile.
3674 (grub_vbe_set_video_mode): Mostly rewritten.
3675 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
3676 grub_vbe_status_t correctly.
3677 (grub_vbe_get_video_mode_info): Likewise.
3678 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
3679 several if statements.
3680
3681 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
3682 * commands/i386/pc/vbeinfo.c: ... this.
3683
3684 * commands/i386/pc/vbe_test.c: Renamed to ...
3685 * commands/i386/pc/vbetest.c: ... this.
3686
3687 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
3688 ...
3689 (grub_cmd_vbeinfo): ... this. Save video modes before
3690 iterating. Skip a video mode, if it is not available, not enough
3691 information is given or it is monochrome. Show the memory
3692 model. Leave the interpretation of MODEVAR to grub_strtoul
3693 completely.
3694 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
3695 (GRUB_MOD_FINI): Likewise.
3696
3697 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
3698 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
3699 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
3700 duplicated grub_env_get. Leave the interpretation of MODEVAR to
3701 grub_strtoul completely.
3702 (real2pm): Removed.
3703 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
3704 (GRUB_MOD_FINI): Likewise.
3705
3706 * normal/misc.c: Include grub/mm.h.
3707
3708 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
3709 vbe_list_modes with vbetest.mod and vbeinfo.mod.
3710 (vbe_list_modes_mod_SOURCES): Removed.
3711 (vbe_list_modes_mod_CFLAGS): Likewise.
3712 (vbe_test_mod_SOURCES): Likewise.
3713 (vbe_test_mod_CFLAGS): Likewise.
3714 (vbeinfo_mod_SOURCES): New variable.
3715 (vbeinfo_mod_CFLAGS): Likewise.
3716 (vbetest_mod_SOURCES): Likewise.
3717 (vbetest_mod_CFLAGS): Likewise.
3718
992ffbbe 37192005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
3720
3721 * normal/misc.c: New file.
3722
3723 * DISTLIST: Added normal/misc.c.
3724
3725 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
3726 DISK to HOOK. Call HOOK with DISK.
3727 * partmap/apple.c (apple_partition_map_iterate): Likewise.
3728 * partmap/pc.c (pc_partition_map_iterate): Likewise.
3729 * partmap/sun.c (sun_partition_map_iterate): Likewise.
3730
3731 * normal/menu_entry.c (struct screen): Added a new member
3732 "completion_shown".
3733 (completion_buffer): New global variable.
3734 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
3735 (store_completion): New function.
3736 (complete): Likewise.
3737 (clear_completions): Likewise.
3738 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
3739 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
3740 a tab, call complete.
3741
3742 * normal/completion.c (disk_dev): Removed.
3743 (print_simple_completion): Likewise.
3744 (print_partition_completion): Likewise.
3745 (print_func): New global variable.
3746 (add_completion): Do not take the arguments WHAT or PRINT any
3747 longer. Added a new argument TYPE. Instead of printing directly,
3748 call PRINT_FUNC if not NULL.
3749 All callers changed.
3750 (complete_device): Use a local variable DEV instead of
3751 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
3752 (grub_normal_do_completion): Take a new argument HOOK. Do not
3753 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
3754 empty string, return NULL instead.
3755 All callers changed.
3756
3757 * normal/cmdline.c (print_completion): New function.
3758
3759 * kern/partition.c (grub_partition_iterate): Add an argument DISK
3760 to HOOK.
3761 All callers changed.
3762
3763 * kern/disk.c (grub_print_partinfo): Removed.
3764
3765 * include/grub/partition.h (struct grub_partition_map): Add a new
3766 argument DISK into HOOK of ITERATE.
3767 (grub_partition_iterate): Add a new argument DISK to HOOK.
3768
3769 * include/grub/normal.h (enum grub_completion_type): New enum.
3770 (grub_completion_type_t): New type.
3771 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
3772 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
3773 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
3774 (GRUB_COMPLETION_TYPE_FILE): Likewise.
3775 (grub_normal_do_completion): Added a new argument HOOK.
3776 (grub_normal_print_device_info): New prototype.
3777
3778 * include/grub/disk.h (grub_print_partinfo): Removed.
3779
3780 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
3781 (normal_mod_SOURCES): Likewise.
3782 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3783 (normal_mod_SOURCES): Likewise.
3784
3785 * commands/ls.c (grub_ls_list_disks): Use
3786 grub_normal_print_device_info instead of grub_print_partinfo. Free
3787 PNAME.
3788 (grub_ls_list_files): Use grub_normal_print_device_info instead of
3789 duplicating the code.
3790
0bd41162 37912005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
3792
3793 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
3794 follow GCS more precisely.
3795 * commands/i386/pc/vbe_test.c: Likewise.
3796 * include/grub/i386/pc/vbe.h: Likewise.
3797 * term/i386/pc/vesafb.c: Likewise.
3798 * video/i386/pc/vbe.c: Likewise.
3799
6323696a 38002005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
3801
3802 * DISTLIST: Added term/i386/pc/vesafb.c
3803 DISTLIST: Added video/i386/pc/vbe.c
3804 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
3805 DISTLIST: Added commands/i386/pc/vbe_test.c.
3806 * commands/i386/pc/vbe_list_modes.c: New file.
3807 * commands/i386/pc/vbe_test.c: Likewise.
3808 * term/i386/pc/vesafb.c: Likewise.
3809 * video/i386/pc/vbe.c: Likewise.
3810 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
3811 (grub_vbe_probe) Added prototype.
3812 (grub_vbe_set_video_mode) Likewise.
3813 (grub_vbe_get_video_mode) Likewise.
3814 (grub_vbe_get_video_mode_info) Likewise.
3815 (grub_vbe_set_pixel_rgb) Likewise.
3816 (grub_vbe_set_pixel_index) Likewise.
3817 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
3818 (pkgdata_MODULES): Added vesafb.mod.
3819 (pkgdata_MODULES): Added vbe_list_modes.mod.
3820 (pkgdata_MODULES): Added vbe_test.mod.
3821 (vbe_mod_SOURCES): Added.
3822 (vbe_mod_CFLAGS): Likewise.
3823 (vesafb_mod_SOURCES): Likewise.
3824 (vesafb_mod_CFLAGS): Likewise.
3825 (vbe_list_modes_mod_SOURCES): Likewise.
3826 (vbe_list_modes_mod_CFLAGS): Likewise.
3827 (vbe_test_mod_SOURCES): Likewise.
3828 (vbe_test_mod_CFLAGS): Likewise.
3829
0a74e62f 38302005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
3831
0a74e62f 3832 * normal/command.c (grub_command_execute): If INTERACTIVE is
3833 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
3834 CMDLINE. Disable the pager if INTERACTIVE is true.
3835 All callers are changed.
3836
3837 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
3838 before reading a config file.
3839 * normal/main.c (read_config_file): Even if a command is not
3840 found, register it if it is within an entry.
3841
3842 * util/grub-emu.c: Include sys/types.h and unistd.h.
3843 (options): Added --hold.
3844 (struct arguments): Added a new member "hold".
3845 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
3846 missing.
3847 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
3848 cleared by a debugger, if it is not zero.
3849
3850 * include/grub/normal.h (grub_command_execute): Add an argument
3851 INTERACTIVE.
3852
e51f85ae 38532005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
3854
3855 * DISTLIST: Added include/grub/i386/pc/vbe.h.
3856
e9c6f39b 38572005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
3858
3859 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
3860 program with another one, because the old one didn't detect a bug
3861 in gcc-3.4. Always use regparm 2, because the new test is still
3862 not enough for gcc-4.0. Someone must investigate a simple test
3863 case which detects a bug in gcc-4.0.
3864
8de3495c 38652005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
3866
3867 * DISTLIST: Added normal/completion.c.
3868
3869 * normal/completion.c: New file.
3870
3871 * term/i386/pc/console.c (grub_console_getwh): New function.
3872 (grub_console_term): Assign grub_console_getwh to getwh.
3873
3874 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
3875 function is defined in normal/completion.c as
3876 grub_normal_do_completion.
3877 (grub_cmdline_get): Use grub_normal_do_completion instead of
3878 grub_tab_complete.
3879
3880 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
3881 returns non-zero, otherwise return 0.
3882 (grub_partition_iterate): First, probe the partition map. Then,
3883 call ITERATE only for this partition map.
3884
3885 * kern/misc.c (grub_strncmp): Rewritten.
3886
3887 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
3888 returns non-zero. Otherwise return 0.
3889
3890 * include/grub/partition.h (grub_partition_map_iterate): Return
3891 int instead of void.
3892
3893 * include/grub/normal.h (grub_normal_do_completion): New prototype.
3894
3895 * include/grub/misc.h (grub_strncmp): Change the type of N to
3896 grub_size_t.
3897
3898 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
3899 of void.
3900
3901 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
3902 unsigned explictly before comparing it with I.
3903
3904 * kern/main.c (grub_env_write_root): Add the attribute unused into
3905 VAR.
3906
3907 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
3908 normal/completion.c.
3909 (normal_mod_SOURCES): Likewise.
3910 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
3911 (normal_mod_SOURCES): Likewise.
3912
3913 * normal/command.c (grub_iterate_commands): If ITERATE returns
3914 non-zero, return one immediately.
3915
e85e144b 39162005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
3917
3918 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
3919 * kern/i386/pc/startup.S: Updated Global Descriptor table's
3920 descriptions.
3921 (grub_vbe_get_controller_info): New function.
3922 (grub_vbe_get_mode_info): Likewise.
3923 (grub_vbe_set_mode): Likewise.
3924 (grub_vbe_get_mode): Likewise.
3925 (grub_vbe_set_memory_window): Likewise.
3926 (grub_vbe_get_memory_window): Likewise.
3927 (grub_vbe_set_scanline_length): Likewise.
3928 (grub_vbe_get_scanline_length): Likewise.
3929 (grub_vbe_set_display_start): Likewise.
3930 (grub_vbe_get_display_start): Likewise.
3931 (grub_vbe_set_palette_data): Likewise.
3932 * include/grub/i386/pc/vbe.h: New file.
3933
c46153d2 39342005-08-08 Hollis Blanchard <hollis@penguinppc.org>
3935
3936 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
3937 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
3938 * DISTLIST: Likewise.
3939 * kern/ieee1275/of.c: Moved to ...
3940 * kern/ieee1275/ieee1275.c: ... here.
3941
0cb90c45 39422005-08-08 Hollis Blanchard <hollis@penguinppc.org>
3943
3944 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
3945 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
3946 Pass 0 as `end' parameter to grub_strtoul().
3947
a19fb360 39482005-08-08 Hollis Blanchard <hollis@penguinppc.org>
3949
3950 * include/grub/powerpc/ieee1275/console.h: Do not include
3951 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
3952 ifdef.
3953 (grub_console_cur_color): Remove i386-specific prototype.
3954 (grub_console_real_putchar): Likewise.
3955 (grub_console_checkkey): Likewise.
3956 (grub_console_getkey): Likewise.
3957 (grub_console_getxy): Likewise.
3958 (grub_console_gotoxy): Likewise.
3959 (grub_console_cls): Likewise.
3960 (grub_console_setcursor): Likewise.
3961 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
3962 Include <grub/machine/console.h>.
3963 * term/ieee1275/ofconsole.c: Likewise.
3964
4ac9bd04 39652005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
3966
3967 * Makefile.in (LIBLZO): New variable.
3968
3969 * configure.ac: Check for LZO version 2.
3970
3971 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
3972 lzo/lzo1x.h instead of lzo1x.h.
3973
3974 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
3975 of -llzo.
3976
3977 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
3978 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
3979
3980 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
3981 copying the data from PARTITION to P.
3982
f4917dfd 39832005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
3984
3985 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
3986 negative, unload the module.
3987
3988 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
3989 map is "pc_partition_map" but not "pc".
3990 (usage): Fix the description. The options are --boot-image and
3991 --core-image but not --boot-file or --core-file.
3992 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
3993 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
3994 DEFAULT_DIRECTORY.
3995
3996 * util/i386/pc/grub-install.in: Do not specify --boot-file or
3997 --core-file. Specify INSTALL_DEVICE as an argument.
3998
3999 * util/console.c: Include config.h.
4000 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
4001 [HAVE_NCURSES_H]: Include ncurses.h.
4002 [HAVE_CURSES_H]: Include curses.h.
4003 [!A_NORMAL] (A_NORMAL): Defined as zero.
4004 [!A_STANDOUT] (A_STANDOUT): Likewise.
4005
4006 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
4007 -lncurses.
4008 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
4009
4010 * configure.ac: Check for curses libraries and headers.
4011
4012 * Makefile.in (LIBCURSES): New variable.
4013
4014 * genmk.rb (Script::rule): Set the executable bits.
4015
4016 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
4017 name of the PC partition map is "pc_partition_map" but not "pc".
4018
0e143073 40192005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
4020
4021 * util/i386/pc/grub-install.in (grub_probefs): New variable.
4022 (modules): Likewise.
4023 (usage): Added descriptions for --modules and --grub-probefs.
4024 Handle --modules and --grub-probefs. Save the arguments in MODULES
4025 and GRUB_PROBEFS, respectively.
4026 Auto-detect a filesystem module against GRUBDIR. If the result is
4027 empty and modules are not specified explicitly, abort the
4028 installation. Add the result to MODULES.
4029
4030 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
4031 disk/powerpc/ieee1275/ofdisk.c,
4032 include/grub/powerpc/ieee1275/init.h and
4033 term/powerpc/ieee1275/ofconsole.c.
4034 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
4035 term/ieee1275/ofconsole.c.
4036
4037 * include/grub/powerpc/ieee1275/console.h: Resurrected.
4038
4039 * COPYING: Upgraded to the latest version. Only the address of the
4040 FSF office has changed.
4041
efd6e6d5 40422005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
4043
4044 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
4045 kern/ieee1275.c with kern/ieee1275/of.c.
4046
4047 * kern/ieee1275.c: Moved to ...
4048 * kern/ieee1275/of.c: ... here.
4049
8ceafda2 40502005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
4051
4052 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
4053 readablity.
4054
4055 * config.guess: Updated to the latest version from gnulib.
4056 * config.sub: Likewise.
4057 * install.sh: Likewise.
4058 * mkinstalldirs: Likewise.
4059
4060 * include/grub/console.h: Removed. This file is arch-specific. Do
4061 not put this in include/grub.
4062
4063 * include/grub/i386/pc/console.h: Resurrected.
4064
4065 * util/console.c: Include grub/machine/console.h instead of
4066 grub/console.h.
4067 * util/grub-emu.c: Likewise.
4068
267f6cd9 40692005-08-04 Marco Gerards <metgerards@student.han.nl>
4070
4071 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
4072 hardcoded value.
4073
4074 From Vincent Pelletier <subdino2004@yahoo.fr>
4075 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
4076 Redefined to use grub_getwh.
4077 (grub_term): New member named getwh.
4078 (grub_getwh): New prototype.
4079 * kern/term.c (grub_getwh): New function.
4080 * term/i386/pc/console.c (grub_console_getwh): New function.
4081 (grub_console_term): New member `getwh'.
4082 * term/i386/pc/vga.c (grub_vga_getwh): New function.
4083 (grub_vga_term): New member `getwh'.
0b5abe02 4084 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
267f6cd9 4085 grub_ssize_t.
4086 (grub_ofconsole_getw): New function.
4087 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
4088 (grub_ofconsole_term): New field named getwh and new initial
4089 value.
4090
3be7266d 40912005-08-03 Hollis Blanchard <hollis@penguinppc.org>
4092
4093 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
4094 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
4095 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
4096 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
4097 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
4098 of <grub/machine/ieee1275.h>.
4099 * commands/ieee1275/reboot.c: Likewise.
4100 * boot/powerpc/ieee1275/ieee1275.c: Move ...
4101 * kern/ieee1275.c: ... to here. All users updated. Change all
4102 parameter structs to use new type `grub_ieee1275_cell_t'.
4103 * term/powerpc/ieee1275/ofconsole.c: Move ...
4104 * term/ieee1275/ofconsole.c: ... to here. All users updated.
4105 * disk/powerpc/ieee1275/ofdisk.c: Move ...
4106 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
4107 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
4108 to return int.
4109 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
4110 Remove unused prototypes. All users updated.
4111 * include/grub/powerpc/ieee1275/console.h: Removed.
4112 * include/grub/powerpc/ieee1275/ieee1275.h: Define
4113 `grub_ieee1275_cell_t'.
4114 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
4115 Cast comparisons with -1 to the correct type.
4116 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
4117 type to match `grub_ieee1275_entry_fn'.
4118
8b5f3938 41192005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
4120
4121 * DISTLIST: Added util/i386/pc/grub-probefs.c.
4122
4123 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
4124 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
4125 partmap/sun.c.
4126 (grub_probefs_SOURCES): New variable.
4127
4128 * util/i386/pc/grub-probefs.c: New file.
4129
4130 * util/i386/pc/grub-setup.c (main): Call
4131 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
4132 grub_hfs_init and grub_jfs_init to initialize the system. Call
4133 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
4134 grub_pc_partition_map_fini to finish the system.
4135
ea409713 41362005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
4137
4138 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
4139 function.
4140 (grub_multiboot_load_elf32): Likewise.
4141 (grub_multiboot_is_elf64): Likewise.
4142 (grub_multiboot_load_elf64): Likewise.
4143 (grub_multiboot_load_elf): Likewise.
4144 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
4145 an ELF32 or ELF64 file.
4146 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
4147
4148 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
4149 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
4150 NULL before calling FS->LABEL.
4151 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
4152 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
4153 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
4154 before calling FS->LABEL.
4155
141a288b 41562005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
4157
4158 * util/i386/pc/grub-install.in (datadir): New variable.
4159 (libdir): Removed.
4160 (pkgdatadir): New variable.
4161 (pkglibdir): Removed.
4162
0d5f8a54 41632005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
4164
4165 * DISTLIST: Added util/i386/pc/grub-install.in.
4166
4167 * util/i386/pc/grub-install.in: New file.
4168
4169 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
4170 (grub_install_SOURCES): Likewise.
4171
4172 * genmk.rb: Added support for scripts.
4173 (Script): New class.
4174 (scripts): New variable.
4175
4176 * Makefile.in (install-local): Install sbin_SCRIPTS by
4177 INSTALL_SCRIPT.
4178 (uninstall): Remove sbin_SCRIPTS.
4179
4180 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
4181 device, try to get a GRUB device by
4182 grub_util_biosdisk_get_grub_dev.
4183 Free DEST_DEV.
4184
4185 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
4186 description for --device-map.
4187
5f968e1e 41882005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
4189
4190 Change the semantics of variable hooks. They now return strings
4191 instead of error values.
4192
4193 * util/i386/pc/grub-setup.c: Include grub/env.h.
4194 (setup): Use grub_device_set_root instead of grub_env_set.
4195
4196 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
4197 grub_env_get instead of grub_device_set_root and
4198 grub_device_get_root, respectively.
4199
4200 * kern/main.c (grub_env_write_root): New function.
4201 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
4202 grub_env_set instead of grub_device_set_root.
4203
4204 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
4205 many variables.
4206 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
4207 rather than calling ENV->WRITE_HOOK afterwards.
4208 (grub_env_get): Return the result of ENV->READ_HOOK rather than
4209 passing a pointer of a pointer.
4210 (grub_register_variable_hook): Change the types of "read_hook" and
4211 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
4212 respectively.
4213 Allocate the default empty string on the heap, because this string
4214 may be freed later.
4215
4216 * kern/device.c: Include grub/env.h.
4217 (grub_device_set_root): Removed.
4218 (grub_device_get_root): Likewise.
4219 (grub_device_open): Use grub_env_get instead of
4220 grub_device_get_root.
4221
4222 * include/grub/env.h (grub_env_read_hook_t): New type.
4223 (grub_env_write_hook_t): Likewise.
4224 (grub_env_var): Change the types of "read_hook" and "write_hook"
4225 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
4226 (grub_register_variable_hook): Likewise.
4227
4228 * include/grub/device.h (grub_device_set_root): Removed.
4229 (grub_device_set_root): Likewise.
4230
4231 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
4232 make sure that DIRNAME terminates with '/', so that
4233 grub_fat_find_dir will fail if PATH is not a directory.
4234
4235 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
4236 from DIRNAME.
4237 Use the qualifier auto for print_files and print_files_long.
4238 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
4239 as a regular file.
4240 Put a newline only if there is no error.
4241 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
4242 used.
4243
896f0afd 42442005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
4245
4246 * kern/partition.c (grub_partition_probe): Initialize PART to
4247 NULL. Otherwise, when no partition map is registered, this returns
4248 a garbage.
4249
b28b81b2 42502005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
4251
4252 * partmap/apple.c (apple_partition_map_iterate): Check if POS
4253 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
4254 valid.
4255
5f3607e0 42562005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
4257
4258 * commands/ls.c (grub_ls_list_disks): Print the filesystem
4259 information on each device, if it does not have partitions. Print
4260 "Device" instead of "Disk", because this function is not specific
4261 to disk devices.
4262
4263 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
4264 static to ensure that it is put on the memory rather than a
4265 register.
4266
502c87e8 42672005-07-17 Yoshinori Okuji <okuji@enbug.org>
4268
4269 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
4270 (grub_cat_init): Likewise.
4271 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
4272 (options): Likewise.
4273 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
4274 (grub_configfile_init): Likewise.
4275 * font/manager.c (GRUB_MOD_INIT): Likewise.
4276 * commands/help.c (GRUB_MOD_INIT): Likewise.
4277 (grub_help_init): Likewise.
4278 * normal/command.c (grub_command_init): Likewise.
4279 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
4280 * disk/loopback.c (grub_loop_init): Likewise.
4281 (GRUB_MOD_INIT): Likewise.
4282 * commands/ls.c (grub_ls_init): Likewise.
4283 (GRUB_MOD_INIT): Likewise.
4284 (options): Likewise.
4285 * commands/boot.c (grub_boot_init): Likewise.
4286 (GRUB_MOD_INIT): Likewise.
4287 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
4288 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
4289 (GRUB_MOD_INIT): Likewise.
4290 * commands/cmp.c (grub_cmp_init): Likewise.
4291 (GRUB_MOD_INIT): Likewise.
4292
4293 * normal/arg.c: Use <> instead of "" to include header files.
4294 (SHORT_ARG_HELP): New macro.
4295 (SHORT_ARG_USAGE): Likewise.
4296 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
4297 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
4298 descriptions.
4299 (find_short): Check if C is 'h' or 'u' explicitly.
4300 (grub_arg_show_help): Use space characters instead of tabs. Treat
4301 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
4302 are shown with --help and --usage only if they are not used for
4303 the command itself.
4304 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
4305 'h' and 'u'.
4306
4307 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
4308 const into "longarg". Change the type of "shortarg" to int.
4309
f806d18e 43102005-07-17 Yoshinori Okuji <okuji@enbug.org>
4311
4312 * boot/i386/pc/boot.S (boot_drive_check): New label.
4313
4314 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
4315 macro.
4316
4317 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
4318 which do not pass a boot drive correctly. Copied from GRUB Legacy.
4319
e293232b 43202005-07-17 Yoshinori Okuji <okuji@enbug.org>
4321
4322 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
4323 When turning off Gate A20, skip the check and return immediately,
4324 because this is not fatal usually.
4325
ebedfd00 43262005-07-17 Yoshinori Okuji <okuji@enbug.org>
4327
4328 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
4329 be 0x7C00 instead of 0x8000.
4330
4331 * boot/i386/pc/pxeboot.S: Rewritten.
4332
4333 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
4334 EXT_C.
4335 (gate_a20_check_state): Read a byte from 0x108000. Invert the
4336 result.
4337
654fc59f 43382005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
4339
4340 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
4341 robustness. This routine now supports a BIOS call and System
4342 Control Port A to modify the gate A20.
4343
4344 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
4345 Increased to 0x440.
4346
09f9923f 43472005-07-12 Hollis Blanchard <hollis@penguinppc.org>
4348
4349 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
4350 device path and resulting ihandle.
4351 (grub_ofdisk_close): dprintf the ihandle being closed.
4352 (grub_ofdisk_read): dprintf function parameters.
4353 * kern/mm.c (grub_mm_init_region): Likewise.
4354 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
4355 (grub_linux_boot): dprintf the Linux entry point, initrd address and
4356 size, and boot arguments.
4357 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
4358 before loading into memory.
4359 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
4360 before loading into memory.
4361
7ef504d8 43622005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
4363
4364 * kern/mm.c: Added much documentation.
4365 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
4366 8, set to 5 instead of 8.
4367
e0f050c2 43682005-07-10 Yoshinori Okuji <okuji@enbug.org>
4369
4370 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
4371
4372 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
4373 (grub_mkdevicemap_SOURCES): New variable.
4374
4375 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
4376 lib/device.c of GRUB Legacy.
4377
7224189a 43782005-07-10 Yoshinori Okuji <okuji@enbug.org>
4379
4380 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
4381 instead of PATH is NULL.
4382
68c864eb 43832005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
4384
4385 * commands/cmp.c (BUFFER_SIZE): New macro.
4386 (grub_cmd_cmp): Close the right file at the right time. Compare
4387 only data just read. Don't report files of different size as
4388 identical. Dynamically allocate buffers. Move variable
4389 declarations at the beginning of function.
4390
e6f3e614 43912005-07-09 Yoshinori Okuji <okuji@enbug.org>
4392
4393 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
4394 reverse.
4395
f8f1559a 43962004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
4397
4398 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
4399 when backspace is pressed at beginning of line.
4400
39c9d41d 44012005-07-03 Yoshinori Okuji <okuji@enbug.org>
4402
4403 * DISTLIST: Added genfslist.sh.
4404
4405 * normal/main.c (fs_module_list): New variable.
4406 (autoload_fs_module): New function.
4407 (read_fs_list): Likewise.
4408 (grub_normal_execute): Call read_fs_list.
4409
4410 * kern/fs.c (grub_fs_autoload_hook): New variable.
4411 (grub_fs_probe): Added support for auto-loading.
4412
4413 * include/grub/normal.h (struct grub_fs_module_list): New struct.
4414 (grub_fs_module_list_t): New type.
4415
4416 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
4417 (grub_fs_autoload_hook): New prototype.
4418
4419 * genfslist.sh: New file.
4420
4421 * genmk.rb: Added a rule to generate a filesystem list.
4422
121c1d83 44232005-06-30 Marco Gerards <metgerards@student.han.nl>
4424
4425 * configure.ac: Fix the test for cross-compiling.
4426
4427 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
4428 define GRUB_UTIL anymore.
4429
4430 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
4431 so this function works on other systems than just big endian.
4432 (load_modules): Likewise.
4433 (add_segments): Likewise.
4434
e75d76e1 44352005-06-23 Hollis Blanchard <hollis@penguinppc.org>
4436
4437 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
4438 contains `l' modifier, get a long from va_arg().
4439
50b5a0a7 44402005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
4441
4442 * kern/mm.c (grub_free): If the next free block which is being
4443 merged is the first free block, set the first block to the block
4444 being freed.
4445 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
4446
89371b20 44472005-05-08 Hollis Blanchard <hollis@penguinppc.org>
4448
4449 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
4450 `grub_ieee1275_chosen'.
4451
168d6e58 44522005-05-08 Hollis Blanchard <hollis@penguinppc.org>
4453
4454 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
4455 (grub_ieee1275_chosen): New variable.
4456 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
4457 `chosen'.
4458 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
4459 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
4460 Rename first argument to `phandle' for consistency.
4461 (grub_ieee1275_get_property_length): Likewise.
4462 (grub_ieee1275_next_property): Likewise. Change type of first argument
4463 to grub_ieee1275_phandle_t.
4464 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
4465 Move export next to declaration.
4466 (grub_ieee1275_chosen): New variable.
4467 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
4468 Correct cosmetic typo.
4469 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
4470 `grub_ieee1275_chosen'.
4471 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
4472 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
4473 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
4474 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
4475 `grub_ieee1275_chosen'.
4476
ca5baa3f 44772005-05-10 Hollis Blanchard <hollis@penguinppc.org>
4478
4479 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
4480 /chosen/bootargs.
4481 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
4482 /chosen/bootargs as "variable=value" pairs.
4483
708b345f 44842005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
4485
4486 * include/grub/misc.h (grub_dprintf): New macro.
4487 (grub_real_dprintf): New prototype.
4488 (grub_strword): Likewise.
4489 (grub_iswordseparator): Likewise.
4490 * kern/misc.c (grub_real_dprintf): New function.
4491 (grub_strword): Likewise.
4492 (grub_iswordseparator): Likewise.
4493
f4c5e67c 44942005-04-30 Hollis Blanchard <hollis@penguinppc.org>
4495
4496 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
4497 (roundup): Remove macro.
4498 (grub_ieee1275_flags): Make static.
4499 (grub_ieee1275_realmode): Remove.
4500 (grub_ieee1275_test_flag): New function.
4501 (grub_ieee1275_set_flag): Likewise.
4502 (find_options): Rename to `grub_ieee1275_find_options'; update
4503 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
4504 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
4505 (cmain): New prototype.
4506 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
4507 `grub_ieee1275_flags' directly.
4508 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
4509 machine/biosdisk.h.
4510 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
4511 Don't include grub/machine/init.h.
4512 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
4513 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
4514 Remove prototype.
4515 (grub_ieee1275_realmode): Likewise.
4516 (grub_ieee1275_flag): New enum.
4517 (grub_ieee1275_test_flag): New prototype.
4518 (grub_ieee1275_set_flag): New prototype.
4519 * include/grub/powerpc/ieee1275/init.h: Remove file.
4520 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
4521 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
4522 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
4523 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
4524 comment.
4525 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
4526 `grub_ieee1275_test_flag'.
4527 (grub_ieee1275_encode_devname): Likewise.
4528
ed16607e 45292005-04-21 Hollis Blanchard <hollis@penguinppc.org>
4530
4531 * include/grub/powerpc/ieee1275/ieee1275.h
4532 (grub_ieee1275_encode_devname): New prototype.
4533 (grub_ieee1275_get_filename): Likewise.
4534 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
4535 function.
4536 (grub_set_prefix): Likewise.
4537 (grub_machine_init): Call grub_set_prefix.
4538 * kern/powerpc/ieee1275/openfw.c: Fix typos.
4539 (grub_parse_type): New enum.
4540 (grub_ieee1275_get_devargs): New function.
4541 (grub_ieee1275_get_devname): Likewise.
4542 (grub_ieee1275_parse_args): Likewise.
4543 (grub_ieee1275_get_filename): Likewise.
4544 (grub_ieee1275_encode_devname): Likewise.
4545
be369920 45462005-03-30 Marco Gerards <metgerards@student.han.nl>
4547
4548 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
4549 `grub_loader_unset'.
4550
a5ce3a4a 45512005-03-26 Hollis Blanchard <hollis@penguinppc.org>
4552
4553 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
4554 instead of grub_ieee1275_interpret.
4555 (grub_halt_init): New function.
4556 (grub_halt_fini): Likewise.
4557 (GRUB_MOD_INIT): Correct message grammar.
4558 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
4559 instead of grub_ieee1275_interpret.
4560 (grub_reboot_init): New function.
4561 (grub_reboot_fini): Likewise.
4562 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
4563 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
4564 util/i386/pc/misc.c with commands/ieee1275/halt.c,
4565 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
4566 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
4567 function.
4568 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
4569 Add prototype.
4570 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
4571 prototype.
4572 (grub_halt): Likewise.
4573 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
4574 (cmain): Remove __attribute__((unused)).
4575 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
4576 (grub_heap_len): Likewise.
4577 (grub_machine_fini): New function.
4578 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
4579 (grub_halt): Likewise.
4580 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
4581 function.
4582 * util/powerpc/ieee1275/misc.c: New file.
4583
0058f771 45842005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
4585
4586 * DISTLIST: New file.
4587 * gendistlist.sh: Likewise.
4588
4589 * Makefile.in (COMMON_DISTFILES): Removed.
4590 (BOOT_DISTFILES): Likewise.
4591 (CONF_DISTFILES): Likewise.
4592 (DISK_DISTFILES): Likewise.
4593 (FS_DISTFILES): Likewise.
4594 (INCLUDE_DISTFILES): Likewise.
4595 (KERN_DISTFILES): Likewise.
4596 (LOADER_DISTFILES): Likewise.
4597 (TERM_DISTFILES): Likewise.
4598 (UTIL_DISTFILES): Likewise.
4599 (DISTFILES): Likewise.
4600 (uninstall): Uninstall files in $(pkgdata_DATA).
4601 (DISTLIST): New target.
4602 (distdir): Use the contents of the file DISTLIST to get a list of
4603 distributed files.
4604
46b3b8a5 46052005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
4606
4607 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
4608 descriptor. This is ported from GRUB Legacy.
4609
4610 * gencmdlist.sh: Added an extra semicolon to make it work with
4611 old sed versions. Reported by Robert Bihlmeyer
4612 <robbe@orcus.priv.at>.
4613
5822ff87 46142005-03-08 Yoshinori Okuji <okuji@enbug.org>
4615
4616 Automatic loading of commands is supported.
4617
4618 * normal/main.c (read_command_list): New function.
4619 (grub_normal_execute): Call read_command_list.
4620
4621 * normal/command.c (grub_register_command): Return zero or CMD.
4622 Allocate CMD->NAME from the heap.
4623 Initialize CMD->MODULE_NAME to zero.
4624 Find the same name as well. If the same command is found and it is
4625 a dummy command, overwrite members. If it is not a dummy command,
4626 return zero.
4627 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
4628 (grub_command_find): If a dummy command is found, load a module
4629 and retry to find a command only once.
4630
4631 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
4632 make sure that each command is loaded.
4633
4634 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
4635 macro.
4636 (struct grub_command): Remove const from the member `name'.
4637 Add a new member `module_name'.
4638 (grub_register_command): Return grub_command_t.
4639
4640 * commands/help.c (grub_cmd_help): Call grub_command_find to make
4641 sure that each command is loaded.
4642
4643 * genmk.rb (PModule::rule): Specify a module name without the
4644 suffix ".mod" to gencmdlist.sh.
4645
7b1f4b57 46462005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
4647
4648 * gencmdlist.sh: New file.
4649
4650 * genmk.rb (PModule::rule): Generate a rule for a command list.
4651 Clean command.lst.
4652 Generate command.lst from $(COMMANDFILES).
4653
4654 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
4655 (DATA): Added $(pkgdata_DATA).
4656 (install-local): Install files in $(pkgdata_DATA).
4657
062aaf39 46582005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
4659
4660 * term/i386/pc/vga.c (debug_command): Removed.
4661 (GRUB_MOD_INIT): Do not register the command "debug".
4662
4663 From Hollis Blanchard:
4664 * commands/configfile.c: New file.
4665 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
4666 commands/configfile.c.
4667 (pkgdata_MODULES): Added configfile.mod.
4668 (configfile_mod_SOURCES): New variable.
4669 (configfile_mod_CFLAGS): Likewise.
4670 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
4671 commands/configfile.c.
4672 (pkgdata_MODULES): Added configfile.mod.
4673 (configfile_mod_SOURCES): New variable.
4674 (configfile_mod_CFLAGS): Likewise.
4675 * util/grub-emu.c (main): Call grub_configfile_init and
4676 grub_configfile_fini.
4677 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
4678 prototype.
4679 [GRUB_UTIL] (grub_configfile_fini): Likewise.
4680
cee01aa6 46812005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
4682
4683 * normal/arg.c (grub_arg_show_help): Do not show the bug report
4684 address.
4685
4686 * commands/help.c (grub_cmd_help): Do not print newlines after
4687 the last command in print_command_help.
4688
93f3a1d8 46892005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
4690
4691 * commands/default.h: New file.
4692 * commands/timeout.h: Likewise.
4693 * normal/context.c: Likewise.
4694
4695 * util/misc.c: Do not include sys/times.h.
4696 Include sys/time.h and grub/machine/time.h.
4697 (grub_get_rtc): Rewritten with gettimeofday.
4698
4699 * util/grub-emu.c (main): Call grub_default_init and
4700 grub_timeout_init before grub_normal_init, and call
4701 grub_timeout_fini and grub_default_fini after grub_main.
4702
4703 * util/console.c (grub_ncurses_checkkey): Return the read
4704 character or -1.
4705
4706 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
4707 timeouts.
4708
4709 * normal/main.c (read_config_file): Push MENU. If this fails,
4710 print an error and wait for a user input.
4711 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
4712 If a menu is empty or an error occurs, pop MENU.
4713 (grub_normal_execute): Pop and free MENU after grub_menu_run
4714 returns.
4715
4716 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
4717
4718 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
4719 include time.h.
4720 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
4721 without GRUB_UTIL.
4722 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
4723 time.h.
4724 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
4725 without GRUB_UTIL.
4726
4727 * include/grub/normal.h (struct grub_menu_list): New struct.
4728 (grub_menu_list_t): New type.
4729 (struct grub_context): New struct.
4730 (grub_context_t): New type.
4731 (grub_register_command): Got rid of EXPORT_FUNC.
4732 (grub_unregister_command): Likewise.
4733 (grub_context_get): New prototype.
4734 (grub_context_get_current_menu): Likewise.
4735 (grub_context_push_menu): Likewise.
4736 (grub_context_pop_menu): Likewise.
4737 [GRUB_UTIL] (grub_default_init): Likewise.
4738 [GRUB_UTIL] (grub_default_fini): Likewise.
4739 [GRUB_UTIL] (grub_timeout_init): Likewise.
4740 [GRUB_UTIL] (grub_timeout_fini): Likewise.
4741
4742 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
4743 commands/timeout.c and normal/context.c.
4744 (pkgdata_MODULES): Added default.mod and timeout.mod.
4745 (normal_mod_SOURCES): Added normal/context.c.
4746 (default_mod_SOURCES): New variable.
4747 (default_mod_CFLAGS): Likewise.
4748 (timeout_mod_SOURCES): Likewise.
4749 (timeout_mod_CFLAGS): Likewise.
4750 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
4751 conf/i386-pc.rmk.
4752 (pkgdata_MODULES): Added default.mod and timeout.mod.
4753 (normal_mod_SOURCES): Added normal/context.c.
4754 (default_mod_SOURCES): New variable.
4755 (default_mod_CFLAGS): Likewise.
4756 (timeout_mod_SOURCES): Likewise.
4757 (timeout_mod_CFLAGS): Likewise.
4758
4759 * Makefile.in (all-local): Added $(MKFILES).
4760
4ed2e1dd 47612005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
4762
4763 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
4764 (grub_emu_SOURCES): Likewise.
4765 (pkgdata_MODULES): Add `sun.mod'.
4766 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
4767 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
4768 `partmap/sun.c'.
4769 (pkgdata_MODULES): Add `sun.mod'.
4770 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
4771 * include/grub/partition.h (grub_sun_partition_map_init): New
4772 prototype.
4773 (grub_sun_partition_map_fini): Likewise.
4774 * partmap/sun.c: New file.
4775 * util/grub-emu.c (main): Initialize and de-initialize the sun
4776 partitionmap support.
4777
4d4e372e 47782005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
4779
4780 This implements an Emacs-like menu entry editor.
4781
4782 * normal/menu_entry.c: New file.
4783
4784 * util/console.c (grub_ncurses_putchar): Translate some Unicode
4785 characters to ASCII.
4786 (saved_char): New variable.
4787 (grub_ncurses_checkkey): Rewritten completely.
4788 (grub_ncurses_getkey): Likewise.
4789 (grub_ncurses_init): Call raw instead of cbreak.
4790
4791 * normal/menu.c (print_entry): Do not put a space.
4792 (init_page): Renamed to ...
4793 (grub_menu_init_page): ... this. All callers changed.
4794 (edit_menu_entry): Removed.
4795 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
4796
4797 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
4798
4799 * kern/misc.c (grub_vprintf): Call grub_refresh.
4800
4801 * normal/menu.c (DISP_LEFT): Renamed to ...
4802 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
4803 * normal/menu.c (DISP_UP): Renamed to ...
4804 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
4805 * normal/menu.c (DISP_RIGHT): Renamed to ...
4806 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
4807 * normal/menu.c (DISP_DOWN): Renamed to ...
4808 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
4809 * normal/menu.c (DISP_HLINE): Renamed to ...
4810 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
4811 * normal/menu.c (DISP_VLINE): Renamed to ...
4812 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
4813 * normal/menu.c (DISP_UL): Renamed to ...
4814 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
4815 * normal/menu.c (DISP_UR): Renamed to ...
4816 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
4817 * normal/menu.c (DISP_LL): Renamed to ...
4818 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
4819 * normal/menu.c (DISP_LR): Renamed to ...
4820 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
4821 * normal/menu.c (TERM_WIDTH): Renamed to ...
4822 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
4823 * normal/menu.c (TERM_HEIGHT): Renamed to ...
4824 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
4825 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
4826 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
4827 * normal/menu.c (TERM_MARGIN): Renamed to ...
4828 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
4829 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
4830 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
4831 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
4832 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
4833 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
4834 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
4835 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
4836 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
4837 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
4838 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
4839 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
4840 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
4841 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
4842 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
4843 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
4844 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
4845 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
4846 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
4847 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
4848 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
4849 All callers changed.
4850
4851 * include/grub/normal.h: New prototype.
4852
4853 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
4854 normal/menu_entry.c.
4855 (normal_mod_SOURCES): Likewise.
4856 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
4857 (normal_mod_SOURCES): Likewise.
4858
e6b92c8a 48592005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
4860
4861 * include/grub/normal.h (grub_halt_init): New prototype.
4862 (grub_halt_fini): Likewise.
4863 (grub_reboot_init): Likewise.
4864 (grub_reboot_fini): Likewise.
4865
4866 * util/grub-emu.c: Include signal.h.
4867 (main_env): New global variable.
4868 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
4869 catch C-c.
4870 (grub_machine_fini): New function.
4871 (main): Call grub_halt_init and grub_reboot_init before
4872 grub_main, and grub_reboot_fini and grub_halt_fini after it.
4873 Call setjmp with MAIN_ENV to go back afterwards.
4874 Call grub_machine_fini right before return.
4875
4876 * include/grub/util/misc.h: Include setjmp.h.
4877 (main_env): New prototype.
4878
4879 * include/grub/kernel.h (grub_machine_fini): New prototype.
4880 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
4881 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
4882
4883 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
4884 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
4885 * term/i386/pc/console.c (grub_console_fini): Likewise.
4886
4887 * util/i386/pc/misc.c: New file.
4888
4889 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
4890 util/i386/pc/misc.c, commands/i386/pc/halt.c and
4891 commands/i386/pc/reboot.c.
4892
c642636f 48932005-02-14 Guillem Jover <guillem@hadrons.org>
4894
4895 * include/grub/dl.h (grub_dl_check_header): New prototype.
4896 (grub_arch_dl_check_header): Change return type to grub_err_t,
4897 remove size parameter and export function. Update all callers.
4898 * kern/dl.c (grub_dl_check_header): New function.
4899 (grub_dl_load_core): Use `grub_dl_check_header' instead of
4900 `grub_arch_dl_check_header'. Check ELF type. Check if sections
4901 are inside the core.
4902 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
4903 independent ELF header checks.
4904 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
4905 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
4906 `grub_dl_check_header' instead of explicit checks. Check for the
4907 ELF type.
4908 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
4909 `grub_dl_check_header' instead of explicit checks. Remove arch
4910 specific ELF header checks.
4911
e6b92c8a 4912 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
4913 argument SIZE.
4914
5eabe94b 49152005-02-13 Hollis Blanchard <hollis@penguinppc.org>
4916
4917 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
4918 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
4919
1b14a681 49202005-02-12 Hollis Blanchard <hollis@penguinppc.org>
4921
4922 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
4923 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
4924 (part_map_iterate): Clear `grub_errno' and return 0 if
4925 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
4926 * partmap/amiga.c (amiga_partition_map_iterate): Return
4927 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
4928 * partmap/apple.c (apple_partition_map_iterate): Likewise.
4929
aca108aa 49302005-02-01 Guillem Jover <guillem@hadrons.org>
4931
4932 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
4933 help info.
4934
c9f9c556 49352005-01-31 Marco Gerards <metgerards@student.han.nl>
4936
4937 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
4938 Removed prototype.
4939 (grub_rescue_cmd_linux): New prototype.
4940 (grub_rescue_cmd_initrd): Likewise.
4941 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
4942 `bi_rec'.
4943 (grub_linux_release_mem): Release the memory for the initrd.
4944 (grub_load_linux): Renamed from this...
4945 (grub_rescue_cmd_linux): ...To this. Changed all callers.
4946 Changed `entry' not to be static. Loop over memory regions to
4947 find another one when the default fails.
4948 (grub_rescue_cmd_initrd): New function.
4949 (grub_linux_init): Remove function.
4950 (grub_linux_fini): Likewise.
4951 (GRUB_MOD_INIT): Register `initrd'.
4952 (GRUB_MOD_FINI): Unregister `initrd'.
4953 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
4954 Function removed.
4955 (grub_linux_normal_fini): Likewise.
4956 (GRUB_MOD_INIT): Register `initrd'.
4957 (GRUB_MOD_FINI): Unregister `initrd'.
4958
990cf3aa 49592005-01-31 Marco Gerards <metgerards@student.han.nl>
4960
4961 * commands/help.c: New file.
4962 * normal/arg.c (show_help): Renamed to...
4963 (grub_arg_show_help): ... this.
4964 * commands/i386/pc/halt.c: New file.
4965 * commands/i386/pc/reboot.c: Likewise.
4966 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
4967 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
4968 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
4969 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
4970 variables.
4971 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
4972 `commands/help.c'.
4973 (pkgdata_MODULES): Add `help.mod'.
4974 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
4975 * grub/i386/pc/init.h (grub_reboot): New prototype.
4976 (grub_halt): Likewise.
4977 * include/grub/normal.h (grub_arg_show_help): New prototype.
4978 (grub_help_init): Likewise.
4979 (grub_help_fini): Likewise.
4980 * util/grub-emu.c (main): Initialize and deinitialize the help
4981 command.
4982
4983 * normal/cmdline.c (grub_cmdline_get): Doc fix.
4984
4985 * normal/command.c (grub_command_init): Fixed the description of
4986 the `set' and `unset' commands.
4987
49882005-01-31 Marco Gerards <metgerards@student.han.nl>
0f79cdc1 4989
4990 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
4991 function.
4992 * commands/ieee1275/halt.c: New file.
4993 * commands/ieee1275/reboot.c: Likewise.
4994 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
4995 `__attribute__ ((unused))'. Some GCS related fixed.
4996 (grub_suspend_init) [GRUB_UTIL]: Function removed.
4997 (grub_suspend_fini): Likewise.
4998 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
4999 and `halt.mod'.
5000 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
5001 (halt_mod_CFLAGS): New variables.
5002 * include/grub/powerpc/ieee1275/ieee1275.h
5003 (grub_ieee1275_interpret): New prototype.
5004
1ab09cc7 50052005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
5006
5007 * include/grub/misc.h (memmove): New prototype.
5008 (memcpy): Likewise.
5009
8b8cbdb2 50102005-01-22 Hollis Blanchard <hollis@penguinppc.org>
5011
5012 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
5013 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
5014
e3741a27 50152005-01-22 Marco Gerards <metgerards@student.han.nl>
5016
5017 * kern/misc.c (grub_strndup): Function rewritten.
5018
776bd780 50192005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
5020
5021 * normal/menu.c (TERM_WIDTH): Macro redefined.
5022 (TERM_TOP_BORDER_Y): Likewise.
5023 (draw_border): Replaced while-loop by a for-loop. Make the number
5024 of lines consistent with the number of lines displayed in
5025 print_entries. Added a margin below the rectangle.
5026 (print_entry): Make the entry fit in the rectangle.
5027 (print_entries): Display the scroll arrows next to the right
5028 border.
5029
78026bce 50302005-01-21 Marco Gerards <metgerards@student.han.nl>
5031
5032 * fs/minix.c (grub_minix_find_file): Reserve more space for
5033 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
5034 `grub_strncpy' to copy `path' into it.
5035
67bbaf0f 50362005-01-21 Marco Gerards <metgerards@student.han.nl>
5037
5038 Add the loopback device, a device via which files can be accessed
5039 as devices.
5040
5041 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
5042 (pkgdata_MODULES): Add loopback.mod.
5043 (loopback_mod_SOURCES): New variable.
5044 (loopback_mod_CFLAGS): Likewise.
5045 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
5046 `disk/loopback.c'.
5047 (pkgdata_MODULES): Add loopback.mod.
5048 (loopback_mod_SOURCES): New variable.
5049 (loopback_mod_CFLAGS): Likewise.
5050 * disk/loopback.c: new file.
5051 * include/grub/normal.h (grub_loop_init): New prototype.
5052 (grub_loop_fini): New prototype.
5053 * util/grub-emu.c (main): Initialize and de-initialize loopback
5054 support.
5055 * include/grub/disk.h (grub_disk_dev_id): Add
5056 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
5057
6f1c18bd 50582005-01-20 Hollis Blanchard <hollis@penguinppc.org>
5059
5060 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
5061 function.
5062 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
5063 (suspend_mod_SOURCES): New variable.
5064 (suspend_mod_CFLAGS): Likewise.
5065 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
5066 New prototype.
5067 * commands/ieee1275/suspend.c: New file.
5068
b38551da 50692005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
5070
5071 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
5072 ((unused))' to `__attribute__ ((used))'.
5073 (GRUB_MOD_FINI): Likewise.
5074 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
5075 * genmk.rb (PModule): Assign space to common symbols when linking
5076 modules.
5077
777aff39 50782005-01-20 Marco Gerards <metgerards@student.han.nl>
5079
5080 * include/grub/mm.h (grub_mm_init_region): Change the type of the
5081 `unsigned' arguments to `grub_size_t'.
5082 (grub_malloc): Likewise.
5083 (grub_realloc): Likewise.
5084 (grub_memalign): Likewise.
5085 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
5086 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
5087 * util/misc.c (grub_malloc): Likewise.
5088 (grub_realloc): Likewise.
5089 * kern/mm.c (get_header_from_pointer): Change the casts to
5090 `unsigned' into a cast to `grub_size_t'.
5091
5092 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
5093 point to `currnode' when `currnode' is changed.
5094
5095 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
5096 Schottelius <nico-linux@schottelius.org>.
5097
d0ff18e1 50982005-01-09 Hollis Blanchard <hollis@penguinppc.org>
5099
5100 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
5101 (note_path): Remove variable.
5102 (GRUB_IEEE1275_NOTE_NAME): New macro.
5103 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
5104 (grub_ieee1275_note_hdr): New structure.
5105 (grub_ieee1275_note_desc): Likewise.
5106 (grub_ieee1275_note): Likewise.
5107 (load_note): Remove `dir' argument. All callers updated. Remove
5108 `note_img' and `path'. Do not load a file from `note_path'.
5109 Initialize a struct grub_ieee1275_note and write that to `out'.
5110 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
5111
4ca7004c 51122005-01-05 Marco Gerards <metgerards@student.han.nl>
5113
5114 * util/misc.c (grub_util_read_image): Revert last change. It
5115 called `grub_util_read_at', which seeks from the beginning of the
5116 file.
5117
0b412211 51182005-01-04 Hollis Blanchard <hollis@penguinppc.org>
5119
5120 * TODO: Add note about endianness in grub-mkimage.
5121 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
5122 section.
5123 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
5124 (grub_mkimage_SOURCES): New target.
5125 * include/grub/kernel.h (grub_start_addr): Remove variable.
5126 (grub_end_addr): Likewise.
5127 (grub_total_module_size): Likewise.
5128 (grub_kernel_image_size): Likewise.
5129 (GRUB_MODULE_MAGIC): New constant.
5130 (grub_module_info): New structure.
5131 (grub_arch_modules_addr): New prototype.
5132 (grub_get_end_addr): Remove prototype.
5133 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
5134 * include/grub/powerpc/ieee1275/kernel.h: New file.
5135 * include/grub/util/misc.h (grub_util_get_fp_size): New
5136 prototype.
5137 (grub_util_read_at): Likewise.
5138 (grub_util_write_image_at): Likewise.
5139 * kern/main.c (grub_get_end_addr): Remove function.
5140 (grub_load_modules): Call grub_arch_modules_addr instead of using
5141 grub_end_addr. Look for a grub_module_info struct in memory. Use
5142 the grub_module_info fields instead of calling grub_get_end_addr
5143 as loop conditions. Move grub_add_unused_region code here.
5144 (grub_add_unused_region): Remove function.
5145 * kern/i386/pc/init.c: Include grub/cache.h.
5146 (grub_machine_init): Remove call to grub_get_end_addr. Remove
5147 one call to add_mem_region.
5148 (grub_arch_modules_addr): New function.
5149 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
5150 (grub_total_module_size): Likewise.
5151 Include grub/machine/kernel.h.
5152 (grub_arch_modules_addr): New function.
5153 * util/grub-emu.c (grub_end_addr): Remove variable.
5154 (grub_total_module_size): Likewise.
5155 (grub_arch_modules_addr): New function.
5156 * util/misc.c: Include unistd.h.
5157 (grub_util_get_fp_size): New function.
5158 (grub_util_read_at): Likewise.
5159 (grub_util_write_image_at): Likewise.
5160 (grub_util_read_image): Call grub_util_read_at.
5161 (grub_util_write_image): Call grub_util_write_image_at.
5162 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
5163 additional memory in kernel_img for a struct grub_module_info.
5164 Fill in that grub_module_info.
5165 * util/powerpc/ieee1275/grub-mkimage.c: New file.
5166
458786f8 51672005-01-03 Hollis Blanchard <hollis@penguinppc.org>
5168
5169 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
5170 New function.
5171 * include/grub/powerpc/ieee1275/ieee1275.h
5172 (grub_ieee1275_milliseconds): New prototype.
5173 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
5174 Change to 1000.
5175 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
5176 grub_ieee1275_milliseconds.
5177
ac507d1b 51782005-01-03 Hollis Blanchard <hollis@penguinppc.org>
5179
5180 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
5181 variable.
5182 (find_options): New function.
5183 (cmain): Call find_options.
5184 * include/grub/powerpc/ieee1275/ieee1275.h
5185 (grub_ieee1275_realmode): New extern variable.
5186 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
5187 grub_map if grub_ieee1275_realmode is false.
5188
6b8fd1c4 51892004-12-29 Marco Gerards <metgerards@student.han.nl>
5190
5191 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
5192 lines are inserted and make it work like readline. Reported by
5193 Vincent Pelletier <subdino2004@yahoo.fr>.
5194
8514a1e0 51952004-12-28 Marco Gerards <metgerards@student.han.nl>
5196
5197 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
5198
5199 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
5200 `kern/powerpc/cache.S'.
5201
924b6140 52022004-12-27 Marco Gerards <metgerards@student.han.nl>
5203
5204 * genmk.rb: Handle the `Program' class in the main loop. Written
5205 by Johan Rydberg <jrydberg@gnu.org>.
5206 (Program): New class.
5207 (programs): New variable.
5208 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
5209 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
5210 instead of "grub/kernel.h". Include <grub/machine/init.h>.
5211 (help_arch): Function removed.
5212 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
5213 `powerpc/libgcc.h' and `loader.h'.
5214 (pkgdata_PROGRAMS): New variable.
5215 (sbin_UTILITIES): Variable removed.
5216 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
5217 (grubof_SOURCES): Variable re-defined so it only includes the
5218 core functionality.
5219 (grubof_CFLAGS): Remove `-DGRUBOF'.
5220 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
5221 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
5222 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
5223 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
5224 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
5225 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
5226 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
5227 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
5228 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
5229 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
5230 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
5231 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
5232 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
5233 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
5234 (pc_mod_CFLAGS): New variables.
5235 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
5236 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
5237 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
5238 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
5239 Moved from here...
5240 * include/grub/i386/pc/init.h (grub_os_area_addr)
5241 (rub_os_area_size): ... to here.
5242 * include/grub/powerpc/ieee1275/ieee1275.h
5243 (grub_ieee1275_entry_fn): Export symbol.
5244 * include/grub/powerpc/ieee1275/init.h: New file.
5245 * include/grub/powerpc/libgcc.h: Likewise.
5246 * include/grub/cache.h: Likewise.
5247 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
5248 <hollis@penguinppc.org>.
5249 * kern/dl.c: Include <grub/cache.h>.
5250 (grub_dl_flush_cache): New function.
5251 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
5252 for this module.
5253 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
5254 (grub_console_init): Removed prototypes.
5255 (grub_machine_init): Don't initialize the modules anymore.
5256 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
5257 static.
5258 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
5259 Macro undef removed.
5260 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
5261 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
5262 relocation `R_PPC_REL32'. Return an error when the relocation is
5263 unknown.
5264 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
5265 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
5266 * util/misc.c (grub_arch_sync_caches): Likewise.
5267
e4b47e0c 52682004-12-19 Marco Gerards <metgerards@student.han.nl>
5269
5270 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
5271 `symlist.c', add `grubof_symlist.c'.
5272 (symlist.c): Variable removed.
5273 (grubof_HEADERS): Variable added.
5274 (grubof_symlist.c): New target.
5275 (kernel_syms.lst): Use `grubof_HEADERS' instead of
5276 `kernel_img_HEADERS'.
5277 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
5278 * kern/powerpc/dl.c: New file.
5279 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
5280 Function removed.
5281 (grub_arch_dl_relocate_symbols): Likewise.
5282 (grub_register_exported_symbols): Likewise.
5283
4ceb3636 52842004-12-13 Marco Gerards <metgerards@student.han.nl>
5285
5286 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
5287 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
5288 to fail instead. Reported by Vincent Pelletier
5289 <subdino2004@yahoo.fr>.
5290
5291 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
5292 it is not allocated. Reported by Vincent Pelletier
5293 <subdino2004@yahoo.fr>.
5294
5295 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
5296 output so the output looks better.
5297
3f1578fe 52982004-12-04 Marco Gerards <metgerards@student.han.nl>
5299
5300 Modulize the partition map support and add support for the amiga
5301 partition map.
5302
5303 * commands/ls.c: Include <grub/partition.h> instead of
5304 <grub/machine/partition.h>.
5305 * kern/disk.c: Likewise.
5306 * kern/rescue.c: Likewise.
5307 * loader/i386/pc/chainloader.c: Likewise.
5308 * normal/cmdline.c: Likewise.
5309 * kern/powerpc/ieee1275/init.c: Likewise.
5310 (grub_machine_init): Call `grub_pc_partition_map_init',
5311 `grub_amiga_partition_map_init' and
5312 `grub_apple_partition_map_init'.
5313 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
5314 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
5315 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
5316 `partition.h' and `pc_partition.h'.
5317 (grub_setup_SOURCES): Remove
5318 `disk/i386/pc/partition.c'. Add `kern/partition.c',
5319 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
5320 (grub_emu_SOURCES): Likewise.
5321 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
5322 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
5323 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
5324 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
5325 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
5326 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
5327 (grubof_SOURCES): Likewise.
5328 * disk/i386/pc/partition.c: File removed.
5329 * disk/powerpc/ieee1275/partition.c: Likewise.
5330 * include/grub/powerpc/ieee1275/partition.h: Likewise.
5331 * include/grub/i386/pc/partition.h: Likewise.
5332 * kern/partition.c: New file.
5333 * partmap/amiga.c: Likewise.
5334 * partmap/apple.c: Likewise.
5335 * partmap/pc.c: Likewise.
5336 * include/grub/partition.h: Likewise..
5337 * include/grub/pc_partition.h: Likewise.
5338 * util/grub-emu.c: Include <grub/partition.h> instead of
5339 <grub/machine/partition.h>.
5340 (main): Call `grub_pc_partition_map_init',
5341 `grub_amiga_partition_map_init' and
5342 `grub_apple_partition_map_init' and deinitialize afterwards.
5343 * util/i386/pc/biosdisk.c: Include `#include
5344 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
5345 `<grub/machine/partition.h>'.
5346 * util/i386/pc/grub-setup.c: Likewise.
5347 * util/i386/pc/biosdisk.c: Likewise.
5348 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
5349 partition information in case of a PC partition.
5350 * util/i386/pc/grub-setup.c: Include `#include
5351 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
5352 `<grub/machine/partition.h>'.
5353 (setup): Only access the PC specific partition information in case
5354 of a PC partition.
5355
0ef4ced9 53562004-11-17 Hollis Blanchard <hollis@penguinppc.org>
5357
5358 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
5359 (grub_longjmp): Likewise.
5360 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
5361 20.
5362 * normal/powerpc/setjmp.S: New file.
5363 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
5364 `normal/powerpc/setjmp.S'.
5365 (grubof_CFLAGS): Add `-DGRUBOF'.
5366 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
5367 [GRUB_UTIL && !GRUBOF].
5368
19950e29 53692004-11-16 Marco Gerards <metgerards@student.han.nl>
5370
5371 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
5372 property named `name'. Correctly handle the error returned by
5373 `grub_ieee1275_finddevice' if a device can not be opened.
5374
a2fea427 53752004-11-02 Hollis Blanchard <hollis@penguinppc.org>
5376
5377 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
5378 `actual' for negativity.
5379 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
5380 kern/fshelp.c.
5381
41ea0ea3 53822004-11-01 Marco Gerards <metgerards@student.han.nl>
5383
5384 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
5385 (PAGE_OFFSET): New macro.
5386 (CRTC_ADDR_PORT): Likewise.
5387 (CRTC_DATA_PORT): Likewise.
5388 (START_ADDR_HIGH_REGISTER): Likewise.
5389 (START_ADDR_LOW_REGISTER): Likewise.
5390 (GRAPHICS_ADDR_PORT): Likewise.
5391 (GRAPHICS_DATA_PORT): Likewise.
5392 (READ_MAP_REGISTER): Likewise.
5393 (INPUT_STATUS1_REGISTER): Likewise.
5394 (INPUT_STATUS1_VERTR_BIT): Likewise.
5395 (page): New variable.
5396 (wait_vretrace): New function.
5397 (set_read_map): Likewise.
5398 (set_start_address): Likewise.
5399 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
5400 the right page.
5401 (check_vga_mem): Take the page into account.
5402 (write_char): Likewise.
5403 (write_cursor): Likewise.
5404 (scroll_up): Likewise. Copy the page to the page that is not
5405 shown and switch between both pages.
5406 (grub_vga_putchar): Fix off by one error.
5407 (grub_vga_cls): Wait for the vertical retrace. Take the page into
5408 account.
5409
ad0bd20b 54102004-11-01 Marco Gerards <metgerards@student.han.nl>
5411
5412 Add support for iso9660 (including rockridge).
5413
5414 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
5415 (iso9660_mod_SOURCES): New variable.
5416 (iso9660_mod_CFLAGS): Likewise.
5417 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
5418 * include/grub/fs.h (grub_iso9660_init): New prototype.
5419 * util/grub-emu.c (main): Call `grub_iso9660_init'.
5420 * fs/iso9660.c: New file.
5421
5422 * include/grub/misc.h (grub_strncat): New prototype.
5423 * kern/misc.c (grub_strncat): New function.
5424
5425 * fs/hfs.c (grub_hfs_mount): Translate the error
5426 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
5427 * fs/jfs.c (grub_jfs_mount): Likewise.
5428 * fs/ufs.c (grub_ufs_mount): Likewise.
5429
a5477a59 54302004-10-28 Hollis Blanchard <hollis@penguinppc.org>
5431
5432 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
5433 which initialized BAT registers.
5434 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
5435 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
5436 Move from here...
5437 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
5438 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
5439 ... to here.
5440 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
5441 (grub_mapclaim): Likewise.
5442 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
5443 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
5444 hand.
5445
9304c1f8 54462004-10-19 Hollis Blanchard <hollis@penguinppc.org>
5447
5448 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
5449 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
5450 -ffreestanding and -msoft-float.
5451
86f4ae25 54522004-10-15 Hollis Blanchard <hollis@penguinppc.org>
5453
5454 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
5455 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
5456 set in grub_ieee1275_flags.
5457
38912228 54582004-10-14 Hollis Blanchard <hollis@penguinppc.org>
5459
5460 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
5461 prototype.
5462 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
5463 grub_console_init first.
5464 Change the memory range used for grub_ieee1275_claim and
5465 grub_mm_init_region.
5466 Print an error message if the claim fails.
5467 Include <grub/misc.h>.
5468
d1923dc8 54692004-10-13 Hollis Blanchard <hollis@penguinppc.org>
5470
5471 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
5472 Call grub_children_iterate for device nodes of type `scsi',
5473 `ide', or `ata'.
5474 (grub_ofdisk_open): Remove manual device alias resolution.
5475 Fix memory leak when device cannot be opened.
5476 * include/grub/powerpc/ieee1275/ieee1275.h
5477 (grub_children_iterate): New prototype.
5478 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
5479 New function.
5480 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
5481 Return -1 if args.size was -1.
5482
4512e4f3 54832004-10-11 Hollis Blanchard <hollis@penguinppc.org>
5484
5485 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
5486 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
5487 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
5488 Open Firmware's memory for it; claim memory from _start to _end.
5489 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
5490 (_end): New extern.
5491 (_start): Zero BSS from __bss_start to _end.
5492 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
5493 New extern.
5494 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
5495
4d61feb0 54962004-10-11 Hollis Blanchard <hollis@penguinppc.org>
5497
ad0bd20b 5498 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
5499 -1 if args.base was -1.
4d61feb0 5500
026fa2f9 55012004-10-08 Hollis Blanchard <hollis@penguinppc.org>
5502
5503 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
5504 escape sequence instead of a literal ^L. Also call
5505 grub_ofconsole_gotoxy.
5506
9f2220ef 55072004-10-03 Hollis Blanchard <hollis@penguinppc.org>
5508
5509 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
5510 void * arguments to grub_addr_t. All callers updated. Also make
5511 the `result' argument optional.
5512 (grub_ieee1275_release): change void * arguments to grub_addr_t.
5513 All callers updated.
5514
8a572cd7 55152004-09-22 Hollis Blanchard <hollis@penguinppc.org>
5516
5517 * commands/ls.c (grub_ls_list_files): Use the string following the
5518 initial ')', if present, as the filesystem path.
5519 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
5520
5521 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
5522
18aa81f2 55232004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
5524
5525 Make the source code of the menu interface more readable.
5526
5527 * normal/menu.c: Include grub/mm.h.
5528 (TERM_WIDTH): New macro.
5529 (TERM_HEIGHT): Likewise.
5530 (TERM_INFO_HEIGHT): Likewise.
5531 (TERM_MARGIN): Likewise.
5532 (TERM_SCROLL_WIDTH): Likewise.
5533 (TERM_TOP_BORDER_Y): Likewise.
5534 (TERM_LEFT_BORDER_X): Likewise.
5535 (TERM_BORDER_WIDTH): Likewise.
5536 (TERM_MESSAGE_HEIGHT): Likewise.
5537 (TERM_BORDER_HEIGHT): Likewise.
5538 (TERM_NUM_ENTRIES): Likewise.
5539 (TERM_FIRST_ENTRY_Y): Likewise.
5540 (TERM_ENTRY_WIDTH): Likewise.
5541 (TERM_CURSOR_X): Likewise.
5542 (draw_border): Use macros instead of magic numbers.
5543 (print_entry): Likewise.
5544 (print_entries): Likewise.
5545 (run_menu): Likewise. Also, handle the key 'e'.
5546 (run_menu_entry): Ignore empty command lines.
5547 (print_message): Added a new argument EDIT. If EDIT is true,
5548 print a different message.
5549 (init_page): Likewise.
5550 (edit_menu_entry): New function. Not implemented yet.
5551
b47efe30 55522004-09-17 Marco Gerards <metgerards@student.han.nl>
5553
5554 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
5555 can be loaded from normal mode.
5556
5557 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
5558 `multiboot.mod'.
5559 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
5560 (multiboot_mod_CFLAGS): New variables.
5561 * loader/i386/pc/linux_normal.c: New file.
5562 * loader/i386/pc/multiboot_normal.c: Likewise.
5563
5564 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
5565 attribute `unused'.
5566
5567 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
5568 `fdiro' to read the mode information from instead of `diro'.
5569
5570 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
5571 looking up a symlink.
5572
5573 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
5574 macro.
5575 * normal/command.c (grub_command_execute): Don't parse the
5576 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
5577 flags of the command.
5578
5579 * normal/menu.c (grub_menu_run): Fix typo.
5580
da75ac71 55812004-09-14 Hollis Blanchard <hollis@penguinppc.org>
5582
5583 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
5584
5585 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
5586 `y + 1' instead of `y - 1'.
5587
5588 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
5589
062b24c2 55902004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
5591
5592 From Hollis Blanchard <hollis@penguinppc.org>:
5593 * kern/misc.c (memmove): New alias for grub_memmove.
5594 (memcmp): New alias for grub_memcmp.
5595 (memset): New alias for grub_memset.
5596 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
5597 Change "int handle" to "grub_ieee1275_phandle_t handle".
5598 * include/grub/powerpc/ieee1275/ieee1275.h
5599 (grub_ieee1275_get_property): Likewise.
5600
8ddad845 56012004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
5602
5603 Added normal mode command `chainloader' as module chain.mod, which
5604 depends on normal.mod and _chain.mod.
5605
5606 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
5607 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
5608 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
5609 Deleted prototype.
5610 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
5611 but arguments parsing moved to ...
5612 (grub_chainloader_cmd): ... here. New function.
5613 * include/grub/i386/pc/chainloader.h: New file.
5614 * loader/i386/pc/chainloader_normal.c: Likewise.
5615
2c1f4ce3 56162004-09-11 Marco Gerards <metgerards@student.han.nl>
5617
5618 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
5619 (grub_mkimage_LDFLAGS): Likewise.
5620 (grub_emu_SOURCES): Likewise.
5621 (kernel_img_HEADERS): Added fshelp.h.
5622 * fs/ext2.c: Include <grub/fshelp.h>.
5623 (FILETYPE_REG): New macro.
5624 (FILETYPE_INO_REG): Likewise.
5625 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
5626 Changed all users.
5627 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
5628 all users.
5629 (grub_fshelp_node): New struct.
5630 (grub_ext2_data): Added member `diropen'. Changed member `inode'
5631 to a pointer.
5632 (grub_ext2_get_file_block): Removed function.
5633 (grub_ext2_read_block): New function.
5634 (grub_ext2_read_file): Replaced parameter `data' by `node'.
5635 This function was written.
5636 (grub_ext2_mount): Read the root inode. Create a diropen struct.
5637 (grub_ext2_find_file): Removed function.
5638 (grub_ext2_read_symlink): New function.
5639 (grub_ext2_iterate_dir): Likewise.
5640 (grub_ext2_open): Rewritten.
5641 (grub_ext2_dir): Rewritten.
5642 * include/grub/fshelp.h: New file.
5643 * fs/fshelp.c: Likewise.
5644
3c52136a 56452004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
5646
5647 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
5648 (print_message): Add a missing newline.
5649 (run_menu): Added timeout support.
5650 (run_menu_entry): New local function.
5651 (grub_menu_run): Added support for booting.
5652
5653 * kern/loader.c (grub_loader_is_loaded): New function.
5654
5655 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
5656 (grub_get_rtc): Exported.
5657
5658 * include/grub/i386/pc/time.h: Include grub/symbol.h.
5659 (grub_get_rtc): Exported.
5660
5661 * include/grub/normal.h (struct grub_command_list): Remove
5662 constant from the member `command'.
5663
5664 * include/grub/loader.h (grub_loader_is_loaded): Declared.
5665
5666 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
5667
5668 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
5669
aa033560 56702004-08-28 Marco Gerards <metgerards@student.han.nl>
5671
5672 Add support for the JFS filesystem.
5673
5674 * fs/jfs.c: New file.
5675 * include/grub/fs.h (grub_jfs_init): New prototype.
5676 (grub_jfs_fini): New prototype.
5677 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
5678 (grub_emu_SOURCES): Likewise.
5679 (pkgdata_MODULES): Add jfs.mod.
5680 (jfs_mod_SOURCES): New variable.
5681 (jfs_mod_CFLAGS): Likewise.
5682 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
5683 (grubof_SOURCES): Likewise.
5684 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
5685
5686 * fs/fat.c (grub_fat_find_dir): Convert the filename little
5687 endian to the host endian.
5688 (grub_fat_utf16_to_utf8): Move function from there...
5689 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
5690 the endianess of the source string anymore.
5691 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
5692
94bc45af 56932004-08-24 Marco Gerards <metgerards@student.han.nl>
5694
5695 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
5696 (grub_boot_fini) [GRUB_UTIL]: Likewise.
5697 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
5698 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
5699
5700 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
5701 (grub_hfs_iterate_dir): Make the function static. Add prototypes
5702 for `node_found' and `it_dir'.
5703 (grub_hfs_dir): Add prototype for `dir_hook'.
5704
5705 * fs/minix.c (grub_minix_get_file_block): Add prototype for
5706 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
5707 and `indir32' to silence a gcc warning.
5708
5709 * include/grub/fs.h (grub_hfs_init): New prototype.
5710 (grub_hfs_fini): Likewise.
5711
5712
97543f08 57132004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
5714
5715 Each disk device has its own id now. This is useful to make use
5716 of multiple disk devices.
5717
5718 * include/grub/disk.h (grub_disk_dev_id): New enum.
5719 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
5720 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
5721
5722 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
5723 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
5724
5725 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
5726 GRUB_DISK_DEVICE_OFDISK_ID as an id.
5727
5728 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
5729 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
5730
5731 * include/grub/disk.h (struct grub_disk_dev): Added a new member
5732 "id" which is used by the cache manager.
5733
5734 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
5735 of just "GRUB".
5736
64372eb4 57372004-08-18 Marco Gerards <metgerards@student.han.nl>
5738
5739 * fs/hfs.c: New file.
5740 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
5741 (grub_emu_SOURCES): Likewise.
5742 (pkgdata_MODULES): Add hfs.mod.
5743 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
5744 (grubof_SOURCES): Likewise.
5745 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
5746
5747 * include/grub/misc.h (grub_strncasecmp): Add prototype.
5748 * kern/misc.c (grub_strncasecmp): Add function.
5749
cc61b58f 57502004-08-14 Marco Gerards <metgerards@student.han.nl>
5751
5752 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
5753 with parentheses.
5754
5755 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
5756 (grub_ext2_dir): In case the directory entry type is unknown, read
5757 it from the inode.
5758
0ef123f6 57592004-08-02 Peter Bruin <pjbruin@dds.nl>
5760
5761 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
5762 grub_load_linux instead of grub_rescue_cmd_linux as second
5763 argument of grub_rescue_register_command.
5764
5765 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
5766
a447c5df 57672004-07-27 Marco Gerards <metgerards@student.han.nl>
5768
5769 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
5770 function.
5771 * commands/boot.c: Remove the check for `GRUB_UTIL'.
5772 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
5773 `loader/powerpc/ieee1275/linux.c',
5774 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
5775 * include/grub/powerpc/ieee1275/ieee1275.h
5776 (grub_ieee1275_release): New prototype.
5777 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
5778 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
5779 normal, boot, linux and linux_normal.
5780 * loader/powerpc/ieee1275/linux.c: New file.
5781 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
5782
5a9e3546 57832004-07-12 Marco Gerards <metgerards@student.han.nl>
5784
5785 * normal/arg.c (grub_arg_parse): Correct error handling after
5786 reallocating the argumentlist (check if `argl' is not null instead
5787 of checking if `args' is not null).
5788 * kern/mm.c (grub_realloc): Return the same pointer when using the
5789 same region, instead of returning the header address.
5790
e15199cb 57912004-07-11 Marco Gerards <metgerards@student.han.nl>
5792
5793 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
5794 one block instead of two when looking for the initial partition.
5795 (grub_partition_probe): Initialize the local variable `p' with 0.
5796 Use base 10 for the grub_strtoul call.
5797 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
5798 need for one local variable.
5799 (grub_strtoul): Don't add the new value to `num', instead of that
5800 just assign it.
5801
020616c2 58022004-07-11 Marco Gerards <metgerards@student.han.nl>
5803
5804 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
5805 (pxeboot_img_SOURCES): New variable.
5806 (pxeboot_img_ASFLAGS): Likewise.
5807 (pxeboot_img_LDFLAGS): Likewise.
5808 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
5809 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
5810 <lode_leroy@hotmail.com>.
5811
6c51eb64 58122004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
5813
5814 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
5815 there was no input.
5816
cfb12aff 58172004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
5818
5819 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
5820 the history buffer logic.
5821
6eabba74 58222004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
5823
5824 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
5825 (FILETYPE_INO_SYMLINK): New macros.
5826 (grub_ext2_find_file): Check if the node is a directory using the
5827 inode stat information instead of using the filetype in the
5828 dirent. Exclude the first character of an absolute symlink.
5829 (grub_ext2_dir): Mask out the filetype part of the mode member of
5830 the inode.
5831
66e19ef8 58322004-05-24 Marco Gerards <metgerards@student.han.nl>
5833
5834 Add support for UFS version 1 and 2. Add support for the minix
5835 filesystem version 1 and 2, both the variants with 14 and 30 long
5836 filenames.
5837
5838 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
5839 fs/minix.c.
5840 (grub_emu_SOURCES): Likewise.
5841 (pkgdata_MODULES): Add ufs.mod and minix.mod.
5842 (ufs_mod_SOURCES): New variable.
5843 (ufs_mod_CFLAGS): Likewise.
5844 (minix_mod_SOURCES): Likewise.
5845 (minix_mod_CFLAGS): Likewise.
5846 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
5847 fs/minix.c.
5848 (grubof_SOURCES): Likewise.
5849 * fs/ufs.c: New file.
5850 * fs/minix.c: New file.
5851 * include/grub/fs.h (grub_ufs_init): New prototype.
5852 (grub_ufs_fini): Likewise.
5853 (grub_minix_init): Likewise.
5854 (grub_minix_fini): Likewise.
5855 * util/grub-emu.c (main): Initialize and deinitialize UFS and
5856 minix fs.
5857
cc2e748a 58582004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
5859
5860 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
5861 commands/ls.c, commands/terminal.c, commands/boot.c,
5862 commands/cmp.c and commands/cat.c.
5863 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
5864
5865 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
5866 "env.h"
5867
4b13b216 58682004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
5869
5870 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
5871 and grub_, respectively. Because the conversion is trivial and
5872 mechanical, I omit the details here. Please refer to the CVS
5873 if you need more information.
5874
6a142551 58752004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
5876
5877 * include/pupa: Renamed to ...
5878 * include/grub: ... this.
5879 * util/i386/pc/pupa-mkimage.c: Renamed to ...
5880 * util/i386/pc/grub-mkimage.c: ... this.
5881 * util/i386/pc/pupa-setup.c: Renamed to ...
5882 * util/i386/pc/grub-setup.c: ... this.
5883 * util/pupa-emu.c: Renamed to ...
5884 * util/grub-emu.c: ... this.
5885
e56cdf21 58862004-03-29 Marco Gerards <metgerards@student.han.nl>
5887
5888 Add support for the newworld apple macintosh (PPC). This has been
5889 tested on the powerbook 2000 only. It only adds support for
5890 generic ieee1275 functions, console and disk support. This should
5891 be easy to port to other architectures with support for Open
5892 Firmware.
5893
5894 * configure.ac: Accept the powerpc as host_cpu. In the case of
5895 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
5896 specific tests are only executed while building for the i386.
5897 Inverse test for crosscompile.
5898 * genmk.rb (Utility): Allow assembler files.
5899 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
5900 * conf/powerpc-ieee1275.rmk: New file.
5901 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
5902 * disk/powerpc/ieee1275/partition.c: Likewise.
5903 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
5904 * include/pupa/powerpc/ieee1275/console.h: Likewise.
5905 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
5906 * include/pupa/powerpc/ieee1275/time.h: Likewise.
5907 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
5908 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
5909 * include/pupa/powerpc/ieee1275/loader.h
5910 * include/pupa/powerpc/setjmp.h: Likewise.
5911 * include/pupa/powerpc/types.h: Likewise.
5912 * kern/powerpc/ieee1275/init.c: Likewise.
5913 * kern/powerpc/ieee1275/openfw.c: Likewise.
5914 * term/powerpc/ieee1275/ofconsole.c: Likewise.
5915
5916 These files were written by Johan Rydberg
5917 (jrydberg@night.trouble.net) and I only modified them slightly.
5918
5919 * boot/powerpc/ieee1275/cmain.c: New file.
5920 * boot/powerpc/ieee1275/crt0.S: Likewise.
5921 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
5922 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
5923
8c8cc205 59242004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
5925
5926 * Makefile.in: Update copyright.
5927 * genmodsrc.sh: Likewise.
5928 * gensymlist.sh: Likewise.
5929 * term/i386/pc/vga.c: Indent correctly.
5930
5931 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
5932 bugreporting address.
5933 * util/i386/pc/pupa-setup.c (usage): Likewise,
5934 (main): Call pupa_ext2_init and pupa_ext2_fini.
5935
5936 * fs/fat.c (log2): Renamed to ...
5937 (fat_log2): ... this.
5938 All callers changed.
5939 * kern/misc.c (memcpy): Alias to pupa_memmove.
5940 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
5941 lvalue cast.
5942 * util/console.c (pupa_ncurses_fini): Return 0.
5943
5944 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
5945 Move fail label here.
5946 [__GNU__]: Don't warn when using stat.
5947 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
5948 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
5949 long int. Use strtol instead of strtoul.
5950
db1771cf 59512004-03-14 Marco Gerards <metgerards@student.han.nl>
5952
5953 * commands/boot.c: New file.
5954 * commands/cat.c: Likewise.
5955 * commands/cmp.c: Likewise.
5956 * commands/ls.c: Likewise.
5957 * commands/terminal.c: Likewise.
5958 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
5959 (pupa_register_command): Changed interface to match the new
5960 argument parser.
5961 (pupa_command_execute): Changed (almost rewritten) so it uses
5962 pupa_split_command. Added support for setting variables using the
5963 syntax `foo=bar'.
5964 (rescue_command): Changed to work with the new argument parser.
5965 (terminal_command): Moved from here to commands/terminal.c.
5966 (set_command): New function.
5967 (unset_command): New function.
5968 (insmod_command): New function.
5969 (rmmod_command): New function.
5970 (lsmod_command): New function.
5971 (pupa_command_init): Don't initialize the command terminal
5972 anymore. Initialize the commands set, unset, insmod, rmmod and
5973 lsmod.
5974 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
5975 (kernel_img_HEADERS): Add arg.h and env.h.
5976 (pupa_mkimage_LDFLAGS): Add kern/env.c.
5977 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
5978 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
5979 normal/arg.c.
5980 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
5981 terminal.mod.
5982 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
5983 (boot_mod_SOURCES): New variable.
5984 (terminal_mod_SOURCES): Likewise.
5985 (ls_mod_SOURCES): Likewise.
5986 (cmp_mod_SOURCES): Likewise.
5987 (cat_mod_SOURCES): Likewise.
5988
5989 * normal/arg.c: New file.
5990 * kern/env.c: Likewise.
5991 * include/pupa/arg.h: Likewise.
5992 * include/pupa/env.h: Likewise.
5993 * font/manager.c (font_command): Changed to match argument parsing
5994 interface changes.
5995 (PUPA_MOD_INIT): Likewise.
5996 * hello/hello.c (pupa_cmd_hello): Likewise.
5997 (PUPA_MOD_INIT): Likewise.
5998 * include/pupa/disk.h: Include <pupa/device.h>.
5999 (pupa_print_partinfo): New prototype.
6000 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
6001 (pupa_dl_get_prefix): Likewise.
6002 * include/pupa/misc.h: Include <pupa/err.h>.
6003 (pupa_isgraph): New prototype.
6004 (pupa_isdigit): Likewise.
6005 (pupa_split_cmdline): Likewise.
6006 * include/pupa/normal.h: Include <pupa/arg.h>.
6007 (pupa_command): Changed the prototype of the member `func' to
6008 match the argument parsing interface. Added member `options'.
6009 (pupa_register_command): Updated to match function.
6010 (pupa_arg_parse): New prototype.
6011 (pupa_hello_init) [PUPA_UTIL]: New prototype.
6012 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
6013 (pupa_ls_init) [PUPA_UTIL]: Likewise.
6014 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
6015 (pupa_cat_init) [PUPA_UTIL]: Likewise.
6016 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
6017 (pupa_boot_init) [PUPA_UTIL]: Likewise.
6018 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
6019 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
6020 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
6021 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
6022 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
6023 * kern/disk.c: Include <pupa/file.h>.
6024 (pupa_print_partinfo): New function.
6025 * kern/dl.c: Include <pupa/env.h>.
6026 (pupa_dl_dir): Variable removed.
6027 (pupa_dl_load): Use the environment variable `prefix' instead of
6028 the variable pupa_dl_dir.
6029 (pupa_dl_set_prefix): Function removed.
6030 (pupa_dl_get_prefix): Likewise.
6031 * kern/i386/pc/init.c: Include <pupa/env.h>.
6032 (pupa_machine_init): Use the environment variable `prefix' instead of
6033 using pupa_dl_set_prefix to set the prefix.
6034 * kern/main.c: Include <pupa/env.h>.
6035 (pupa_set_root_dev): Use the environment variable `prefix' instead of
6036 using pupa_dl_get_prefix to get the prefix.
6037 * kern/misc.c: Include <pupa/env.h>.
6038 (pupa_isdigit): New function.
6039 (pupa_isgraph): Likewise.
6040 (pupa_ftoa): Likewise.
6041 (pupa_vsprintf): Added support for printing values of the type
6042 `double'. Make it possible to format variable output when using
6043 formatting like `%1.2%f'.
6044 (pupa_split_cmdline): New function.
6045 * kern/rescue.c: Include <pupa/env.h>.
6046 (next_word): Removed function.
6047 (pupa_rescue_cmd_prefix): Likewise.
6048 (pupa_rescue_cmd_set): New function.
6049 (pupa_rescue_cmd_unset): New function.
6050 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
6051 split the command line instead of splitting it here. Added
6052 support for setting variables using the syntax `foo=bar'. Don't
6053 initialize the prefix command anymore. Initialized the set and
6054 unset commands.
6055 * normal/cmdline.c: Include <pupa/env.h>.
6056 (pupa_tab_complete): Added prototypes for print_simple_completion,
6057 print_partition_completion, add_completion, iterate_commands,
6058 iterate_dev, iterate_part and iterate_dir. Moved code to print
6059 partition information from here to kern/disk.c.
6060 (pupa_cmdline_run): Don't check if the funtion exists anymore.
6061 * normal/main.c: Include <pupa/env.h>.
6062 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
6063 instead of using pupa_dl_get_prefix to get the prefix.
6064 * term/i386/pc/vga.c: Include <pupa/arg.h>.
6065 (check_vga_mem): Cast pointers to `void *' to silence a gcc
6066 warning.
6067 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
6068 (pupa_vga_setcolor): Declare unused variables with `__attribute__
6069 ((unused))' to silence a gcc warning.
6070 (pupa_vga_setcolor): Likewise.
6071 (debug_command): Changed to match argument parsing
6072 interface changes.
6073 * util/pupa-emu.c: Include <pupa/env.h>.
6074 (options): Added 0's for unused fields to silence a gcc warning.
6075 (argp): Likewise.
6076 (main): Use the environment variable `prefix' instead of using
6077 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
6078 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
6079 and terminal.
6080
6081 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
6082 * util/misc.c: Include <malloc.h>.
6083 (pupa_malloc): Rewritten so errors are correctly reported.
6084 (pupa_realloc): Likewise.
6085 (pupa_memalign): Likewise.
6086 (pupa_mm_init_region): Declare unused variables with
6087 `__attribute__ ((unused))' to silence a gcc warning.
6088 * normal/i386/setjmp.S: Remove tab at the end of the file to
6089 silence a gcc warning.
6090 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
6091 variables with `__attribute__ ((unused))' to silence a gcc
6092 warning.
6093 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
6094 local variable i unsigned to silence a gcc warning.
6095
6096 * kern/term.c: Include <pupa/misc.h>.
6097 (pupa_more_lines): New variable.
6098 (pupa_more): Likewise.
6099 (pupa_putcode): When the pager is active pause at the end of every
6100 screen.
6101 (pupa_set_more): New function.
6102 * include/pupa/term.h (pupa_set_more): New prototype.
6103
6104
3b1139cb 61052004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
6106
6107 Now this project is GRUB 2 rather than PUPA. The location of
6108 the CVS repository was moved to GRUB's.
6109
6110 * configure.ac: Use bug-grub as the reporting address.
6111 Use GRUB instead of PUPA.
6112 Change the version number to 1.90.
6113
8367695c 61142004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
6115
6116 * genkernsyms.sh: Updated copyright information.
6117 * genmk.rb: Likewise.
6118 * genmodsrc.sh: Likewise.
6119 * gensymlist.sh: Likewise.
6120 * boot/i386/pc/boot.S: Likewise.
6121 * boot/i386/pc/diskboot.S: Likewise.
6122 * disk/i386/pc/biosdisk.c: Likewise.
6123 * disk/i386/pc/partition.c: Likewise.
6124 * font/manager.c: Likewise.
6125 * fs/ext2.c: Likewise.
6126 * fs/fat.c: Likewise.
6127 * include/pupa/boot.h: Likewise.
6128 * include/pupa/device.h: Likewise.
6129 * include/pupa/disk.h: Likewise.
6130 * include/pupa/dl.h: Likewise.
6131 * include/pupa/elf.h: Likewise.
6132 * include/pupa/err.h: Likewise.
6133 * include/pupa/file.h: Likewise.
6134 * include/pupa/font.h: Likewise.
6135 * include/pupa/fs.h: Likewise.
6136 * include/pupa/kernel.h: Likewise.
6137 * include/pupa/loader.h: Likewise.
6138 * include/pupa/misc.h: Likewise.
6139 * include/pupa/mm.h: Likewise.
6140 * include/pupa/net.h: Likewise.
6141 * include/pupa/normal.h: Likewise.
6142 * include/pupa/rescue.h: Likewise.
6143 * include/pupa/setjmp.h: Likewise.
6144 * include/pupa/symbol.h: Likewise.
6145 * include/pupa/term.h: Likewise.
6146 * include/pupa/types.h: Likewise.
6147 * include/pupa/i386/setjmp.h: Likewise.
6148 * include/pupa/i386/types.h: Likewise.
6149 * include/pupa/i386/pc/biosdisk.h: Likewise.
6150 * include/pupa/i386/pc/boot.h: Likewise.
6151 * include/pupa/i386/pc/console.h: Likewise.
6152 * include/pupa/i386/pc/init.h: Likewise.
6153 * include/pupa/i386/pc/kernel.h: Likewise.
6154 * include/pupa/i386/pc/linux.h: Likewise.
6155 * include/pupa/i386/pc/loader.h: Likewise.
6156 * include/pupa/i386/pc/memory.h: Likewise.
6157 * include/pupa/i386/pc/multiboot.h: Likewise.
6158 * include/pupa/i386/pc/partition.h: Likewise.
6159 * include/pupa/i386/pc/time.h: Likewise.
6160 * include/pupa/i386/pc/vga.h: Likewise.
6161 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
6162 * include/pupa/util/getroot.h: Likewise.
6163 * include/pupa/util/misc.h: Likewise.
6164 * include/pupa/util/resolve.h: Likewise.
6165 * kern/device.c: Likewise.
6166 * kern/disk.c: Likewise.
6167 * kern/dl.c: Likewise.
6168 * kern/err.c: Likewise.
6169 * kern/file.c: Likewise.
6170 * kern/fs.c: Likewise.
6171 * kern/loader.c: Likewise.
6172 * kern/main.c: Likewise.
6173 * kern/misc.c: Likewise.
6174 * kern/mm.c: Likewise.
6175 * kern/rescue.c: Likewise.
6176 * kern/term.c: Likewise.
6177 * kern/i386/dl.c: Likewise.
6178 * kern/i386/pc/init.c: Likewise.
6179 * kern/i386/pc/lzo1x.S: Likewise.
6180 * kern/i386/pc/startup.S: Likewise.
6181 * loader/i386/pc/chainloader.c: Likewise.
6182 * loader/i386/pc/linux.c: Likewise.
6183 * loader/i386/pc/multiboot.c: Likewise.
6184 * normal/cmdline.c: Likewise.
6185 * normal/command.c: Likewise.
6186 * normal/main.c: Likewise.
6187 * normal/menu.c: Likewise.
6188 * normal/i386/setjmp.S: Likewise.
6189 * term/i386/pc/console.c: Likewise.
6190 * term/i386/pc/vga.c: Likewise.
6191 * util/console.c: Likewise.
6192 * util/genmoddep.c: Likewise.
6193 * util/misc.c: Likewise.
6194 * util/pupa-emu.c: Likewise.
6195 * util/resolve.c: Likewise.
6196 * util/unifont2pff.rb: Likewise.
6197 * util/i386/pc/biosdisk.c: Likewise.
6198 * util/i386/pc/getroot.c: Likewise.
6199 * util/i386/pc/pupa-mkimage.c: Likewise.
6200 * util/i386/pc/pupa-setup.c: Likewise.
6201
e6eced71 62022004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
6203
6204 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
6205 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
6206 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
6207 reading and reset it after reading.
6208 (pupa_ext2_close): Return PUPA_ERR_NONE.
6209
6210 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
6211 Correct value.
6212 (struct linux_kernel_header): Add kernel_version and
6213 initrd_addr_max.
6214 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
6215 pupa_file_read succeeds.
6216 (pupa_rescue_cmd_initrd): Implement.
6217
5aded270 62182003-12-03 Marco Gerards <metgerards@student.han.nl>
6219
6220 * fs/ext2.c (pupa_ext2_label): New function.
6221 (pupa_ext2_fs): Added label.
6222 * fs/fat.c (pupa_fat_label): New function.
6223 (pupa_fat_fs): Added label.
6224 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
6225
6226 * kern/misc.c (pupa_strndup): New function.
6227 * include/pupa/misc.h (pupa_strndup): New prototype.
6228
6229 * include/pupa/normal.h: Include <pupa/err.h>.
6230 (pupa_set_history): New prototype.
6231 (pupa_iterate_commands): New prototype.
6232 * normal/cmdline.c: Include <pupa/machine/partition.h>,
6233 <pupa/disk.h>, <pupa/file.h>.
6234 (hist_size): New variable.
6235 (hist_lines): Likewise.
6236 (hist_end): Likewise.
6237 (hist_used): Likewise.
6238 (pupa_set_history): New function.
6239 (pupa_history_get): Likewise.
6240 (pupa_history_add): Likewise.
6241 (pupa_history_replace): Likewise.
6242 (pupa_tab_complete): Likewise.
6243 (pupa_cmdline_run): Added tab completion and history buffer. Tab
6244 completion shows partitionnames while completing partitions, this
6245 feature was suggested by Jeff Bailey.
6246 * normal/command.c (pupa_iterate_commands): New function.
6247 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
6248 (pupa_normal_init): Initialize history buffer.
6249 (PUPA_MOD_INIT): Likewise.
6250 (pupa_normal_fini): Free the history buffer.
6251 (PUPA_MOD_FINI): Likewise.
6252
6253 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
6254 key.
6255
6256 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
6257 * configure.ac [i386]: Check for regparam bug.
6258 (NESTED_FUNC_ATTR) [! i386]: Defined.
6259
1f7315a3 62602003-11-17 Marco Gerards <metgerards@student.han.nl>
6261
6262 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
6263 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
6264 (pupa_emu_SOURCES): New variable.
6265 (pupa_emu_LDFLAGS): Likewise.
6266 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
6267 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
6268 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
6269 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
6270 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
6271 (pupa_jmp_buf): New typedef.
6272 (pupa_setjmp) [PUPA_UTIL]: New macro.
6273 (pupa_longjmp) [PUPA_UTIL]: Likewise.
6274 * include/pupa/term.h (struct pupa_term): New member `refresh'.
6275 (pupa_refresh): New prototype.
6276 * include/pupa/util/getroot.h: New file.
6277 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
6278 it.
6279 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
6280 (pupa_rescue_cmd_cat): Likewise.
6281 (pupa_rescue_cmd_ls): Likewise.
6282 (pupa_rescue_cmd_testload): Likewise.
6283 (pupa_rescue_cmd_lsmod): Likewise.
6284 * normal/cmdline.c (pupa_cmdline_get): Likewise.
6285 * normal/menu.c (run_menu): Likewise.
6286 * kern/term.c (pupa_cls): Likewise.
6287 (pupa_refresh): New function.
6288 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
6289 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
6290 * util/console.c: New file.
6291
6292 * util/i386/pc/getroot.c: New file.
6293 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
6294 (pupa_putchar): New function.
6295 (pupa_refresh): Likewise.
6296 (xgetcwd): Function moved to ...
6297 (strip_extra_slashes): Likewise.
6298 (get_prefix): Likewise.
6299 * util/i386/pc/getroot.c: ... here.
6300 (find_root_device): Function moved and renamed to...
6301 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
6302 Changed all callers.
6303 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
6304 and renamed to...
6305 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
6306 Changed all callers.
6307 * util/misc.c (pupa_memalign): New function.
6308 (pupa_mm_init_region): Likewise.
6309 (pupa_register_exported_symbols): Likewise.
6310 (pupa_putchar): Function removed.
6311 * util/pupa-emu.c: New file.
6312
9a5c1ade 63132003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
6314
6315 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
6316 (_multiboot_mod_SOURCES): New variable.
6317 (_multiboot_mod_CFLAGS): Likewise.
6318 * loader/i386/pc/multiboot.c: New file.
6319 * include/pupa/i386/pc/multiboot.h: Likewise.
6320 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
6321 (pupa_multiboot_real_boot): New function.
6322 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
6323 (pupa_multiboot_real_boot): New prototype.
6324 (pupa_rescue_cmd_multiboot): Likewise
6325 (pupa_rescue_cmd_module): Likewise.
6326
6327 * kern/loader.c (pupa_loader_set): Continue when
6328 pupa_loader_unload_func() fails.
6329 (pupa_loader_unset): New function.
6330 * include/pupa/loader.h (pupa_loader_unset): New prototype.
6331
6332 * kern/misc.c (pupa_stpcpy): New function.
6333 * include/pupa/misc.h (pupa_stpcpy): New prototype.
6334
8e72a9c0 63352003-11-12 Marco Gerards <metgerards@student.han.nl>
6336
6337 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
6338 for available extensions.
6339
6340 * include/pupa/i386/pc/time.h: New file.
6341 * kern/disk.c: Include <pupa/machine/time.h>.
6342 (PUPA_CACHE_TIMEOUT): New macro.
6343 (pupa_last_time): New variable.
6344 (pupa_disk_open): Flush the cache when there was a timeout.
6345 (pupa_disk_close): Reset the timer.
6346 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
6347 pupa_currticks.
6348 * util/misc.c: Include <sys/times.h>
6349 (pupa_get_rtc): New function.
6350
c4adbd32 63512003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
6352
6353 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
6354 as blocks.
6355 (pupa_ext2_get_file_block): Use blocks member.
6356
6357 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
6358 first block. Return -1 instead of pupa_errno on error.
6359
bfd30f06 63602003-10-27 Marco Gerards <metgerards@student.han.nl>
6361
6362 * README: In the pupa-mkimage example use _chain instead of chain
6363 and ext2 instead of fat.
6364 * TODO: Replace ext2fs with jfs as an example. Add an item for
6365 adding journal playback for ext2fs.
6366 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
6367 (pkgdata_MODULES): Added ext2.mod.
6368 (ext2_mod_SOURCES): New variable.
6369 (ext2_mod_CFLAGS): Likewise.
6370 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
6371 * include/pupa/misc.h (pupa_strncpy): New prototype.
6372 (pupa_strcat): Likewise.
6373 (pupa_strncmp): Likewise.
6374 * kern/misc.c (pupa_strcat): Enable function.
6375 (pupa_strncpy): New function.
6376 (pupa_strncmp): Likewise.
6377 * fs/ext2.c: New file.
6378
6379 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
6380 when the read failed before retrying.
6381 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
6382 (_FILE_OFFSET_BITS): Likewise.
6383 * configure.ac: Added AC_SYS_LARGEFILE.
6384
98d15063 63852003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
6386
6387 * genmk.rb (PModule#rule): Make sure to get only symbol names
6388 from the output of nm.
6389 Reported by Robert Millan <zeratul2@wanadoo.es>.
6390
18d9c7cd 63912003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
6392
6393 I forgot to check in these changes for a long time. This adds
6394 incomplete support for VGA console, and this is still very
6395 buggy. Also, a lot of consideration is required for I18N,
6396 UNICODE, and VGA font issues. Therefore, assume that this is
6397 such that "better than nothing".
6398
6399 * font/manager.c: New file.
6400 * include/pupa/font.h: Likewise.
6401 * include/pupa/i386/pc/vga.h: Likewise.
6402 * term/i386/pc/vga.c: Likewise.
6403 * util/unifont2pff.rb: Likewise.
6404
6405 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
6406 (pkgdata_MODULES): Added vga.mod and font.mod.
6407 (vga_mod_SOURCES): New variables.
6408 (vga_mod_CFLAGS): Likewise.
6409 (font_mod_SOURCES): Likewise.
6410 (font_mod_CFLAGS): Likewise.
6411
6412 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
6413
6414 * include/pupa/term.h: Include pupa/err.h.
6415 (struct pupa_term): Added init and fini.
6416 Changed the argument of putchar to pupa_uint32_t.
6417
6418 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
6419 (pupa_console_real_putchar): New prototype.
6420 (pupa_console_putchar): Removed.
6421 (pupa_console_checkkey): Exported.
6422 (pupa_console_getkey): Likewise.
6423
6424 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
6425 characters.
6426
6427 * kern/term.c (pupa_term_set_current): Rewritten.
6428 (pupa_putchar): Likewise.
6429 (pupa_putcode): New function.
6430
6431 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
6432 (pupa_console_real_putchar): ... this.
6433 (pupa_vga_set_mode): New function.
6434 (pupa_vga_get_font): Likewise.
6435
6436 * normal/command.c: Include pupa/term.h.
6437 (terminal_command): New function.
6438 (pupa_command_init): Register the command "terminal".
6439
6440 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
6441 (DISP_UP): Likewise.
6442 (DISP_RIGHT): Likewise.
6443 (DISP_DOWN): Likewise.
6444 (DISP_HLINE): Likewise.
6445 (DISP_VLINE): Likewise.
6446 (DISP_UL): Likewise.
6447 (DISP_UR): Likewise.
6448 (DISP_LL): Likewise.
6449 (DISP_LR): Likewise.
6450
6451 * term/i386/pc/console.c (pupa_console_putchar): New function.
6452
977329f5 64532003-02-08 NIIBE Yutaka <gniibe@m17n.org>
6454
6455 * util/resolve.c (pupa_util_resolve_dependencies): BUG
6456 FIX. Reverse the path_list.
6457
6458 * include/pupa/normal.h: Export pupa_register_command and
6459 pupa_unregister_command.
6460
6461 * hello/hello.c (pupa_cmd_hello): New module.
6462 * conf/i386-pc.rmk: Added hello.mod.
6463
1f5ab428 64642003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
6465
6466 * kern/i386/pc/lzo1x.S: New file.
6467
6468 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
6469 (compress_kernel): New variable.
6470 (generate_image): Heavily modified to support compressing a
6471 large part of the core image.
6472
6473 * util/misc.c (pupa_util_read_image): Fix a file descriptor
6474 leak.
6475 (pupa_util_load_image): New function.
6476
6477 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
6478 (pupa_compressed_size): New variable.
6479 (codestart): Enable Gate A20 here.
6480 Decompress the compressed part of the core image.
6481 Rearrange the code to put functions and variables which are
6482 required for initialization in the non-compressed part.
6483 Include lzo1x.S.
6484
6485 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
6486 here.
6487
6488 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
6489
6490 * include/pupa/i386/pc/kernel.h
6491 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
6492 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
6493 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
6494 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
6495 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
6496
6497 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
6498
6499 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
6500 (Utility#rule): Likewise.
6501
6502 * configure.ac: Check if LZO is available.
6503
ce5bf700 65042003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
6505
6506 * include/pupa/normal.h: New file.
6507 * include/pupa/setjmp.h: Likewise.
6508 * include/pupa/i386/setjmp.h: Likewise.
6509 * normal/cmdline.c: Likewise.
6510 * normal/command.c: Likewise.
6511 * normal/main.c: Likewise.
6512 * normal/menu.c: Likewise.
6513 * normal/i386/setjmp.S: Likewise.
6514
6515 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
6516 (pupa_rescue_cmd_initrd): Likewise.
6517
6518 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
6519 Likewise.
6520
6521 * kern/i386/pc/startup.S (translation_table): New variable.
6522 (translate_keycode): New function.
6523 (pupa_console_getkey): Call translate_keycode.
6524
6525 * kern/rescue.c (attempt_normal_mode): New function.
6526 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
6527 it failed, print a message.
6528
6529 * kern/mm.c (pupa_real_malloc): Print more information when a
6530 free magic is broken.
6531 (pupa_free): If the first free header is not free actually, set
6532 it to P.
6533
6534 * kern/main.c (pupa_load_normal_mode): Just load the module
6535 "normal".
6536 (pupa_main): Don't print the message
6537 "Entering into rescue mode..." here.
6538
6539 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
6540 Declared.
6541 (pupa_rescue_cmd_initrd): Likewise.
6542 (pupa_rescue_cmd_initrd): Likewise.
6543
6544 * include/pupa/symbol.h (FUNCTION): Specify the type.
6545 (VARIABLE): Likewise.
6546
6547 * include/pupa/err.h (pupa_err_t): Added
6548 PUPA_ERR_UNKNOWN_COMMAND.
6549
6550 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
6551 (pupa_dl_get_prefix): Likewise.
6552
6553 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
6554 Added _chain.mod and _linux.mod instead of chain.mod and
6555 linux.mod.
6556 (chain_mod_SOURCES): Renamed to ...
6557 (_chain_mod_SOURCES): ... this.
6558 (chain_mod_CFLAGS): Renamed to ...
6559 (_chain_mod_CFLAGS): ... this.
6560 (linux_mod_SOURCES): Renamed to ...
6561 (_linux_mod_SOURCES): ... this.
6562 (linux_mod_CFLAGS): Renamed to ...
6563 (_linux_mod_CFLAGS): ... this.
6564 (normal_mod_SOURCES): New variable.
6565 (normal_mod_CFLAGS): Likewise.
6566 (normal_mod_ASFLAGS): Likewise.
6567
65682003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
6569
6570 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
6571 possible.
6572
6573 * kern/dl.c (pupa_dl_ref): Refer dependending modules
6574 recursively.
6575 (pupa_dl_unref): Unrefer depending modules recursively.
6576 Don't call pupa_dl_unload implicitly, because PUPA can crash if
6577 a module is unloaded before one depending on that module is
6578 unloaded.
6579 (pupa_dl_unload): Unload depending modules explicitly,
6580 if possible.
6581
c04da074 65822003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
6583
6584 * include/pupa/i386/pc/linux.h: New file.
6585 * loader/i386/pc/linux.c: Likewise.
6586
6587 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
6588 Removed.
6589 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
6590 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
6591 of PUPA_CHAINLOADER_BOOT_SECTOR.
6592
6593 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
6594 (pupa_linux_prot_size): New variable.
6595 (pupa_linux_tmp_addr): Likewise.
6596 (pupa_linux_real_addr): Likewise.
6597 (pupa_linux_boot_zimage): New function.
6598 (pupa_linux_boot_bzimage): Likewise.
6599
6600 * kern/i386/pc/init.c (struct mem_region): New structure.
6601 (MAX_REGIONS): New macro.
6602 (mem_regions): New variable.
6603 (num_regions): Likewise.
6604 (pupa_os_area_addr): Likewise.
6605 (pupa_os_area_size): Likewise.
6606 (pupa_lower_mem): Likewise.
6607 (pupa_upper_mem): Likewise.
6608 (add_mem_region): New function.
6609 (compact_mem_regions): Likewise.
6610 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
6611 the size of the conventional memory and that of so-called upper
6612 memory (before the first memory hole).
6613 Instead of adding each found region to free memory, use
6614 add_mem_region and add them after removing overlaps.
6615 Also, add only 1/4 of the upper memory to free memory. The rest
6616 is used for loading OS images. Maybe this is ad hoc, but this
6617 makes it much easier to relocate OS images when booting.
6618
6619 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
6620 (pupa_enter_rescue_mode): Don't register initrd and module.
6621
6622 * kern/mm.c: Include pupa/dl.h.
6623
6624 * kern/main.c: Include pupa/file.h and pupa/device.h.
6625
6626 * kern/loader.c (pupa_loader_load_module_func): Removed.
6627 (pupa_loader_load_module): Likewise.
6628
6629 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
6630 ``.o''.
6631
6632 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
6633 (pupa_linux_tmp_addr): Likewise.
6634 (pupa_linux_real_addr): Likewise.
6635 (pupa_linux_boot_zimage): Likewise.
6636 (pupa_linux_boot_bzimage): Likewise.
6637
6638 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
6639 (pupa_upper_mem): Likewise.
6640 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
6641 module is too dangerous.
6642
6643 * include/pupa/loader.h (pupa_os_area_addr): Declared.
6644 (pupa_os_area_size): Likewise.
6645 (pupa_loader_set): Remove the first argument. Loader doesn't
6646 manage modules or initrd any longer.
6647 (pupa_loader_load_module): Removed.
6648
6649 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
6650 (linux_mod_SOURCES): New variable.
6651 (linux_mod_CFLAGS): Likewise.
6652
a13f9237 66532003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
6654
6655 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
6656 the length of a blocklist correctly.
6657
6658 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
6659 Use ioctl only if the OS file is a block device.
6660 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
6661 not very useful for normal files.
6662
6663 * kern/main.c (pupa_set_root_dev): New function.
6664 (pupa_load_normal_mode): Likewise.
6665 (pupa_main): Call those above.
6666
6667 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
6668 pupa_uint16_t.
6669
6670 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
6671
a5ffe966 66722003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
6673
6674 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
6675 (setup): Configure the installed partition information and the
6676 dl prefix.
6677
6678 * loader/i386/pc/chainloader.c (my_mod): New variable.
6679 (pupa_chainloader_unload): New function.
6680 (pupa_rescue_cmd_chainloader): Refer itself.
6681 (PUPA_MOD_INIT): Save its own module in MY_MOD.
6682
6683 * kern/i386/pc/startup.S (install_partition): Removed.
6684 (version_string): Likewise.
6685 (config_file): Likewise.
6686 (pupa_install_dos_part): New variable.
6687 (pupa_install_bsd_part): Likewise.
6688 (pupa_prefix): Likewise.
6689 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
6690
6691 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
6692 and pupa/misc.h.
6693 (make_install_device): New function.
6694 (pupa_machine_init): Set the dl prefix.
6695
6696 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
6697 (buf): Renamed to ...
6698 (linebuf): ... this.
6699 (pupa_rescue_cmd_prefix): New function.
6700 (pupa_rescue_cmd_insmod): Likewise.
6701 (pupa_rescue_cmd_rmmod): Likewise.
6702 (pupa_rescue_cmd_lsmod): Likewise.
6703 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
6704 rmmod and lsmod.
6705
6706 * kern/mm.c (pupa_memalign): If failed even after invalidating
6707 disk caches, unload unneeded modules and retry.
6708
6709 * kern/misc.c (pupa_memmove): New function.
6710 (pupa_memcpy): Removed.
6711 (pupa_strcpy): New function.
6712 (pupa_itoa): Made static.
6713
6714 * kern/dl.c (pupa_dl_iterate): New function.
6715 (pupa_dl_ref): Likewise.
6716 (pupa_dl_unref): Likewise.
6717 (pupa_dl_unload): Return if succeeded or not.
6718 (pupa_dl_unload_unneeded): New function.
6719 (pupa_dl_unload_all): Likewise.
6720 (pupa_dl_init): Renamed to ...
6721 (pupa_dl_set_prefix): ... this.
6722 (pupa_dl_get_prefix): New function.
6723
6724 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
6725 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
6726 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
6727 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
6728 (pupa_install_dos_part): Declared.
6729 (pupa_install_bsd_part): Likewise.
6730 (pupa_prefix): Likewise.
6731 (pupa_boot_drive): Likewise.
6732
6733 * include/pupa/types.h: Fix a typo.
6734
6735 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
6736 pupa_memmove.
6737 (pupa_memmove): Declared.
6738 (pupa_strcpy): Likewise.
6739
6740 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
6741 pupa_mod_init takes one argument, its own module.
6742 (pupa_dl_unload_unneeded): Declared.
6743 (pupa_dl_unload_all): Likewise.
6744 (pupa_dl_ref): Likewise.
6745 (pupa_dl_unref): Likewise.
6746 (pupa_dl_iterate): Likewise.
6747 (pupa_dl_init): Renamed to ...
6748 (pupa_dl_set_prefix): ... this.
6749 (pupa_dl_get_prefix): Declared.
6750
6751 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
6752 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
6753 unloaded.
6754 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
6755 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
6756
6757 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
6758 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
6759
012d7999 67602003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
6761
6762 * util/i386/pc/pupa-setup.c (setup): Define the internal
6763 function find_first_partition_start at the top level, because GCC
6764 3.0.x cannot compile internal functions in deeper scopes
6765 correctly.
6766 (find_root_device): Use lstat instead of stat.
6767 Don't follow symbolic links.
6768 Fix the path-constructing code.
6769
6770 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
6771 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
6772 by a BLKGETSIZE ioctl first, because block devices don't fill
6773 the member st_mode of the structure stat on Linux.
6774 [__linux__] (linux_find_partition): Use a temporary buffer
6775 REAL_DEV for the working space. Copy it to DEV before returning.
6776 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
6777 buffer cache consistent.
6778 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
6779 strncmp. The previous value was merely wrong.
6780 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
6781
6782 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
6783 FAT size is 12. The previous value was merely wrong.
6784
6785 * kern/main.c (pupa_main): Don't split the starting message from
6786 newlines.
6787
6788 * kern/term.c (pupa_putchar): Put CR after LF instead of before
6789 LF, because BIOS goes crazy about character attributes in this
6790 case.
6791
1cc73a62 67922003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
6793
6794 * include/i386/pc/util/biosdisk.h: New file.
6795 * util/i386/pc/biosdisk.c: Likewise.
6796 * util/i386/pc/pupa-setup.c: Likewise.
6797
6798 * Makefile.in (INCLUDE_DISTFILES): Added
6799 include/pupa/i386/pc/util/biosdisk.h.
6800 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
6801 directory util/i386/pc.
6802 (install-local): Added a rule for sbin_UTILITIES.
6803 (uninstall): Likewise.
6804
6805 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
6806
6807 * util/misc.c (xrealloc): New function.
6808 (pupa_malloc): Likewise.
6809 (pupa_free): Likewise.
6810 (pupa_realloc): Likewise.
6811 (pupa_stop): Likewise.
6812 (pupa_putchar): Likewise.
6813
6814 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
6815
6816 * include/pupa/util/misc.h (xrealloc): Declared.
6817
6818 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
6819 macro.
6820 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
6821 (PUPA_BOOT_MACHINE_BPB_END): ... this.
6822
6823 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
6824 [PUPA_UTIL] (pupa_fat_fini): Likewise.
6825
6826 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
6827 way should be implemented.
6828 [PUPA_UTIL] (pupa_fat_fini): Likewise.
6829
6830 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
6831 the size of NAME for safety.
6832 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
6833 0x88.
6834
6835 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
6836 (pupa_setup_SOURCES): Likewise.
6837
6838 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
6839
08b70fe8 68402002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
6841
6842 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
6843 bunch of pushl's from pusha, because this destroys the return
6844 value.
6845
62ddcc8f 68462002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
6847
6848 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
6849 This means that any missing prototypes could be fatal. Also, you
6850 must take care when writing assembly code. See the comments at
6851 the beginning of startup.S, for more details.
6852
6853 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
6854 compilation mechanism.
6855 (pupa_chainloader_real_boot): Likewise.
6856 (pupa_biosdisk_rw_int13_extensions): Likewise.
6857 (pupa_biosdisk_rw_standard): Likewise.
6858 (pupa_biosdisk_check_int13_extensions): Likewise.
6859 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
6860 (pupa_biosdisk_get_diskinfo_standard): Likewise.
6861 (pupa_get_memsize): Likewise.
6862 (pupa_get_mmap_entry): Likewise.
6863 (pupa_console_putchar): Likewise.
6864 (pupa_console_setcursor): Likewise.
6865 (pupa_getrtsecs): Use pushl instead of push.
6866
6867 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
6868 memory instead of the stack for a mmap entry, because some
6869 BIOSes may ignore the maximum size and overflow.
6870
6871 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
6872
6873 * genmk.rb (PModule#rule): Compile automatically generated
6874 sources with module-specific CFLAGS as well as other sources.
6875
9962ed99 68762002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
6877
6878 * configure.ac: Check ld.
6879 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
6880 respectively, before checking endianness and sizes.
6881
6882 * Makefile.in (LD): New variable.
6883
abdfc3c5 68842002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
6885
6886 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
6887
6a161fa9 68882002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
6889
6890 * Changelog: New file.
6891