]> git.proxmox.com Git - grub2.git/blame - ChangeLog
2007-11-18 Christian Franke <franke@computer.org>
[grub2.git] / ChangeLog
CommitLineData
3b8db1a8 12007-11-18 Christian Franke <franke@computer.org>
2
3 * disk/host.c (grub_host_open): Remove attribute unused from
4 name parameter. Add check for "host". This fixes the problem
5 that grub-emu does not find partitions.
6
2e29408d 72007-11-18 Christian Franke <franke@computer.org>
8
9 * util/hostfs.c (is_dir): New function.
10 (grub_hostfs_dir): Handle missing dirent.d_type case.
11 (grub_hostfs_read): Add missing fseek().
12 (grub_hostfs_label): Clear label pointer. This fixes a crash
13 of grub-emu on "ls (host)".
14
398cd047 152007-11-18 Christian Franke <franke@computer.org>
16
17 * include/grub/i386/pc/init.h (struct grub_machine_mmap_entry):
18 Add attribute packed, gcc 3.4.4 on Cygwin aligns this
19 to 64 bit boundary by default.
20
c405c391 212007-11-18 Bean <bean123ch@gmail.com>
22
23 * conf/common.rmk (pkgdata_MODULES): Add hexdump.mod.
24 (hexdump_mod_SOURCES): New variable.
25 (hexdump_mod_CFLAGS): Likewise.
26 (hexdump_mod_LDFLAGS): Likewise.
27
28 * conf/i386-pc.rmk (grub_emu_SOURCES): Add command/hexdump.c.
29
30 * conf/i386-efi.rmk (grub_emu_SOURCES): Add command/hexdump.c.
31
32 * conf/i386-linuxbios.rmk (grub_emu_SOURCES): Add command/hexdump.c.
33
34 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add command/hexdump.c.
35
36 * include/grub/hexdump.h: New file.
37
38 * commands/hexdump.c: New file.
39
5cced7fd 402007-11-10 Robert Millan <rmh@aybabtu.com>
41
42 * commands/i386/pc/play.c (beep_off): Switch order of arguments
43 in grub_outb() calls.
44 (beep_on): Likewise.
45
8b714eb0 462007-11-10 Christian Franke <franke@computer.org>
47
48 * normal/menu.c (run_menu): Check for empty menu to avoid crash.
49 (grub_menu_run): Likewise.
50
ce0f1839 512007-11-10 Robert Millan <rmh@aybabtu.com>
52
53 * include/grub/i386/efi/machine.h: New file.
54 * include/grub/i386/linuxbios/machine.h: Likewise.
55 * include/grub/i386/pc/machine.h: Likewise.
56 * include/grub/powerpc/ieee1275/machine.h: Likewise.
57 * include/grub/sparc64/ieee1275/machine.h: Likewise.
58
59 * term/i386/pc/serial.c: Include <grub/machine/machine.h>.
60 (serial_hw_io_addr): New variable.
61 (serial_hw_get_port): Obtain port address from `serial_hw_io_addr'
62 instead of `(unsigned short *) 0x400'.
63
270c237d 642007-11-10 Bean <bean123ch@gmail.com>
65
66 * fs/ntfs.c (read_block): Fix a bug caused by adjacent blocks.
67
a87783bf 682007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
69
70 * conf/i386-pc.rmk (pkgdata_MODULES): Added vga.mod.
71 (vga_mod_SOURCES): Added.
72 (vga_mod_CFLAGS): Likewise.
73 (vga_mod_LDFLAGS): Likewise.
74
75 * term/i386/pc/vga.c (get_map_mask): Switch order of arguments in
76 grub_outb() calls.
77 (set_map_mask): Likewise.
78 (set_read_map): Likewise.
79 (set_read_address): Likewise.
80 (vga_font): Removed variable.
81 (get_vga_glyph): Removed function.
82 (invalidate_char): Likewise.
83 (write_char): Changed to use grub_font_get_glyph() for font
84 information.
85 (grub_vga_putchar): Likewise.
86 (grub_vga_getcharwidth): Likewise.
87
6433b448 882007-11-10 Vesa Jaaskelainen <chaac@nic.fi>
89
90 * conf/i386-pc.rmk (boot_img_LDFLAGS): Use COMMON_LDFLAGS for target
91 flags.
92 (pxeboot_img_LDFLAGS): Likewise.
93 (diskboot_img_LDFLAGS): Likewise.
94 (kernel_img_LDFLAGS): Likewise.
95
49178511 962007-11-06 Robert Millan <rmh@aybabtu.com>
97
98 * term/i386/pc/serial.c (serial_hw_put): Switch order of arguments
99 in grub_outb() calls.
100 (serial_hw_init): Likewise.
101
53b052de 1022007-11-05 Robert Millan <rmh@aybabtu.com>
103
104 * util/update-grub.in: Allow files in ${update_grub_dir} to contain
105 spaces. Skip non-regular files.
106
5ab33bba 1072007-11-05 Robert Millan <rmh@aybabtu.com>
108
109 * kern/disk.c (grub_disk_firmware_fini)
110 (grub_disk_firmware_is_tainted): New variables.
111
112 * include/grub/disk.h (grub_disk_firmware_fini)
113 (grub_disk_firmware_is_tainted): Likewise.
114
115 * disk/i386/pc/biosdisk.c (GRUB_MOD_FINI(biosdisk)): Moved from here ...
116 (grub_disk_biosdisk_fini): ... to here.
117 (GRUB_MOD_FINI(biosdisk)): Implement using grub_disk_biosdisk_fini().
118 (GRUB_MOD_INIT(biosdisk)): Abort when `grub_disk_firmware_is_tainted'
119 is set. Register grub_disk_biosdisk_fini() in
120 `grub_disk_firmware_fini'.
121
122 * disk/ata.c: Remove `<grub/machine/biosdisk.h>'.
123 (GRUB_MOD_INIT(ata)): Remove grub_biosdisk_fini() call.
124 Use `grub_disk_firmware_is_tainted' and `grub_disk_firmware_fini'
125 to finish existing firmware disk interface.
126
127 * conf/i386-linuxbios.rmk (pkgdata_MODULES): Add `ata.mod'.
128 (ata_mod_SOURCES): New variable.
129 (ata_mod_CFLAGS): Likewise.
130 (ata_mod_LDFLAGS): Likewise.
131
0149ab7c 1322007-11-05 Robert Millan <rmh@aybabtu.com>
133
134 * disk/ata.c: Remove `<grub/machine/time.h>'. Include `<grub/time.h>'.
135 (grub_ata_wait): Reimplement using grub_millisleep().
136
137 * include/grub/misc.h (grub_div_roundup): Fix parenthesization.
138 * include/grub/i386/time.h (grub_cpu_idle): Disable `hlt' instruction.
139
be7ac41e 1402007-11-03 Marco Gerards <marco@gnu.org>
141
142 * term/i386/pc/vga_text.c: Include <grub/cpu/io.h>.
143 (CRTC_ADDR_PORT): New macro.
144 (CRTC_DATA_PORT): Likewise.
145 (CRTC_CURSOR): Likewise.
146 (CRTC_CURSOR_ADDR_HIGH): Likewise.
147 (CRTC_CURSOR_ADDR_LOW): Likewise.
148 (update_cursor): New function.
149 (grub_console_real_putchar): Call `update_cursor'.
150 (grub_console_gotoxy): Likewise.
151 (grub_console_cls): Set the default color when clearing the
152 screen.
153 (grub_console_setcursor): Implemented.
154
bb06ab2e 1552007-11-03 Marco Gerards <marco@gnu.org>
156
157 * disk/ata.c (grub_ata_pio_read): Don't wait for the command to
158 become activate.
159 (grub_ata_pio_write): Likewise.
160
161 (grub_atapi_identify): Wait after issuing an ATA command.
162 (grub_atapi_packet): Likewise.
163 (grub_ata_identify): Likewise.
164 (grub_ata_readwrite): Likewise.
165
cf8f780b 1662007-11-03 Marco Gerards <marco@gnu.org>
167
168 * disk/ata.c (grub_ata_pio_read): Detect and return the error code.
169 (grub_ata_pio_write): Likewise.
170 (grub_ata_readwrite): Use `grub_error', instead of
171 returning `grub_errno'.
172
ed649e54 1732007-11-03 Marco Gerards <marco@gnu.org>
174
175 * disk/ata.c (grub_ata_readwrite): Call grub_ata_pio_read and
176 grub_ata_pio_write once for every single sector, instead of for
177 multiple sectors.
178
ca25d8f0 1792007-10-31 Robert Millan <rmh@aybabtu.com>
180
181 * configure.ac: Add `i386-linuxbios' to the list of supported targets.
182
183 * conf/i386-linuxbios.rmk: New file.
184
185 * kern/i386/pc/hardware.c: Likewise.
186 * term/i386/pc/at_keyboard.c: Likewise.
187 * term/i386/pc/vga_text.c: Likewise.
188
189 * include/grub/i386/linuxbios/boot.h: Likewise.
190 * include/grub/i386/linuxbios/console.h: Likewise.
191 * include/grub/i386/linuxbios/init.h: Likewise.
192 * include/grub/i386/linuxbios/kernel.h: Likewise.
193 * include/grub/i386/linuxbios/loader.h: Likewise.
194 * include/grub/i386/linuxbios/memory.h: Likewise.
195 * include/grub/i386/linuxbios/serial.h: Likewise.
196 * include/grub/i386/linuxbios/time.h: Likewise.
197
198 * kern/i386/linuxbios/init.c: Likewise.
199 * kern/i386/linuxbios/startup.S: Likewise.
200 * kern/i386/linuxbios/table.c: Likewise.
201
e911ecc1 2022007-10-31 Marco Gerards <marco@gnu.org>
203
204 * conf/i386-pc.rmk (pkgdata_MODULES): Add `ata.mod'.
205 (ata_mod_SOURCES): New variable.
206 (ata_mod_CFLAGS): Likewise.
207 (ata_mod_LDFLAGS): Likewise.
208
209 * disk/ata.c: New file.
210
211 * include/grub/disk.h (grub_disk_dev_id): Add
212 `GRUB_DISK_DEV_ATA_ID'.
213
7f66d0e0 2142007-10-31 Robert Millan <rmh@aybabtu.com>
215
216 * include/grub/i386/pc/init.h (grub_lower_mem): Moved from here ...
217 * include/grub/i386/pc/memory.h (grub_lower_mem): ... to here.
218
219 * include/grub/i386/pc/init.h (grub_upper_mem): Moved from here ...
220 * include/grub/i386/pc/memory.h (grub_upper_mem): ... to here.
221
222 * include/grub/i386/pc/memory.h: Include `<grub/symbol.h>' and
223 `<grub/types.h>'.
224
225 * loader/i386/pc/multiboot.c: Include `<grub/machine/memory.h>'.
226
5cd7dd46 2272007-10-27 Robert Millan <rmh@aybabtu.com>
228
3236ca65 229 * include/grub/types.h (ULONG_MAX): Define macro.
5cd7dd46 230
2ebfc90f 2312007-10-22 Robert Millan <rmh@aybabtu.com>
232
233 * kern/i386/pc/startup.S: Remove `"kern/i386/realmode.S"'. Include
234 `"../realmode.S"'.
235 Remove `"kern/i386/loader.S"'. Include `"../loader.S"'.
236
73fcb0f3 2372007-10-22 Robert Millan <rmh@aybabtu.com>
238
239 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove `disk/i386/pc/biosdisk.c'.
240 (pkgdata_MODULES): Add `biosdisk.mod'.
241 (biosdisk_mod_SOURCES, biosdisk_mod_CFLAGS, biosdisk_mod_LDFLAGS): New
242 variables.
243
244 * disk/i386/pc/biosdisk.c: Include `<grub/dl.h>'.
245 (grub_biosdisk_init): Replace with ...
246 (GRUB_MOD_INIT(biosdisk)): ... this.
247 (grub_biosdisk_fini): Replace with ...
248 (GRUB_MOD_FINI(biosdisk)): ... this.
249
250 * kern/i386/pc/init.c: Remove `<grub/machine/biosdisk.h>'.
251 (grub_machine_init): Remove call to grub_biosdisk_init().
252 (grub_machine_fini): Remove call to grub_machine_fini().
253
254 * util/i386/pc/grub-install.in (modules): Add `biosdisk'.
255
3381d274 2562007-10-22 Robert Millan <rmh@aybabtu.com>
257
258 * include/grub/time.h: New file.
259 * include/grub/i386/time.h: Likewise.
260 * include/grub/powerpc/time.h: Likewise.
261 * include/grub/sparc64/time.h: Likewise.
262
263 * include/grub/i386/pc/time.h (KERNEL_TIME_HEADER): Rename all
264 instances to ...
265 (KERNEL_MACHINE_TIME_HEADER): ... this.
266 * include/grub/powerpc/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
267 instances to ...
268 (KERNEL_MACHINE_TIME_HEADER): ... this.
269 * include/grub/sparc64/ieee1275/time.h (KERNEL_TIME_HEADER): Rename all
270 instances to ...
271 (KERNEL_MACHINE_TIME_HEADER): ... this.
272
273 * kern/i386/efi/init.c: Include `<grub/time.h>'.
274 (grub_millisleep): New function.
275 * kern/i386/pc/init.c: Include `<grub/time.h>'.
276 (grub_millisleep): New function.
277 * kern/powerpc/ieee1275/init.c: Include `<grub/time.h>'.
278 Remove `grub/machine/time.h' include.
279 (grub_millisleep): New function.
280 * kern/sparc64/ieee1275/init.c: Include `<grub/time.h>'.
281 Remove `grub/machine/time.h' include.
282 (grub_millisleep): New function.
283
284 * include/grub/misc.h (grub_div_roundup): New function.
285
286 * kern/misc.c: Include `<grub/time.h>'.
287 (grub_millisleep_generic): New function.
288
289 * conf/i386-efi.rmk (kernel_mod_HEADERS): Remove `i386/efi/time.h'.
290 Add `time.h'.
291 * conf/i386-pc.rmk (kernel_img_HEADERS): Remove `machine/time.h'.
292 Add `time.h'.
293 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Remove
294 `machine/time.h'. Add `time.h'.
295 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
296
a39a0312 2972007-10-21 Robert Millan <rmh@aybabtu.com>
298
299 * include/grub/misc.h (grub_max): New function.
300
2aad70e2 3012007-10-21 Robert Millan <rmh@aybabtu.com>
302
303 * util/misc.c (grub_util_info): Call fflush() before returning.
304
54b71c4b 3052007-10-20 Robert Millan <rmh@aybabtu.com>
306
307 * genmk.rb (Image): Copy `extra_flags' from here ...
308 (PModule): ... to here. Use it in `#{obj}: #{src}' rule.
309
310 * commands/i386/cpuid.c (grub_cmd_cpuid): Add __attribute__ ((unused))
311 to `argc' and `args' arguments.
312
a979f513 3132007-10-17 Robert Millan <rmh@aybabtu.com>
314
315 * kern/i386/loader.S: New file.
316
317 * kern/i386/pc/startup.S (grub_linux_prot_size): Moved from here ...
318 * kern/i386/loader.S (grub_linux_prot_size)... to here.
319 * kern/i386/pc/startup.S (grub_linux_tmp_addr): Moved from here ...
320 * kern/i386/loader.S (grub_linux_tmp_addr)... to here.
321 * kern/i386/pc/startup.S (grub_linux_real_addr): Moved from here ...
322 * kern/i386/loader.S (grub_linux_real_addr)... to here.
323 * kern/i386/pc/startup.S (grub_linux_boot_zimage): Moved from here ...
324 * kern/i386/loader.S (grub_linux_boot_zimage)... to here.
325 * kern/i386/pc/startup.S (grub_linux_boot_bzimage): Moved from here ...
326 * kern/i386/loader.S (grub_linux_boot_bzimage)... to here.
327 * kern/i386/pc/startup.S (grub_multiboot_real_boot): Moved from here ...
328 * kern/i386/loader.S (grub_multiboot_real_boot)... to here.
329 * kern/i386/pc/startup.S (grub_multiboot2_real_boot): Moved from here ...
330 * kern/i386/loader.S (grub_multiboot2_real_boot)... to here.
331
332 * kern/i386/realmode.S: New file.
333
334 * kern/i386/pc/startup.S (protstack): Moved from here ...
335 * kern/i386/realmode.S (protstack)... to here.
336 * kern/i386/pc/startup.S (gdt): Moved from here ...
337 * kern/i386/realmode.S (gdt)... to here.
338 * kern/i386/pc/startup.S (prot_to_real): Moved from here ...
339 * kern/i386/realmode.S (prot_to_real)... to here.
340
341 * kern/i386/pc/startup.S: Include `kern/i386/loader.S' and
342 `kern/i386/realmode.S'.
343
825fc8fd 3442007-10-17 Robert Millan <rmh@aybabtu.com>
345
346 * include/grub/i386/loader.h: New file.
347
348 * include/grub/i386/pc/loader.h (grub_linux_prot_size)
349 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
350 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
351 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
352 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): Moved from here ...
353 * include/grub/i386/loader.h (grub_linux_prot_size)
354 (grub_linux_tmp_addr, grub_linux_real_addr, grub_os_area_addr)
355 (grub_os_area_size, grub_linux_boot_zimage, grub_linux_boot_bzimage)
356 (grub_multiboot_real_boot, grub_multiboot2_real_boot)
357 (grub_rescue_cmd_linux, grub_rescue_cmd_initrd): ... to here.
358
359 * include/grub/i386/pc/loader.h: Include `grub/cpu/loader.h'.
360
e179b2f4 3612007-10-15 Robert Millan <rmh@aybabtu.com>
362
363 * normal/misc.c (grub_normal_print_device_info): Do not probe for
364 filesystem when dev->disk is unset.
365 Do probe for filesystem even when dev->disk->has_partitions is set.
366 In case a filesystem is found, always report it.
367 In case it isn't, if dev->disk->has_partitions is set, report that
368 a partition table was found instead of reporting that no filesystem
369 could be identified.
370
5db82af6 3712007-10-12 Robert Millan <rmh@aybabtu.com>
372
373 * conf/powerpc-ieee1275.rmk (grub_mkimage_SOURCES): Replace reference
374 to util/powerpc/ieee1275/grub-mkimage.c with util/elf/grub-mkimage.c.
375
376 * include/grub/types.h (#ifdef GRUB_CPU_WORDS_BIGENDIAN): Define
377 grub_host_to_target16, grub_host_to_target32, grub_host_to_target64,
378 grub_target_to_host16, grub_target_to_host32 and grub_target_to_host64.
379 (#else): Likewise.
380
381 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
382 Renamed from to ...
383 (GRUB_MOD_ALIGN): ...this. Update all users.
384
385 * util/elf/grub-mkimage.c: Replace grub_cpu_to_be16, grub_cpu_to_be32,
386 grub_be_to_cpu16 and grub_be_to_cpu32 macros with grub_host_to_target16,
387 grub_host_to_target32, grub_target_to_host16 and grub_target_to_host32,
388 respectively.
389
3cf497cc 3902007-10-12 Robert Millan <rmh@aybabtu.com>
391
392 * util/powerpc/ieee1275/grub-mkimage.c: Moved to ...
393 * util/elf/grub-mkimage.c: ... here.
394
395 * DISTLIST: Add `util/elf/grub-mkimage.c'. Remove
396 `util/powerpc/ieee1275/grub-mkimage.c'.
397
c8cc3692 3982007-10-07 Robert Millan <rmh@aybabtu.com>
adbc4c9d 399
c8cc3692 400 * kern/powerpc/ieee1275/init.c: Rename HEAP_LIMIT to HEAP_MAX_ADDR,
401 and make it easier to figure out.
402 Add HEAP_MIN_SIZE and HEAP_MAX_ADDR definitions.
403 (grub_claim_heap): Use HEAP_MAX_ADDR rather than taking a parameter.
404 Do not avoid claiming a region above HEAP_MAX_ADDR if that would
405 leave us with less than HEAP_MIN_SIZE total heap.
406 Avoid our total amount of heap to surpass HEAP_MAX_SIZE.
adbc4c9d 407
5c58b791 4082007-10-03 Robert Millan <rmh@aybabtu.com>
409
410 * include/grub/i386/io.h: New file.
411 * commands/i386/pc/play.c (inb): Removed.
412 (outb): Removed.
413 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
414 with grub_outb().
afcd2ef8 415 * term/i386/pc/serial.c (inb): Removed.
416 (outb): Removed.
417 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
418 with grub_outb().
419 * term/i386/pc/vga.c (inb): Removed.
420 (outb): Removed.
421 Include grub/cpu/io.h. Replace inb() with grub_inb() and outb()
422 with grub_outb().
5c58b791 423
1a477ed6 4242007-10-02 Robert Millan <rmh@aybabtu.com>
425
426 * conf/i386-efi.rmk (grub_emu_SOURCES): Add util/hostfs.c.
427 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
428 Reported by Marcin Kurek.
429
6b5d80fa 4302007-09-07 Robert Millan <rmh@aybabtu.com>
431
432 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_test_flag): Detect
433 SmartFirmware version updates (as released by Sven Luther), and avoid
434 setting GRUB_IEEE1275_FLAG_NO_PARTITION_0 or
435 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS unless the running version is
436 known broken.
437
5618afbf 4382007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
439
440 From Hitoshi Ozeki:
441 * kern/i386/pc/init.c (compact_mem_regions): Decrease NUM_REGIONS
442 when merging two regions.
443
6139dcd9 4442007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
445
508e39ee 446 * kern/rescue.c (grub_enter_rescue_mode): Free ARGS.
447 * normal/completion.c (grub_normal_do_completion): Likewise.
448 Reported by Hitoshi Ozeki.
449
4502007-09-03 Yoshinori K. Okuji <okuji@enbug.org>
451
6139dcd9 452 Do not use devices at boot in chainloading.
453
454 * loader/i386/pc/chainloader.c (boot_drive): New variable.
455 (boot_part_addr): Likewise.
456 (grub_chainloader_boot): Simply call grub_chainloader_real_boot
457 with BOOT_DRIVE and BOOT_PART_ADDR.
458 (grub_chainloader_cmd): Set BOOT_DRIVE and BOOT_PART_ADDR.
459 Reported by Hitoshi Ozeki <h-ozeki@ck2.so-net.ne.jp>.
460
38da6516 4612007-08-29 Robert Millan <rmh@aybabtu.com>
462
463 Patch from Simon Peter <dn.tlp@gmx.net>:
464 * genmk.rb (Utility): Append $(#{src}_DEPENDENCIES) to #{obj} targets.
465 * conf/i386-pc.rmk: Replace grub-probe_DEPENDENCIES with
466 util/grub-probe.c_DEPENDENCIES. Replace grub-setup_DEPENDENCIES with
467 util/i386/pc/grub-setup.c_DEPENDENCIES.
468 * conf/i386-efi.rmk: Replace grub-probe_DEPENDENCIES with
469 util/grub-probe.c_DEPENDENCIES.
470 * conf/powerpc-ieee1275.rmk: Likewise.
471
29d0928c 4722007-08-28 Robert Millan <rmh@aybabtu.com>
473
474 * util/i386/get_disk_name.c: New. Implement grub_util_get_disk_name()
475 to tell grub-mkdevicemap how to name devices.
476 * util/ieee1275/get_disk_name.c: Likewise (using "ofpathname -a"
477 feature).
478
479 * conf/i386-efi.rmk (grub_mkdevicemap_SOURCES): Add
480 util/i386/get_disk_name.c.
481 * conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Likewise.
482 * conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Add
483 util/ieee1275/get_disk_name.c.
484
485 * include/grub/util/misc.h: grub_util_get_disk_name() declaration.
486
487 * DISTLIST: Add util/i386/get_disk_name.c and
488 util/ieee1275/get_disk_name.c.
489
490 * util/grub-mkdevicemap.c: Replace device naming logic with
491 grub_util_get_disk_name() calls.
492
5a0d3cca 4932007-08-20 Robert Millan <rmh@aybabtu.com>
494
495 * normal/menu.c (run_menu): Refer to seconds as "s" not "seconds"
496 (so that it works for both plural and singular quantities).
497
8b72db2f 4982007-08-05 Robert Millan <rmh@aybabtu.com>
499
500 * util/grub.d/10_linux.in (test_gt): Strip out vmlinu[xz]- prefix
501 so that [xz] isn't taken into account when determining order.
502
352466bf 5032007-08-02 Marco Gerards <marco@gnu.org>
504
505 * DISTLIST: Add `disk/host.c', `fs/ntfs.c', `include/multiboot.h',
506 `include/multiboot2.h', `include/grub/elfload.h',
507 `include/multiboot.h', `include/grub/multiboot.h',
508 `include/grub/multiboot_loader.h', `include/grub/multiboot2.h',
509 `include/grub/i386/pc/biosdisk.h', `include/grub/util/biosdisk.h',
510 `kern/elf.c', `loader/multiboot_loader.c',
511 `loader/multiboot_loader_normal.c', `loader/multiboot2.c',
512 `loader/i386/pc/multiboot2.c',
513 `loader/powerpc/ieee1275/multiboot2.c', `util/hostfs.c' and
514 `util/i386/pc/grub-mkrescue.in'. Remove
515 `include/grub/biosdisk.h', `include/grub/i386/pc/multiboot.h',
516 `include/grub/i386/pc/util/biosdisk.h' and
517 `include/grub/powerpc/ieee1275/multiboot.h'.
518
8f096014 5192007-08-02 Bean <bean123ch@gmail.com>
520
521 * conf/common.rmk (pkgdata_MODULES): Add ntfs.mod.
522 (ntfs_mod_SOURCES): New variable.
523 (ntfs_mod_CFLAGS): Likewise.
524 (ntfs_mod_LDFLAGS): Likewise.
525
526 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ntfs.c.
527 (grub_probe_SOURCES): Likewise.
528 (grub_emu_SOURCES): Likewise.
529
530 * conf/i386-efi.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
531 (grub_emu_SOURCES): Likewise.
532
533 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add fs/ntfs.c.
534 (grub_emu_SOURCES): Likewise.
535
536 * conf/misc.c (grub_utf16_to_utf8): Fix unicode conversion bug.
537
538 * fs/ntfs.c: New file.
539
9959f7db 5402007-08-02 Bean <bean123ch@gmail.com>
541
542 * disk.h (grub_disk): Use NESTED_FUNC_ATTR.
543
544 * file.h (grub_file): Likewise.
545
546 * fshelp.h (grub_fshelp_read_file): Likewise.
547
548 * util/i386/pc/grub-setup.c (setup): Likewise.
549 (save_first_sector): Likewise.
550 (save_blocklists): Likewise.
551
552 * fs/affs.c (grub_affs_read_file): Likewise.
553
554 * fs/ext2.c (grub_ext2_read_file): Likewise.
555
556 * fs/fat.c (grub_fat_read_data): Likewise.
557
558 * fs/fshelp.c (grub_fshelp_read_file): Likewise.
559
560 * fs/hfs.c (grub_hfs_read_file): Likewise.
561
562 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
563
564 * fs/jfs.c (grub_jfs_read_file): Likewise.
565
566 * fs/minix.c (grub_minix_read_file): Likewise.
567
568 * fs/sfs.c (grub_sfs_read_file): Likewise.
569
570 * fs/ufs.c (grub_ufs_read_file): Likewise.
571
572 * fs/xfs.c (grub_xfs_read_file): Likewise.
573
574 * command/blocklist.c (read_blocklist): Likewise.
575 (print_blocklist): Likewise.
576
0a203f83 5772007-08-02 Marco Gerards <marco@gnu.org>
578
579 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/host.c' and
580 `util/hostfs.c'.
581
582 * disk/host.c: New file.
583
584 * util/hostfs.c: Likewise.
585
586 * fs/hfsplus.c (grub_hfsplus_mount): When reading out of disk,
587 return `GRUB_ERR_BAD_FS'.
588 * fs/sfs.c (grub_sfs_mount): Likewise.
589 * fs/xfs.c (grub_xfs_mount): Likewise.
590
591 * include/grub/disk.h (enum grub_disk_dev_id): Add
592 `GRUB_DISK_DEVICE_HOST_ID'.
593
594 * util/grub-emu.c (main): Initialize and de-initialize hostfs.
595
e5dfe777 5962007-07-24 Jerone Young <jerone@gmail.com>
597
598 * conf/i386-pc.rmk: Add Multiboot loader and multiboot 2 to multiboot
599 modules for compilation.
600 * conf/powerpc-ieee1275.rmk: Likewise.
601
602 * include/multiboot.h: Move multiboot definitions to one file. Rename
603 many definitions to not get grub specific.
604 * include/multiboot2.h: Create header with multiboot 2 definitions.
605 * include/grub/multiboot.h: Header for grub specific function
606 prototypes and definitions.
607 * include/grub/multiboot2.h: Likewise.
608 * include/grub/multiboot_loader.h: Likewise.
609 * include/grub/i386/pc/multiboot.h: Removed.
610 * include/grub/powerpc/ieee1275/multiboot.h: Removed.
611
612 * loader/multiboot_loader.c: Created to act as a proxy for multiboot 1
613 and 2 to allow for one multiboot and module commands.
614 * loader/multiboot2.c: Add multiboot2 functionality.
615 * loader/i386/pc/multiboot.c: Modify for new multiboot header location
616 and definition names.
617 * loader/i386/pc/multiboot2.c: Created to add i386 specific multiboot
618 2 functions.
619 * loader/powerpc/ieee1275/multiboot2.c: Created to add powerpc
620 ieee1275 specific multiboot2 code.
621
622 * kern/i386/pc/startup.S: Change headers and definition names for
623 multiboot. Add function grub_multiboot2_real_boot for multiboot 2.
624
daf0f0ba 6252007-07-22 Robert Millan <rmh@aybabtu.com>
626
627 * geninitheader.sh: Process file specified in first parameter rather
628 than hardcoding grub_modules_init.lst.
629 * geninit.sh: Likewise. Also, construct header name dynamicaly rather
630 than hardcoding grub_modules_init.h.
631
632 * conf/common.rmk: Rename grub_modules_init.[ch] files associated with
633 grub-emu to grub_emu_init.[ch]. Add rules to build analogous
634 grub_probe_init.[ch] and grub_setup_init.[ch].
635
636 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Replace
637 grub_modules_init.h with grub_emu_init.h.
638 (grub_probe_DEPENDENCIES, grub_probe_SOURCES): Add new
639 grub_probe_init.[ch] files.
640 * conf/i386-efi.rmk: Likewise.
641 * conf/i386-pc.rmk: Likewise.
642 (grub_setup_DEPENDENCIES, grub_setup_SOURCES): Add new
643 grub_setup_init.[ch] files.
644
645 * util/grub-emu.c: Replace grub_modules_init.h with grub_emu_init.h.
646 * util/grub-probe.c: Include grub_probe_init.h. Use grub_init_all()
647 to initialize modules rather than a list of hardcoded functions.
648 * util/i386/pc/grub-setup.c: Include grub_setup_init.h. Use
649 grub_init_all() to initialize modules rather than a list of hardcoded
650 functions.
651
54cdc1cc 6522007-07-22 Robert Millan <rmh@aybabtu.com>
653
654 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set
655 GRUB_IEEE1275_FLAG_NO_PARTITION_0 flag when running on SmartFirmware.
656
ad0686cc 6572007-07-22 Robert Millan <rmh@aybabtu.com>
658
659 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_flag): Add
660 GRUB_IEEE1275_FLAG_BROKEN_OUTPUT flag.
661 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options): Set this
662 flag when running on SmartFirmware.
663 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Avoid running
664 "output-device output" command when GRUB_IEEE1275_FLAG_BROKEN_OUTPUT
665 was set.
666
667 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
668 Increase partno when GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS flag is set,
669 rather than decreasing it.
670
671 * util/i386/pc/grub-setup.c (setup): When embedding is required, but
672 there's not enough space to do it, fail in the same way as when it
673 can't be done because there are no partitions.
674
675 * util/powerpc/ieee1275/grub-install.in: Improve error message shown
676 when nvsetenv failed.
677
969c02ec 6782007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
679
680 * conf/i386-pc.rmk (CLEANFILES): Removed for grub-mkrescue,
681 because this rule is automatically generated.
682 (grub-mkrescue): Removed for the same reason as above.
683
5a79f472 6842007-07-22 Yoshinori K. Okuji <okuji@enbug.org>
685
686 Migrate to GNU General Public License Version 3.
687
688 * COPYING: Replaced with the plain text version of GPLv3.
689
690 * config.guess: Updated from gnulib.
691 * config.sub: Likewise.
692
693 * geninit.sh: Output a GPLv3 copyright notice.
694 * geninitheader.sh: Likewise.
695 * genmodsrc.sh: Likewise.
696 * gensymlist.sh.in: Likewise.
697
698 * boot/i386/pc/boot.S: Upgraded to GPLv3.
699 * boot/i386/pc/diskboot.S: Likewise.
700 * boot/i386/pc/pxeboot.S: Likewise.
701 * commands/blocklist.c: Likewise.
702 * commands/boot.c: Likewise.
703 * commands/cat.c: Likewise.
704 * commands/cmp.c: Likewise.
705 * commands/configfile.c: Likewise.
706 * commands/echo.c: Likewise.
707 * commands/help.c: Likewise.
708 * commands/ls.c: Likewise.
709 * commands/search.c: Likewise.
710 * commands/terminal.c: Likewise.
711 * commands/test.c: Likewise.
712 * commands/videotest.c: Likewise.
713 * commands/i386/cpuid.c: Likewise.
714 * commands/i386/pc/halt.c: Likewise.
715 * commands/i386/pc/play.c: Likewise.
716 * commands/i386/pc/reboot.c: Likewise.
717 * commands/i386/pc/vbeinfo.c: Likewise.
718 * commands/i386/pc/vbetest.c: Likewise.
719 * commands/ieee1275/halt.c: Likewise.
720 * commands/ieee1275/reboot.c: Likewise.
721 * commands/ieee1275/suspend.c: Likewise.
722 * disk/loopback.c: Likewise.
723 * disk/lvm.c: Likewise.
724 * disk/raid.c: Likewise.
725 * disk/efi/efidisk.c: Likewise.
726 * disk/i386/pc/biosdisk.c: Likewise.
727 * disk/ieee1275/ofdisk.c: Likewise.
728 * font/manager.c: Likewise.
729 * fs/affs.c: Likewise.
730 * fs/ext2.c: Likewise.
731 * fs/fat.c: Likewise.
732 * fs/fshelp.c: Likewise.
733 * fs/hfs.c: Likewise.
734 * fs/hfsplus.c: Likewise.
735 * fs/iso9660.c: Likewise.
736 * fs/jfs.c: Likewise.
737 * fs/minix.c: Likewise.
738 * fs/sfs.c: Likewise.
739 * fs/ufs.c: Likewise.
740 * fs/xfs.c: Likewise.
741 * hello/hello.c: Likewise.
742 * include/grub/acorn_filecore.h: Likewise.
743 * include/grub/arg.h: Likewise.
744 * include/grub/bitmap.h: Likewise.
745 * include/grub/boot.h: Likewise.
746 * include/grub/cache.h: Likewise.
747 * include/grub/device.h: Likewise.
748 * include/grub/disk.h: Likewise.
749 * include/grub/dl.h: Likewise.
750 * include/grub/elfload.h: Likewise.
751 * include/grub/env.h: Likewise.
752 * include/grub/err.h: Likewise.
753 * include/grub/file.h: Likewise.
754 * include/grub/font.h: Likewise.
755 * include/grub/fs.h: Likewise.
756 * include/grub/fshelp.h: Likewise.
757 * include/grub/gzio.h: Likewise.
758 * include/grub/hfs.h: Likewise.
759 * include/grub/kernel.h: Likewise.
760 * include/grub/loader.h: Likewise.
761 * include/grub/lvm.h: Likewise.
762 * include/grub/misc.h: Likewise.
763 * include/grub/mm.h: Likewise.
764 * include/grub/net.h: Likewise.
765 * include/grub/normal.h: Likewise.
766 * include/grub/parser.h: Likewise.
767 * include/grub/partition.h: Likewise.
768 * include/grub/pc_partition.h: Likewise.
769 * include/grub/raid.h: Likewise.
770 * include/grub/rescue.h: Likewise.
771 * include/grub/script.h: Likewise.
772 * include/grub/setjmp.h: Likewise.
773 * include/grub/symbol.h: Likewise.
774 * include/grub/term.h: Likewise.
775 * include/grub/terminfo.h: Likewise.
776 * include/grub/tparm.h: Likewise.
777 * include/grub/types.h: Likewise.
778 * include/grub/video.h: Likewise.
779 * include/grub/efi/api.h: Likewise.
780 * include/grub/efi/chainloader.h: Likewise.
781 * include/grub/efi/console.h: Likewise.
782 * include/grub/efi/console_control.h: Likewise.
783 * include/grub/efi/disk.h: Likewise.
784 * include/grub/efi/efi.h: Likewise.
785 * include/grub/efi/pe32.h: Likewise.
786 * include/grub/efi/time.h: Likewise.
787 * include/grub/i386/linux.h: Likewise.
788 * include/grub/i386/setjmp.h: Likewise.
789 * include/grub/i386/types.h: Likewise.
790 * include/grub/i386/efi/kernel.h: Likewise.
791 * include/grub/i386/efi/loader.h: Likewise.
792 * include/grub/i386/efi/time.h: Likewise.
793 * include/grub/i386/pc/biosdisk.h: Likewise.
794 * include/grub/i386/pc/boot.h: Likewise.
795 * include/grub/i386/pc/chainloader.h: Likewise.
796 * include/grub/i386/pc/console.h: Likewise.
797 * include/grub/i386/pc/init.h: Likewise.
798 * include/grub/i386/pc/kernel.h: Likewise.
799 * include/grub/i386/pc/loader.h: Likewise.
800 * include/grub/i386/pc/memory.h: Likewise.
801 * include/grub/i386/pc/multiboot.h: Likewise.
802 * include/grub/i386/pc/serial.h: Likewise.
803 * include/grub/i386/pc/time.h: Likewise.
804 * include/grub/i386/pc/vbe.h: Likewise.
805 * include/grub/i386/pc/vbeblit.h: Likewise.
806 * include/grub/i386/pc/vbefill.h: Likewise.
807 * include/grub/i386/pc/vbeutil.h: Likewise.
808 * include/grub/i386/pc/vga.h: Likewise.
809 * include/grub/ieee1275/ieee1275.h: Likewise.
810 * include/grub/ieee1275/ofdisk.h: Likewise.
811 * include/grub/powerpc/libgcc.h: Likewise.
812 * include/grub/powerpc/setjmp.h: Likewise.
813 * include/grub/powerpc/types.h: Likewise.
814 * include/grub/powerpc/ieee1275/biosdisk.h: Likewise.
815 * include/grub/powerpc/ieee1275/console.h: Likewise.
816 * include/grub/powerpc/ieee1275/ieee1275.h: Likewise.
817 * include/grub/powerpc/ieee1275/kernel.h: Likewise.
818 * include/grub/powerpc/ieee1275/loader.h: Likewise.
819 * include/grub/powerpc/ieee1275/multiboot.h: Likewise.
820 * include/grub/powerpc/ieee1275/time.h: Likewise.
821 * include/grub/powerpc/ieee1275/util/biosdisk.h: Likewise.
822 * include/grub/sparc64/libgcc.h: Likewise.
823 * include/grub/sparc64/setjmp.h: Likewise.
824 * include/grub/sparc64/types.h: Likewise.
825 * include/grub/sparc64/ieee1275/console.h: Likewise.
826 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
827 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
828 * include/grub/sparc64/ieee1275/time.h: Likewise.
829 * include/grub/util/biosdisk.h: Likewise.
830 * include/grub/util/getroot.h: Likewise.
831 * include/grub/util/lvm.h: Likewise.
832 * include/grub/util/misc.h: Likewise.
833 * include/grub/util/raid.h: Likewise.
834 * include/grub/util/resolve.h: Likewise.
835 * io/gzio.c: Likewise.
836 * kern/device.c: Likewise.
837 * kern/disk.c: Likewise.
838 * kern/dl.c: Likewise.
839 * kern/elf.c: Likewise.
840 * kern/env.c: Likewise.
841 * kern/err.c: Likewise.
842 * kern/file.c: Likewise.
843 * kern/fs.c: Likewise.
844 * kern/loader.c: Likewise.
845 * kern/main.c: Likewise.
846 * kern/misc.c: Likewise.
847 * kern/mm.c: Likewise.
848 * kern/parser.c: Likewise.
849 * kern/partition.c: Likewise.
850 * kern/rescue.c: Likewise.
851 * kern/term.c: Likewise.
852 * kern/efi/efi.c: Likewise.
853 * kern/efi/init.c: Likewise.
854 * kern/efi/mm.c: Likewise.
855 * kern/i386/dl.c: Likewise.
856 * kern/i386/efi/init.c: Likewise.
857 * kern/i386/efi/startup.S: Likewise.
858 * kern/i386/pc/init.c: Likewise.
859 * kern/i386/pc/lzo1x.S: Likewise.
860 * kern/i386/pc/startup.S: Likewise.
861 * kern/ieee1275/ieee1275.c: Likewise.
862 * kern/powerpc/cache.S: Likewise.
863 * kern/powerpc/dl.c: Likewise.
864 * kern/powerpc/ieee1275/cmain.c: Likewise.
865 * kern/powerpc/ieee1275/crt0.S: Likewise.
866 * kern/powerpc/ieee1275/init.c: Likewise.
867 * kern/powerpc/ieee1275/openfw.c: Likewise.
868 * kern/sparc64/cache.S: Likewise.
869 * kern/sparc64/dl.c: Likewise.
870 * kern/sparc64/ieee1275/init.c: Likewise.
871 * kern/sparc64/ieee1275/openfw.c: Likewise.
872 * loader/efi/chainloader.c: Likewise.
873 * loader/efi/chainloader_normal.c: Likewise.
874 * loader/i386/efi/linux.c: Likewise.
875 * loader/i386/efi/linux_normal.c: Likewise.
876 * loader/i386/pc/chainloader.c: Likewise.
877 * loader/i386/pc/chainloader_normal.c: Likewise.
878 * loader/i386/pc/linux.c: Likewise.
879 * loader/i386/pc/linux_normal.c: Likewise.
880 * loader/i386/pc/multiboot.c: Likewise.
881 * loader/i386/pc/multiboot_normal.c: Likewise.
882 * loader/powerpc/ieee1275/linux.c: Likewise.
883 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
884 * normal/arg.c: Likewise.
885 * normal/cmdline.c: Likewise.
886 * normal/command.c: Likewise.
887 * normal/completion.c: Likewise.
888 * normal/execute.c: Likewise.
889 * normal/function.c: Likewise.
890 * normal/lexer.c: Likewise.
891 * normal/main.c: Likewise.
892 * normal/menu.c: Likewise.
893 * normal/menu_entry.c: Likewise.
894 * normal/misc.c: Likewise.
895 * normal/parser.y: Likewise.
896 * normal/script.c: Likewise.
897 * normal/i386/setjmp.S: Likewise.
898 * normal/powerpc/setjmp.S: Likewise.
899 * normal/sparc64/setjmp.S: Likewise.
900 * partmap/acorn.c: Likewise.
901 * partmap/amiga.c: Likewise.
902 * partmap/apple.c: Likewise.
903 * partmap/gpt.c: Likewise.
904 * partmap/pc.c: Likewise.
905 * partmap/sun.c: Likewise.
906 * term/gfxterm.c: Likewise.
907 * term/terminfo.c: Likewise.
908 * term/efi/console.c: Likewise.
909 * term/i386/pc/console.c: Likewise.
910 * term/i386/pc/serial.c: Likewise.
911 * term/i386/pc/vesafb.c: Likewise.
912 * term/i386/pc/vga.c: Likewise.
913 * term/ieee1275/ofconsole.c: Likewise.
914 * util/biosdisk.c: Likewise.
915 * util/console.c: Likewise.
916 * util/genmoddep.c: Likewise.
917 * util/getroot.c: Likewise.
918 * util/grub-emu.c: Likewise.
919 * util/grub-mkdevicemap.c: Likewise.
920 * util/grub-probe.c: Likewise.
921 * util/lvm.c: Likewise.
922 * util/misc.c: Likewise.
923 * util/raid.c: Likewise.
924 * util/resolve.c: Likewise.
925 * util/update-grub.in: Likewise.
926 * util/update-grub_lib.in: Likewise.
927 * util/grub.d/00_header.in: Likewise.
928 * util/grub.d/10_hurd.in: Likewise.
929 * util/grub.d/10_linux.in: Likewise.
930 * util/i386/efi/grub-install.in: Likewise.
931 * util/i386/efi/grub-mkimage.c: Likewise.
932 * util/i386/pc/grub-install.in: Likewise.
933 * util/i386/pc/grub-mkimage.c: Likewise.
934 * util/i386/pc/grub-mkrescue.in: Likewise.
935 * util/i386/pc/grub-setup.c: Likewise.
936 * util/i386/pc/misc.c: Likewise.
937 * util/powerpc/ieee1275/grub-install.in: Likewise.
938 * util/powerpc/ieee1275/grub-mkimage.c: Likewise.
939 * util/powerpc/ieee1275/misc.c: Likewise.
940 * video/bitmap.c: Likewise.
941 * video/video.c: Likewise.
942 * video/i386/pc/vbe.c: Likewise.
943 * video/i386/pc/vbeblit.c: Likewise.
944 * video/i386/pc/vbefill.c: Likewise.
945 * video/i386/pc/vbeutil.c: Likewise.
946 * video/readers/tga.c: Likewise.
947
3572d015 9482007-07-02 Robert Millan <rmh@aybabtu.com>
949
950 * conf/i386-efi.rmk: Replace obsolete reference to
951 util/i386/pc/biosdisk.c with util/biosdisk.c, and util/i386/pc/getroot.c
952 with util/getroot.c.
953 * conf/powerpc-ieee1275.rmk: Likewise.
954 * conf/sparc64-ieee1275.rmk: Likewise.
955
956 * util/grub-emu.c (main): Fix unchecked pointer handling.
957
2c2a681b 9582007-07-02 Robert Millan <rmh@aybabtu.com>
959
960 * util/i386/efi/grub-install.in: Allow `grub_probe --target=partmap'
961 invocation to fail, in order to support partition-less media.
962
963 * util/i386/pc/grub-install.in: Likewise.
964
965 * util/powerpc/ieee1275/grub-install.in: Use grub-probe to determine
966 which fs or partmap modules are needed (akin to its sister scripts).
967
968 Also use grub-probe to get rid of unportable /proc/mounts check.
969
970 Print the same informational message that the other scripts do, before
971 exitting.
972
6193defe 9732007-06-23 Robert Millan <rmh@aybabtu.com>
974
975 * util/update-grub_lib.in (font_path): New function. Determine wether
976 a font file can be found and, if so, echo the GRUB path to it.
977
978 * util/update-grub.in: Handle multiple terminals depending on user
979 input, platform availability and font file presence. Propagate
980 variables of our findings to /etc/grub.d/ children.
981
982 * util/grub.d/00_header.in: Handle multiple terminals, based on
983 environment setup by update-grub.
984
eface1dc 9852007-06-23 Robert Millan <rmh@aybabtu.com>
986
ba50d28f 987 * conf/i386-pc.rmk (pkgdata_MODULES): Add serial.mod.
eface1dc 988
bf697e28 9892007-06-21 Robert Millan <rmh@aybabtu.com>
990
991 * include/grub/i386/pc/kernel.h: Define GRUB_KERNEL_MACHINE_DATA_END to
992 indicate end of data section in kernel image.
993 * include/grub/i386/efi/kernel.h: Define GRUB_KERNEL_MACHINE_PREFIX and
994 GRUB_KERNEL_MACHINE_DATA_END.
995
996 * kern/i386/pc/startup.S: Do not initialize grub_prefix, only reserve
997 space for it.
998 * kern/i386/efi/startup.S: Likewise.
999
1000 * util/i386/pc/grub-mkimage.c: Initialize grub_prefix to /boot/grub
1001 during image generation. Implement --prefix option to override this
1002 patch.
1003 * util/i386/efi/grub-mkimage.c: Likewise.
1004
1005 * util/update-grub_lib.in (convert_system_path_to_grub_path): Split
1006 code to make path relative to its root into a separate function.
1007
1008 * util/i386/pc/grub-install.in: Use newly provided
1009 make_system_path_relative_to_its_root() to convert ${grubdir}, then
1010 pass the result to grub-install --prefix.
1011
baa574b4 10122007-06-13 Robert Millan <rmh@aybabtu.com>
1013
1014 * include/grub/util/misc.h: Define DEFAULT_DIRECTORY and
1015 DEFAULT_DEVICE_MAP.
1016 * util/grub-emu.c: Use above definitions from misc.h instead of
1017 defining them.
1018 * util/grub-mkdevicemap.c: Likewise.
1019 * util/i386/pc/grub-setup.c: Likewise.
1020 * util/grub-probe.c: Likewise.
1021 (probe): Abort with grub_util_error() when either
1022 grub_guess_root_device or grub_util_get_grub_dev fails.
1023
0215dcbf 10242007-06-12 Robert Millan <rmh@aybabtu.com>
1025
1026 * normal/command.c (grub_command_execute): Use NULL rather than 0 for
1027 "pager" assignment.
1028 * util/biosdisk.c (grub_util_biosdisk_get_grub_dev): Likewise for
1029 "pcdata".
1030 * util/grub-probe.c (probe): Likewise for "drive_name".
1031
8af2ab7b 10322007-06-11 Robert Millan <rmh@aybabtu.com>
1033
1034 * util/i386/pc/grub-mkrescue.in: Pad both floppy images with zeroes,
1035 not just the cdrom one.
1036
59d31694 10372007-06-11 Robert Millan <rmh@aybabtu.com>
1038
1039 * util/i386/pc/grub-mkrescue.in: Add "set -e".
1040 Add --pkglibdir=DIR option to override pkglibdir.
1041 Mention --image-type=TYPE in help output.
1042 Fix --grub-mkimage (it was a no-op).
1043 Abort gracefuly when no parameter is given.
1044
7ee367e4 10452007-06-11 Robert Millan <rmh@aybabtu.com>
1046
1047 * util/i386/pc/grub-mkrescue.in: New file.
1048 * conf/i386-pc.rmk: Add its build declarations. Put it in bin_SCRIPTS.
1049 * Makefile.in: Handle bin_SCRIPTS.
1050
29b0ed46 10512007-06-10 Vesa Jaaskelainen <chaac@nic.fi>
1052
1053 * term/gfxterm.c (grub_gfxterm_init): Added support for specifying
1054 list of video modes.
1055
c0f90770 10562007-06-06 Robert Millan <rmh@aybabtu.com>
1057
1058 * util/update-grub_lib.in (convert_system_path_to_grub_path): Abort if
1059 file doesn't exist, or if it is in a filesystem grub can't read.
1060
1061 * util/update-grub.in: Set fallback for GRUB_FS check to "unknown". Do
1062 not abort if GRUB_DRIVE could not be defined. Rearrange generated
1063 header comment to fit in 80 columns when the variables are resolved.
1064
1065 * util/grub.d/00_header.in: Only set root variable when GRUB_DRIVE
1066 could be identified by update-grub. Remove redundant check for
1067 unifont.pff existance (since convert_system_path_to_grub_path now
1068 handles that).
1069
fb36dc26 10702007-06-04 Robert Millan <rmh@aybabtu.com>
1071
1072 * conf/i386-efi.rmk (grub_probe_SOURCES): Add partmap/apple.c.
1073
1074 * conf/i386-pc.rmk (grub_probe_SOURCES): Likewise.
1075
1076 * conf/powerpc-ieee1275.rmk (grub_probe_SOURCES): Add partmap/pc.c.
1077
0c68c93e 10782007-06-04 Robert Millan <rmh@aybabtu.com>
1079
1080 * conf/powerpc-ieee1275.rmk: Enable grub-mkdevicemap and grub-probe.
1081
1082 * include/grub/partition.h: Declare grub_apple_partition_map_init and
1083 grub_apple_partition_map_fini.
1084
1085 * util/biosdisk.c
1086 (grub_util_biosdisk_open): Replace BLKGETSIZE with BLKGETSIZE64 (needed
1087 to access >2 TiB disks).
1088
1089 Print disk->total_sectors with %llu instead of %lu, since this
1090 variable is always 64-bit (prevents wrong disk size from being displayed
1091 on either >2 TiB disk or big-endian CPU).
1092
1093 (grub_util_biosdisk_get_grub_dev): Convert gpt_partition_map handling
1094 into a generic case that supports all (sane) partition maps.
1095
1096 Stop using grub_cpu_to_le32() on dos_part / bsd_part since it actually
1097 breaks big-endian.
1098
1099 * util/grub-probe.c: Call grub_apple_partition_map_init() before probe()
1100 and grub_apple_partition_map_fini() after that.
1101
0f23eb74 11022007-06-01 Robert Millan <rmh@aybabtu.com>
1103
1104 * util/update-grub.in: Export GRUB_CMDLINE_LINUX.
1105
1106 * util/grub.d/00_header.in: Only enable gfxterm when
1107 convert_system_path_to_grub_path() succeeds.
1108
42c71976 11092007-05-20 Robert Millan <rmh@aybabtu.com>
1110
1111 * util/update-grub_lib.in: New file.
1112 * DISTLIST: Add update-grub_lib.in.
1113 * conf/common.rmk: Generate update-grub_lib and install it in
1114 $(lib_DATA).
1115 * Makefile.in: Add install routine for $(lib_DATA).
1116
1117 * util/grub.d/00_header.in: Use convert_system_path_to_grub_path()
1118 function provided by update-grub_lib to support arbitrary paths of
1119 unifont.pff.
1120 * util/update-grub.in: Use convert_system_path_to_grub_path() to
1121 initialize GRUB_DRIVE_BOOT and GRUB_DRIVE_BOOT_GRUB variables.
1122
5beb2291 11232007-05-19 Robert Millan <rmh@aybabtu.com>
1124
1125 * commands/i386/cpuid.c: New module.
1126 * DISTLIST: Add it.
1127 * conf/i386-efi.rmk: Enable cpuid.mod.
1128 * conf/i386-pc.rmk: Likewise.
1129
7262eca1 11302007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
1131
1132 * kern/disk.c (grub_disk_read): Check return value of
1133 grub_realloc().
1134
260ba823 11352007-05-18 Jeroen Dekkers <jeroen@dekkers.cx>
1136
1137 * util/getroot.c (grub_util_get_grub_dev): Support partitionable
1138 arrays.
1139 * disk/raid.c (grub_raid_open): Likewise.
1140
1ecb6cf2 11412007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
1142
1143 * util/biosdisk.c (linux_find_partition): Allocate real_dev on the
1144 stack instead of on the heap.
1145
1146 * kern/disk.c (grub_disk_read): Make sure tmp_buf is big enough
1147 before doing a read on it.
1148
1149 * configure.ac: Only use -fno-stack-protector for the target
1150 environment.
1151
21c8cbb1 11522007-05-17 Jeroen Dekkers <jeroen@dekkers.cx>
1153
1154 * video/i386/pc/vbe.c (grub_video_vbe_create_render_target): Add
1155 __attribute_ ((unused)) to mode_type argument.
1156
1157 * util/getroot.c (grub_guess_root_device): Fix #endif.
1158
1159 * kern/misc.c (memcmp): Fix prototype.
1160
1161 * include/grub/partition.h [GRUB_UTIL]
1162 (grub_gpt_partition_map_init): Add prototype.
1163 (grub_gpt_partition_map_fini): Likewise.
1164
1165 * fs/jfs.c (struct grub_jfs_inode): Put __attribute__ ((packed)
1166 at the right place.
1167
1168 * fs/fat.c (grub_fat_mount): Replace ~0UL with ~0U.
1169 (grub_fat_read_data): Likewise.
1170 (grub_fat_find_dir): Likewise.
1171
1172 * font/manager.c (find_glyph): Make table a const.
1173 (grub_font_get_glyph): Remove bitmap from if statement.
1174
849d55d3 11752007-05-16 Jeroen Dekkers <jeroen@dekkers.cx>
1176
1177 * util/getroot.c (grub_guess_root_device): Remove RAID and LVM
1178 code, first search for device in /dev/mapper, then in /dev.
1179 (grub_util_get_grub_dev): New function.
1180 * include/grub/util/getroot.h (grub_util_get_grub_dev): Add
1181 prototype.
1182 * util/grub-probe.c (probe): Remove check for RAID, call
1183 grub_util_get_grub_dev() instead of
1184 grub_util_biosdisk_get_grub_dev().
1185 * util/grub-emu.c (main): Call grub_util_get_grub_dev() instead of
1186 grub_util_biosdisk_get_grub_dev().
1187 * util/i386/pc/grub-setup.c (main): Likewise.
1188
8fff7c2f 11892007-05-16 Robert Millan <rmh@aybabtu.com>
1190
1191 * DISTLIST: Update for the latest changes.
1192 * conf/i386-pc.rmk: Use the new paths for util/getroot.c,
1193 util/grub-mkdevicemap.c, util/grub-probe.c and util/biosdisk.c.
1194 * util/grub-emu.c: Replace grub/i386/pc/util/biosdisk.h with
1195 grub/util/biosdisk.h.
1196 * util/i386/pc/grub-setup.c: Replace grub/machine/util/biosdisk.h with
1197 grub/util/biosdisk.h.
1198
48e12b52 11992007-05-16 Robert Millan <rmh@aybabtu.com>
1200
1201 * util/grub.d/00_header.in: Set default gfxmode to `640x480'.
1202
46b9d128 12032007-05-16 Robert Millan <rmh@aybabtu.com>
1204
1205 * util/i386/efi/grub-install.in: New.
1206 * conf/i386-efi.rmk: Enable grub-mkdevicemap, grub-probe and the
1207 newly added grub-install.
1208 * util/biosdisk.c: Remove unnecessary grub/machine/biosdisk.h
1209 include.
1210 * util/getroot.c: Replace grub/i386/pc/util/biosdisk.h with
1211 grub/util/biosdisk.h.
1212 * util/grub-probe.c: Replace grub/machine/util/biosdisk.h with
1213 grub/util/biosdisk.h.
1214
2d1a40a9 12152007-05-16 Robert Millan <rmh@aybabtu.com>
1216
1217 * include/grub/i386/pc/util/biosdisk.h: Moved to ...
1218 * include/grub/util/biosdisk.h: ... here.
1219 * util/i386/pc/biosdisk.c: Moved to ...
1220 * util/biosdisk.c: ... here.
1221 * util/i386/pc/getroot.c: Moved to ...
1222 * util/getroot.c: ... here.
1223 * util/i386/pc/grub-mkdevicemap.c: Moved to ...
1224 * util/grub-mkdevicemap.c: ... here.
1225 * util/i386/pc/grub-probe.c: Moved to ...
1226 * util/grub-probe.c: ... here.
1227
9e26e3bc 12282007-05-15 Robert Millan <rmh@aybabtu.com>
1229
1230 * util/update-grub.in: Remove duplicated line in grub.cfg header
1231 message.
1232
57f96397 12332007-05-13 Robert Millan <rmh@aybabtu.com>
1234
1235 * util/update-grub.in: Fix a few assumptions about the devices holding
1236 /, /boot and /boot/grub being the same.
1237 * util/grub.d/00_header.in: Likewise.
1238 * util/grub.d/10_hurd.in: Likewise.
1239 * util/grub.d/10_linux.in: Likewise.
1240
1241 * util/grub.d/10_linux.in: Implement Linux image sorting with arbitrary
1242 patterns. Use that to define the `.old' suffix as older than `'.
1243
1244 * util/grub.d/00_header.in: Set default gfxmode to `800x600x16'.
1245
1246 * util/update-grub.in: Add a reference to ${sysconfdir}/default/grub in
1247 the grub.cfg header message.
1248
2e610d62 12492007-05-11 Robert Millan <rmh@aybabtu.com>
1250
1251 * util/update-grub.in: Create device.map if it doesn't already exist,
1252 before attempting to run grub-probe.
1253 Check for grub-probe and grub-mkdevicemap with the same code
1254 grub-install is using.
1255 Remove test mode.
1256
3f6a10ef 12572007-05-09 Jeroen Dekkers <jeroen@dekkers.cx>
1258
1259 * Makefile.in: Add the datarootdir autoconf variable.
1260
02e7b75e 12612007-05-09 Robert Millan <rmh@aybabtu.com>
1262
1263 * util/i386/pc/grub-probe.c (probe): When detecting partition map,
1264 fail gracefuly if dev->disk->partition == NULL.
1265
75f396cc 12662007-05-07 Robert Millan <rmh@aybabtu.com>
1267
1268 * util/i386/pc/grub-probe.c: Add `grub-probe -t partmap' parameter to
1269 determine partition map module.
1270 * util/i386/pc/grub-install.in: Use this feature to decide which
1271 partition module to load, instead of hardcoding pc and gpt.
1272
da65cb36 12732007-05-07 Robert Millan <rmh@aybabtu.com>
1274
1275 * Makefile.in: Fix assumption that $(srcdir) has a trailing slash when
1276 source directory differs from build directory.
1277
b57d6a91 12782007-05-05 Robert Millan <rmh@aybabtu.com>
1279
1280 * util/powerpc/ieee1275/grub-install.in: Fix syntax error in pkglibdir
1281 initialisation.
1282
509d00f1 12832007-05-05 Robert Millan <rmh@aybabtu.com>
1284
1285 * util/update-grub.in: Create ${grub_prefix} if it doesn't exist.
1286
c48f23ef 12872007-05-05 Robert Millan <rmh@aybabtu.com>
1288
1289 * util/grub.d/10_linux.in: Allow the administrator to insert Linux
1290 command-line arguments via ${GRUB_CMDLINE_LINUX}.
1291
20b97658 12922007-05-05 Robert Millan <rmh@aybabtu.com>
1293
1294 * conf/i386-pc.rmk (grub_setup_SOURCES): Add partmap/gpt.c.
1295 (grub_probe_SOURCES): Likewise.
1296 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): Detect
1297 GPT and initialize dos_part and bsd_part accordingly.
1298 * util/i386/pc/grub-setup.c (setup): Ditto for install_dos_part and
1299 install_bsd_part.
1300 (main): Activate gpt module for use during partition identification,
1301 and deactivate it afterwards.
1302 * util/i386/pc/grub-install.in: Add gpt module to core.img.
1303 * util/i386/pc/grub-probe.c (main): Activate gpt module for use during
1304 partition identification, and deactivate it afterwards.
1305
99123174 13062007-05-05 Robert Millan <rmh@aybabtu.com>
1307
1308 * term/i386/pc/console.c (grub_console_fini): Call
1309 grub_term_set_current() before grub_term_unregister().
1310
ebd97f6e 13112007-05-04 Robert Millan <rmh@aybabtu.com>
1312
1313 * DISTLIST: Add util/update-grub.in, util/grub.d/00_header.in,
1314 util/grub.d/10_hurd.in, util/grub.d/10_linux.in and util/grub.d/README.
1315 * Makefile.in: Build update-grub_SCRIPTS. Install update-grub_SCRIPTS
1316 and update-grub_DATA.
1317 * conf/common.rmk: Build and install update-grub components.
1318 * conf/common.mk: Regenerate.
1319 * util/update-grub.in: New. Core of update-grub.
1320 * util/grub.d/00_header.in: New. Generates grub.cfg header.
1321 * util/grub.d/10_hurd.in: New. Generates boot entries for the Hurd.
1322 * util/grub.d/10_linux.in: New. Generates boot entries for Linux.
1323 * util/grub.d/README: New. Document grub.d directory layout.
1324
b06a264d 13252007-05-01 Robert Millan <rmh@aybabtu.com>
1326
1327 * util/grub-emu.c: Move initialization functions
1328 grub_util_biosdisk_init() and grub_init_all() before
1329 grub_util_biosdisk_get_grub_dev(), which relies on them.
1330
41f0050e 13312007-04-19 Robert Millan <rmh@aybabtu.com>
1332
1333 * util/powerpc/ieee1275/grub-install.in: Initialize ${bindir}, since
1334 it is used later.
1335
04582bb3 13362007-04-18 Jerone Young <jerone@gmail.com>
1337
1338 * kernel/elf.c: Add missing parenthesis for conditional statement
1339 stanza.
1340
08db4632 13412007-04-10 Jerone Young <jerone@gmail.com>
49892fdf 1342
08db4632 1343 * util/i386/pc/getroot.c: Update so that if root device is /dev/root ,
1344 continue on and look for device node with real device name.
1345
801b76be 13462007-04-10 Jerone Young <jerone@gmail.com>
1d543c3e 1347
1348 * configure.ac: Add argument for autoconf to use tranformation
1349 ability.
1350 * Makefile.in: Add autoconf package transformation code.
1351 * util/i386/pc/grub-install.in: Likewise.
1352 * util/powerpc/ieee1275/grub-install.in: Likewise.
1353
6795c4e1 13542007-03-19 Yoshinori K. Okuji <okuji@enbug.org>
1355
1356 * fs/ext2.c (EXT2_GOOD_OLD_REVISION): New macro.
1357 (EXT2_GOOD_OLD_INODE_SIZE): Likewise.
1358 (EXT2_REVISION): Likewise.
1359 (EXT2_INODE_SIZE): Likewise.
1360 (struct grub_ext2_block_group): Added a missing member
1361 "used_dirs".
1362 (grub_ext2_read_inode): Divide by the inode size in a superblock
1363 instead of 128 to obtain INODES_PER_BLOCK.
1364 Use the macro EXT2_INODE_SIZE instead of directly using
1365 SBLOCK->INODE_SIZE.
1366
d70af616 13672007-03-18 Yoshinori K. Okuji <okuji@enbug.org>
1368
1369 * fs/ext2.c (grub_ext2_read_inode): Use the inode size in a
1370 superblock instead of the structure size to compute an
1371 offset. This fixes the problem that GRUB could not read a
1372 filesystem when inode size is different from 128-byte.
1373
3b801603 13742007-03-05 Marco Gerards <marco@gnu.org>
1375
1376 * normal/main.c (read_config_file): When "menu" is not set, create
1377 an initial context.
1378
4785bfe4 13792007-02-21 Hollis Blanchard <hollis@penguinppc.org>
1380
1381 * kern/powerpc/ieee1275/init.c (HEAP_SIZE): Removed.
1382 (HEAP_LIMIT): New macro.
1383 (grub_claim_heap): Claim memory up to `heaplimit'.
1384
a0cbb023 13852007-02-21 Hollis Blanchard <hollis@penguinppc.org>
1386
1387 * conf/powerpc-ieee1275.rmk (kernel_elf_LDFLAGS): Link at 64KB.
1388 * kern/powerpc/ieee1275/init.c (_end): Add declaration.
1389 (_start): Likewise.
1390 (grub_arch_modules_addr): Return address after `_end'.
1391 * util/powerpc/ieee1275/grub-mkimage.c: Include grub/misc.h.
1392 (load_modules): Use new parameter as `p_paddr' and `p_vaddr'.
1393 (add_segments): Calculate `_end' from phdr size and location.
1394 (ALIGN_UP): Moved to ...
1395 * include/grub/misc.h: here.
1396 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MOD_ALIGN):
1397 New macro.
1398 (GRUB_IEEE1275_MODULE_BASE): Removed.
1399
fd7d8eba 14002007-02-20 Hollis Blanchard <hollis@penguinppc.org>
1401
1402 * kern/powerpc/ieee1275/openfw.c (grub_available_iterate): Correct
1403 loop boundary.
1404
9b09e6fc 14052007-02-20 Hollis Blanchard <hollis@penguinppc.org>
1406
1407 * include/grub/elfload.h (grub_elf32_load_hook_t): Return grub_err_t.
1408 All users updated.
1409 (grub_elf64_load_hook_t): Likewise.
1410 * kern/elf.c: Call `grub_error_push' before `grub_error'. Improve
1411 debug output.
1412
3ce27299 14132007-02-20 Hollis Blanchard <hollis@penguinppc.org>
1414
1415 * kern/mm.c: Update copyright.
1416 (grub_mm_debug): Correct syntax error.
1417 (grub_mm_dump_free): New function.
1418 (grub_debug_free): Call `grub_free'.
1419 * include/grub/mm.h: Update copyright.
1420 (grub_mm_dump_free): Add declaration.
1421
077d5fee 14222007-02-12 Hollis Blanchard <hollis@penguinppc.org>
1423
1424 * include/grub/ieee1275/ieee1275.h: Update copyright.
1425 * kern/powerpc/ieee1275/init.c: Likewise.
1426 * kern/powerpc/ieee1275/openfw.c: Likewise.
1427
1428 * loader/powerpc/ieee1275/linux.c: Likewise.
1429 * include/grub/elfload.h: Likewise.
1430 * kern/elf.c: Likewise.
1431 (grub_elf32_load): Pass `base' and `size' parameters. Update all
1432 callers.
1433 (grub_elf64_load): Likewise.
1434 (grub_elf32_load_segment): Move to a nested function.
1435 (grub_elf64_load_segment): Likewise.
1436
dc946850 14372007-02-12 Hollis Blanchard <hollis@penguinppc.org>
1438
1439 * include/grub/ieee1275/ieee1275.h (grub_available_iterate): New
1440 prototype.
1441 * kern/powerpc/ieee1275/init.c (grub_heap_start): Removed.
1442 (grub_heap_len): Likewise.
1443 (HEAP_SIZE): New macro.
1444 (grub_claim_heap): New function.
1445 (grub_machine_init): Don't claim heap directly. Call
1446 `grub_claim_heap'.
1447 * kern/powerpc/ieee1275/openfw.c: Include alloca.h.
1448 (grub_available_iterate): New function.
1449
baa2a121 14502007-02-03 Thomas Schwinge <tschwinge@gnu.org>
1451
1452 * aclocal.m4 (grub_CHECK_STACK_PROTECTOR): New definition.
1453 * configure.ac: Use it for testing the HOST and TARGET compilers.
1454
4fe9862e 14552006-12-13 Thomas Schwinge <tschwinge@gnu.org>
1456
1457 * Makefile.in (enable_grub_emu): New variable.
1458 * configure.ac (--enable-grub-emu): New option.
1459 Do the checks for (n)curses only if `--enable-grub-emu' is requested.
1460 * conf/i386-efi.rmk (sbin_UTILITIES): Add `grub-emu' only if requested.
1461 * conf/i386-pc.rmk: Likewise.
1462 * conf/powerpc-ieee1275.rmk: Likewise.
1463 * conf/sparc64-ieee1275.rmk (bin_UTILITIES): Likewise.
1464
a8aa5762 14652006-12-12 Marco Gerards <marco@gnu.org>
1466
1467 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_MENU'.
1468
1469 * kern/env.c (grub_env_unset): Don't free the member `value' when
1470 the type is GRUB_ENV_VAR_DATA, in this case it's a user defined
1471 pointer.
1472
1473 * normal/main.c (current_menu): Removed.
1474 (free_menu): Unset the `menu' environment variable.
1475 (grub_normal_menu_addentry): Make use of the environment variable
1476 `menu', instead of using the global `current_menu'. Allocate
1477 memory for the sourcecode of this entry.
1478 (read_config_file): New argument `nested', changed all callers.
1479 Only in the case of a new context, initialize a new menu. Set the
1480 `menu' environment variable.
1481 (grub_normal_execute): Don't set and unset the environment
1482 variable `menu' here anymore. Only free the menu when leaving the
1483 context.
1484
1485 * util/i386/pc/biosdisk.c (linux_find_partition): Fixed a memory
1486 leak.
1487
957b3a3e 14882006-12-11 Marco Gerards <marco@gnu.org>
1489
1490 * normal/menu_entry.c (run): Fix off by one bug so the last line
1491 is executed. Move the loader check to outside the loop.
1492
ef875714 14932006-12-08 Hollis Blanchard <hollis@penguinppc.org>
1494
1495 * kern/powerpc/ieee1275/cmain.c (cmain): Mark r3 and r4 as `UNUSED'.
1496
4e739985 14972006-11-25 Yoshinori K. Okuji <okuji@enbug.org>
1498
1499 * util/i386/pc/grub-mkimage.c (generate_image): Fix the offset of
1500 the number of sectors. Reported by Andrey Shuvikov
1501 <mr_hyro@yahoo.com>.
1502
790707f2 15032006-11-11 Jeroen Dekkers <jeroen@dekkers.cx>
1504
1505 * kern/disk.c (grub_disk_read): When there is a read error, always
1506 try to read only the necessary data.
1507
1508 * conf/i386-pc.rmk (grub_probe_SOURCES): Add disk/lvm.c and
1509 disk/raid.c.
1510 * include/grub/disk.h [GRUB_UTIL] (grub_raid_init): New
1511 prototype.
1512 [GRUB_UTIL] (grub_raid_fini): Likewise.
1513 [GRUB_UTIL] (grub_lvm_init): Likewise.
1514 [GRUB_UTIL] (grub_lvm_fini): Likewise.
1515 * util/i386/pc/grub-probe.c (probe): Check whether DEVICE_NAME is
1516 RAID device and copy DEVICE_NAME to DRIVE_NAME in that case.
1517 (main): Call grub_raid_init(), grub_lvm_init(), grub_lvm_fini()
1518 and grub_raid_fini().
1519
03e58196 15202006-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
1521
1522 * include/grub/types.h (__unused): Rename to UNUSED.
1523 * kern/elf.c (grub_elf32_size): Use UNUSED instead of __unused.
1524 (grub_elf64_size): Likewise.
1525
ae4f23bf 15262006-11-03 Hollis Blanchard <hollis@penguinppc.org>
1527
1528 * kern/elf.c (grub_elf_file): Call grub_file_seek. Call
1529 grub_error_push and grub_error_pop in the error-handling path.
1530 (grub_elf32_load_segment): Only call grub_file_read with non-zero
1531 length.
1532
2166cc83 15332006-11-03 Hollis Blanchard <hollis@penguinppc.org>
1534
1535 * conf/i386-efi.rmk (grub_emu_SOURCES): Add kern/elf.c.
1536 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
1537 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
1538 (kernel_elf_SOURCES): Likewise.
1539 * conf/i386-efi.rmk (kernel_mod_HEADERS): Add elfload.h and cache.h.
1540 * conf/i386-pc.rmk (kernel_mod_HEADERS): Likewise.
1541 * conf/powerpc-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
1542 * conf/sparc64-ieee1275.rmk (kernel_elf_HEADERS): Likewise.
1543 * conf/common.rmk (pkgdata_MODULES): Add elf.mod.
1544 (elf_mod_SOURCES): New variable.
1545 (elf_mod_CFLAGS): Likewise.
1546 (elf_mod_LDFLAGS): Likewise.
1547 * include/grub/types.h (__unused): New macro.
1548 * include/grub/elfload.h: New file.
1549 * kern/elf.c: Likewise.
1550 * loader/powerpc/ieee1275/linux.c: Include elfload.h.
1551 (ELF32_LOADMASK): New macro.
1552 (ELF64_LOADMASK): Likewise.
1553 (vmlinux): Removed.
1554 (grub_linux_load32): New function.
1555 (grub_linux_load64): Likewise.
1556 (grub_rescue_cmd_linux): Call grub_linux_load32 or grub_linux_load64.
1557 Use grub_elf_t instead of grub_file_t.
1558
a09d5aa5 15592006-11-02 Hollis Blanchard <hollis@penguinppc.org>
1560
1561 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): Add
1562 `catch_result' to struct set_color_args.
1563
d976fc51 15642006-10-28 Yoshinori K. Okuji <okuji@enbug.org>
1565
1566 * normal/menu.c: Include grub/script.h.
1567 * normal/menu_entry.c: Likewise.
1568 * include/grub/normal.h: Do not include grub/script.h.
1569
67507549 15702006-10-27 Hollis Blanchard <hollis@penguinppc.org>
1571
1572 * kern/disk.c (grub_disk_read): Correct debug printf formatting.
1573
69203a99 15742006-10-27 Hollis Blanchard <hollis@penguinppc.org>
1575
1576 * kern/disk.c (grub_disk_open): Print debug messages when opening a
1577 disk.
1578 (grub_disk_close): Print debug messages when closing a disk.
1579 (grub_disk_read): Print debug messages when disk read fails.
1580 * kern/fs.c (grub_fs_probe): Print debug messages when detecting
1581 filesystem type.
1582 * kern/partition.c: Include misc.h.
1583 (grub_partition_iterate): Print debug messages when detecting
1584 partition type.
1585
e2b8278c 15862006-10-27 Hollis Blanchard <hollis@penguinppc.org>
1587
1588 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Return error if `status'
1589 is negative.
1590 * kern/ieee1275/ieee1275.c (IEEE1275_IHANDLE_INVALID): Change to 0.
1591
97b2f2ff 15922006-10-26 Hollis Blanchard <hollis@penguinppc.org>
1593
1594 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_encode_devname):
1595 Reverse GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS test.
1596
6555d655 15972006-10-25 Jeroen Dekkers <jeroen@dekkers.cx>
1598
1599 * disk/lvm.c (grub_lvm_scan_device): Malloc sizeof(*lv) bytes
1600 instead of sizeof(lv). Patch by Michael Guntsche.
1601
4d42b77f 16022006-10-18 Jeroen Dekkers <jeroen@dekkers.cx>
1603
1604 * disk/lvm.c: Rename VGS to VG_LIST.
1605 (grub_lvm_iterate): Change VGS->LV to VG-LV.
1606 (grub_lvm_open): Likewise.
1607 Thanks to Michael Guntsche for finding this bug.
1608
5d74d927 16092006-10-15 Yoshinori K. Okuji <okuji@enbug.org>
1610
1611 * configure.ac (AC_INIT): Bumped to 1.95.
1612
a1bb27e4 16132006-10-14 Robert Millan <rmh@aybabtu.com>
1614
1615 * util/i386/pc/getroot.c (grub_guess_root_device): Don't compare os_dev
1616 with "/dev/.static/dev/md".
1617
e0994b8b 16182006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
1619
1620 * util/i386/pc/grub-probe.c (probe): Print DEVICE_NAME instead of
1621 DRIVE_NAME when grub_util_biosdisk_get_grub_dev fails. Open
1622 DRIVE_NAME instead of DEVICE_NAME. Make sure that DEVICE_NAME and
1623 DRIVE_NAME are always freed.
1624
1625 * util/i386/pc/biosdisk.c (make_device_name): Add one into
1626 DOS_PART, as a DOS partition is counted from one instead of zero
1627 now. Reported by Robert Millan.
1628
ddd5cee9 16292006-10-14 Robert Millan <rmh@aybabtu.com>
1630
1631 * util/i386/pc/getroot.c (grub_guess_root_device): Stop using
1632 grub_util_biosdisk_get_grub_dev to convert system device to GRUB device.
1633 * util/grub-emu.c (main): Use grub_util_biosdisk_get_grub_dev with the
1634 string returned by grub_guess_root_device.
1635 * util/i386/pc/grub-setup.c: Likewise.
1636 * util/i386/pc/grub-probefs.c: Likewise.
1637
1638 * util/i386/pc/grub-probefs.c: Rename to ...
1639 * util/i386/pc/grub-probe.c: ... this.
1640 * DISTLIST: Remove grub-probefs, add grub-probe.
1641 * conf/i386-efi.rmk: Likewise.
1642 * conf/i386-pc.rmk: Likewise.
1643 * util/i386/pc/grub-install.in: Likewise.
1644
1645 * util/i386/pc/grub-probe.c: Add --target=(fs|device|drive) option to
1646 choose which information we want to print.
1647
2b002173 16482006-10-14 Yoshinori K. Okuji <okuji@enbug.org>
1649
1650 * DISTLIST: Added commands/echo.c, disk/lvm.c, disk/raid.c,
1651 include/grub/bitmap.h, include/grub/lvm.h, include/grub/raid.h,
1652 include/grub/i386/pc/vbeutil.h, include/grub/util/lvm.h,
1653 include/grub/util/raid.h, util/lvm.c, util/raid.c, video/bitmap.c,
1654 video/readers/tga.c and video/i386/pc/vbeutil.c.
1655
16562006-10-14 Jeroen Dekkers <jeroen@dekkers.cx>
1657
1658 Added support for RAID and LVM.
1659
1660 * disk/lvm.c: New file.
1661 * disk/raid.c: Likewise.
1662 * include/grub/lvm.h: Likewise.
1663 * include/grub/raid.h: Likewise.
1664 * include/grub/util/lvm.h: Likewise.
1665 * include/grub/util/raid.h: Likewise.
1666 * util/lvm.c: Likewise.
1667 * util/raid.c: Likewise.
1668
1669 * include/grub/disk.h (grub_disk_dev_id): Add
1670 GRUB_DISK_DEVICE_RAID_ID and GRUB_DISK_DEVICE_LVM_ID.
1671 (grub_disk_get_size): New prototype.
1672 * kern/disk.c (grub_disk_open): Check whether grub_partition_probe()
1673 returns a partition.
1674 (grub_disk_get_size): New function.
1675
1676 * kern/i386/pc/init.c (make_install_device): Copy the prefix
1677 verbatim if grub_install_dos_part is -2.
1678
1679 * util/i386/pc/getroot.c (grub_guess_root_device): Support RAID
1680 and LVM devices.
1681
1682 * util/i386/pc/grub-setup.c (setup): New argument
1683 MUST_EMBED. Force embedding of GRUB when the argument is
1684 true. Close FILE before returning.
1685 (main): Add support for RAID and LVM.
1686
1687 * conf/common.rmk: Add RAID and LVM modules.
1688 * conf/i386-pc.rmk (grub_setup_SOURCES): Add util/raid.c and
1689 util/lvm.c.
1690 (grub_emu_SOURCES): Add disk/raid.c and disk/lvm.c.
1691
1692 * kern/misc.c (grub_strstr): New function.
1693 * include/grub/misc.h (grub_strstr): New prototype.
1694
050548d0 16952006-10-10 Tristan Gingold <tristan.gingold@bull.net>
1696
1697 * include/grub/efi/api.h (GRUB_EFI_ERROR_CODE): Long constant.
1698
da849d2d 16992006-10-05 Tristan Gingold <tristan.gingold@bull.net>
1700
1701 * kern/misc.c (grub_strtoull): Guess the base only if not
1702 specified.
1703
97b2f2ff 17042006-10-01 Hollis Blanchard <hollis@penguinppc.org>
4f0acd39 1705
1706 * kern/powerpc/ieee1275/cmain.c (cmain): Remove incomplete Old World
1707 PowerMac support.
1708
97b2f2ff 17092006-10-01 Hollis Blanchard <hollis@penguinppc.org>
fba51f48 1710
1711 * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Cast `size' to long.
1712
1713 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_next_property):
1714 Remove `flags' argument. All callers changed.
1715 * kern/ieee1275/ieee1275.c (IEEE1275_PHANDLE_ROOT): Removed.
1716 (IEEE1275_IHANDLE_INVALID): New variable.
1717 (IEEE1275_CELL_INVALID): New variable.
1718 (grub_ieee1275_finddevice, grub_ieee1275_get_property,
1719 grub_ieee1275_get_property_length, grub_ieee1275_instance_to_package,
1720 grub_ieee1275_package_to_path, grub_ieee1275_instance_to_path,
1721 grub_ieee1275_peer, grub_ieee1275_child, grub_ieee1275_open,
1722 grub_ieee1275_claim, grub_ieee1275_set_property): Error-check return
1723 codes from Open Firmware. All callers updated.
1724 (grub_ieee1275_next_property): Directly return Open Firmware return
1725 code.
1726 * kern/powerpc/ieee1275/cmain.c (grub_ieee1275_find_options):
1727 Standardize error checking from `grub_ieee1275_get_property'.
1728 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Rename
1729 `devalias' to `aliases'. Correct comments. Consolidate error paths.
1730
97b2f2ff 17312006-10-01 Hollis Blanchard <hollis@penguinppc.org>
cc6d3df3 1732
1733 * kern/ieee1275/ieee1275.c (grub_ieee1275_instance_to_path): Rename
1734 `instance_to_package_args' to `instance_to_path_args'.
1735
1736 * kern/powerpc/ieee1275/init.c (grub_machine_init): Use
1737 `grub_ieee1275_chosen'.
1738
1739 * term/ieee1275/ofconsole.c (grub_ofconsole_init): Call
1740 `grub_ieee1275_interpret'.
1741
97b2f2ff 17422006-09-25 Hollis Blanchard <hollis@penguinppc.org>
02bb8acc 1743
1744 * util/powerpc/ieee1275/grub-mkimage.c: Include config.h.
1745
97b2f2ff 17462006-09-25 Hollis Blanchard <hollis@penguinppc.org>
663b72f0 1747
1748 * include/grub/powerpc/libgcc.h (__floatdisf): New prototype.
1749 (__cmpdi): Likewise.
1750
1751 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Pass 0 as
1752 `flags' to `grub_ieee1275_next_property'. Change `pathlen' to type
1753 `grub_ssize_t'.
1754
02bb8acc 1755 * kern/powerpc/ieee1275/cmain.c: Include grub/misc.h.
663b72f0 1756
1757 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Change `actual'
1758 to type `grub_ssize_t'.
1759 (grub_rescue_cmd_linux): Cast -1 to `grub_off_t'.
1760
7f9a8531 17612006-09-22 Marco Gerards <marco@gnu.org>
1762
1763 * normal/script.c (grub_script_create_cmdmenu): Skip leading
1764 newlines.
1765
b5ef1102 17662006-09-22 Marco Gerards <marco@gnu.org>
1767
1768 * commands/echo.c: New file.
1769
1770 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/echo.c'.
1771
1772 * conf/common.rmk (echo_mod_SOURCES): New variable.
1773 (echo_mod_CFLAGS): Likewise.
1774 (echo_mod_LDFLAGS): Likewise.
1775
2cff3677 17762006-09-22 Marco Gerards <marco@gnu.org>
1777
1778 * normal/main.c (get_line): Malloc memory instead of using
1779 preallocated memory. Removed the arguments `cmdline' and
1780 `max_len'. Updated all callers.
1781
6ba4688b 17822006-09-22 Marco Gerards <marco@gnu.org>
1783
1784 * conf/i386-efi.rmk (grub_emu_DEPENDENCIES): New variable.
1785 (normal_mod_DEPENDENCIES): Likewise.
1786
1787 * conf/powerpc-ieee1275.rmk (grub_emu_DEPENDENCIES): Likewise.
1788 (normal_mod_DEPENDENCIES): Likewise.
1789
1790 * conf/sparc64-ieee1275.rmk (normal_mod_DEPENDENCIES): Likewise.
1791
e02ac02c 17922006-09-22 Johan Rydberg <jrydberg@gnu.org>
1793
1794 * genmk.rb: Add DEPENDENCIES variables to modules, utilities, and
1795 programs.
1796 * conf/i386-pc.rmk (grub_emu_DEPENDENCIES): Declare.
1797 (normal_mod_DEPENDENCIES): Likewise.
1798 * conf/i386-pc.mk: Regenerate.
1799 * conf/i386-efi.mk: Likewise
1800 * conf/common.mk: Likewise.
1801 * conf/powerpc-ieee1275.mk: Likewise.
1802 * conf/sparc64-ieee1275.mk: Likewise.
1803
8d252e44 18042006-09-22 Robert Millan <rmh@aybabtu.com>
1805
1806 Sync with i386 version.
1807 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Remove grub-emu, add grub-mkimage.
1808 * conf/powerpc-ieee1275.rmk (sbin_UTILITIES): Remove grub-mkimage, add grub-emu.
1809
209bf7ac 18102006-09-21 Robert Millan <rmh@aybabtu.com>
1811
1812 Import from GRUB Legacy (lib/device.c):
1813 * util/i386/pc/grub-mkdevicemap.c (get_i2o_disk_name): New function.
1814 (init_device_map) [__linux__]: Add support for I2O devices.
1815
6b146090 18162006-09-14 Marco Gerards <marco@gnu.org>
1817
1818 * conf/i386-pc.rmk (COMMON_LDFLAGS): Use `-m32' instead of
1819 `-melf_i386'.
1820
e38600a8 18212006-09-14 Robert Millan <rmh@aybabtu.com>
2952da5d 1822
1823 * util/i386/pc/grub-install.in: Skip menu.lst when removing
1824 /boot/grub/*.lst.
78fa1790 1825
2952da5d 1826 * util/i386/pc/getroot.c: Don't recurse into dotdirs (e.g. ".static").
6b146090 1827
2952da5d 1828 * util/i386/pc/grub-mkdevicemap.c: Make sure the floppy device exists
1829 before adding it to device.map.
1830
01b82a64 18312006-08-15 Johan Rydberg <jrydberg@gnu.org>
1832
1833 * genmk.rb: Let GCC generate dependenceies the first time it
1834 compiles a file; using the -MD option.
1835 * conf/common.mk: Regenerate.
1836 * conf/i386-pc.mk: Likewise.
1837 * conf/i386-efi.mk: Likewise.
1838 * conf/powerpc-ieee1275.mk: Likewise.
1839 * conf/sparc64-ieee1275.mk: Likewise.
1840
1064790d 18412006-08-04 Yoshinori K. Okuji <okuji@enbug.org>
1842
1843 Move the prototypes of grub_setjmp and grub_longjmp to
1844 cpu/setjmp.h, so that each architecture may specify different
1845 attributes.
1846
1847 * include/grub/i386/setjmp.h (grub_setjmp): New prototype.
1848 (grub_longjmp): Likewise.
1849 * include/grub/powerpc/setjmp.h (grub_setjmp): Likewise..
1850 (grub_longjmp): Likewise.
1851 * include/grub/sparc64/setjmp.h (grub_setjmp): Likewise..
1852 (grub_longjmp): Likewise.
1853
1854 * include/grub/setjmp.h [!GRUB_UTIL] (grub_setjmp): Removed.
1855 [!GRUB_UTIL] (grub_longjmp): Removed.
1856
29dda3ed 18572006-08-01 Pelletier Vincent <subdino2004@yahoo.fr>
1858
1859 * kern/ieee1275/ieee1275.c (grub_ieee1275_set_color): IEEE1275
1860 "color!" method does not return any value.
1861
ad2a06ed 18622006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
1863
1864 * include/grub/bitmap.h: New file.
1865
1866 * include/grub/i386/pc/vbeutil.h: Likewise.
1867
1868 * video/bitmap.c: Likewise.
1869
1870 * video/readers/tga.c: Likewise.
1871
1872 * video/i386/pc/vbeutil.c: Likewise.
1873
1874 * commands/videotest.c: Code cleanup and updated to reflect to new
1875 video API.
1876
1877 * term/gfxterm.c: Likewise.
1878
1879 * video/video.c: Likewise.
1880
1881 * conf/i386-pc.rmk (pkgdata_MODULES): Added tga.mod and bitmap.mod.
1882 (vbe_mod_SOURCES): Added video/i386/pc/vbeutil.c.
1883 (bitmap_mod_SOURCES): New entry.
1884 (bitmap_mod_CFLAGS): Likewise.
1885 (bitmap_mod_LDFLAGS): Likewise.
1886 (tga_mod_SOURCES): Likewise.
1887 (tga_mod_CFLAGS): Likewise.
1888 (tga_mod_LDFLAGS): Likewise.
1889
1890 * include/grub/video.h (grub_video_blit_operators): New enum type.
1891 (grub_video_render_target): Changed as forward declaration and moved
1892 actual definition to be video driver specific.
1893 (grub_video_adapter.blit_bitmap): Added blitting operator.
1894 (grub_video_adapter.blit_render_target): Likewise.
1895 (grub_video_blit_bitmap): Likewise.
1896 (grub_video_blit_render_target): Likewise.
1897
1898 * include/grub/i386/pc/vbe.h (grub_video_render_target): Added
1899 driver specific render target definition.
1900 (grub_video_vbe_map_rgba): Added driver internal helper.
1901 (grub_video_vbe_unmap_color): Updated to use
1902 grub_video_i386_vbeblit_info.
1903 (grub_video_vbe_get_video_ptr): Likewise.
1904
1905 * include/grub/i386/pc/vbeblit.h
1906 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8A8): Updated to use
1907 grub_video_i386_vbeblit_info.
1908 (grub_video_i386_vbeblit_R8G8B8_R8G8B8A8): Likewise.
1909 (grub_video_i386_vbeblit_index_R8G8B8A8): Likewise.
1910 (grub_video_i386_vbeblit_R8G8B8A8_R8G8B8): Likewise.
1911 (grub_video_i386_vbeblit_R8G8B8_R8G8B8): Likewise.
1912 (grub_video_i386_vbeblit_index_R8G8B8): Likewise.
1913 (grub_video_i386_vbeblit_index_index): Likewise.
1914 (grub_video_i386_vbeblit_R8G8B8X8_R8G8B8X8): New blitter function.
1915 (grub_video_i386_vbeblit_R8G8B8_R8G8B8X8): Likewise.
1916 (grub_video_i386_vbeblit_index_R8G8B8X8): Likewise.
1917 (grub_video_i386_vbeblit_blend): Added generic blitter for blend
1918 operator.
1919 (grub_video_i386_vbeblit_replace): Added generic blitter for replace
1920 operator.
1921
1922 * video/i386/pc/vbeblit.c: Updated to reflect changes on
1923 include/grub/i386/pc/vbeblit.h.
1924
1925 * include/grub/i386/pc/vbefill.h (grub_video_i386_vbefill_R8G8B8A8):
1926 Updated to use grub_video_i386_vbeblit_info.
1927 (grub_video_i386_vbefill_R8G8B8): Likewise.
1928 (grub_video_i386_vbefill_index): Likewise.
1929 (grub_video_i386_vbefill): Added generic filler.
1930
1931 * video/i386/pc/vbefill.c: Updated to reflect changes on
1932 include/grub/i386/pc/vbefill.h.
1933
1934 * video/i386/pc/vbe.c (grub_video_vbe_get_video_ptr): Updated to use
1935 grub_video_i386_vbeblit_info.
1936 (grub_video_vbe_unmap_color): Likewise.
1937 (grub_video_vbe_blit_glyph): Likewise.
1938 (grub_video_vbe_scroll): Likewise.
1939 (grub_video_vbe_draw_pixel): Removed function.
1940 (grub_video_vbe_get_pixel): Likewise.
1941 (grub_video_vbe_fill_rect): Moved all blitters to vbefill.c and
1942 updated code to use it.
1943 (common_blitter): Added common blitter for render target and bitmap.
1944 (grub_video_vbe_blit_bitmap): Updated to use common_blitter.
1945 (grub_video_vbe_blit_render_target): Likewise.
1946
bc8c036d 19472006-07-30 Johan Rydberg <jrydberg@gnu.org>
1948
1949 * kern/efi/efi.c (grub_efi_set_text_mode): Assume console already
1950 is in text mode if there is no console control protocol instance
1951 available.
1952
684a8eff 19532006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
1954
1955 * include/grub/video.h: Code cleanup.
1956
1957 * include/grub/i386/pc/vbe.h: Likewise.
1958
1959 * video/i386/pc/vbe.c: Likewise.
1960
1961 * video/i386/pc/vbeblit.c: Likewise.
1962
1963 * video/i386/pc/vbefill.c: Likewise.
1964
1965 * video/video.c: Likewise. Also added more comments.
1966
5915059b 19672006-07-29 Vesa Jaaskelainen <chaac@nic.fi>
1968
1969 * disk/i386/pc/biosdisk.c (struct grub_biosdisk_drp): Moved to ...
1970 (struct grub_biosdisk_dap): Likewise.
1971
1972 * include/grub/i386/pc/biosdisk.h: ... to here. Also corrected
1973 linkage settings for all functions.
1974
90ce5d56 19752006-07-12 Marco Gerards <marco@gnu.org>
1976
1977 * configure.ac (--enable-mm-debug): Fix typo.
1978
1979 * genkernsyms.sh.in: Use proper quoting for `CC'.
1980
43e7f879 19812006-07-02 Jeroen Dekkers <jeroen@dekkers.cx>
1982
1983 * conf/i386-pc.rmk (COMMON_ASFLAGS): Add "-m32".
1984 (normal_mod_ASFLAGS): Remove "-m32".
1985
4889bdec 19862006-06-14 Yoshinori K. Okuji <okuji@enbug.org>
1987
1988 * util/misc.c: Include config.h.
1989 [!HAVE_MEMALIGN]: Do not include malloc.h.
1990 (grub_memalign): Use posix_memalign, if present. Then, use
1991 memalign, if present. Otherwise, emit an error.
1992
1993 * util/grub-emu.c: Do not include malloc.h.
1994
1995 * include/grub/util/misc.h: Include unistd.h. This is required for
1996 FreeBSD, because off_t is defined in unistd.h. Reported by Harley
1997 D. Eades III <hde@foobar-qux.org>.
1998
1999 * configure.ac (AC_GNU_SOURCE): Added.
2000 (AC_CHECK_FUNCS): Check posix_memalign and memalign for the host
2001 type.
2002
fd39d4da 20032006-06-09 Yoshinori K. Okuji <okuji@enbug.org>
2004
2005 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Make sure that
2006 ADDR_MAX does not exceed GRUB_LINUX_INITRD_MAX_ADDRESS.
2007
b786f3b5 20082006-06-07 Jeroen Dekkers <jeroen@dekkers.cx>
2009
2010 * include/grub/types.h (grub_host_addr_t): Rename to
2011 grub_target_addr_t.
2012 (grub_host_off_t): Rename to grub_target_off_t.
2013 (grub_host_size_t): Rename to grub_target_size_t.
2014 (grub_host_ssize_t): Rename to grub_target_ssize_t.
2015 Refer to GRUB_TARGET_SIZEOF_VOID_P to define those variables.
2016
2017 * include/grub/kernel.h (struct grub_module_header): Change type
2018 of OFFSET to grub_target_off_t and type of SIZE to grub_target_size_t.
2019 (grub_module_info): Likewise.
2020
051988bb 20212006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
2022
2023 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): The conditional
2024 of checking LINUX_MEM_SIZE was reverse. Reported by Jesus
2025 Velazquez <jesus.velazquez@gmail.com>.
2026
deae281b 20272006-06-05 Yoshinori K. Okuji <okuji@enbug.org>
2028
2029 Count partitions from 1 instead of 0 in the string representation
2030 of partitions. Still use 0-based internally.
2031
2032 * partmap/sun.c (grub_sun_is_valid): A cosmetic change.
2033 (sun_partition_map_iterate): Use grub_partition_t instead of
2034 struct grub_partition *. Cast DESC->START_CYLINDER to
2035 grub_uint64_t after converting the endian.
2036 (sun_partition_map_probe): Subtract 1 for PARTNUM.
2037 (sun_partition_map_get_name): Add 1 to P->INDEX.
2038
2039 * partmap/pc.c (grub_partition_parse): Subtract 1 for
2040 PCDATA->DOS_PART.
2041 (pc_partition_map_get_name): Add 1 into PCDATA->DOS_PART.
2042
2043 * partmap/gpt.c (gpt_partition_map_iterate): Initialize PARTNO to
2044 zero instead of one.
2045 (gpt_partition_map_probe): Subtract 1 for PARTNUM.
2046 (gpt_partition_map_get_name): Add 1 into P->INDEX.
2047
2048 * partmap/apple.c (apple_partition_map_iterate): Change the type
2049 of POS to unsigned.
2050 (apple_partition_map_probe): Subtract 1 for PARTNUM.
2051 (apple_partition_map_get_name): Add 1 into P->INDEX.
2052
2053 * partmap/amiga.c (amiga_partition_map_iterate): Change the type
2054 of POS to unsigned.
2055 (amiga_partition_map_iterate): Cast NEXT to grub_off_t to
2056 calculate the offset of a partition.
2057 (amiga_partition_map_probe): Subtract 1 for PARTNUM.
2058 (amiga_partition_map_get_name): Add 1 into P->INDEX.
2059
2060 * partmap/acorn.c (acorn_partition_map_find): Change the type of
2061 SECTOR to grub_disk_addr_t.
2062 (acorn_partition_map_iterate): Likewise.
2063 (acorn_partition_map_probe): Subtract 1 for PARTNUM.
2064 Change the type of SECTOR to grub_disk_addr_t. Declare P on the
2065 top.
2066 (acorn_partition_map_get_name): Add 1 into P->INDEX.
2067
2068 * kern/i386/pc/init.c (make_install_device): Add 1 into
2069 GRUB_INSTALL_DOS_PART.
2070
2071 * fs/iso9660.c (grub_iso9660_mount): Fixed a reversed
2072 conditional.
2073
524a1e6a 20742006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
2075
2076 Clean up the code to support 64-bit addressing in disks and
2077 files. This change is not enough for filesystems yet.
2078
2079 * util/i386/pc/grub-setup.c (struct boot_blocklist): Change the
2080 type of "start" to grub_uint64_t.
2081 (setup): Change the types of KERNEL_SECTOR and FIRST_SECTOR to
2082 grub_disk_addr_t * and grub_disk_addr_t. Fix the format string in
2083 save_first_sector and save_blocklists. Use grub_le_to_cpu64 to
2084 convert addresses.
2085
2086 * util/i386/pc/biosdisk.c (open_device): Change the type of SECTOR
2087 to grub_disk_addr_t.
2088
2089 * partmap/gpt.c (gpt_partition_map_iterate): Fix the format
2090 string.
2091
2092 * partmap/pc.c (pc_partition_map_iterate): Likewise.
2093
2094 * partmap/amiga.c (amiga_partition_map_iterate): Cast RDSK.MAGIC
2095 to char *.
2096
2097 * normal/script.c (grub_script_parse): Remove unused MEMFREE.
2098
2099 * normal/parser.y (YYLTYPE_IS_TRIVIAL): New macro.
2100
2101 * normal/lexer.c (grub_script_yyerror): Specify unused to LEX.
2102
2103 * loader/i386/pc/multiboot.c (grub_multiboot_load_elf64): Cast -1
2104 to grub_off_t, to detect an error from grub_file_seek.
2105 (grub_multiboot_load_elf32): Likewise.
2106
2107 * kern/misc.c (grub_strtoul): Use grub_strtoull. Return the
2108 maximum unsigned long value when an overflow is detected.
2109 (grub_strtoull): New function.
2110 (grub_divmod64): Likewise.
2111 (grub_lltoa): use grub_divmod64.
2112
2113 * kern/fs.c (struct grub_fs_block): Change the type of "offset" to
2114 grub_disk_addr_t.
2115 (grub_fs_blocklist_open): Increase P if P is not NULL to advance
2116 the pointer to next character. Use grub_strtoull instead of
2117 grub_strtoul.
2118 (grub_fs_blocklist_read): Change the types of SECTOR, OFFSET and
2119 SIZE to grub_disk_addr_t, grub_off_t and grub_size_t,
2120 respectively.
2121
2122 * kern/file.c (grub_file_read): Prevent an oveflow of LEN, as the
2123 return value is signed.
2124 (grub_file_seek): Change the type of OLD to grub_off_t. Do not
2125 test if OFFSET is less than zero, as OFFSET is unsigned now.
2126
2127 * kern/disk.c (struct grub_disk_cache): Change the type of
2128 "sector" to grub_disk_addr_t.
2129 (grub_disk_cache_get_index): Change the type of SECTOR to
2130 grub_disk_addr_t. Calculate the hash with SECTOR casted to
2131 unsigned after shifting.
2132 (grub_disk_cache_invalidate): Change the type of SECTOR to
2133 grub_disk_addr_t.
2134 (grub_disk_cache_unlock): Likewise.
2135 (grub_disk_cache_store): Likewise.
2136 (grub_disk_check_range): Change the types of SECTOR, OFFSET, SIZE,
2137 START and LEN to grub_disk_addr_t *, grub_off_t *, grub_size_t,
2138 grub_disk_addr_t and grub_uint64_t, respectively.
2139 (grub_disk_read): Use an unsigned variable REAL_OFFSET for the
2140 body, as the value of OFFSET is tweaked by
2141 grub_disk_check_range. Change the types of START_SECTOR, LEN and
2142 POS to grub_disk_addr_t, grub_size_t and grub_size_t,
2143 respectively.
2144 (grub_disk_write): Use an unsigned variable REAL_OFFSET for the
2145 body, as the value of OFFSET is tweaked by
2146 grub_disk_check_range. Change the types of LEN and N to
2147 grub_size_t.
2148
2149 * io/gzio.c (struct grub_gzio): Change the types of "data_offset"
2150 and "saved_offset" to grub_off_t.
2151 (test_header): Cast BUF to char *.
2152 (get_byte): Cast GZIO->DATA_OFFSET to grub_off_t. Cast GZIO->INBUF
2153 to char *.
2154 (grub_gzio_read): Change the types of OFFSET and SIZE to
2155 grub_off_t and grub_size_t, respectively.
2156
2157 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_FORCE_LBA):
2158 Removed.
2159 (GRUB_BOOT_MACHINE_BOOT_DRIVE): Changed to 0x4c.
2160 (GRUB_BOOT_MACHINE_KERNEL_ADDRESS): Changed to 0x40.
2161 (GRUB_BOOT_MACHINE_KERNEL_SEGMENT): Changed to 0x42.
2162 (GRUB_BOOT_MACHINE_DRIVE_CHECK): Changed to 0x4e.
2163 (GRUB_BOOT_MACHINE_LIST_SIZE): Increased to 12.
2164
2165 * include/grub/types.h (grub_off_t): Unconditionally set to
2166 grub_uint64_t.
2167 (grub_disk_addr_t): Changed to grub_uint64_t.
2168
2169 * include/grub/partition.h (struct grub_partition): Change the
2170 types of "start", "len" and "offset" to grub_disk_addr_t,
2171 grub_uint64_t and grub_disk_addr_t, respectively.
2172 (grub_partition_get_start): Return grub_disk_addr_t.
2173 (grub_partition_get_len): Return grub_uint64_t.
2174
2175 * include/grub/misc.h (grub_strtoull): New prototype.
2176 (grub_divmod64): Likewise.
2177
2178 * include/grub/fshelp.h (grub_fshelp_read_file): Change the types
2179 of SECTOR, LEN and FILESIZE to grub_disk_addr_t, grub_size_t and
2180 grub_off_t, respectively.
2181 All callers and references changed.
2182
2183 * include/grub/fs.h (struct grub_fs): Change the type of LEN to
2184 grub_size_t in "read".
2185 All callers and references changed.
2186
2187 * include/grub/file.h (struct grub_file): Change the types of
2188 "offset" and "size" to grub_off_t and grub_off_t,
2189 respectively. Change the type of SECTOR to grub_disk_addr_t in
2190 "read_hook".
2191 (grub_file_read): Change the type of LEN to grub_size_t.
2192 (grub_file_seek): Return grub_off_t. Change the type of OFFSET to
2193 grub_off_t.
2194 (grub_file_size): Return grub_off_t.
2195 (grub_file_tell): Likewise.
2196 All callers and references changed.
2197
2198 * include/grub/disk.h (struct grub_disk_dev): Change the types of
2199 SECTOR and SIZE to grub_disk_addr_t and grub_size_t in "read" and
2200 "write".
2201 (struct grub_disk): Change the type of "total_sectors" to
2202 grub_uint64_t. Change the type of SECTOR to grub_disk_addr_t in
2203 "read_hook".
2204 (grub_disk_read): Change the types of SECTOR, OFFSET and SIZE to
2205 grub_disk_addr_t, grub_off_t and grub_size_t, respectively.
2206 (grub_disk_write): Likewise.
2207 All callers and references changed.
2208
2209 * fs/iso9660.c (grub_iso9660_susp_iterate): Cast parameters to
2210 char * for grub_strncmp to silence gcc.
2211 (grub_iso9660_mount): Likewise.
2212 (grub_iso9660_mount): Likewise.
2213 (grub_iso9660_read_symlink): Likewise. Also, remove the nonsense
2214 return statement.
2215 (grub_iso9660_iterate_dir): Likewise.
2216 (grub_iso9660_label): Cast DATA->VOLDESC.VOLNAME to char *.
2217
2218 * fs/hfs.c (grub_hfs_read_file): Change the types of SECTOR and
2219 LEN to grub_disk_addr_t and grub_size_t, respectively.
2220
2221 * fs/hfsplus.c (grub_hfsplus_read_file): Likewise.
2222
2223 * fs/jfs.c (grub_jfs_read_file): Likewise.
2224
2225 * fs/minix.c (grub_jfs_read_file): Likewise.
2226
2227 * fs/sfs.c (grub_jfs_read_file): Likewise.
2228
2229 * fs/ufs.c (grub_jfs_read_file): Likewise.
2230
2231 * fs/xfs.c (grub_jfs_read_file): Likewise.
2232
2233 * fs/fat.c (grub_fat_read_data): Change the types of SECTOR, LEN
2234 and SIZE to grub_disk_addr_t, grub_size_t and grub_size_t,
2235 respectively.
2236
2237 * fs/ext2.c (grub_ext2_read_block): When an error happens, set
2238 BLKNR to -1 instead of returning GRUB_ERRNO.
2239 (grub_ext2_read_file): Change the types of SECTOR and
2240 LEN to grub_disk_addr_t and grub_size_t, respectively.
2241
2242 * fs/affs.c (grub_affs_read_file): Change the types of SECTOR and
2243 LEN to grub_disk_addr_t and grub_size_t, respectively.
2244
2245 * font/manager.c (grub_font_get_glyph): Cast BITMAP to char * for
2246 grub_file_read.
2247
2248 * disk/ieee1275/ofdisk.c (grub_ofdisk_read): Fix the format
2249 string. Do not cast SECTOR explicitly.
2250
2251 * disk/i386/pc/biosdisk.c (grub_biosdisk_open): Change the type of
2252 TOTAL_SECTORS to grub_uint64_t. Do not mask DRP->TOTAL_SECTORS.
2253 (grub_biosdisk_rw): Change the types of SECTOR and SIZE to
2254 grub_disk_addr_t and grub_size_t, respectively. If the sector is
2255 over 2TB and LBA mode is not supported, raise an error.
2256 (get_safe_sectors): New function.
2257 (grub_biosdisk_read): Use get_safe_sectors.
2258 (grub_biosdisk_write): Likewise.
2259
2260 * disk/efi/efidisk.c (grub_efidisk_read): Fix the format string.
2261 (grub_efidisk_write): Likewise.
2262
2263 * disk/loopback.c (delete_loopback): Cosmetic changes.
2264 (grub_cmd_loopback): Likewise. Also, test NEWDEV->FILENAME
2265 correctly.
2266 (grub_loopback_open): Likewise.
2267 (grub_loopback_read): Likewise. Also, change the type of POS to
2268 grub_off_t, and fix the usage of grub_memset.
2269
2270 * commands/i386/pc/play.c: Include grub/machine/time.h.
2271
2272 * commands/ls.c (grub_ls_list_files): Use "llu" instead of "d" to
2273 print FILE->SIZE.
2274
2275 * commands/configfile.c: Include grub/env.h.
2276
2277 * commands/cmp.c (grub_cmd_cmp): Do not use ERR, but use
2278 GRUB_ERRNO directly instead. Change the type of POS to
2279 grub_off_t. Follow the coding standard.
2280
2281 * commands/blocklist.c: Include grub/partition.h.
2282 (grub_cmd_blocklist): Return an error if the underlying device is
2283 not a disk. Take the starting sector of a partition into account,
2284 if a partition is used.
2285
2286 * boot/i386/pc/diskboot.S (bootloop): Adapted to the new offset of
2287 a length field.
2288 (lba_mode): Support 64-bit addresses.
2289 (chs_mode): Likewise.
2290 (copy_buffer): Adapted to the new offsets of a length field and a
2291 segment field.
2292 (blocklist_default_start): Allocate 64-bit space.
2293
2294 * boot/i386/pc/boot.S (force_lba): Removed.
2295 (boot_drive): Moved to under KERNEL_SECTOR.
2296 (kernel_sector): Moved to under KENREL_SEGMENT. Allocate 64-bit
2297 space.
2298 (real_start): Set %si earlier. Remove code for FORCE_LBA, since it
2299 is useless.
2300 (lba_mode): Refactored to support a 64-bit address. More size
2301 optimization.
2302 (setup_sectors): Likewise.
2303
53af98ad 23042006-06-04 Yoshinori K. Okuji <okuji@enbug.org>
2305
2306 * DISTLIST: Added include/grub/i386/linux.h. Removed
2307 include/grub/i386/pc/linux.h
2308
2309 * configure.ac (AC_INIT): Bumped to 1.94.
2310
2311 * config.guess: Updated from gnulib.
2312 * config.sub: Likewise.
2313 * install-sh: Likewise.
2314 * mkinstalldirs: Likewise.
2315
b4c1940a 23162006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
2317
2318 * conf/common.rmk (grub_modules_init.lst): Depended on
2319 grub_emu_SOURCES, excluding grub_emu_init.c, instead of
2320 MODSRCFILES.
2321
2322 * genmk.rb (PModule::rule): Reverted the previous change.
2323
cfca1cfd 23242006-06-02 Yoshinori K. Okuji <okuji@enbug.org>
2325
2326 * conf/common.rmk (grub_modules_init.lst): Depends on
2327 $(MODSRCFILES). Grep only the files in $(MODSRCFILES). Make sure
2328 that the target does not exist before producing.
2329 (grub_modules_init.h): Remove the target before generating.
2330 (grub_emu_init.c): Likewise.
2331
2332 * genmk.rb (PModule::rule): Add source files into MODSRCFILES.
2333
aa6d7826 23342006-05-31 Jeroen Dekkers <jeroen@dekkers.cx>
2335
2336 * configure.ac: Don't set host_m32 for x86_64. Also reset LIBS
2337 for the target-specific tests. Make sure that we also have the
2338 up-to-date target variables for those tests.
2339
26c607b9 23402006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
2341
2342 * genmk.rb (Image::rule): Prefix CFLAGS or ASFLAGS with TARGET_.
2343 (PModule::rule): Likewise.
2344
0162321a 23452006-05-31 Yoshinori K. Okuji <okuji@enbug.org>
2346
2347 * genmk.rb (Image::rule): Set FLAG to CFLAGS or ASFLAGS instead of
2348 TARGET_CFLAGS or TARGET_ASFLAGS. There is no reason why
2349 target-specific flags should be prefixed.
2350 (PModule::rule): Likewise.
2351
6c826348 23522006-05-30 Yoshinori K. Okuji <okuji@enbug.org>
2353
2354 * configure.ac (CMP): Check if cmp is available explicitly.
2355
b977bf01 23562006-05-29 Yoshinori K. Okuji <okuji@enbug.org>
2357
2358 * util/powerpc/ieee1275/grub-install.in (host_cpu): Removed.
2359 (target_cpu): New variable.
2360 (pkglibdir): Use target_cpu instead of host_cpu.
2361
2362 * util/i386/pc/grub-install.in (host_cpu): Removed.
2363 (target_cpu): New variable.
2364 (pkglibdir): Use target_cpu instead of host_cpu.
2365
2366 * util/genmoddep.c: Removed.
2367
2368 * kern/efi/mm.c (filter_memory_map): Use GRUB_CPU_SIZEOF_VOID_P
2369 instead of GRUB_HOST_SIZEOF_VOID_P.
2370 * kern/dl.c: Likewise.
2371
2372 * include/grub/i386/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed to
2373 ...
2374 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
2375 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
2376 (GRUB_TARGET_SIZEOF_LONG): ... this.
2377 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
2378 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
2379 * include/grub/powerpc/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
2380 to ...
2381 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
2382 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
2383 (GRUB_TARGET_SIZEOF_LONG): ... this.
2384 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
2385 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
2386 * include/grub/sparc64/types.h (GRUB_HOST_SIZEOF_VOID_P): Renamed
2387 to ...
2388 (GRUB_TARGET_SIZEOF_VOID_P): ... this.
2389 (GRUB_HOST_SIZEOF_LONG): Renamed to ...
2390 (GRUB_TARGET_SIZEOF_LONG): ... this.
2391 (GRUB_HOST_WORDS_BIGENDIAN): Renamed to ...
2392 (GRUB_TARGET_WORDS_BIGENDIAN): ... this.
2393
2394 * include/grub/types.h [!GRUB_UTIL] (GRUB_CPU_SIZEOF_VOID_P): Use
2395 GRUB_TARGET_SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P.
2396 [!GRUB_UTIL] (GRUB_CPU_SIZEOF_LONG): Use GRUB_TARGET_SIZEOF_LONG
2397 instead of GRUB_HOST_SIZEOF_LONG.
2398 [!GRUB_UTIL]: Refer to GRUB_TARGET_WORDS_BIGENDIAN instead of
2399 GRUB_HOST_WORDS_BIGENDIAN to define or undefine
2400 GRUB_CPU_WORDS_BIGENDIAN.
2401 Refer to SIZEOF_VOID_P instead of GRUB_HOST_SIZEOF_VOID_P to
2402 define grub_host_addr_t, grub_host_off_t, grub_host_size_t and
2403 grub_host_ssize_t.
2404
2405 * conf/i386-efi.rmk (noinst_UTILITIES): Removed.
2406 (genmoddep_SOURCES): Likewise.
2407 * conf/i386-pc.rmk (noinst_UTILITIES): Likewise.
2408 (genmoddep_SOURCES): Likewise.
2409 * conf/conf/powerpc-ieee1275.rmk (noinst_UTILITIES): Likewise.
2410 (genmoddep_SOURCES): Likewise.
2411 * conf/conf/conf/sparc64-ieee1275.rmk (noinst_UTILITIES):
2412 Likewise.
2413 (genmoddep_SOURCES): Likewise.
2414
2415 * genmoddep.awk: New file.
2416
2417 * genmk.rb (Image::rule): Use TARGET_CC, TARGET_CPPFLAGS,
2418 TARGET_CFLAGS, TARGET_ASFLAGS and TARGET_LDFLAGS instead of CC,
2419 CPPFLAGS, CFLAGS, ASFLAGS and LDFLAGS, respectively.
2420 (PModule::rule): Likewise.
2421 (Program::rule): Likewise.
2422 (Utility::rule): Use CC, CPPFLAGS, CFLAGS and LDFLAGS instead of
2423 BUILD_CC, BUILD_CPPFLAGS, BUILD_CFLAGS and BUILD_LDFLAGS,
2424 respectively.
2425
2426 * configure.ac: Rewritten intensively to use host and target
2427 instead of build and host, respectively.
2428
2429 * Makefile.in (pkglibdir): Use target_cpu instead of host_cpu.
2430 (host_cpu): Removed.
2431 (target_cpu): New variable.
2432 (CPPFLAGS): Added @CPPFLAGS@ and -DGRUB_LIBDIR=\"$(pkglibdir)\".
2433 (BUILD_CC): Removed.
2434 (BUILD_CFLAGS): Likewise.
2435 (BUILD_CPPFLAGS): Likewise.
2436 (TARGET_CC): New variable.
2437 (TARGET_CFLAGS): Likewise.
2438 (TARGET_CPPFLAGS): Likewise.
2439 (TARGET_LDFLAGS): Likewise.
2440 (AWK): Likewise.
2441 (include): Use target_cpu instead of host_cpu.
2442 (moddep.lst:): Use genmoddep.awk instead of genmoddep.
2443
2444 * DISTLIST: Added genmoddep.awk. Removed util/genmoddep.c.
2445
f09771a1 24462006-05-29 Vesa Jaaskelainen <chaac@nic.fi>
2447
2448 * include/grub/script.h (grub_script_cmdif): Renamed field 'bool' to
2449 'exec_to_evaluate'. Renamed field 'true' to 'exec_on_true'. Renamed
2450 field 'false' to 'exec_on_false'.
2451 (grub_script_create_cmdif): Renamed argument names to reflect above
2452 changes.
2453
2454 * normal/execute.c (grub_script_execute_cmdif): Likewise.
2455
2456 * normal/script.c (grub_script_create_cmdif): Likewise.
2457
118f4fb3 24582006-05-28 Yoshinori K. Okuji <okuji@enbug.org>
2459
2460 * fs/hfsplus.c (grub_hfsplus_btree_recoffset): Moved to near the
2461 top.
2462 (grub_hfsplus_btree_recptr): Likewise.
2463 (grub_hfsplus_find_block): Do not take RETRY any longer. Use
2464 FILEBLOCK both to pass a block number and store next block
2465 number.
2466 (grub_hfsplus_read_block): Rewritten heavily to support an extent
2467 overflow file correctly. Specify errors appropriately, because
2468 fshelp expects that GRUB_ERRNO is set when fails. Reuse
2469 grub_hfsplus_btree_recptr to get the pointer to a found key.
2470 (grub_hfsplus_btree_search): Return 1 instead of 0 when no match
2471 is found.
2472
2473 * conf/i386-efi.rmk (pkgdata_MODULES): Added _linux.mod and
2474 linux.mod.
2475 (_linux_mod_SOURCES): New variable.
2476 (_linux_mod_CFLAGS): Likewise.
2477 (_linux_mod_LDFLAGS): Likewise.
2478 (linux_mod_SOURCES): Likewise.
2479 (linux_mod_CFLAGS): Likewise.
2480 (linux_mod_LDFLAGS): Likewise.
2481
2482 * DISTLIST: Added loader/i386/efi/linux.c,
2483 loader/i386/efi/linux_normal.c and
2484 include/grub/i386/efi/loader.h.
2485
2486 * loader/i386/efi/linux.c: New file.
2487 * loader/i386/efi/linux_normal.c: Likewise.
2488 * include/grub/i386/efi/loader.h: Likewise.
2489
89a7d726 24902006-05-27 Yoshinori K. Okuji <okuji@enbug.org>
2491
2492 * commands/blocklist.c: New file.
2493
2494 * DISTLIST: Added commands/blocklist.c.
2495
2496 * term/efi/console.c (grub_console_highlight_color): Use a lighter
43b553ad 2497 color for the background, and a darker color for the foreground.
89a7d726 2498 (grub_console_checkkey): Return READ_KEY.
2499 (grub_console_cls): Set the background to
2500 GRUB_EFI_BACKGROUND_BLACK temporarily to clean out the screen.
2501
2502 * kern/efi/efi.c (grub_efi_exit_boot_services): New function.
2503
2504 * include/grub/i386/linux.h (struct linux_kernel_params): Fixed
2505 the size of "padding5", "hd0_drive_info" and "hd1_drive_info".
2506
2507 * include/grub/efi/efi.h (grub_efi_exit_boot_services): New
2508 prototype.
2509
2510 * include/grub/efi/api.h (GRUB_EFI_TEXT_ATTR): Do not shift
2511 BG. The spec is wrong again.
2512
2513 * include/grub/normal.h [GRUB_UTIL] (grub_blocklist_init): New
2514 prototype.
2515 [GRUB_UTIL] (grub_blocklist_fini): Likewise.
2516
2517 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
2518 commands/blocklist.c.
2519 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
2520
2521 * conf/common.rmk (pkgdata_MODULES): Added blocklist.mod.
2522 (blocklist_mod_SOURCES): New variable.
2523 (blocklist_mod_CFLAGS): Likewise.
2524 (blocklist_mod_LDFLAGS): Likewise.
2525
75c8f258 25262006-05-20 Yoshinori K. Okuji <okuji@enbug.org>
2527
2528 * boot/i386/pc/boot.S (real_start): Set %si earlier to eliminate
2529 duplication.
2530 (lba_mode): Use %eax more intensively to reduce the code size.
2531
da2eb181 25322006-05-20 Marco Gerards <marco@gnu.org>
2533
2534 * normal/lexer.c (grub_script_yylex): Don't filter out newlines.
2535
2536 * normal/parser.y (commandblock): Defined as <cmd>. A subroutine
2537 for `menuentry'.
2538 (script): Accept leading newlines.
2539 (newlines): New rule to describe 0 or more newlines.
2540 (commands): Accept `command' with trailing newline. Fixed the
2541 order in which arguments were passed to `grub_script_add_cmd'.
2542 Accept commands separated by newlines.
2543 (function): Changed to accept newlines.
2544 (menuentry) Rewritten.
2545
2546 * normal/script.c (grub_script_create_cmdmenu): Add new entries in
2547 front of the list, instead of to the end.
2548
577b4050 25492006-05-19 Yoshinori K. Okuji <okuji@enbug.org>
2550
2551 * util/i386/pc/grub-install.in (bindir): New variable.
2552 (grub_mkimage): Use BINDIR instead of SBINDIR. Reported by Lee
2553 Shaver <lbgwjl@gmail.com>.
2554
0d6e1189 25552006-05-14 Yoshinori K. Okuji <okuji@enbug.org>
2556
2557 * kern/i386/pc/startup.S: Include grub/cpu/linux.h instead of
2558 grub/machine/linux.h
2559 * loader/i386/pc/linux.c: Likewise.
2560
2561 * include/grub/i386/pc/linux.h: Moved to ...
2562 * include/grub/i386/linux.h: ... here.
2563
2564 * include/grub/i386/linux.h (struct linux_kernel_params): New
2565 struct.
2566
31b86e9f 25672006-05-09 Vesa Jaaskelainen <chaac@nic.fi>
2568
2569 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Corrected bounds
2570 checking.
2571 (grub_video_vbe_blit_glyph): Likewise.
2572 (grub_video_vbe_blit_bitmap): Likewise.
2573 (grub_video_vbe_blit_render_target): Likewise.
2574
83b984de 25752006-05-09 Yoshinori K. Okuji <okuji@enbug.org>
2576
2577 * configure.ac (--with-platform): Properly quote the square
2578 brackets.
2579
5f0413bd 25802006-05-08 Marco Gerards <marco@gnu.org>
2581
2582 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Renamed from
2583 this...
2584 (kernel_elf_HEADERS): ...to this. Updated all users.
2585 (grubof_symlist.c): Renamed from this...
2586 (kernel_elf_symlist.c): ...to this. Updated all users.
2587 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
2588 (grubof_SOURCES): Renamed from this...
2589 (kernel_elf_SOURCES): ...to this.
2590 (grubof_HEADERS): Renamed from this...
2591 (kernel_elf_HEADERS): ...to this.
2592 (grubof_CFLAGS): Renamed from this...
2593 (kernel_elf_CFLAGS): ...to this.
2594 (grubof_ASFLAGS): Renamed from this...
2595 (kernel_elf_ASFLAGS): ...to this.
2596 (grubof_LDFLAGS): Renamed from this...
2597 (kernel_elf_LDFLAGS): ...to this.
2598
2599 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Renamed from
2600 this...
2601 (kernel_elf_HEADERS): ...to this. Updated all users.
2602 (grubof_symlist.c): Renamed from this...
2603 (kernel_elf_symlist.c): ...to this. Updated all users.
2604 (pkgdata_PROGRAMS): Changed `grubof' to `kernel.elf'.
2605 (grubof_SOURCES): Renamed from this...
2606 (kernel_elf_SOURCES): ...to this.
2607 (grubof_HEADERS): Renamed from this...
2608 (kernel_elf_HEADERS): ...to this.
2609 (grubof_CFLAGS): Renamed from this...
2610 (kernel_elf_CFLAGS): ...to this.
2611 (grubof_ASFLAGS): Renamed from this...
2612 (kernel_elf_ASFLAGS): ...to this.
2613 (grubof_LDFLAGS): Renamed from this...
2614 (kernel_elf_LDFLAGS): ...to this.
2615
2616 * util/powerpc/ieee1275/grub-mkimage.c (add_segments): Use
2617 `kernel.elf' instead of `grubof'.
2618
05568c2e 26192006-05-08 Yoshinori K. Okuji <okuji@enbug.org>
2620
2621 Add --with-platform to configure. Use pkglibdir instead of
2622 pkgdatadir. This is reported by Roger Leigh.
2623
2624 * util/powerpc/ieee1275/grub-install.in (datadir): Removed.
2625 (host_vendor): Likewise.
2626 (host_os): Likewise.
2627 (pkgdatadir): Likewise.
2628 (platform): New variable.
2629 (pkglibdir): Likewise.
2630 Use PKGLIBDIR instead of PKGDATADIR.
2631
2632 * util/i386/pc/grub-install.in (datadir): Removed.
2633 (host_vendor): Likewise.
2634 (host_os): Likewise.
2635 (pkgdatadir): Likewise.
2636 (platform): New variable.
2637 (pkglibdir): Likewise.
2638 Use PKGLIBDIR instead of PKGDATADIR.
2639
2640 * util/powerpc/ieee1275/grub-mkimage.c (usage): Use GRUB_LIBDIR
2641 instead of GRUB_DATADIR.
2642 (main): Likewise.
2643 * util/i386/pc/grub-mkimage.c (usage): Likewise.
2644 (main): Likewise.
2645 * util/i386/efi/grub-mkimage.c (usage): Likewise.
2646 (main): Likewise.
2647
2648 * configure.ac (--with-platform): New option.
2649 Use PLATFORM instead of HOST_VENDOR to specify a platform.
2650
2651 * Makefile.in: Include a makefile based on PLATFORM instead of
2652 HOST_VENDOR.
2653 (pkgdatadir): Not appended by the machine type.
2654 (pkglibdir): Appended by the machine type.
2655 (host_vendor): Removed.
2656 (platform): New variable.
2657 (BUILD_CPPFLAGS): Specify GRUB_LIBDIR instead of GRUB_DATADIR.
2658 (install-local): Use PKGLIBDIR instead of PKGDATADIR.
2659 (uninstall): Likewise.
2660
4e93851c 26612006-05-07 Yoshinori K. Okuji <okuji@enbug.org>
2662
2663 Use the environment context in the menu. Remove the commands
2664 "default" and "timeout", and use variables instead.
2665
2666 * normal/menu.c: Include grub/env.h.
2667 (print_entry): Cast TITLE to silence gcc.
2668 (get_timeout): New function.
2669 (set_timeout): Likewise.
2670 (get_entry_number): Likewise.
2671 (run_menu): Use a default entry, a fallback entry and a timeout
2672 in the environment variables "default", "fallback" and
2673 "timeout". Also, tweak the default entry if it is not within the
2674 current menu entries.
2675 (grub_menu_run): Use a fallback entry in the environment variable
2676 "fallback".
2677
2678 * normal/main.c (read_config_file): Do not initialize
2679 NEWMENU->DEFAULT_ENTRY, NEWMENU->FALLBACK_ENTRY or
2680 NEWMENU->TIMEOUT.
2681 (grub_normal_execute): Use a data slot to store the menu.
2682
2683 * include/grub/normal.h (struct grub_menu): Removed default_entry,
2684 fallback_entry and timeout.
2685 (struct grub_menu_list): Removed.
2686 (grub_menu_list_t): Likewise.
2687 (struct grub_context): Likewise.
2688 (grub_context_t): Likewise.
2689 (grub_context_get): Likewise.
2690 (grub_context_get_current_menu): Likewise.
2691 (grub_context_push_menu): Likewise.
2692 (grub_context_pop_menu): Likewise.
2693 (grub_default_init): Likewise.
2694 (grub_default_fini): Likewise.
2695 (grub_timeout_init): Likewise.
2696 (grub_timeout_fini): Likewise.
2697
2698 * conf/sparc64-ieee1275.rmk (pkgdata_MODULES): Removed default.mod
2699 and timeout.mod.
2700 (normal_mod_SOURCES): Removed normal/context.c.
2701
2702 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Removed
2703 commands/default.c, commands/timeout.c and normal/context.c.
2704 (normal_mod_SOURCES): Removed normal/context.c.
2705
2706 * conf/i386-pc.rmk (grub_emu_SOURCES): Removed commands/default.c,
2707 commands/timeout.c and normal/context.c.
2708 (normal_mod_SOURCES): Removed normal/context.c.
2709
2710 * conf/i386-efi.rmk (grub_emu_SOURCES): Removed
2711 commands/default.c, commands/timeout.c and normal/context.c.
2712 (normal_mod_SOURCES): Removed normal/context.c.
2713
2714 * conf/common.rmk (pkgdata_MODULES): Removed default.mod and
2715 timeout.mod.
2716 (default_mod_SOURCES): Removed.
2717 (default_mod_CFLAGS): Likewise.
2718 (default_mod_LDFLAGS): Likewise.
2719 (timeout_mod_SOURCES): Removed.
2720 (timeout_mod_CFLAGS): Likewise.
2721 (timeout_mod_LDFLAGS): Likewise.
2722
2723 * DISTLIST: Removed commands/default.c, commands/timeout.c and
2724 normal/context.c.
2725
2726 * commands/default.c: Removed.
2727 * commands/timeout.c: Likewise.
2728 * normal/context.c: Likewise.
2729
1eb9cc1d 27302006-05-07 Vesa Jaaskelainen <chaac@nic.fi>
2731
2732 * kern/i386/pc/startup.S (grub_exit): Added missing .code32 tag.
2733
385bd9c1 27342006-05-02 Yoshinori K. Okuji <okuji@enbug.org>
2735
2736 * kern/env.c (struct grub_env_context): Removed "sorted". Renamed
2737 "next" to "prev" for readability.
2738 (struct grub_env_sorted_var): New struct.
2739 (grub_env_context): Renamed to ...
2740 (initial_context): ... this.
2741 (grub_env_var_context): Renamed to ...
2742 (current_context): ... this.
2743 (grub_env_find): Look only at CURRENT_CONTEXT.
2744 (grub_env_context_open): Rewritten to copy exported variables from
2745 previous context.
2746 (grub_env_context_close): Rewritten according to the new
2747 scheme. Also, add an assertion to prevent the initial context from
2748 removed.
2749 (grub_env_insert): Removed the code for the sorted list.
2750 (grub_env_remove): Likewise.
2751 (grub_env_export): Simply mark the variable with
2752 GRUB_ENV_VAR_GLOBAL.
2753 (grub_env_set): A cosmetic change for naming consistency.
2754 (grub_env_get): Likewise.
2755 (grub_env_unset): Likewise.
2756 (grub_env_iterate): Rewritten to sort variables within this
2757 function.
2758 (grub_register_variable_hook): Fixed for naming consistency. Call
2759 grub_env_find again, only if NAME is not found at the first time.
2760 (mangle_data_slot_name): New function.
2761 (grub_env_set_data_slot): Likewise.
2762 (grub_env_get_data_slot): Likewise.
2763 (grub_env_unset_data_slot): Likewise.
2764
2765 * include/grub/env.h (grub_env_var_type): New enum.
2766 (GRUB_ENV_VAR_LOCAL): New constant.
2767 (GRUB_ENV_VAR_GLOBAL): Likewise.
2768 (GRUB_ENV_VAR_DATA): Likewise.
2769 (struct grub_env_var): Removed "sort_next" and "sort_prevp". Added
2770 "type".
2771 (grub_env_set): Replace VAR with NAME for consistency.
2772 (grub_register_variable_hook): Likewise.
2773 (grub_env_export): Specify the name of the argument.
2774 (grub_env_set_data_slot): New prototype.
2775 (grub_env_get_data_slot): Likewise.
2776 (grub_env_unset_data_slot): Likewise.
2777
7f362539 27782006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
2779
2780 Extend the loader so that GRUB can accept a loader which comes
2781 back to GRUB when a loaded image exits. Also, this change adds
2782 support for a chainloader on EFI.
2783
2784 * term/efi/console.c: Include grub/misc.h.
2785 (grub_console_checkkey): Display a scan code on the top for
2786 debugging. This will be removed once the EFI port gets stable.
2787 Correct the scan code mapping.
2788
2789 * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
2790 allocate memory from larger regions, in order to reduce the number
2791 of allocated regions. Otherwise, the MacOSX loader panics.
2792 (filter_memory_map): Avoid less than 1MB for compatibility with
2793 other loaders.
2794 (add_memory_regions): Allocate from the tail of a region, if
2795 possible, to avoid allocating a region near to 1MB, for the MacOSX
2796 loader.
2797
2798 * kern/efi/init.c (grub_efi_set_prefix): Specify
2799 GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.
2800
2801 * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
2802 argument IMAGE_HANDLE and specify it to get a loaded image.
2803 (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
2804 grub_efi_get_loaded_image.
2805 (grub_efi_get_filename): Divide the legnth by the size of
2806 grub_efi_char16_t.
2807 (grub_efi_get_device_path): New function.
2808 (grub_efi_print_device_path): Print End Device Path nodes. Divide
2809 the length by the size of grub_efi_char16_t for a file path device
2810 path node.
2811
2812 * kern/loader.c (grub_loader_noreturn): New variable.
2813 (grub_loader_set): Accept a new argument NORETURN. Set
2814 GRUB_LOADER_NORETURN to NORETURN.
2815 All callers changed.
2816 (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
2817 grub_machine_fini.
2818
2819 * include/grub/efi/efi.h (grub_efi_get_device_path): New
2820 prototype.
2821 (grub_efi_get_loaded_image): Take an argument to specify an image
2822 handle.
2823
2824 * include/grub/loader.h (grub_loader_set): Added one more argument
2825 NORETURN.
2826
2827 * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
2828 instead of grub_efi_open_protocol.
2829 (grub_efidisk_get_device_name): Likewise.
2830 (grub_efidisk_close): Print a newline.
2831 (grub_efidisk_get_device_handle): Fixed to use
2832 GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
2833 GRUB_EFI_DEVICE_PATH_TYPE.
2834
2835 * disk/efi/efidisk.c (device_path_guid): Moved to ...
2836 * kern/efi/efi.c (device_path_guid): ... here.
2837
2838 * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
2839 chain.mod.
2840 (kernel_mod_HEADERS): Added efi/disk.h.
2841 (_chain_mod_SOURCES): New variable.
2842 (_chain_mod_CFLAGS): Likewise.
2843 (_chain_mod_LDFLAGS): Likewise.
2844 (chain_mod_SOURCES): Likewise.
2845 (chain_mod_CFLAGS): Likewise.
2846 (chain_mod_LDFLAGS): Likewise.
2847
2848 * DISTLIST: Added include/grub/efi/chainloader.h,
2849 loader/efi/chainloader.c and loader/efi/chainloader_normal.c.
2850
2851 * include/grub/efi/chainloader.h: New file.
2852 * loader/efi/chainloader.c: Likewise.
2853 * loader/efi/chainloader_normal.c: Likewise.
2854
c0111d6e 28552006-04-30 Marco Gerards <marco@gnu.org>
2856
2857 * commands/configfile.c (grub_cmd_source): New function.
2858 (GRUB_MOD_INIT): Register the commands `source' and `.'.
2859 (GRUB_MOD_FINI): De-register the commands `source' and `.'.
2860
df5341da 28612006-04-30 Marco Gerards <marco@gnu.org>
2862
2863 * normal/execute.c (grub_script_execute_cmd): Change the return
2864 type to `grub_err_t'. Correctly return the error.
2865 (grub_script_execute_cmdline): In case a command line is not a
2866 command or a function, try to interpret it as an assignment.
2867
f85934bd 28682006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
2869
2870 * fs/hfsplus.c (grub_hfsplus_read_block): Fixed a memory leak.
2871 (grub_hfsplus_iterate_dir): Reordered to skip unknown nodes. Also,
2872 skip a node whose name is obviously invalid as UTF-16,
2873 i.e. contains a NUL character. Stop the iteration when the last
2874 directory entry is found. Instead of using the return value of
2875 grub_hfsplus_btree_iterate_node, store the value in RET and use
2876 it, because the iterator can be stopped by the last directory
2877 entry.
2878
8f8a2cf8 28792006-04-30 Marco Gerards <marco@gnu.org>
2880
2881 * include/grub/env.h (grub_env_export): New prototype. Reported
2882 by Jan C. Kleinsorge <jan.kleinsorge@udo.edu>.
2883
a27e84ce 28842006-04-30 Marco Gerards <marco@gnu.org>
2885
2886 * fs/hfsplus.c (grub_hfsplus_iterate_dir): Correctly calculate the
2887 size of the extents in a catalog file record.
2888
eaef0553 28892006-04-29 Marco Gerards <marco@gnu.org>
2890
2891 * commands/configfile.c (grub_cmd_configfile): Execute the
2892 configfile within its own context.
2893
2894 * include/grub/env.h (grub_env_context_open): New prototype.
2895 (grub_env_context_close): Likewise.
2896
2897 * kern/env.c (grub_env): Removed.
2898 (grub_env_sorted): Likewise.
2899 (grub_env_context): New variable.
2900 (grub_env_var_context): Likewise.
2901 (grub_env_find): Search both the active context and the global
2902 context.
2903 (grub_env_context_open): New function.
2904 (grub_env_context_close): Likewise.
2905 (grub_env_insert): Likewise.
2906 (grub_env_remove): Likewise.
2907 (grub_env_export): Likewise.
2908 (grub_env_set): Changed to use helper functions to avoid code
2909 duplication.
2910 (grub_env_iterate): Rewritten so both the current context and the
2911 global context are being used.
2912
2913 * normal/command.c (export_command): New function.
2914 (grub_command_init): Register the `export' function.
2915
7b455f4d 29162006-04-26 Yoshinori K. Okuji <okuji@enbug.org>
2917
2918 * util/i386/pc/grub-mkimage.c (compress_kernel): Cast arguments
2919 explicitly to suppress gcc's warnings.
2920 * fs/fat.c (grub_fat_find_dir): Likewise.
2921 (grub_fat_label): Likewise.
2922 * fs/xfs.c (grub_xfs_read_inode): Likewise.
2923 (grub_xfs_mount): Likewise.
2924 (grub_xfs_label): Likewise.
2925 * fs/affs.c (grub_affs_mount): Likewise.
2926 (grub_affs_label): Likewise.
2927 (grub_affs_iterate_dir): Likewise.
2928 * fs/sfs.c (grub_sfs_mount): Likewise.
2929 (grub_sfs_iterate_dir): Likewise.
2930 * fs/ufs.c (grub_ufs_lookup_symlink): Likewise.
2931 * fs/hfs.c (grub_hfs_mount): Likewise.
2932 (grub_hfs_cmp_catkeys): Likewise.
2933 (grub_hfs_find_dir): Likewise.
2934 (grub_hfs_dir): Likewise.
2935 (grub_hfs_label): Likewise.
2936 * fs/jfs.c (grub_jfs_mount): Likewise.
2937 (grub_jfs_opendir): Likewise.
2938 (grub_jfs_getent): Likewise.
2939 (grub_jfs_lookup_symlink): Likewise.
2940 (grub_jfs_label): Likewise.
2941 * fs/hfsplus.c (grub_hfsplus_cmp_catkey): Likewise.
2942 (grub_hfsplus_iterate_dir): Likewise.
2943 (grub_hfsplus_btree_iterate_node): Made static.
2944
2945 * util/grub-emu.c (prefix): New variable.
2946 (grub_machine_set_prefix): New function.
2947 (main): Do not set the environment variable "prefix" here. Only
2948 set PREFIX, which is used later by grub_machine_set_prefix.
2949
2950 * include/grub/video.h: Do not include grub/symbol.h.
2951 (grub_video_register): Not exported. This symbol is not defined in
2952 the kernel.
2953 (grub_video_unregister): Likewise.
2954 (grub_video_iterate): Likewise.
2955 (grub_video_setup): Likewise.
2956 (grub_video_restore): Likewise.
2957 (grub_video_get_info): Likewise.
2958 (grub_video_get_blit_format): Likewise.
2959 (grub_video_set_palette): Likewise.
2960 (grub_video_get_palette): Likewise.
2961 (grub_video_set_viewport): Likewise.
2962 (grub_video_get_viewport): Likewise.
2963 (grub_video_map_color): Likewise.
2964 (grub_video_map_rgb): Likewise.
2965 (grub_video_map_rgba): Likewise.
2966 (grub_video_fill_rect): Likewise.
2967 (grub_video_blit_glyph): Likewise.
2968 (grub_video_blit_bitmap): Likewise.
2969 (grub_video_blit_render_target): Likewise.
2970 (grub_video_scroll): Likewise.
2971 (grub_video_swap_buffers): Likewise.
2972 (grub_video_create_render_target): Likewise.
2973 (grub_video_delete_render_target): Likewise.
2974 (grub_video_set_active_render_target): Likewise.
2975
2976 * include/grub/symbol.h [GRUB_SYMBOL_GENERATOR] (EXPORT_FUNC):
2977 Undefined.
2978 [GRUB_SYMBOL_GENERATOR] (EXPORT_VAR): Likewise.
2979
2980 * conf/sparc64-ieee1275.rmk (grubof_symlist.c): Depended on
2981 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
2982 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
2983 instead of $(srcdir)/genkernsyms.sh.
2984
2985 * conf/powerpc-ieee1275.rmk (grubof_symlist.c): Depended on
2986 config.h. Use gensymlist.sh instead of $(srcdir)/gensymlist.sh.
2987 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
2988 instead of $(srcdir)/genkernsyms.sh.
2989
2990 * conf/i386-pc.rmk (symlist.c): Depended on config.h. Use
2991 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
2992 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
2993 instead of $(srcdir)/genkernsyms.sh.
2994
2995 * conf/i386-efi.rmk (symlist.c): Depended on config.h. Use
2996 gensymlist.sh instead of $(srcdir)/gensymlist.sh.
2997 (kernel_syms.lst): Depended on config.h. Use genkernsyms.sh
2998 instead of $(srcdir)/genkernsyms.sh.
2999
3000 * configure.ac (AC_CONFIG_FILES): Added gensymlist.sh and
3001 genkernsyms.sh.
3002
3003 * Makefile.in (DISTCLEANFILES): Added gensymlist.sh and
3004 genkernsyms.sh.
3005 (gensymlist.sh): New target.
3006 (genkernsyms.sh): Likewise.
3007
3008 * DISTLIST: Removed genkernsyms.sh and gensymlist.sh. Added
3009 genkernsyms.sh.in and gensymlist.sh.in.
3010
3011 * genkernsyms.sh: Removed.
3012 * gensymlist.sh: Likewise.
3013
3014 * genkernsyms.sh.in: New file.
3015 * gensymlist.sh.in: Likewise.
3016
1885bb27 30172006-04-25 Hollis Blanchard <hollis@penguinppc.org>
3018
3019 * kern/powerpc/ieee1275/init.c (grub_machine_set_prefix): Do not
3020 clobber "prefix", since we may have already set it manually.
3021
71538dff 30222006-04-25 Hollis Blanchard <hollis@penguinppc.org>
3023
3024 * kern/misc.c (abort): New alias for grub_abort.
3025
2965c7cc 30262006-04-25 Yoshinori K. Okuji <okuji@enbug.org>
3027
3028 A new machine-specific function "grub_machine_set_prefix" is
3029 defined. This is called after loading modules, so that a prefix
3030 initialization can use modules. Also, this change adds an
3031 intensive debugging feature for the memory manager via the
3032 configure option "--enable-mm-debug".
3033
3034 * partmap/gpt.c (gpt_partition_map_iterate): Add one more into
3035 PART.LEN.
3036
3037 * kern/sparc64/ieee1275/init.c (abort): Removed.
3038 (grub_stop): Likewise.
3039 (grub_exit): New function.
3040 (grub_set_prefix): Renamed to ...
3041 (grub_machine_set_prefix): ... this.
3042 (grub_machine_init): Do not call grub_set_prefix.
3043
3044 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Renamed to ...
3045 (grub_machine_set_prefix): ... this.
3046 (grub_machine_init): Do not call grub_set_prefix.
3047
3048 * kern/i386/pc/init.c (grub_machine_set_prefix): New function.
3049 (grub_machine_init): Do not set the prefix here.
3050
3051 * kern/i386/efi/init.c (grub_machine_set_prefix): New function.
3052
3053 * kern/efi/init.c: Include grub/mm.h.
3054 (grub_efi_set_prefix): New function.
3055
3056 * kern/efi/efi.c (grub_exit): Call grub_efi_fini.
3057 (grub_efi_get_filename): New function.
3058 (grub_print_device_path): Renamed to ...
3059 (grub_efi_print_device_path): ... this.
3060
3061 * kern/mm.c [MM_DEBUG] (grub_malloc): Undefined.
3062 [MM_DEBUG] (grub_realloc): Likewise.
3063 [MM_DEBUG] (grub_free): Likewise.
3064 [MM_DEBUG] (grub_memalign): Likewise.
3065 [MM_DEBUG] (grub_mm_debug): New variable.
3066 [MM_DEBUG] (grub_debug_malloc): New function.
3067 [MM_DEBUG] (grub_debug_free): New function.
3068 [MM_DEBUG] (grub_debug_realloc): New function.
3069 [MM_DEBUG] (grub_debug_memalign): New function.
3070
3071 * kern/misc.c (grub_abort): Print a newline to distinguish
3072 the message.
3073
3074 * kern/main.c (grub_main): Call grub_machine_set_prefix and
3075 grub_set_root_dev after loading modules. This is necessary when
3076 setting a prefix depends on modules.
3077
3078 * include/grub/efi/efi.h (grub_print_device_path): Renamed to ...
3079 (grub_efi_print_device_path): ... this.
3080 (grub_efi_get_filename): New prototype.
3081 (grub_efi_set_prefix): Likewise.
3082
3083 * include/grub/efi/disk.h: Include grub/efi/api.h, grub/symbol.h
3084 and grub/disk.h.
3085 (grub_efidisk_get_device_handle): New prototype.
3086 (grub_efidisk_get_device_name): Likewise.
3087
3088 * include/grub/mm.h: Include config.h.
3089 (MM_DEBUG): Removed.
3090 [MM_DEBUG && !GRUB_UTIL] (grub_mm_debug): New prototype.
3091 [MM_DEBUG && !GRUB_UTIL] (grub_malloc): New macro.
3092 [MM_DEBUG && !GRUB_UTIL] (grub_realloc): Likewise.
3093 [MM_DEBUG && !GRUB_UTIL] (grub_memalign): Likewise.
3094 [MM_DEBUG && !GRUB_UTIL] (grub_free): Likewise.
3095 [MM_DEBUG && !GRUB_UTIL] (grub_debug_malloc): New prototype.
3096 [MM_DEBUG && !GRUB_UTIL] (grub_debug_realloc): New prototype.
3097 [MM_DEBUG && !GRUB_UTIL] (grub_debug_memalign): New prototype.
3098 [MM_DEBUG && !GRUB_UTIL] (grub_debug_free): New prototype.
3099
3100 * include/grub/kernel.h (grub_machine_set_prefix): New prototype.
3101
3102 * disk/efi/efidisk.c: Include grub/partition.h.
3103 (iterate_child_devices): New function.
3104 (add_device): First, compare only last device path nodes, so that
3105 devices are sorted by the types.
3106 (grub_efidisk_get_device_handle): New function.
3107 (grub_efidisk_get_device_name): Likewise.
3108
3109 * configure.ac (--enable-mm-debug): New option to enable the
3110 memory manager debugging feature. This makes the binary much
3111 bigger, so is disabled by default.
3112
9cacaa17 31132006-04-23 Yoshinori K. Okuji <okuji@enbug.org>
3114
3115 Use grub_abort instead of grub_stop, and grub_exit must be
3116 define in each architecture now. Also, this change adds support
3117 for EFI disks.
3118
3119 * util/i386/pc/grub-probefs.c: Include grub/term.h.
3120 (grub_getkey): New function.
3121 (grub_term_get_current): Likewise.
3122
3123 * util/i386/pc/grub-setup.c: Include grub/term.h.
3124 (grub_getkey): New function.
3125 (grub_term_get_current): Likewise.
3126
3127 * util/misc.c (grub_stop): Renamed to ...
3128 (grub_exit): ... this.
3129
3130 * kern/powerpc/ieee1275/init.c (abort): Renamed to ...
3131 (grub_exit): ... this.
3132 (grub_machine_init): Use grub_abort instead of abort.
3133 (grub_stop): Removed.
3134
3135 * kern/powerpc/ieee1275/cmain.c (cmain): Use grub_abort instead of
3136 abort.
3137
3138 * kern/i386/pc/startup.S (grub_exit): New function.
3139 (cold_reboot): New label.
3140
3141 * kern/efi/init.c: Include grub/efi/disk.h and grub/env.h.
3142 (grub_efi_init): Call grub_efidisk_init.
3143 (grub_efi_fini): Call grub_efidisk_fini.
3144
3145 * kern/efi/efi.c: Include grub/mm.h.
3146 (grub_efi_console_control_guid): Renamed to ...
3147 (console_control_guid): ... this.
3148 (grub_efi_loaded_image_guid): Renamed to ...
3149 (loaded_image_guid): ... this.
3150 (grub_efi_locate_handle): New function.
3151 (grub_efi_open_protocol): Likewise.
3152 (grub_efi_set_text_mode): Use CONSOLE_CONTROL_GUID instead of
3153 GRUB_EFI_CONSOLE_CONTROL_GUID.
3154 (grub_efi_exit): Removed.
3155 (grub_stop): Likewise.
3156 (grub_efi_get_loaded_image): Use grub_efi_open_protocol.
3157 (grub_exit): New function.
3158 (grub_print_device_path): Likewise.
3159
3160 * kern/rescue.c (grub_rescue_cmd_exit): New function.
3161 (grub_enter_rescue_mode): Register "exit".
3162
3163 * kern/misc.c (grub_real_dprintf): A cosmetic change.
3164 (grub_abort): New function.
3165
3166 * kern/err.c (grub_fatal): Use grub_abort instead of grub_stop.
3167
3168 * include/grub/sparc64/ieee1275/kernel.h (abort): Removed.
3169
3170 * include/grub/powerpc/ieee1275/kernel.h (abort): Removed.
3171
3172 * include/grub/efi/efi.h (grub_efi_exit): Removed.
3173 (grub_print_device_path): New prototype.
3174 (grub_efi_locate_handle): Likewise.
3175 (grub_efi_open_protocol): Likewise.
3176
3177 * include/grub/efi/disk.h (grub_efidisk_fini): New file.
3178 * disk/efi/efidisk.c: Likewise.
3179
3180 * DISTLIST: Added disk/efi/efidisk.c and include/grub/efi/disk.h.
3181
3182 * include/grub/efi/console_control.h
3183 (GRUB_EFI_CONSOLE_CONTROL_GUID): Use an array for the last 8 bytes.
3184
3185 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): Specify the
3186 last 8 bytes as an array.
3187 (GRUB_EFI_DISK_IO_GUID): New macro.
3188 (GRUB_EFI_BLOCK_IO_GUID): Likewise.
3189 (GRUB_EFI_DEVICE_PATH_GUID): Likewise.
3190 (grub_efi_ipv6_address_t): Change the type to grub_uint16_t from
3191 grub_uint8_t.
3192 (struct grub_efi_guid): Use an array to specify the last 8 bytes.
3193 (struct grub_efi_device_path): Rename the member "sub_type" to
3194 "subtype".
3195 (GRUB_EFI_DEVICE_PATH_TYPE): New macro.
3196 (GRUB_EFI_DEVICE_PATH_SUBTYPE): Likewise.
3197 (GRUB_EFI_DEVICE_PATH_LENGTH): Likewise.
3198 (GRUB_EFI_END_DEVICE_PATH_TYPE): Likewise.
3199 (GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE): Likewise.
3200 (GRUB_EFI_END_THIS_DEVICE_PATH_SUBTYPE): Likewise.
3201 (GRUB_EFI_END_ENTIRE_DEVICE_PATH): Likewise.
3202 (GRUB_EFI_NEXT_DEVICE_PATH): Likewise.
3203 (GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE): Likewise.
3204 (GRUB_EFI_PCI_DEVICE_PATH_SUBTYPE): Likewise.
3205 (struct grub_efi_pci_device_path): New structure.
3206 (grub_efi_pci_device_path_t): New type.
3207 (GRUB_EFI_PCCARD_DEVICE_PATH_SUBTYPE): New macro.
3208 (struct grub_efi_pccard_device_path): New structure.
3209 (grub_efi_pccard_device_path_t): New type.
3210 (GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE): New macro.
3211 (struct grub_efi_memory_mapped_device_path): New structure.
3212 (grub_efi_memory_mapped_device_path_t): New type.
3213 (GRUB_EFI_VENDOR_DEVICE_PATH_SUBTYPE): New macro.
3214 (struct grub_efi_vendor_device_path): New structure.
3215 (grub_efi_vendor_device_path_t): New type.
3216 (GRUB_EFI_CONTROLLER_DEVICE_PATH_SUBTYPE): New macro.
3217 (struct grub_efi_controller_device_path): New structure.
3218 (grub_efi_controller_device_path_t): New type.
3219 (GRUB_EFI_ACPI_DEVICE_PATH_TYPE): New macro.
3220 (GRUB_EFI_ACPI_DEVICE_PATH_SUBTYPE): Likewise.
3221 (struct grub_efi_acpi_device_path): New structure.
3222 (grub_efi_acpi_device_path_t): New type.
3223 (GRUB_EFI_EXPANDED_ACPI_DEVICE_PATH_SUBTYPE): New macro.
3224 (struct grub_efi_expanded_acpi_device_path): New structure.
3225 (grub_efi_expanded_acpi_device_path_t): New type.
3226 (GRUB_EFI_EXPANDED_ACPI_HIDSTR): New macro.
3227 (GRUB_EFI_EXPANDED_ACPI_UIDSTR): Likewise.
3228 (GRUB_EFI_EXPANDED_ACPI_CIDSTR): Likewise.
3229 (GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE): Likewise.
3230 (GRUB_EFI_ATAPI_DEVICE_PATH_SUBTYPE): Likewise.
3231 (struct grub_efi_atapi_device_path): New structure.
3232 (grub_efi_atapi_device_path_t): New type.
3233 (GRUB_EFI_FIBRE_CHANNEL_DEVICE_PATH_SUBTYPE): New macro.
3234 (struct grub_efi_fibre_channel_device_path): New structure.
3235 (grub_efi_fibre_channel_device_path_t): New type.
3236 (GRUB_EFI_1394_DEVICE_PATH_SUBTYPE): New macro.
3237 (struct grub_efi_1394_device_path): New structure.
3238 (grub_efi_1394_device_path_t): New type.
3239 (GRUB_EFI_USB_DEVICE_PATH_SUBTYPE): New macro.
3240 (struct grub_efi_usb_device_path): New structure.
3241 (grub_efi_usb_device_path_t): New type.
3242 (GRUB_EFI_USB_CLASS_DEVICE_PATH_SUBTYPE): New macro.
3243 (struct grub_efi_usb_class_device_path): New structure.
3244 (grub_efi_usb_class_device_path_t): New type.
3245 (GRUB_EFI_I2O_DEVICE_PATH_SUBTYPE): New macro.
3246 (struct grub_efi_i2o_device_path): New structure.
3247 (grub_efi_i2o_device_path_t): New type.
3248 (GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE): New macro.
3249 (struct grub_efi_mac_address_device_path): New structure.
3250 (grub_efi_mac_address_device_path_t): New type.
3251 (GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE): New macro.
3252 (struct grub_efi_ipv4_device_path): New structure.
3253 (grub_efi_ipv4_device_path_t): New type.
3254 (GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE): New macro.
3255 (struct grub_efi_ipv6_device_path): New structure.
3256 (grub_efi_ipv6_device_path_t): New type.
3257 (GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE): New macro.
3258 (struct grub_efi_infiniband_device_path): New structure.
3259 (grub_efi_infiniband_device_path_t): New type.
3260 (GRUB_EFI_UART_DEVICE_PATH_SUBTYPE): New macro.
3261 (struct grub_efi_uart_device_path): New structure.
3262 (grub_efi_uart_device_path_t): New type.
3263 (GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE): New macro.
3264 (struct grub_efi_vendor_messaging_device_path): New structure.
3265 (grub_efi_vendor_messaging_device_path_t): New type.
3266 (GRUB_EFI_MEDIA_DEVICE_PATH_TYPE): New macro.
3267 (GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE): Likewise.
3268 (struct grub_efi_hard_drive_device_path): New structure.
3269 (grub_efi_hard_drive_device_path_t): New type.
3270 (GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE): New macro.
3271 (struct grub_efi_cdrom_device_path): New structure.
3272 (grub_efi_cdrom_device_path_t): New type.
3273 (GRUB_EFI_VENDOR_MEDIA_DEVICE_PATH_SUBTYPE): New macro.
3274 (struct grub_efi_vendor_media_device_path): New structure.
3275 (grub_efi_vendor_media_device_path_t): New type.
3276 (GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE): New macro.
3277 (struct grub_efi_file_path_device_path): New structure.
3278 (grub_efi_file_path_device_path_t): New type.
3279 (GRUB_EFI_PROTOCOL_DEVICE_PATH_SUBTYPE): New macro.
3280 (struct grub_efi_protocol_device_path): New structure.
3281 (grub_efi_protocol_device_path_t): New type.
3282 (GRUB_EFI_BIOS_DEVICE_PATH_TYPE): New macro.
3283 (GRUB_EFI_BIOS_DEVICE_PATH_SUBTYPE): Likewise.
3284 (struct grub_efi_bios_device_path): New structure.
3285 (grub_efi_bios_device_path_t): New type.
3286 (struct grub_efi_disk_io): New structure.
3287 (grub_efi_disk_io_t): New type.
3288 (struct grub_efi_block_io_media): New structure.
3289 (grub_efi_block_io_media_t): New type.
3290 (struct grub_efi_block_io): New structure.
3291 (grub_efi_block_io_t): New type.
3292
3293 * include/grub/misc.h (grub_stop): Removed.
3294 (grub_exit): New prototype.
3295 (grub_abort): Likewise.
3296
3297 * include/grub/disk.h (enum grub_disk_dev_id): Added
3298 GRUB_DISK_DEVICE_EFIDISK_ID.
3299
3300 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added
3301 disk/efi/efidisk.c.
3302 (kernel_syms.lst): Remove the target if an error occurs.
3303
49986a9f 33042006-04-22 Yoshinori K. Okuji <okuji@enbug.org>
3305
3306 * kern/misc.c (grub_lltoa): Rewritten the decimal conversion part,
3307 as it was simply too buggy.
3308
970d3b8a 33092006-04-21 Yoshinori K. Okuji <okuji@enbug.org>
3310
3311 * kern/misc.c (grub_lltoa): New function.
3312 (grub_vsprintf): Added support for the long long suffix,
3313 i.e. "ll".
3314
ff04ec24 33152006-04-20 Hollis Blanchard <hollis@penguinppc.org>
3316
3317 * Makefile.in (LDFLAGS): Add variable.
3318 (LD): Remove variable.
3319 * configure.ac: Add -m32 to LDFLAGS.
3320 * genmk.rb (PModule#rule): Use $(CC) instead of $(LD).
3321 * conf/powerpc-ieee1275.rmk (COMMON_LDFLAGS): Add variable.
3322 (grubof_LDFLAGS): Use $(COMMON_LDFLAGS).
3323 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS, normal_mod_LDFLAGS,
3324 suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS): New
3325 variables.
3326 * conf/sparc64-ieee1275.rmk (COMMON_LDFLAGS): Add -nostdlib.
3327 * conf/i386-pc.rmk (COMMON_LDFLAGS): Add -nostdlib.
3328 * conf/i386-efi.rmk (COMMON_LDFLAGS): Add -nostdlib.
3329
37e5e1a4 33302006-04-20 Vesa Jaaskelainen <chaac@nic.fi>
3331
3332 * term/gfxterm.c (grub_gfxterm_getcharwidth): Fixed character
3333 length for unknown glyph.
3334
c352d8dd 33352006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
3336
2eab1c0d 3337 Add support for pre-loaded modules into the EFI port.
3338
3339 * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
3340 completely. Accept one more argument DIR. The caller has changed.
3341
3342 * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.
3343
3344 * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
3345 (grub_efi_loaded_image_guid): New variable.
3346 (grub_efi_get_loaded_image): New function.
3347 (grub_arch_modules_addr): Likewise.
3348
3349 * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
3350 prototype.
3351
3352 * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
3353 (struct grub_efi_loaded_image): New structure.
3354 (grub_efi_loaded_image_t): New type.
3355
33562006-04-20 Yoshinori K. Okuji <okuji@enbug.org>
3357
c352d8dd 3358 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Compare the file
3359 size with GRUB_OS_AREA_SIZE as grub_size_t instead of
3360 grub_ssize_t. Reported by Jeff Chua <jeff84@silk.corp.fedex.com>.
3361
6d01d6b4 33622006-04-19 Roger Leigh <rleigh@whinlatter.ukfsn.org>
3363
3364 * DISTLIST: Added `util/powerpc/ieee1275/grub-install.in'.
3365
976a4ea0 33662006-04-19 Yoshinori K. Okuji <okuji@enbug.org>
3367
3368 * DISTLIST: Added include/grub/efi/console.h,
3369 include/grub/efi/time.h, include/grub/i386/efi/kernel.h,
3370 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
3371
3372 * include/grub/efi/console.h: New file.
3373 * include/grub/efi/time.h: Likewise.
3374 * include/grub/i386/efi/kernel.h: Likewise.
3375 * kern/efi/init.c: Likewise.
3376 * kern/efi/mm.c: Likewise.
3377 * term/efi/console.c: Likewise.
3378
3379 * kern/i386/efi/init.c: Do not include grub/machine/time.h.
3380 (grub_stop): Removed.
3381 (grub_get_rtc): Likewise.
3382 (grub_machine_init): Simply call grub_efi_init.
3383 (grub_machine_fini): Call grub_efi_fini.
3384
3385 * kern/efi/efi.c: Include grub/machine/time.h and grub/term.h.
3386 (grub_efi_output_string): Removed.
3387 (grub_efi_stall): New function.
3388 (grub_stop): Likewise.
3389 (grub_get_rtc): Likewise.
3390
3391 * include/grub/efi/efi.h (grub_efi_output_string): Removed.
3392 (grub_efi_stall): New prototype.
3393 (grub_efi_allocate_pages): Likewise.
3394 (grub_efi_free_pages): Likewise.
3395 (grub_efi_get_memory_map): Likewise.
3396 (grub_efi_mm_init): Likewise.
3397 (grub_efi_mm_fini): Likewise.
3398 (grub_efi_init): Likewise.
3399 (grub_efi_fini): Likewise.
3400
3401 * include/grub/i386/efi/time.h: Do not include
3402 grub/symbol.h. Include grub/efi/time.h.
3403 (GRUB_TICKS_PER_SECOND): Removed.
3404 (grub_get_rtc): Likewise.
3405
3406 * include/grub/efi/api.h (struct grub_efi_memory_descriptor):
3407 Added padding. The EFI spec is buggy.
3408 (GRUB_EFI_BLACK): New macro.
3409 (GRUB_EFI_BLUE): Likewise.
3410 (GRUB_EFI_GREEN): Likewise.
3411 (GRUB_EFI_CYAN): Likewise.
3412 (GRUB_EFI_RED): Likewise.
3413 (GRUB_EFI_MAGENTA): Likewise.
3414 (GRUB_EFI_BROWN): Likewise.
3415 (GRUB_EFI_LIGHTGRAY): Likewise.
3416 (GRUB_EFI_BRIGHT): Likewise.
3417 (GRUB_EFI_DARKGRAY): Likewise.
3418 (GRUB_EFI_LIGHTBLUE): Likewise.
3419 (GRUB_EFI_LIGHTGREEN): Likewise.
3420 (GRUB_EFI_LIGHTCYAN): Likewise.
3421 (GRUB_EFI_LIGHTRED): Likewise.
3422 (GRUB_EFI_LIGHTMAGENTA): Likewise.
3423 (GRUB_EFI_YELLOW): Likewise.
3424 (GRUB_EFI_WHITE): Likewise.
3425 (GRUB_EFI_BACKGROUND_BLACK): Likewise.
3426 (GRUB_EFI_BACKGROUND_BLUE): Likewise.
3427 (GRUB_EFI_BACKGROUND_GREEN): Likewise.
3428 (GRUB_EFI_BACKGROUND_CYAN): Likewise.
3429 (GRUB_EFI_BACKGROUND_RED): Likewise.
3430 (GRUB_EFI_BACKGROUND_MAGENTA): Likewise.
3431 (GRUB_EFI_BACKGROUND_BROWN): Likewise.
3432 (GRUB_EFI_BACKGROUND_LIGHTGRAY): Likewise.
3433 (GRUB_EFI_TEXT_ATTR): Likewise.
3434
3435 * conf/i386-efi.rmk (kernel_mod_SOURCES): Added kern/efi/efi.c,
3436 kern/efi/init.c, kern/efi/mm.c, and term/efi/console.c.
3437 (kernel_mod_HEADERS): Added efi/time.h.
3438
83709125 34392006-04-18 Yoshinori K. Okuji <okuji@enbug.org>
3440
3441 * DISTLIST: Added conf/i386-efi.mk, conf/i386-efi.rmk,
3442 include/grub/efi/api.h, include/grub/efi/console_control.h,
3443 include/grub/efi/efi.h, include/grub/efi/pe32.h,
3444 include/grub/i386/efi/time.h, kern/efi/efi.c,
3445 kern/i386/efi/init.c, kern/i386/efi/startup.S,
3446 and util/i386/efi/grub-mkimage.c.
3447
3448 * Makefile.in (RMKFILES): Added i386-efi.rmk.
3449
3450 * genmk.rb (PModule#rule): Do not export symbols if
3451 #{prefix}_EXPORTS is set to "no".
3452
3453 * conf/i386-efi.mk: New file.
3454 * conf/i386-efi.rmk: Likewise.
3455 * include/grub/efi/api.h: Likewise.
3456 * include/grub/efi/console_control.h: Likewise.
3457 * include/grub/efi/efi.h: Likewise.
3458 * include/grub/efi/pe32.h: Likewise.
3459 * include/grub/i386/efi/time.h: Likewise.
3460 * kern/efi/efi.c: Likewise.
3461 * kern/i386/efi/init.c: Likewise.
3462 * kern/i386/efi/startup.S: Likewise.
3463 * util/i386/efi/grub-mkimage.c: Likewise.
3464
34652006-04-17 Marco Gerards <marco@gnu.org>
bfa2bd9e 3466
3467 * include/grub/script.h: Include <grub/parser.h> and
3468 "grub_script.tab.h".
3469 (struct grub_lexer_param): New struct.
3470 (struct grub_parser_param): Likewise.
3471 (grub_script_create_arglist): Pass the state in an argument.
3472 (grub_script_add_arglist): Likewise.
3473 (grub_script_create_cmdline): Likewise.
3474 (grub_script_create_cmdblock): Likewise.
3475 (grub_script_create_cmdif): Likewise.
3476 (grub_script_create_cmdmenu): Likewise.
3477 (grub_script_add_cmd): Likewise.
3478 (grub_script_arg_add): Likewise.
3479 (grub_script_lexer_ref): Likewise.
3480 (grub_script_lexer_deref): Likewise.
3481 (grub_script_lexer_record_start): Likewise.
3482 (grub_script_lexer_record_stop): Likewise.
3483 (grub_script_mem_record): Likewise.
3484 (grub_script_mem_record_stop): Likewise.
3485 (grub_script_malloc): Likewise.
3486 (grub_script_yylex): Likewise.
3487 (grub_script_yyparse): Likewise.
3488 (grub_script_yyerror): Likewise.
3489 (grub_script_yylex): Likewise.
3490 (grub_script_lexer_init): Return the state.
3491
3492 * normal/lexer.c (grub_script_lexer_state): Removed variable.
3493 (grub_script_lexer_done): Likewise.
3494 (grub_script_lexer_getline): Likewise.
3495 (grub_script_lexer_refs): Likewise.
3496 (script): Likewise.
3497 (newscript): Likewise.
3498 (record): Likewise.
3499 (recording): Likewise.
3500 (recordpos): Likewise.
3501 (recordlen): Likewise.
3502 (grub_script_lexer_init): Return the state instead of setting
3503 global variables.
3504 (grub_script_lexer_ref): Use the newly added argument for state
3505 instead of globals.
3506 (grub_script_lexer_deref): Likewise.
3507 (grub_script_lexer_record_start): Likewise.
3508 (grub_script_lexer_record_stop): Likewise.
3509 (recordchar): Likewise.
3510 (nextchar): Likewise.
3511 (grub_script_yylex2): Likewise.
3512 (grub_script_yylex): Likewise.
3513 (grub_script_yyerror): Likewise.
3514
3515 * normal/parser.y (func_mem): Removed variable.
3516 (menu_entry): Likewise.
3517 (err): Likewise.
3518 (%lex-param): New parser option.
3519 (%parse-param): Likewise.
3520 (script): Always return the AST.
3521 (argument): Pass the state around.
3522 (arguments): Likewise.
3523 (grubcmd): Likewise.
3524 (commands): Likewise.
3525 (function): Likewise.
3526 (menuentry): Likewise.
3527 (if_statement): Likewise.
3528 (if): Likewise.
3529
3530 * normal/script.c (grub_script_memused): Removed variable.
3531 (grub_script_parsed): Likewise.
3532 (grub_script_malloc): Added a state argument. Use that instead of
3533 global variables.
3534 (grub_script_mem_record): Likewise.
3535 (grub_script_mem_record_stop): Likewise.
3536 (grub_script_arg_add): Likewise.
3537 (grub_script_add_arglist): Likewise.
3538 (grub_script_create_cmdline): Likewise.
3539 (grub_script_create_cmdif): Likewise.
3540 (grub_script_create_cmdmenu): Likewise.
3541 (grub_script_add_cmd): Likewise.
3542 (grub_script_parse): Setup the state before calling the parser.
3543
e2a8c904 35442006-04-16 Marco Gerards <marco@gnu.org>
6de2ee99 3545
3546 * normal/command.c (grub_command_init): Remove the title command.
3547
3548 * normal/lexer.c (grub_script_yylex): Renamed from this...
3549 (grub_script_yylex2): ... to this.
3550 (grub_script_yylex): New function. Temporary
3551 introduced to filter some tokens.
3552 (grub_script_yyerror): Print a newline.
3553
3554 * normal/main.c (read_config_file): Output information about the
3555 lines that contain errors. Wait for a key after all lines have
3556 been processed. Don't return an empty menu.
3557
3558 * normal/parser.y (func_mem): Don't initialize.
3559 (menu_entry): Likewise.
3560 (err): New variable.
3561 (script): Don't return anything when an error was encountered.
3562 (ws, returns): Removed rules.
3563 (argument): Disabled concatenated variable support.
3564 (arguments): Remove explicit separators.
3565 (grubcmd): Likewise.
3566 (function): Likewise.
3567 (menuentry): Likewise.
3568 (if): Likewise.
3569 (commands): Likewise. Add error handling.
3570
3571 * normal/script.c (grub_script_create_cmdline): If
3572 `grub_script_parsed' is 0, assume the parser encountered an error.
3573
c9a86192 35742006-04-02 Yoshinori K. Okuji <okuji@enbug.org>
3575
3576 * configure.ac: Add support for EFI. Fix the typo
3577 BUILD_LDDFLAGS. Restore the LDFLAGS after testing.
3578
70f3b243 35792006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
3580
3581 * util/unifont2pff.rb: Removed unnecessary byte ordering. Now
3582 foreign multibyte characters should be shown correctly.
3583
65f201ad 35842006-04-01 Vesa Jaaskelainen <chaac@nic.fi>
3585
3586 * normal/main.c (grub_normal_menu_addentry): Fixed menu size
3587 calculation.
3588 (read_config_file): Made it to close file before returning.
3589
b4b93674 35902006-03-31 Vesa Jaaskelainen <chaac@nic.fi>
3591
3592 * DISTLIST: Added include/grub/i386/pc/vbeblit.h,
3593 include/grub/i386/pc/vbefill.h, video/i386/pc/vbeblit.c,
3594 video/i386/pc/vbefill.c.
3595
3596 * conf/i386-pc.rmk (vbe_mod_SOURCES): Added video/i386/pc/vbeblit.c,
3597 video/i386/pc/vbefill.c.
3598
3599 * include/grub/video.h (grub_video_blit_format): New enum.
3600 (grub_video_mode_info): Added new member blit_format.
3601 (grub_video_get_blit_format): New function prototype.
3602
3603 * include/grub/i386/pc/vbe.h (grub_video_vbe_get_video_ptr): New
3604 function prototype.
3605 (grub_video_vbe_map_rgb): Likewise.
3606 (grub_video_vbe_unmap_color): Likewise.
3607
3608 * include/grub/i386/pc/vbeblit.h: New file.
3609
3610 * include/grub/i386/pc/vbefill.h: New file.
3611
3612 * video/video.c (grub_video_get_blit_format): New function.
3613 (grub_video_vbe_get_video_ptr): Re-declared as non-static.
3614 (grub_video_vbe_map_rgb): Likewise.
3615 (grub_video_vbe_unmap_color): Likewise.
3616
3617 * video/i386/pc/vbe.c (grub_video_vbe_fill_rect): Changed to use more
3618 optimized fills.
3619 (grub_video_vbe_blit_render_target): Changed to use more optimized
3620 blits.
3621 (grub_video_vbe_setup): Added detection for optimized settings.
3622 (grub_video_vbe_create_render_target): Likewise.
3623
3624 * video/i386/pc/vbeblit.c: New file.
3625
3626 * video/i386/pc/vbefill.c: New file.
3627
c2379b9c 36282006-03-30 Vesa Jaaskelainen <chaac@nic.fi>
3629
3630 * font/manager.c (grub_font_get_glyph): Removed font fixup from
3631 here...
3632
3633 * util/unifont2pff.rb: ... and moved it to here. Improved argument
3634 parsing to support both hex and dec ranges. If filename was missing
3635 show usage information.
3636
bd0d7896 36372006-03-14 Vesa Jaaskelainen <chaac@nic.fi>
3638
3639 * DISTLIST: Added include/grub/video.h, term/gfxterm.c,
3640 video/video.c, commands/videotest.c. Removed term/i386/pc/vesafb.c.
3641
3642 * conf/i386-pc.rmk (pkgdata_MODULES): Added video.mod,
3643 gfxterm.mod, videotest.mod. Removed vga.mod, vesafb.mod.
3644 (video_mod_SOURCES): Added.
3645 (video_mod_CFLAGS): Likewise.
3646 (video_mod_LDFLAGS): Likewise.
3647 (gfxterm_mod_SOURCES): Likewise.
3648 (gfxterm_mod_CFLAGS): Likewise.
3649 (gfxterm_mod_LDFLAGS): Likewise.
3650 (videotest_mod_SOURCES): Likewise.
3651 (videotest_mod_CFLAGS): Likewise.
3652 (videotest_mod_LDFLAGS): Likewise.
3653 (vesafb_mod_SOURCES): Removed.
3654 (vesafb_mod_CFLAGS): Likewise.
3655 (vesafb_mod_LDFLAGS): Likewise.
3656 (vga_mod_SOURCES): Likewise.
3657 (vga_mod_CFLAGS): Likewise.
3658 (vga_mod_LDFLAGS): Likewise.
3659
3660 * commands/videotest.c: New file.
3661
3662 * font/manager.c (fill_with_default_glyph): Modified to use
3663 grub_font_glyph.
3664 (grub_font_get_glyph): Likewise.
3665 (fontmanager): Renamed from this...
3666 (font_manager): ... to this.
3667
3668 * include/grub/font.h (grub_font_glyph): Added new structure.
3669 (grub_font_get_glyph): Modified to use grub_font_glyph.
3670
3671 * include/grub/misc.h (grub_abs): Added as inline function.
3672
3673 * include/grub/video.h: New file.
3674
3675 * include/grub/i386/pc/vbe.h (GRUB_VBE_STATUS_OK): New macro.
3676 (GRUB_VBE_MEMORY_MODEL_PACKED_PIXEL): Likewise.
3677 (GRUB_VBE_MEMORY_MODEL_DIRECT_COLOR): Likewise.
3678 (grub_vbe_get_controller_info): Renamed from this...
3679 (grub_vbe_bios_get_controller_info): ... to this.
3680 (grub_vbe_get_mode_info): Renamed from this...
3681 (grub_vbe_bios_get_mode_info): ... to this.
3682 (grub_vbe_set_mode): Renamed from this...
3683 (grub_vbe_bios_set_mode): ... to this.
3684 (grub_vbe_get_mode): Renamed from this...
3685 (grub_vbe_bios_get_mode): ... to this.
3686 (grub_vbe_set_memory_window): Renamed from this...
3687 (grub_vbe_bios_set_memory_window): ... to this.
3688 (grub_vbe_get_memory_window): Renamed from this...
3689 (grub_vbe_bios_get_memory_window): ... to this.
3690 (grub_vbe_set_scanline_length): Renamed from this...
3691 (grub_vbe_set_scanline_length): ... to this.
3692 (grub_vbe_get_scanline_length): Renamed from this...
3693 (grub_vbe_bios_get_scanline_length): ... to this.
3694 (grub_vbe_set_display_start): Renamed from this...
3695 (grub_vbe_bios_set_display_start): ... to this.
3696 (grub_vbe_get_display_start): Renamed from this...
3697 (grub_vbe_bios_get_display_start): ... to this.
3698 (grub_vbe_set_palette_data): Renamed from this...
3699 (grub_vbe_bios_set_palette_data): ... to this.
3700 (grub_vbe_set_pixel_rgb): Removed.
3701 (grub_vbe_set_pixel_index): Likewise.
3702
3703 * kern/i386/pc/startup.S (grub_vbe_get_controller_info): Renamed
3704 from this...
3705 (grub_vbe_bios_get_controller_info): ... to this.
3706 (grub_vbe_get_mode_info): Renamed from this...
3707 (grub_vbe_bios_get_mode_info): ... to this.
3708 (grub_vbe_set_mode): Renamed from this...
3709 (grub_vbe_bios_set_mode): ... to this.
3710 (grub_vbe_get_mode): Renamed from this...
3711 (grub_vbe_bios_get_mode): ... to this.
3712 (grub_vbe_set_memory_window): Renamed from this...
3713 (grub_vbe_bios_set_memory_window): ... to this.
3714 (grub_vbe_get_memory_window): Renamed from this...
3715 (grub_vbe_bios_get_memory_window): ... to this.
3716 (grub_vbe_set_scanline_length): Renamed from this...
3717 (grub_vbe_set_scanline_length): ... to this.
3718 (grub_vbe_get_scanline_length): Renamed from this...
3719 (grub_vbe_bios_get_scanline_length): ... to this.
3720 (grub_vbe_set_display_start): Renamed from this...
3721 (grub_vbe_bios_set_display_start): ... to this.
3722 (grub_vbe_get_display_start): Renamed from this...
3723 (grub_vbe_bios_get_display_start): ... to this.
3724 (grub_vbe_set_palette_data): Renamed from this...
3725 (grub_vbe_bios_set_palette_data): ... to this.
3726 (grub_vbe_bios_get_controller_info): Fixed problem with registers
3727 getting corrupted after calling it. Added more pushes and pops.
3728 (grub_vbe_bios_set_mode): Likewise.
3729 (grub_vbe_bios_get_mode): Likewise.
3730 (grub_vbe_bios_get_memory_window): Likewise.
3731 (grub_vbe_bios_set_scanline_length): Likewise.
3732 (grub_vbe_bios_get_scanline_length): Likewise.
3733 (grub_vbe_bios_get_display_start): Likewise.
3734 (grub_vbe_bios_set_palette_data): Likewise.
3735
3736 * normal/cmdline.c (cl_set_pos): Refresh the screen.
3737 (cl_insert): Likewise.
3738 (cl_delete): Likewise.
3739
3740 * term/gfxterm.c: New file.
3741
3742 * term/i386/pc/vesafb.c: Removed file.
3743
3744 * video/video.c: New file.
3745
3746 * video/i386/pc/vbe.c (real2pm): Added new function.
3747 (grub_video_vbe_draw_pixel): Likewise.
3748 (grub_video_vbe_get_video_ptr): Likewise.
3749 (grub_video_vbe_get_pixel): Likewise
3750 (grub_video_vbe_init): Likewise.
3751 (grub_video_vbe_fini): Likewise.
3752 (grub_video_vbe_setup): Likewise.
3753 (grub_video_vbe_get_info): Likewise.
3754 (grub_video_vbe_set_palette): Likewise.
3755 (grub_video_vbe_get_palette): Likewise.
3756 (grub_video_vbe_set_viewport): Likewise.
3757 (grub_video_vbe_get_viewport): Likewise.
3758 (grub_video_vbe_map_color): Likewise.
3759 (grub_video_vbe_map_rgb): Likewise.
3760 (grub_video_vbe_map_rgba): Likewise.
3761 (grub_video_vbe_unmap_color): Likewise.
3762 (grub_video_vbe_fill_rect): Likewise.
3763 (grub_video_vbe_blit_glyph): Likewise.
3764 (grub_video_vbe_blit_bitmap): Likewise.
3765 (grub_video_vbe_blit_render_target): Likewise.
3766 (grub_video_vbe_scroll): Likewise.
3767 (grub_video_vbe_swap_buffers): Likewise.
3768 (grub_video_vbe_create_render_target): Likewise.
3769 (grub_video_vbe_delete_render_target): Likewise.
3770 (grub_video_vbe_set_active_render_target): Likewise.
3771 (grub_vbe_set_pixel_rgb): Remove function.
3772 (grub_vbe_set_pixel_index): Likewise.
3773 (index_color_mode): Remove static variable.
3774 (active_mode): Likewise.
3775 (framebuffer): Likewise.
3776 (bytes_per_scan_line): Likewise.
3777 (grub_video_vbe_adapter): Added new static variable.
3778 (framebuffer): Likewise.
3779 (render_target): Likewise.
3780 (initial_mode): Likewise.
3781 (mode_in_use): Likewise.
3782 (mode_list): Likewise.
3783
5f97350b 37842006-03-10 Marco Gerards <marco@gnu.org>
3785
3786 * configure.ac (AC_INIT): Bumped to 1.93.
3787
3788 * DISTLIST: Added `include/grub/hfs.h'.
3789
a3c5c6f8 37902006-02-01 Yoshinori K. Okuji <okuji@enbug.org>
3791
3792 * boot/i386/pc/boot.S (general_error): Before looping, try INT
3793 18H, which might help the BIOS falling back to next boot media.
3794
6de53d26 37952006-01-25 Yoshinori K. Okuji <okuji@enbug.org>
3796
3797 * util/i386/pc/grub-install.in: Escape a backslash. Reported by
3798 Poe Chen <poe.poechen@gmail.com>.
3799
77c4a393 38002006-01-17 Marco Gerards <marco@gnu.org>
3801
3802 * include/grub/normal.h: Include <grub/script.h>.
3803 (grub_command_list): Removed struct.
3804 (grub_command_list_t): Removed type.
3805 (grub_menu_entry): Remove members `num' and `command_list'. Add
3806 members `commands' and `sourcecode'.
3807 * include/grub/script.h: Add inclusion guards.
3808 (grub_script_cmd_menuentry): New struct.
3809 (grub_script_execute_menuentry): New prototype.
3810 (grub_script_lexer_record_start): Likewise.
3811 (grub_script_lexer_record_stop): Likewise.
3812 * normal/execute.c (grub_script_execute_menuentry): New function.
3813 * normal/lexer.c (record, recording, recordpos, recordlen): New
3814 variables.
3815 (grub_script_lexer_record_start): New function.
3816 (grub_script_lexer_record_stop): Likewise.
3817 (recordchar): Likewise.
3818 (nextchar): Likewise.
3819 (grub_script_yylex): Use `nextchar' to fetch new characters. Use
3820 2048 as the buffer size. Add the tokens `menuentry' and `@'.
3821 * normal/main.c: Include <grub/parser.h> and <grub/script.h>
3822 (current_menu): New variable.
3823 (free_menu): Mainly rewritten.
3824 (grub_normal_menu_addentry): New function.
3825 (read_config_file): Rewritten.
3826 * normal/menu.c (run_menu_entry): Mainly rewritten.
3827 * normal/menu_entry.c (make_screen): Rewritten te code to insert
3828 the menu entry.
3829 (run): Mainly rewritten.
3830 * normal/parser.y (menu_entry): New variable.
3831 (GRUB_PARSER_TOKEN_MENUENTRY): New token.
3832 (menuentry): New rule.
3833 (command): Add `menuentry'.
3834 (if_statement): Allow additional returns before `fi'.
3835 * normal/script.c (grub_script_create_cmdmenu): New function.
3836
144f1f98 38372006-01-03 Marco Gerards <marco@gnu.org>
3838
3839 * INSTALL: GNU Bison is required.
3840 * configure.ac: Rewritten the test to detect Bison.
3841 * Makefile.in (YACC): New variable. Reported by Xun Sun
3842 <xun.sun.cn@gmail.com>.
3843
af4b2d89 38442006-01-03 Marco Gerards <marco@gnu.org>
3845
3846 * fs/hfsplus.c (grub_hfsplus_read_block): Convert the offset of
3847 the HFS+ filesystem to filesystem blocks.
3848 (grub_hfsplus_iterate_dir): Cast the `fileinfo' assignment so a
3849 GCC warning is silenced.
3850
15643b71 38512006-01-03 Marco Gerards <marco@gnu.org>
3852
3853 * partmap/apple.c (apple_partition_map_iterate): Convert the data
3854 read from disk from big endian to host byte order.
3855
00905879 38562006-01-03 Hollis Blanchard <hollis@penguinppc.org>
3857
3858 * fs/hfs.c: Include <grub/hfs.h>. Added reference to the official
3859 documentation.
3860 (GRUB_HFS_EMBED_HFSPLUS_SIG): New macro.
3861 (grub_hfs_mount): Grammar fix in error. Make sure this is not an
3862 embedded HFS+ filesystem.
3863 (GRUB_HFS_MAGIC, grub_hfs_extent, grub_hfs_datarecord_t)
3864 (grub_hfs_sblock): Move from here...
3865 * include/grub/hfs.h: To here... New file.
3866 * fs/hfsplus.c: Include <grub/hfs.h>. Added reference to the official
3867 documentation.
3868 (GRUB_HFSPLUS_MAGIC, GRUB_HFSPLUSX_MAGIC, GRUB_HFSPLUS_SBLOCK):
3869 New macros.
3870 (grub_hfsplus_volheader): Change type of member `magic' to
3871 `grub_uint16_t'.
3872 (grub_hfsplus_data): Add new member `embedded_offset'.
3873 (grub_hfsplus_read_block): Add the HFS+ wrapper offset to the
3874 returned block.
3875 (grub_hfsplus_mount): Read the HFS+ wrapper if it exists.
3876 Calculate the offset.
3877
8899bc3e 38782005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
3879
3880 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRP_ADDR):
3881 Removed.
3882 (GRUB_BOOT_MACHINE_DRP_SIZE): Likewise.
3883
ae8c0277 38842005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
3885
3886 * kern/env.c (grub_env_set): Check if ENV->VALUE instead of
3887 ENV->NAME is NULL after allocating ENV->VALUE.
3888
07084456 38892005-12-25 Marco Gerards <marco@gnu.org>
3890
3891 * kern/env.c (grub_env_set): Rewritten the error handling code.
3892
4750f5f1 38932005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
3894
3895 * geninit.sh: Made more robust, and more portable.
3896
50214199 38972005-12-25 Marco Gerards <marco@gnu.org>
3898
3899 Add support for Apple HFS+ filesystems.
3900
3901 * fs/hfsplus.c: New file.
3902
3903 * DISTLIST: Added `fs/hfsplus.c'.
3904
3905 * conf/common.rmk (pkgdata_MODULES): Add `hfsplus.mod'.
3906 (hfsplus_mod_SOURCES): New variable.
3907 (hfsplus_mod_CFLAGS): Likewise.
3908 (hfsplus_mod_LDFLAGS): Likewise.
3909 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/hfsplus.c'.
3910 (grub_setup_SOURCES): Likewise.
3911 (grub_mkdevicemap_SOURCES): Likewise.
3912 (grub_emu_SOURCES): Likewise.
3913 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
3914
3915 * fs/fshelp.c (grub_fshelp_log2blksize): New function.
3916
3917 * include/grub/fshelp.h (grub_fshelp_log2blksize): new prototype.
3918
befaed6c 39192005-12-25 Yoshinori K. Okuji <okuji@enbug.org>
3920
3921 * DISTLIST: Added geninitheader.sh, geninit.sh, commands/test.c,
3922 commands/i386/pc/play.c, conf/common.mk, conf/common.rmk,
3923 include/grub/parser.h, include/grub/script.h, kern/parser.c,
3924 kern/sparc64/cache.S, normal/execute.c, normal/function.c,
3925 normal/lexer.c, normal/parser.y, normal/script.c, and
3926 partmap/gpt.c.
3927 Removed kern/sparc64/cache.c.
3928
3929 * conf/common.rmk (DISTCLEANFILES): Added grub_script.tab.c,
3930 grub_script.tab.h, grub_modules_init.lst, grub_modules_init.h,
3931 grub_emu_init.c.
3932
3933 * configure.ac (AC_INIT): Bumped to 1.92.
3934
6a124103 39352005-12-24 Vesa Jaaskelainen <chaac@nic.fi>
3936
3937 * kern/err.c (grub_error_push): Added new function to support error
3938 stacks.
3939 (grub_error_pop): Likewise.
3940 (grub_error_stack_items): New local variable to support error stacks.
3941 (grub_error_stack_pos): Likewise.
3942 (grub_error_stack_assert): Likewise.
3943 (GRUB_ERROR_STACK_SIZE): Added new define to configure maximum error
3944 stack depth.
3945 (grub_print_error): Added support to print errors from error stack.
3946
3947 * include/grub/err.h (grub_error_push): Added function prototype.
3948 (grub_error_pop): Likewise.
3949
be973c1b 39502005-12-09 Hollis Blanchard <hollis@penguinppc.org>
3951
3952 * configure.ac: Accept `powerpc64' as host_cpu.
3953 (amd64): Rename to `biarch32'.
3954
3955 * kern/powerpc/cache.S (grub_arch_sync_caches): Handle
3956 non-cacheline-aligned addresses.
3957
3958 * kern/dl.c (grub_dl_load_core): Add grub_dprintf messages.
3959 (grub_dl_flush_cache): Likewise. Only call `grub_arch_sync_caches'
3960 if `size' is non-zero.
3961
b04216ab 39622005-12-03 Marco Gerards <mgerards@xs4all.nl>
3963
3964 * conf/common.rmk (grub_modules_init.lst): Use `-printf "%P\n"'
3965 and `cd' to make sure the filename is not prefixed with a
3966 directory name.
3967 (pkgdata_MODULES): Add `gpt.mod'.
3968 (gpt_mod_SOURCES): New variable.
3969 (gpt_mod_CFLAGS): Likewise.
3970 (gpt_mod_LDFLAGS): Likewise.
3971
3972 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/gpt.c'.
3973
3974 * include/grub/pc_partition.h (GRUB_PC_PARTITION_TYPE_GPT_DISK):
3975 New macro.
3976
3977 * partmap/gpt.c: New file.
3978
3979 * partmap/pc.c (pc_partition_map_iterate): Don't continue when a
3980 GPT partition map is detected.
3981
41730ed9 39822005-12-03 Vincent Pelletier <subdino2004@yahoo.fr>
3983
3984 * commands/i386/pc/play.c: New file.
3985 * conf/i386-pc.rmk (pkgdata_MODULES): Added play.mod.
3986 (play_mod_SOURCES, play_mod_CFLAGS, play_mod_LDFLAGS): New
3987 macros.
3988
95dc3643 39892005-11-27 Marco Gerards <mgerards@xs4all.nl>
3990
3991 * include/grub/dl.h (GRUB_MOD_INIT): Use `__attribute__
3992 ((unused))' to silence gcc warning.
3993
1569ec51 39942005-11-26 Hollis Blanchard <hollis@penguinppc.org>
3995
3996 * configure.ac: Correct `AC_PROG_YACC' test.
3997
9abde152 39982005-11-22 Hollis Blanchard <hollis@penguinppc.org>
3999
4000 * util/powerpc/ieee1275/grub-install.in: Run the mount point
4001 check before installing files.
4002
44b83271 40032005-11-22 Mike Small <smallm@panix.com>
4004
4005 * util/powerpc/ieee1275/grub-install.in (grubdir): Fixed partition
4006 number regex so multidigit numbers are recognized correctly.
4007
40082005-11-22 Mike Small <smallm@panix.com>
4009
4010 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Add a
4011 debugging message before attempting to claim memory.
4012 (grub_rescue_cmd_initrd): Add a claim debugging message and try
4013 multiple addresses in case of failure.
4014
9c12956b 40152005-11-22 Hollis Blanchard <hollis@penguinppc.org>
4016
4017 * term/tparm.c (get_space): Remove empty `if' statement.
4018
4019 * fs/ufs.c (grub_ufs_find_file): Remove `grub_le_to_cpu32'.
4020
4021 * kern/parser.c (check_varstate): Rename `state' to 's'.
4022
aeaf81d9 40232005-11-22 Hollis Blanchard <hollis@penguinppc.org>
4024
4025 * partmap/acorn.c: Change `unsigned' to `unsigned int'. Move all
4026 variable definitions to the beginning of each function. Sort stack
4027 variables by size.
4028 (find): Rename to `acorn_partition_map_find'. Cast `grub_disk_read'
4029 `buf' argument to `char *'.
4030
79bbb63f 40312005-11-22 Hollis Blanchard <hollis@penguinppc.org>
4032
4033 * conf/powerpc-ieee1275.rmk: Include conf/common.mk.
4034 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
4035 minux.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
4036 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
4037 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
4038 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
4039 configfile.mod, search.mod, gzio.mod and test.mod.
4040 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
4041 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
4042 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
4043 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
4044 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
4045 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
4046 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
4047 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
4048 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
4049 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
4050 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
4051 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
4052 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
4053 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
4054 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
4055 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
4056 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
4057 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
4058 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
4059 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
4060 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
4061 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
4062 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Removed.
4063
4064 * conf/common.mk (grub_modules_init.lst): Use `find' instead of
4065 `grep --include'.
4066 (pkgdata_MODULES): Add test.mod.
4067
233b1628 40682005-11-18 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
4069
4070 * genmk.rb: Fixed list rules moved to Makefile.in. Recognise
4071 appending to variables with "+=".
4072 (PModule): Use full pathname to generate *.lst filenames.
4073
4074 * Makefile.in: Fixed list rules moved from genmk.rb.
4075 (.DELETE_ON_ERROR): New special target.
4076 (RMKFILES): Add common.rmk and sparc64-ieee1275.rmk.
4077
4078 * conf/i386-pc.rmk: Include conf/common.mk.
4079 (pkgdata_MODULES): Removed fshelp.mod, fat.mod, ext2.mod, ufs.mod,
4080 minux.mod, hfs.mod, jfs.mod, xfs.mod, affs.mod, sfs.mod,
4081 hello.mod, boot.mod, terminal.mod, ls.mod, cmp.mod, cat.mod,
4082 help.mod, font.mod, terminfo.mod, amiga.mod, apple.mod, pc.mod,
4083 sun.mod, acorn.mod, loopback.mod, default.mod, timeout.mod,
4084 configfile.mod, search.mod, gzio.mod and test.mod.
4085 (symlist.c, grub_script.tab.c, grub_script.tab.h, kernel_syms.lst)
4086 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c)
4087 (fshelp_mod_SOURCES, fshelp_mod_CFLAGS, fshelp_mod_LDFLAGS)
4088 (fat_mod_SOURCES, fat_mod_CFLAGS, fat_mod_LDFLAGS)
4089 (ext2_mod_SOURCES, ext2_mod_CFLAGS, ext2_mod_LDFLAGS)
4090 (ufs_mod_SOURCES, ufs_mod_CFLAGS, ufs_mod_LDFLAGS)
4091 (minix_mod_SOURCES, minix_mod_CFLAGS, minix_mod_LDFLAGS)
4092 (hfs_mod_SOURCES, hfs_mod_CFLAGS, hfs_mod_LDFLAGS, jfs_mod_SOURCES)
4093 (jfs_mod_CFLAGS, jfs_mod_LDFLAGS, iso9660_mod_SOURCES)
4094 (iso9660_mod_CFLAGS, iso9660_mod_LDFLAGS, xfs_mod_SOURCES)
4095 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
4096 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
4097 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, hello_mod_SOURCES)
4098 (hello_mod_CFLAGS, hello_mod_LDFLAGS, boot_mod_SOURCES)
4099 (boot_mod_CFLAGS, boot_mod_LDFLAGS, terminal_mod_SOURCES)
4100 (terminal_mod_CFLAGS, terminal_mod_LDFLAGS, ls_mod_SOURCES)
4101 (ls_mod_CFLAGS, ls_mod_LDFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
4102 (cmp_mod_LDFLAGS, cat_mod_SOURCES, cat_mod_CFLAGS, cat_mod_LDFLAGS)
4103 (help_mod_SOURCES, help_mod_CFLAGS, help_mod_LDFLAGS)
4104 (font_mod_SOURCES, font_mod_CFLAGS, font_mod_LDFLAGS)
4105 (terminfo_mod_SOURCES, terminfo_mod_CFLAGS, terminfo_mod_LDFLAGS)
4106 (amiga_mod_SOURCES, amiga_mod_CFLAGS, amiga_mod_LDFLAGS)
4107 (apple_mod_SOURCES, apple_mod_CFLAGS, apple_mod_LDFLAG): Move from
4108 here...
4109 * conf/common.rmk: ... to here. New file.
4110
4111 * conf/common.mk: New file.
4112
16f820c8 41132005-11-18 Yoshinori K. Okuji <okuji@enbug.org>
4114
4115 * conf/powerpc-ieee1275.rmk (grub_script.tab.h): Unified to ...
4116 (grub_script.tab.c): ... here.
4117
4118 * conf/sparc64-ieee1275.rmk (grub_script.tab.h): Unified to ...
4119 (grub_script.tab.c): ... here.
4120
4121 * conf/i386-pc.rmk (grub_script.tab.h): Unified to ...
4122 (grub_script.tab.c): ... here.
4123
4124 * normal/command.c (grub_command_find): Fixed a memory leak of
4125 MODULE_NAME. Reported by Mike Small <smallm@panix.com>.
4126
63ba1554 41272005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
4128
4129 * include/grub/symbol.h: (FUNCTION): Use double quotes instead of
4130 "@" which marks the start of a comment on ARM.
4131 (VARIABLE): Likewise.
4132
7f67dc13 41332005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
4134
79bbb63f 4135 Add support for Linux/ADFS partition tables.
7f67dc13 4136
4137 * partmap/acorn.c: New file.
4138
4139 * include/grub/acorn_filecore.h: Likewise.
4140
4141 * DISTLIST: Added `partmap/acorn.c' and
4142 `include/grub/acorn_filecore.h'.
4143
4144 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
4145 `partmap/acorn.c'.
4146 (pkgdata_MODULES): Add `acorn.mod'.
4147 (acorn_mod_SOURCES): New variable.
4148 (acorn_mod_CFLAGS): Likewise.
4149
4150 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
4151 `partmap/acorn.c'.
4152 (pkgdata_MODULES): Add `acorn.mod'.
4153 (acorn_mod_SOURCES): New variable.
4154 (acorn_mod_CFLAGS): Likewise.
4155
4156 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `partmap/acorn.c'.
4157 (pkgdata_MODULES): Add `acorn.mod'.
4158 (acorn_mod_SOURCES): New variable.
4159 (acorn_mod_CFLAGS): Likewise.
4160 (acorn_mod_LDFLAGS): Likewise.
4161
4162 * include/types.h (grub_disk_addr_t): New typedef.
4163
6d099807 41642005-11-13 Marco Gerards <mgerards@xs4all.nl>
4165
4166 * geninit.sh: New file.
4167
4168 * geninitheader.sh: Likewise.
4169
4170 * commands/boot.c (grub_boot_init, grub_boot_fini): Removed.
4171 * commands/cat.c (grub_cat_init, grub_cat_fini): Likewise.
4172 * commands/cmp.c (grub_cmp_init, grub_cmp_fini): Likewise.
4173 * commands/configfile.c (grub_configfile_init)
4174 (grub_configfile_fini): Likewise.
4175 * commands/default.c (grub_default_init, grub_default_fini):
4176 Likewise.
4177 * commands/help.c (grub_help_init, grub_help_fini): Likewise.
4178 * commands/ls.c (grub_ls_init, grub_ls_fini): Likewise.
4179 * commands/search.c (grub_search_init, grub_search_fini): Likewise.
4180 * commands/terminal.c (grub_terminal_init, grub_terminal_fini):
4181 Likewise.
4182 * commands/test.c (grub_test_init, grub_test_fini): Likewise.
4183 * commands/timeout.c (grub_timeout_init, grub_timeout_fini):
4184 Likewise.
4185 * commands/i386/pc/halt.c (grub_halt_init, grub_halt_fini): Likewise.
4186 * commands/iee1275/halt.c (grub_halt_init, grub_halt_fini):
4187 Likewise.
4188 * commands/i386/pc/reboot.c (grub_reboot_init, grub_reboot_fini):
4189 Likewise.
4190 * commands/iee1275/reboot.c (grub_reboot_init, grub_reboot_fini):
4191 Likewise.
4192 * disk/loopback.c (grub_loop_init, grub_loop_fini): Likewise.
4193 * fs/affs.c (grub_affs_init, grub_affs_fini): Likewise.
4194 * fs/ext2.c (grub_ext2_init, grub_ext2_fini): Likewise.
4195 * fs/fat.c (grub_fat_init, grub_fat_fini): Likewise.
4196 * fs/hfs.c (grub_hfs_init, grub_hfs_fini): Likewise.
4197 * fs/iso9660.c (grub_iso9660_init, grub_iso9660_fini): Likewise.
4198 * fs/jfs.c (grub_jfs_init, grub_jfs_fini): Likewise.
4199 * fs/minix.c (grub_minix_init, grub_minix_fini): Likewise.
4200 * fs/sfs.c (grub_sfs_init, grub_sfs_fini): Likewise.
4201 * fs/ufs.c (grub_ufs_init, grub_ufs_fini): Likewise.
4202 * fs/xfs.c (grub_xfs_init, grub_xfs_fini): Likewise.
4203 * normal/main.c (grub_normal_init, grub_normal_fini): Likewise.
4204 * partmap/amiga.c (grub_amiga_partition_map_init)
4205 (grub_amiga_partition_map_fini): Likewise.
4206 * partmap/apple.c (grub_apple_partition_map_init)
4207 (grub_apple_partition_map_fini): Likewise.
4208 * partmap/pc.c (grub_pc_partition_map_init)
4209 (grub_pc_partition_map_fini): Likewise.
4210 * partmap/sun.c (grub_sun_partition_map_init,
4211 grub_sun_partition_map_fini): Likewise.
4212 * term/terminfo.c (grub_terminal_init, grub_terminal_fini):
4213 Likewise.
4214
4215 * util/grub-emu.c: Include <grub_modules_init.h>.
4216 (main): Don't initialize and de-initialize any modules directly,
4217 use `grub_init_all' and `grub_fini_all' instead.
4218
4219 * term/i386/pc/vesafb.c (grub_vesafb_init): Renamed to
4220 `grub_vesafb_mod_init'.
4221 (grub_vesafb_fini): Renamed to `grub_vesafb_mod_fini'. Updated
4222 all users.
4223 * term/i386/pc/vga.c (grub_vga_init): Renamed to
4224 `grub_vga_mod_init'. Updated all users.
4225 (grub_vga_fini): Renamed to `grub_vga_mod_fini'.
4226
4227 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `grub_emu_init.c'.
4228 (grub_modules_init.lst, grub_modules_init.h, grub_emu_init.c): New
4229 rules.
4230
4231 * include/grub/dl.h (GRUB_MOD_INIT): Add argument `name'.
4232 Generate a function to initialize the module in utilities.
4233 Updated all callers.
4234 (GRUB_MOD_FINI): Add argument `name'. Generate a function to
4235 initialize the module in utilities. Updated all callers.
4236
9046bcf0 42372005-11-09 Hollis Blanchard <hollis@penguinppc.org>
4238
4239 * term/ieee1275/ofconsole.c (grub_ofconsole_cls): Use both the ANSI
4240 escape sequence and a literal ^L to clear the screen.
4241
4242 * commands/ieee1275/suspend.c (grub_cmd_suspend): Clear the screen
4243 when returning from Open Firmware.
4244
d13ea639 42452005-11-09 Hollis Blanchard <hollis@penguinppc.org>
4246
4247 * term/ieee1275/ofconsole.c (grub_ofconsole_width): New variable.
4248 (grub_ofconsole_height): Likewise.
4249 (grub_ofconsole_putchar): If `grub_curr_x' exceeds console width,
4250 manually insert a '\n'.
4251 (grub_ofconsole_getwh): Set and return `grub_ofconsole_width' and
4252 `grub_ofconsole_height'. Return early if these are already set.
4253
a8fcf206 42542005-11-07 Vincent Pelletier <subdino2004@yahoo.fr>
4255
4256 * conf/sparc64-ieee1275.rmk (grub_emu_SOURCES): Add
4257 `commands/test.c', `fs/affs.c', `fs/sfs.c', `fs/xfs.c',
4258 `normal/execute.c', `normal/lexer.c', `io/gzio.c',
4259 `kern/parser.c', `grub_script.tab.c', `normal/function.c'
4260 and `normal/script.c'.
4261 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
4262 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
4263 (test_mod_SOURCES): New variable.
4264 (test_mod_CFLAGS): Likewise.
4265 (test_mod_LDFLAGS): Likewise.
4266 (pkgdata_MODULES): Add `test.mod'.
4267 (grub_script.tab.c): New rule.
4268 (grub_script.tab.h): Likewise.
4269
b6b32745 42702005-11-07 Marco Gerards <mgerards@xs4all.nl>
4271
4272 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
4273 `commands/test.c', `normal/execute.c', `normal/lexer.c',
4274 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
4275 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
4276 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
4277 (test_mod_SOURCES): New variable.
4278 (test_mod_CFLAGS): Likewise.
4279 (pkgdata_MODULES): Add `test.mod'.
4280 (grub_script.tab.c): New rule.
4281 (grub_script.tab.h): Likewise.
4282
daac212a 42832005-11-06 Marco Gerards <mgerards@xs4all.nl>
4284
4285 Add initial scripting support.
4286
4287 * commands/test.c: New file.
4288 * include/grub/script.h: Likewise.
4289 * normal/execute.c: Likewise.
4290 * normal/function.c: Likewise.
4291 * normal/lexer.c: Likewise.
4292 * normal/parser.y: Likewise.
4293 * normal/script.c: Likewise.
4294
4295 * configure.ac: Add `AC_PROG_YACC' test.
4296
4297 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/test.c',
4298 `normal/execute.c', `normal/lexer.c', `grub_script.tab.c',
4299 `normal/function.c' and `normal/script.c'.
4300 (normal_mod_SOURCES): `normal/execute.c', `normal/lexer.c',
4301 `grub_script.tab.c', `normal/function.c' and `normal/script.c'.
b6b32745 4302 (test_mod_SOURCES, test_mod_CFLAGS, test_mod_LDFLAGS): New
4303 variables.
daac212a 4304 (pkgdata_MODULES): Add `test.mod'.
4305 (grub_script.tab.c): New rule.
4306 (grub_script.tab.h): Likewise.
4307
4308 * include/grub/err.h (grub_err_t): Add `GRUB_ERR_TEST_FAILURE'.
4309
4310 * include/grub/normal.h (grub_test_init): New prototype.
4311 (grub_test_fini): Likewise.
4312
4313 * normal/command.c: Include <grub/script.h>.
4314 (grub_command_execute): Rewritten.
4315
4316 * util/grub-emu.c (main): Call `grub_test_init' and
4317 `grub_test_fini'.
4318
77500b2b 43192005-11-03 Hollis Blanchard <hollis@penguinppc.org>
4320
4321 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Initialize `msecs'
4322 to 0.
4323 * term/ieee1275/ofconsole.c (grub_ofconsole_checkkey): Return -1 if
4324 there are no pending characters.
4325
e45deb9e 43262005-11-03 Hollis Blanchard <hollis@penguinppc.org>
4327
4328 * kern/powerpc/ieee1275/openfw.c (grub_ieee1275_get_devname): Use
4329 `grub_strndup' to drop device arguments. Replace unnecessary
4330 `grub_strndup' with `grub_strdup'.
4331
4ce32619 43322005-11-03 Hollis Blanchard <hollis@penguinppc.org>
4333
4334 * kern/term.c (grub_cls): Do not call grub_cur_term->cls() if the
4335 `debug' environment variable has been set.
4336
43372005-11-02 Hollis Blanchard <hollis@penguinppc.org>
4338
4339 * Makefile.in (install-local): Use $(DATA).
4340 (uninstall): Likewise.
4341 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Move grub-mkimage...
4342 (sbin_UTILITIES): ... to here.
4343 (sbin_SCRIPTS): New variable.
4344 (grub_install_SOURCES): New variable.
4345 * util/powerpc/ieee1275/grub-install.in: New file.
4346 * util/powerpc/ieee1275/grub-mkimage.c (kernel_path): Remove
4347 variable.
4348 (add_segments): Call `grub_util_get_path'.
4349
25fe6f03 43502005-10-28 Yoshinori K. Okuji <okuji@enbug.org>
4351
4352 From Timothy Baldwin:
4353 * commands/ls.c (grub_ls_list_files): Close FILE with
4354 grub_file_close.
4355 * kern/misc.c (grub_vsprintf): Terminate the string S with NUL.
4356
04ccf3ec 43572005-10-24 Marco Gerards <mgerards@xs4all.nl>
4358
4359 * include/grub/parser.h: New file.
4360
4361 * kern/parser.c: Likewise.
4362
4363 * conf/i386-pc.rmk (kernel_img_SOURCES): Add `kern/parser.c'.
4364 (grub_setup_SOURCES): Likewise.
4365 (grub_probefs_SOURCES): Likewise.
4366 (grub_emu_SOURCES): Likewise.
4367 (kernel_img_HEADERS): Add `parser.h'.
4368
4369 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
4370 (grub_emu_SOURCES): Add `kern/parser.c'.
4371 (grubof_SOURCES): Likewise.
4372
4373 * conf/sparc64-ieee1275.rmk (grubof_HEADERS): Add `parser.h'.
4374 (grubof_SOURCES): Add `kern/parser.c'.
4375
4376 * include/grub/misc.h (grub_split_cmdline): Removed prototype.
4377
4378 * kern/misc.c (grub_split_cmdline): Removed function.
4379
4380 * kern/rescue.c: Include <grub/parser.h>.
4381 (grub_enter_rescue_mode): Use `grub_parser_split_cmdline' instead
4382 of `grub_split_cmdline'.
4383
4384 * normal/command.c: Include <grub/parser.h>.
4385 (grub_command_execute): Use `grub_parser_split_cmdline' instead
4386 of `grub_split_cmdline'.
4387
4388 * normal/completion.c: Include <grub/parser.h>.
4389 (cmdline_state): New variable.
4390 (iterate_dir): End the filename with a quote depending on the
4391 command line state.
4392 (get_state): new function.
4393 (grub_normal_do_completion): Use `grub_parser_split_cmdline' to
4394 split the arguments and determine the current argument. When the
4395 argument string is not quoted, escape all spaces.
4396
6d8f4b0e 43972005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
4398
4399 * normal/sparc64/setjmp.S: New file.
4400
15cf03ed 44012005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
4402
4403 * include/grub/sparc64/libgcc.h: New file.
4404 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Remove -Av9.
4405 (normal_mod_SOURCES): Use normal/sparc64/setjmp.S instead of
4406 normal/sparc64/setjmp.c.
4407
03e8661a 44082005-10-23 Vincent Pelletier <subdino2004@yahoo.fr>
4409
4410 * kern/sparc64/dl.c: Rewritten for SPARCV9 ELF.
4411 * kern/sparc64/cache.S: New file.
4412 * kern/sparc64/cache.c: Removed.
4413 * conf/sparc64-ieee1275.rmk (COMMON_ASFLAGS): Add -Av9.
4414 (COMMON_CFLAGS): Add -mno-app-regs. Remove -mcpu=v9 and
4415 -mtune=ultrasparc.
4416 (COMMON_LDFLAGS): Add -melf64_sparc.
4417 (grubof_HEADERS): Add sparc64/libgcc.h and machine/kernel.h.
4418 (grubof_SOURCES): Use cache.S instead of cache.c.
4419 (grubof_LDFLAGS): Add -mno-app-regs. Replace "-Xlinker
4420 --oformat -Xlinker elf64-sparc" by "-Bstatic,-melf64_sparc".
4421 (pkgdata_MODULES): Uncomment. Leave linux.mod and _linux.mod
4422 commented though.
4423 (normal_mod_SOURCES): Add normal/completion.c and normal/misc.c.
4424 (_linux_mod_SOURCES, _linux_mod_CFLAGS, linux_mod_SOURCES)
4425 (linux_mod_CFLAGS): Commented out.
4426 (_linux_mod_LDFLAGS, linux_mod_LDFLAGS): New macro, commented
4427 out because module isn't built.
4428 (fshelp_mod_LDFLAGS, fat_mod_LDFLAGS, ext2_mod_LDFLAGS)
4429 (ufs_mod_LDFLAGS, minix_mod_LDFLAGS, hfs_mod_LDFLAGS)
4430 (jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS, normal_mod_LDFLAGS)
4431 (hello_mod_LDFLAGS, boot_mod_LDFLAGS, terminal_mod_LDFLAGS)
4432 (ls_mod_LDFLAGS, cmp_mod_LDFLAGS, cat_mod_LDFLAGS)
4433 (font_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
4434 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
4435 (suspend_mod_LDFLAGS, reboot_mod_LDFLAGS, halt_mod_LDFLAGS)
4436 (help_mod_LDFLAGS, default_mod_LDFLAGS, timeout_mod_LDFLAGS)
4437 (configfile_mod_LDFLAGS, search_mod_LDFLAGS, xfs_mod_SOURCES)
4438 (xfs_mod_CFLAGS, xfs_mod_LDFLAGS, affs_mod_SOURCES)
4439 (affs_mod_CFLAGS, affs_mod_LDFLAGS, sfs_mod_SOURCES)
4440 (sfs_mod_CFLAGS, sfs_mod_LDFLAGS, gzio_mod_SOURCES)
4441 (gzio_mod_CFLAGS, gzio_mod_LDFLAGS): New macro.
4442
34eeec8a 44432005-10-20 Yoshinori K. Okuji <okuji@enbug.org>
4444
4445 * util/i386/pc/grub-probefs.c (main): Call grub_xfs_init and
4446 grub_xfs_fini. Do not call grub_hfs_init or grub_hfs_fini any
4447 longer, because HFS should not be used on PC.
4448
708367a3 44492005-10-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
4450
4451 * io/gzio.c (grub_gzio_read): Use OFFSET instead of FILE->OFFSET
4452 consistently within the loop.
4453
6fa1251a 44542005-10-15 Marco Gerards <mgerards@xs4all.nl>
4455
4456 * fs/xfs.c (grub_xfs_iterate_dir): Detect an error if part of a
4457 directory can not be read.
4458
4801580b 44592005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
4460
4461 * configure.ac (AC_INIT): Increase the version number to 1.91.
4462
4463 * DISTLIST: Added include/grub/terminfo.h, include/grub/tparm.h,
4464 include/grub/i386/pc/serial.h, term/terminfo.c, term/tparm.c and
4465 term/i386/pc/serial.c.
4466
219ad426 44672005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
4468
4469 * kern/file.c (grub_file_seek): Seeking to an offset equal to a
4470 file size must be permitted.
4471
4472 * kern/i386/pc/startup.S (multiboot_trampoline): Fix a mistake
4473 between %ah and %al.
4474
688e5699 44752005-10-15 Yoshinori K. Okuji <okuji@enbug.org>
4476
4477 * fs/xfs.c (grub_xfs_iterate_dir): Change the type of BLK to
4478 grub_uint64_t.
4479 Call the hook with a NUL-terminated filename.
4480 (grub_xfs_mount): Use grub_be_to_cpu32 instead of
4481 grub_cpu_to_be32.
4482
4483 * kern/term.c (cursor_state): New variable.
4484 (grub_term_set_current): Reset the cursor state on a new
4485 terminal.
4486 (grub_setcursor): Rewritten to use CURSOR_STATE.
4487 (grub_getcursor): New function.
4488
4489 * include/grub/term.h (grub_getcursor): New prototype.
4490
4491 * io/gzio.c (test_header): Align BUF for accessing it as 32-bit
4492 integers on ARM. Reported by Timothy Baldwin
4493 <T.E.Baldwin99@members.leeds.ac.uk>.
4494
bb34586c 44952005-10-11 Marco Gerards <mgerards@xs4all.nl>
4496
4497 * fs/sfs.c (grub_sfs_open): Don't free `data->label' if it is not
4498 allocated.
4499 (grub_sfs_dir): Likewise.
4500
9a909877 45012005-10-09 Marco Gerards <mgerards@xs4all.nl>
4502
4503 Add support for the SFS filesystem.
4504
4505 * fs/sfs.c: New file.
4506
4507 * DISTLIST: Added `fs/sfs.c'.
4508
4509 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/sfs.c'.
4510 (grub_probefs_SOURCES): Likewise.
4511 (grub_emu_SOURCES): Likewise.
4512 (pkgdata_MODULES): Add `sfs.mod'.
4513 (sfs_mod_SOURCES): New variable.
4514 (sfs_mod_CFLAGS): Likewise.
4515 (sfs_mod_LDFLAGS): Likewise.
4516
4517 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/sfs.c'.
4518 (pkgdata_MODULES): Add `sfs.mod'.
4519 (sfs_mod_SOURCES): New variable.
4520 (sfs_mod_CFLAGS): Likewise.
4521
4522 * util/grub-emu.c (main): Call `grub_sfs_init' and
4523 `grub_sfs_fini'.
4524
4525 * include/grub/fs.h (grub_sfs_init): New prototype.
4526 (grub_sfs_fini): Likewise.
4527
57bdbde3 45282005-10-07 Marco Gerards <mgerards@xs4all.nl>
4529
4530 Add support for the AFFS filesystem.
4531
4532 * fs/affs.c: New file.
4533
4534 * DISTLIST: Added `fs/affs.c'.
4535
4536 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/affs.c'.
4537 (grub_probefs_SOURCES): Likewise.
4538 (grub_emu_SOURCES): Likewise.
4539 (pkgdata_MODULES): Add `affs.mod'.
4540 (affs_mod_SOURCES): New variable.
4541 (affs_mod_CFLAGS): Likewise.
4542 (affs_mod_LDFLAGS): Likewise.
4543
4544 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/affs.c'.
4545 (pkgdata_MODULES): Add `affs.mod'.
4546 (affs_mod_SOURCES): New variable.
4547 (affs_mod_CFLAGS): Likewise.
4548
4549 * util/grub-emu.c (main): Call `grub_affs_init' and
4550 `grub_affs_fini'.
4551
4552 * include/grub/fs.h (grub_affs_init): New prototype.
4553 (grub_affs_fini): Likewise.
4554
047b67e0 45552005-10-01 Marco Gerards <mgerards@xs4all.nl>
4556
4557 * fs/xfs.c (grub_xfs_iterate_dir): Add parentheses.
4558
59b8208a 45592005-10-01 Marco Gerards <mgerards@xs4all.nl>
4560
4561 * configure.ac: Accept `x86_64' as host_cpu. In that case add
4562 `-m32' to CFLAGS.
4563
4564 * genmk.rb (class PModule): Always use `$(#{prefix}_LDFLAGS)' when
4565 linking.
4566
4567 * conf/i386-pc.rmk (COMMON_CFLAGS): Add `-m32'.
4568 (COMMON_LDFLAGS): New variable.
4569 (kernel_img_LDFLAGS): Include `COMMON_FLAGS'.
4570 (_chain_mod_LDFLAGS, fshelp_mod_LDFLAGS, fat_mod_LDFLAGS)
4571 (ext2_mod_LDFLAGS, ufs_mod_LDFLAGS, minix_mod_LDFLAGS)
4572 (hfs_mod_LDFLAGS, jfs_mod_LDFLAGS, iso9660_mod_LDFLAGS)
4573 (xfs_mod_LDFLAGS, _linux_mod_LDFLAGS, linux_mod_LDFLAGS)
4574 (normal_mod_LDFLAGS, hello_mod_LDFLAGS, boot_mod_LDFLAGS)
4575 (terminal_mod_LDFLAGS, ls_mod_LDFLAGS, cmp_mod_LDFLAGS)
4576 (cat_mod_LDFLAGS, help_mod_LDFLAGS, reboot_mod_LDFLAGS)
4577 (halt_mod_LDFLAGS, vga_mod_LDFLAGS, font_mod_LDFLAGS)
4578 (terminfo_mod_LDFLAGS, serial_mod_LDFLAGS, _multiboot_mod_LDFLAGS)
4579 (multiboot_mod_LDFLAGS, amiga_mod_LDFLAGS, apple_mod_LDFLAGS)
4580 (pc_mod_LDFLAGS, sun_mod_LDFLAGS, loopback_mod_LDFLAGS)
4581 (default_mod_LDFLAGS, timeout_mod_LDFLAGS, configfile_mod_LDFLAGS)
4582 (vbe_mod_LDFLAGS, vesafb_mod_LDFLAGS, vbeinfo_mod_LDFLAGS)
4583 (vbetest_mod_LDFLAGS, search_mod_LDFLAGS, gzio_mod_LDFLAGS): New
4584 variables.
4585 (normal_mod_ASFLAGS): Add `-m32'.
4586
4587 * include/grub/types.h (grub_host_addr_t, grub_host_off_t)
4588 (grub_host_size_t, grub_host_ssize_t): New types.
4589 (grub_addr_t, grub_off_t, grub_size_t, grub_ssize_t): Make type
4590 dependant of `GRUB_CPU_SIZEOF_VOID_P' instead on
4591 `GRUB_HOST_SIZEOF_VOID_P'.
4592
4593 * include/grub/kernel.h (struct grub_module_header): Type of
4594 member offset changed to `grub_host_off_t'. Type of member size
4595 changed to `grub_host_size_t'.
4596 (struct grub_module_info): Type of member offset changed to
4597 `grub_host_off_t'. Type of member size changed to
4598 `grub_host_size_t'.
4599
b4093103 46002005-09-29 Yoshinori K. Okuji <okuji@enbug.org>
4601
4602 Make GRUB's kernel compliant to Multiboot Specification.
4603
4604 * kern/i386/pc/startup.S (multiboot_header): New label.
4605 (multiboot_entry): Likewise.
4606 (multiboot_trampoline): Likewise.
4607
4608 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
4609 Increased to 0x4A0.
4610
4611 * fs/xfs.c (grub_xfs_iterate_dir): Fix a syntax error. You may not
4612 put parentheses after a question mark.
4613 [!GRUB_UTIL] (my_mod): New variable.
4614
4615 * util/grub-emu.c (main): Call grub_xfs_init and grub_xfs_fini.
4616
b2499b29 46172005-09-28 Marco Gerards <mgerards@xs4all.nl>
4618
4619 Adds support for the XFS filesystem. Btrees are not supported
4620 yet.
4621
4622 * fs/xfs.c: New file.
4623
4624 * DISTLIST: Added `fs/xfs.c'.
4625
4626 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `fs/xfs.c'.
4627 (grub_probefs_SOURCES): Likewise.
4628 (grub_emu_SOURCES): Likewise.
4629 (pkgdata_MODULES): Add `xfs.mod'.
4630 (xfs_mod_SOURCES): New variable.
4631 (xfs_mod_CFLAGS): Likewise.
4632
4633 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add `fs/xfs.c'.
4634 (pkgdata_MODULES): Add `xfs.mod'.
4635 (xfs_mod_SOURCES): New variable.
4636 (xfs_mod_CFLAGS): Likewise.
4637
4638 * util/grub-emu.c (main): Call `grub_xfs_init' and
4639 `grub_xfs_fini'.
4640
4641 * include/grub/fs.h (grub_xfs_init): New prototype.
4642 (grub_xfs_fini): Likewise.
4643
4644
83d37a62 46452005-09-18 Vesa Jaaskelainen <chaac@nic.fi>
4646
4647 * video/i386/pc/vbe.c (grub_vbe_set_video_mode): In indexed
4648 color modes, allow greater than 16 colors to be configured as
4649 a default palette.
4650
47d2d65e 46512005-09-03 Yoshinori K. Okuji <okuji@enbug.org>
4652
4653 * normal/completion.c (complete_arguments): Add the qualifier
4654 const into OPTIONS.
4655
4656 From Omniflux <omniflux+lists@omniflux.com>:
4657 * include/grub/terminfo.h: New file.
4658 * include/grub/tparm.h: Likewise.
4659 * include/grub/i386/pc/serial.h: Likewise.
4660 * term/terminfo.c: Likewise.
4661 * term/tparm.c: Likewise.
4662 * term/i386/pc/serial.c: Likewise.
4663 * conf/i386-pc.rmk (pkgdata_MODULES): Added terminfo.mod and
4664 serial.mod.
4665 (terminfo_mod_SOURCES): New variable.
4666 (terminfo_mod_CFLAGS): Likewise.
4667 (serial_mod_SOURCES): Likewise.
4668 (serial_mod_CFLAGS): Likewise.
4669
48b671ff 46702005-08-31 Yoshinori K. Okuji <okuji@enbug.org>
4671
4672 * DISTLIST: Replaced boot/powerpc/ieee1275/crt0.S and
4673 boot/powerpc/ieee1275/cmain.c with kern/powerpc/ieee1275/crt0.S
4674 and kern/powerpc/ieee1275/cmain.c, respectively.
4675
4676 * boot/powerpc/ieee1275/crt0.S: Moved to ...
4677 * kern/powerpc/ieee1275/crt0.S: ... here.
4678
4679 * boot/powerpc/ieee1275/cmain.c: Moved to ...
4680 * kern/powerpc/ieee1275/cmain.c: ... here.
4681
4682 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Use
4683 kern/powerpc/ieee1275/crt0.S and kern/powerpc/ieee1275/cmain.c
4684 instead of boot/powerpc/ieee1275/crt0.S and
4685 boot/powerpc/ieee1275/cmain.c, respectively.
4686
4687 * boot/i386/pc/boot.S (lba_mode): Do not store the total number of
4688 sectors. It was not used anyway.
4689
09fc77a7 46902005-08-30 Hollis Blanchard <hollis@penguinppc.org>
4691
4692 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): Fix
4693 `unused parameter' warning.
4694
003789c7 46952005-08-30 Hollis Blanchard <hollis@penguinppc.org>
4696
4697 * term/ieee1275/ofconsole.c (grub_ofconsole_getcharwidth): New
4698 function.
4699 (grub_ofconsole_term): Specify grub_ofconsole_getcharwidth as
4700 getcharwidth.
4701
67f44c86 47022005-08-28 Marco Gerards <metgerards@student.han.nl>
4703
4704 * include/grub/normal.h (enum grub_completion_type): Added
4705 `GRUB_COMPLETION_TYPE_ARGUMENT'.
4706
4707 * normal/cmdline.c (print_completion): Handle
4708 the `GRUB_COMPLETION_TYPE_ARGUMENT' type.
4709 * normal/menu_entry.c (store_completion): Likewise.
4710
4711 * normal/completion.c (complete_arguments): New function.
4712 (grub_normal_do_completion): Call `complete_arguments' when the
4713 current words start with a dash.
4714
0b5abe02 47152005-08-27 Marco Gerards <metgerards@student.han.nl>
4716
4717 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Fix typo (use
4718 `gzio.mod' instead of `io.mod').
4719
d9864ee1 47202005-08-22 Yoshinori K. Okuji <okuji@enbug.org>
4721
4722 * gendistlist.sh (EXTRA_DISTFILES): Added genfslist.sh.
4723 (DISTDIRS): Added io and video.
4724 Rewrite the search routine to make an output consistently.
4725
4726 * DISTLIST: Added conf/sparc64-ieee1275.mk,
4727 conf/sparc64-ieee1275.rmk, include/grub/gzio.h,
4728 include/grub/ieee1275/ieee1275.h, include/grub/ieee1275/ofdisk.h,
4729 io/gzio.c, kern/sparc64/cache.c, kern/sparc64/dl.c,
4730 kern/sparc64/ieee1275/init.c, kern/sparc64/ieee1275/openfw.c and
4731 util/powerpc/ieee1275/misc.c.
4732
4733 * include/grub/gzio.h: New file.
4734 * io/gzio.c: Likewise.
4735
4736 * kern/file.c (grub_file_close): Call grub_device_close only if
4737 FILE->DEVICE is not NULL.
4738
4739 * include/grub/mm.h [!NULL] (NULL): New macro.
4740
4741 * include/grub/err.h (GRUB_ERR_BAD_GZIP_DATA): New constant.
4742
4743 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added io/gzip.c.
4744 (pkgdata_MODULES): Added gzio.mod.
4745 (gzio_mod_SOURCES): New variable.
4746 (gzio_mod_CFLAGS): Likewise.
4747
4748 * conf/i386-pc.rmk (grub_emu_SOURCES): Added io/gzip.c.
4749 (pkgdata_MODULES): Added gzio.mod.
4750 (gzio_mod_SOURCES): New variable.
4751 (gzio_mod_CFLAGS): Likewise.
4752
4753 * commands/cat.c: Include grub/gzio.h.
4754 (grub_cmd_cat): Use grub_gzfile_open instead of
4755 grub_file_open.
4756
4757 * commands/cmp.c: Include grub/gzio.h.
4758 (grub_cmd_cmp): Use grub_gzfile_open instead of
4759 grub_file_open.
4760
4761 * loader/i386/pc/multiboot.c: Include grub/gzio.h.
4762 (grub_rescue_cmd_multiboot): Use grub_gzfile_open instead of
4763 grub_file_open.
4764 (grub_rescue_cmd_module): Likewise.
4765
fa46f4b5 47662005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
4767
4768 * conf/sparc64-ieee1275.rmk (grubof_SOURCES): The first file must be
4769 kern/sparc64/ieee1275/init.c because it contains _start.
4770 * conf/sparc64-ieee1275.mk: Generated from conf/sparc64-ieee1275.rmk.
4771
e9211b5d 47722005-08-21 Vincent Pelletier <subdino2004@yahoo.fr>
4773
4774 * configure.ac: Add support for sparc64 host with ieee1275
4775 firmware.
4776 * configure: Generated from configure.ac.
4777 * disk/ieee1275/ofdisk.c (grub_ofdisk_open): Use grub_ssize_t
4778 instead of int.
4779 (grub_ofdisk_read): Likewise.
4780 (grub_ofdisk_open): Use %p to print pointer values, and cast the
4781 pointers as (void *) to remove a warning.
4782 (grub_ofdisk_close): Likewise.
4783 (grub_ofdisk_read): Likewise.
4784 * kern/ieee1275/ieee1275.c (grub_ieee1275_exit): This never
4785 returns, so make it return void to remove a warning.
4786 * include/grub/ieee1275/ieee1275.h (grub_ieee1275_exit):
4787 Corresponding prototype change.
4788 * kern/mm.c (grub_mm_init_region): Use %p to print pointer
4789 values, and cast the pointers as (void *) to remove a warning.
4790 (grub_mm_dump): Likewise.
4791 * conf/sparc64-ieee1275.mk: New file.
4792 * conf/sparc64-ieee1275.rmk: Likewise.
4793 * include/grub/sparc64/setjmp.h: Likewise.
4794 * include/grub/sparc64/types.h: Likewise.
4795 * include/grub/sparc64/ieee1275/console.h: Likewise.
4796 * include/grub/sparc64/ieee1275/ieee1275.h: Likewise.
4797 * include/grub/sparc64/ieee1275/kernel.h: Likewise.
4798 * include/grub/sparc64/ieee1275/time.h: Likewise.
4799 * kern/sparc64/cache.c: Likewise.
4800 * kern/sparc64/dl.c: Likewise.
4801 * kern/sparc64/ieee1275/init.c: Likewise.
4802 * kern/sparc64/ieee1275/openfw.c: Likewise.
4803
385c6a92 48042005-08-21 Yoshinori K. Okuji <okuji@enbug.org>
4805
4806 * util/console.c (grub_ncurses_putchar): If C is greater than
4807 0x7f, set C to a question mark.
4808 (grub_ncurses_getcharwidth): New function.
4809 (grub_ncurses_term): Specify grub_ncurses_getcharwidth as
4810 getcharwidth.
4811
4812 * normal/menu.c (print_entry): Made aware of Unicode. First,
4813 convert TITLE to UCS-4, and predict the cursor position by
4814 grub_getcharwidth.
4815
4816 * include/grub/misc.h (grub_utf8_to_ucs4): Specify the qualifier
4817 const to SRC.
4818 * kern/misc.c (grub_utf16_to_utf8): Likewise.
4819
16ccb8b1 48202005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
4821
4822 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Specify
4823 the boot file by the option BOOT_IMAGE. Use grub_stpcpy instead of
4824 grub_strcat.
4825
4826 * loader/i386/pc/linux.c (grub_rescue_cmd_linux): Specify the boot
4827 file by the option BOOT_IMAGE. Use grub_stpcpy instead of
4828 grub_strcpy and grub_strlen. Take it into account that a space
4829 character is inserted as a delimiter.
4830
6a85ce79 48312005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
4832
4833 * partmap/pc.c (pc_partition_map_iterate): Include the value of an
4834 invalid magic in thre error.
4835
4836 * commands/search.c: New file.
4837
4838 * util/grub-emu.c (main): Call grub_search_init and
4839 grub_search_fini.
4840
4841 * kern/rescue.c (grub_rescue_print_disks): Removed.
4842 (grub_rescue_print_devices): New function.
4843 (grub_rescue_cmd_ls): Use grub_device_iterate with
4844 grub_rescue_print_devices instead of grub_disk_dev_iterate with
4845 grub_rescue_print_disks.
4846
4847 * kern/partition.c (grub_partition_iterate): Return the result of
4848 PARTMAP->ITERATE instead of GRUB_ERRNO.
4849
4850 * kern/device.c: Include grub/partition.h.
4851 (grub_device_iterate): New function.
4852
4853 * include/grub/partition.h (grub_partition_iterate): Return int
4854 instead of grub_err_t.
4855
4856 * include/grub/normal.h [GRUB_UTIL] (grub_search_init): New
4857 prototype.
4858 [GRUB_UTIL] (grub_search_fini): Likewise.
4859
4860 * include/grub/device.h (grub_device_iterate): New prototype.
4861
4862 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
4863 commands/search.c.
4864 (pkgdata_MODULES): Added search.mod.
4865 (search_mod_SOURCES): New variable.
4866 (search_mod_CFLAGS): Likewise.
4867
4868 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/search.c.
4869 (pkgdata_MODULES): Added search.mod.
4870 (search_mod_SOURCES): New variable.
4871 (search_mod_CFLAGS): Likewise.
4872
4873 * commands/ls.c (grub_ls_list_disks): Renamed to ...
4874 (grub_ls_list_devices): ... this, and use grub_device_iterate.
4875 All callers changed.
4876
4877 * DISTLIST: Added commands/search.c.
4878
ef095434 48792005-08-20 Yoshinori K. Okuji <okuji@enbug.org>
4880
4881 * kern/term.c (grub_putchar): Use grub_utf8_to_ucs4 for the
4882 conversion.
4883 (grub_getcharwidth): New function.
4884
4885 * kern/misc.c (grub_utf8_to_ucs4): New function.
4886
4887 * include/grub/term.h (struct grub_term): Added a new member
4888 "getcharwidth".
4889 (grub_getcharwidth): New prototype.
4890
4891 * include/grub/misc.h (grub_utf8_to_ucs4): New prototype.
4892
4893 * term/i386/pc/console.c (map_char): New function. Segregated from
4894 grub_console_putchar.
4895 (grub_console_putchar): Use map_char.
4896 (grub_console_getcharwidth): New function.
4897 (grub_console_term): Specified grub_console_getcharwidth as
4898 getcharwidth.
4899
4900 * term/i386/pc/vga.c (grub_vga_getcharwidth): New function.
4901 (grub_vga_term): Specified grub_vga_getcharwidth as getcharwidth.
4902
4903 * term/i386/pc/vesafb.c (grub_virtual_screen_setup): Return
4904 GRUB_ERRNO.
4905 (grub_vesafb_init): Do not use RC. Instead, use GRUB_ERRNO. Rely
4906 on grub_strtoul completely.
4907 (write_char): Declare local variables in the beginning of the
4908 function.
4909 (grub_vesafb_getcharwidth): New function.
4910 (grub_vesafb_term): Specified grub_vesafb_getcharwidth as
4911 getcharwidth.
4912
1f0a95e4 49132005-08-19 Yoshinori K. Okuji <okuji@enbug.org>
4914
4915 * DISTLIST: Replace commands/i386/pc/vbe_list_modes.c and
4916 commands/i386/pc/vbe_test.c with commands/i386/pc/vbeinfo.c and
4917 commands/i386/pc/vbetest.c.
4918
4919 * video/i386/pc/vbe.c (grub_vbe_probe): If INFOBLOCK is not NULL,
4920 call grub_vbe_get_controller_info again, because the returned
4921 information is volatile.
4922 (grub_vbe_set_video_mode): Mostly rewritten.
4923 (grub_vbe_get_video_mode): Use grub_vbe_probe and use
4924 grub_vbe_status_t correctly.
4925 (grub_vbe_get_video_mode_info): Likewise.
4926 (grub_vbe_set_pixel_rgb): Use a switch statement rather than
4927 several if statements.
4928
4929 * commands/i386/pc/vbe_list_modes.c: Renamed to ...
4930 * commands/i386/pc/vbeinfo.c: ... this.
4931
4932 * commands/i386/pc/vbe_test.c: Renamed to ...
4933 * commands/i386/pc/vbetest.c: ... this.
4934
4935 * commands/i386/pc/vbeinfo.c (grub_cmd_vbe_list_modes): Renamed to
4936 ...
4937 (grub_cmd_vbeinfo): ... this. Save video modes before
4938 iterating. Skip a video mode, if it is not available, not enough
4939 information is given or it is monochrome. Show the memory
4940 model. Leave the interpretation of MODEVAR to grub_strtoul
4941 completely.
4942 (GRUB_MOD_INIT): Rename vbe_list_modes to vbeinfo.
4943 (GRUB_MOD_FINI): Likewise.
4944
4945 * commands/i386/pc/vbetest.c (grub_cmd_vbe_test): Renamed to ...
4946 (grub_cmd_vbetest): ... this. Don't print unnecessarily. Use
4947 grub_err_t instead of grub_uint32_t. Don't use SPTR. Remove a
4948 duplicated grub_env_get. Leave the interpretation of MODEVAR to
4949 grub_strtoul completely.
4950 (real2pm): Removed.
4951 (GRUB_MOD_INIT): Rename vbe_test to vbetest.
4952 (GRUB_MOD_FINI): Likewise.
4953
4954 * normal/misc.c: Include grub/mm.h.
4955
4956 * conf/i386-pc.rmk (pkgdata_MODULES): Replaced vbe_test.mod and
4957 vbe_list_modes with vbetest.mod and vbeinfo.mod.
4958 (vbe_list_modes_mod_SOURCES): Removed.
4959 (vbe_list_modes_mod_CFLAGS): Likewise.
4960 (vbe_test_mod_SOURCES): Likewise.
4961 (vbe_test_mod_CFLAGS): Likewise.
4962 (vbeinfo_mod_SOURCES): New variable.
4963 (vbeinfo_mod_CFLAGS): Likewise.
4964 (vbetest_mod_SOURCES): Likewise.
4965 (vbetest_mod_CFLAGS): Likewise.
4966
992ffbbe 49672005-08-18 Yoshinori K. Okuji <okuji@enbug.org>
4968
4969 * normal/misc.c: New file.
4970
4971 * DISTLIST: Added normal/misc.c.
4972
4973 * partmap/amiga.c (amiga_partition_map_iterate): Add an argument
4974 DISK to HOOK. Call HOOK with DISK.
4975 * partmap/apple.c (apple_partition_map_iterate): Likewise.
4976 * partmap/pc.c (pc_partition_map_iterate): Likewise.
4977 * partmap/sun.c (sun_partition_map_iterate): Likewise.
4978
4979 * normal/menu_entry.c (struct screen): Added a new member
4980 "completion_shown".
4981 (completion_buffer): New global variable.
4982 (make_screen): Set SCREEN->COMPLETION_SHOWN to zero.
4983 (store_completion): New function.
4984 (complete): Likewise.
4985 (clear_completions): Likewise.
4986 (grub_menu_entry_run): If SCREEN->COMPLETION_SHOWN is non-zero,
4987 call clear_completions and reset SCREEN->COMPLETION_SHOWN. If C is
4988 a tab, call complete.
4989
4990 * normal/completion.c (disk_dev): Removed.
4991 (print_simple_completion): Likewise.
4992 (print_partition_completion): Likewise.
4993 (print_func): New global variable.
4994 (add_completion): Do not take the arguments WHAT or PRINT any
4995 longer. Added a new argument TYPE. Instead of printing directly,
4996 call PRINT_FUNC if not NULL.
4997 All callers changed.
4998 (complete_device): Use a local variable DEV instead of
4999 DISK_DEV. Do not move CURRENT_WORD to the end of a device name.
5000 (grub_normal_do_completion): Take a new argument HOOK. Do not
5001 initialize DISK_DEV. Initialize PRINT_FUNC to HOOK. If RET is an
5002 empty string, return NULL instead.
5003 All callers changed.
5004
5005 * normal/cmdline.c (print_completion): New function.
5006
5007 * kern/partition.c (grub_partition_iterate): Add an argument DISK
5008 to HOOK.
5009 All callers changed.
5010
5011 * kern/disk.c (grub_print_partinfo): Removed.
5012
5013 * include/grub/partition.h (struct grub_partition_map): Add a new
5014 argument DISK into HOOK of ITERATE.
5015 (grub_partition_iterate): Add a new argument DISK to HOOK.
5016
5017 * include/grub/normal.h (enum grub_completion_type): New enum.
5018 (grub_completion_type_t): New type.
5019 (GRUB_COMPLETION_TYPE_COMMAND): New constant.
5020 (GRUB_COMPLETION_TYPE_DEVICE): Likewise.
5021 (GRUB_COMPLETION_TYPE_PARTITION): Likewise.
5022 (GRUB_COMPLETION_TYPE_FILE): Likewise.
5023 (grub_normal_do_completion): Added a new argument HOOK.
5024 (grub_normal_print_device_info): New prototype.
5025
5026 * include/grub/disk.h (grub_print_partinfo): Removed.
5027
5028 * conf/i386-pc.rmk (grub_emu_SOURCES): Added normal/misc.c.
5029 (normal_mod_SOURCES): Likewise.
5030 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
5031 (normal_mod_SOURCES): Likewise.
5032
5033 * commands/ls.c (grub_ls_list_disks): Use
5034 grub_normal_print_device_info instead of grub_print_partinfo. Free
5035 PNAME.
5036 (grub_ls_list_files): Use grub_normal_print_device_info instead of
5037 duplicating the code.
5038
0bd41162 50392005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
5040
5041 * commands/i386/pc/vbe_list_modes.c: Update source formatting to
5042 follow GCS more precisely.
5043 * commands/i386/pc/vbe_test.c: Likewise.
5044 * include/grub/i386/pc/vbe.h: Likewise.
5045 * term/i386/pc/vesafb.c: Likewise.
5046 * video/i386/pc/vbe.c: Likewise.
5047
6323696a 50482005-08-16 Vesa Jaaskelainen <chaac@nic.fi>
5049
5050 * DISTLIST: Added term/i386/pc/vesafb.c
5051 DISTLIST: Added video/i386/pc/vbe.c
5052 DISTLIST: Added commands/i386/pc/vbe_list_modes.c.
5053 DISTLIST: Added commands/i386/pc/vbe_test.c.
5054 * commands/i386/pc/vbe_list_modes.c: New file.
5055 * commands/i386/pc/vbe_test.c: Likewise.
5056 * term/i386/pc/vesafb.c: Likewise.
5057 * video/i386/pc/vbe.c: Likewise.
5058 * include/grub/i386/pc/vbe.h (GRUB_VBE_DEFAULT_VIDEO_MODE): Added define.
5059 (grub_vbe_probe) Added prototype.
5060 (grub_vbe_set_video_mode) Likewise.
5061 (grub_vbe_get_video_mode) Likewise.
5062 (grub_vbe_get_video_mode_info) Likewise.
5063 (grub_vbe_set_pixel_rgb) Likewise.
5064 (grub_vbe_set_pixel_index) Likewise.
5065 * conf/i386-pc.rmk (pkgdata_MODULES): Added vbe.mod.
5066 (pkgdata_MODULES): Added vesafb.mod.
5067 (pkgdata_MODULES): Added vbe_list_modes.mod.
5068 (pkgdata_MODULES): Added vbe_test.mod.
5069 (vbe_mod_SOURCES): Added.
5070 (vbe_mod_CFLAGS): Likewise.
5071 (vesafb_mod_SOURCES): Likewise.
5072 (vesafb_mod_CFLAGS): Likewise.
5073 (vbe_list_modes_mod_SOURCES): Likewise.
5074 (vbe_list_modes_mod_CFLAGS): Likewise.
5075 (vbe_test_mod_SOURCES): Likewise.
5076 (vbe_test_mod_CFLAGS): Likewise.
5077
0a74e62f 50782005-08-14 Yoshinori K. Okuji <okuji@enbug.org>
5079
0a74e62f 5080 * normal/command.c (grub_command_execute): If INTERACTIVE is
5081 false and GRUB_COMMAND_FLAG_NO_ECHO is not specified, print
5082 CMDLINE. Disable the pager if INTERACTIVE is true.
5083 All callers are changed.
5084
5085 * normal/main.c (grub_normal_execute): Read command.lst and fs.lst
5086 before reading a config file.
5087 * normal/main.c (read_config_file): Even if a command is not
5088 found, register it if it is within an entry.
5089
5090 * util/grub-emu.c: Include sys/types.h and unistd.h.
5091 (options): Added --hold.
5092 (struct arguments): Added a new member "hold".
5093 (parse_opt): If KEY is 'H', set ARGS->HOLD to ARG or -1 if ARG is
5094 missing.
5095 (main): Initialize ARGS.HOLD to zero. Wait until ARGS.HOLD is
5096 cleared by a debugger, if it is not zero.
5097
5098 * include/grub/normal.h (grub_command_execute): Add an argument
5099 INTERACTIVE.
5100
e51f85ae 51012005-08-14 Vesa Jaaskelainen <chaac@nic.fi>
5102
5103 * DISTLIST: Added include/grub/i386/pc/vbe.h.
5104
e9c6f39b 51052005-08-13 Yoshinori K. Okuji <okuji@enbug.org>
5106
5107 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): Replace the test
5108 program with another one, because the old one didn't detect a bug
5109 in gcc-3.4. Always use regparm 2, because the new test is still
5110 not enough for gcc-4.0. Someone must investigate a simple test
5111 case which detects a bug in gcc-4.0.
5112
8de3495c 51132005-08-12 Yoshinori K. Okuji <okuji@enbug.org>
5114
5115 * DISTLIST: Added normal/completion.c.
5116
5117 * normal/completion.c: New file.
5118
5119 * term/i386/pc/console.c (grub_console_getwh): New function.
5120 (grub_console_term): Assign grub_console_getwh to getwh.
5121
5122 * normal/cmdline.c (grub_tab_complete): Removed. Now the same
5123 function is defined in normal/completion.c as
5124 grub_normal_do_completion.
5125 (grub_cmdline_get): Use grub_normal_do_completion instead of
5126 grub_tab_complete.
5127
5128 * kern/partition.c (grub_partition_map_iterate): Return 1 if HOOK
5129 returns non-zero, otherwise return 0.
5130 (grub_partition_iterate): First, probe the partition map. Then,
5131 call ITERATE only for this partition map.
5132
5133 * kern/misc.c (grub_strncmp): Rewritten.
5134
5135 * kern/disk.c (grub_disk_dev_iterate): Return 1 if P->ITERATE
5136 returns non-zero. Otherwise return 0.
5137
5138 * include/grub/partition.h (grub_partition_map_iterate): Return
5139 int instead of void.
5140
5141 * include/grub/normal.h (grub_normal_do_completion): New prototype.
5142
5143 * include/grub/misc.h (grub_strncmp): Change the type of N to
5144 grub_size_t.
5145
5146 * include/grub/disk.h (grub_disk_dev_iterate): Return int instead
5147 of void.
5148
5149 * normal/menu.c (draw_border): Cast GRUB_TERM_BORDER_WIDTH to
5150 unsigned explictly before comparing it with I.
5151
5152 * kern/main.c (grub_env_write_root): Add the attribute unused into
5153 VAR.
5154
5155 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
5156 normal/completion.c.
5157 (normal_mod_SOURCES): Likewise.
5158 * conf/i386-pc.rmk (grub_emu_SOURCES): Likewise.
5159 (normal_mod_SOURCES): Likewise.
5160
5161 * normal/command.c (grub_iterate_commands): If ITERATE returns
5162 non-zero, return one immediately.
5163
e85e144b 51642005-08-09 Vesa Jaaskelainen <chaac@nic.fi>
5165
5166 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vbe.h.
5167 * kern/i386/pc/startup.S: Updated Global Descriptor table's
5168 descriptions.
5169 (grub_vbe_get_controller_info): New function.
5170 (grub_vbe_get_mode_info): Likewise.
5171 (grub_vbe_set_mode): Likewise.
5172 (grub_vbe_get_mode): Likewise.
5173 (grub_vbe_set_memory_window): Likewise.
5174 (grub_vbe_get_memory_window): Likewise.
5175 (grub_vbe_set_scanline_length): Likewise.
5176 (grub_vbe_get_scanline_length): Likewise.
5177 (grub_vbe_set_display_start): Likewise.
5178 (grub_vbe_get_display_start): Likewise.
5179 (grub_vbe_set_palette_data): Likewise.
5180 * include/grub/i386/pc/vbe.h: New file.
5181
c46153d2 51822005-08-08 Hollis Blanchard <hollis@penguinppc.org>
5183
5184 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
5185 kern/ieee1275/of.c with kern/ieee1275/ieee1275.c.
5186 * DISTLIST: Likewise.
5187 * kern/ieee1275/of.c: Moved to ...
5188 * kern/ieee1275/ieee1275.c: ... here.
5189
0cb90c45 51902005-08-08 Hollis Blanchard <hollis@penguinppc.org>
5191
5192 * term/ieee1275/ofconsole.c: Include <grub/mm.h>.
5193 (grub_ofconsole_getwh): Cast -1 to type grub_ieee1275_ihandle_t.
5194 Pass 0 as `end' parameter to grub_strtoul().
5195
a19fb360 51962005-08-08 Hollis Blanchard <hollis@penguinppc.org>
5197
5198 * include/grub/powerpc/ieee1275/console.h: Do not include
5199 <grub/types.h>. Do not include <grub/symbol.h>. Remove ASM_FILE
5200 ifdef.
5201 (grub_console_cur_color): Remove i386-specific prototype.
5202 (grub_console_real_putchar): Likewise.
5203 (grub_console_checkkey): Likewise.
5204 (grub_console_getkey): Likewise.
5205 (grub_console_getxy): Likewise.
5206 (grub_console_gotoxy): Likewise.
5207 (grub_console_cls): Likewise.
5208 (grub_console_setcursor): Likewise.
5209 * kern/powerpc/ieee1275/init.c: Don't include <grub/console.h>.
5210 Include <grub/machine/console.h>.
5211 * term/ieee1275/ofconsole.c: Likewise.
5212
4ac9bd04 52132005-08-08 Yoshinori K. Okuji <okuji@enbug.org>
5214
5215 * Makefile.in (LIBLZO): New variable.
5216
5217 * configure.ac: Check for LZO version 2.
5218
5219 * util/i386/pc/grub-mkimage.c [HAVE_LZO_LZO1X_H]: Include
5220 lzo/lzo1x.h instead of lzo1x.h.
5221
5222 * conf/i386-pc.rmk (grub_mkimage_LDFLAGS): Use $(LIBLZO) instead
5223 of -llzo.
5224
5225 * util/i386/pc/grub-setup.c (main): Do not free PREFIX
5226 twice. Reported by Vladimir Serbinenko <phcoder@gmail.com>.
5227
5228 * partmap/pc.c (pc_partition_map_probe): Restore P->DATA after
5229 copying the data from PARTITION to P.
5230
f4917dfd 52312005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
5232
5233 * kern/rescue.c (grub_rescue_cmd_rmmod): If the reference count is
5234 negative, unload the module.
5235
5236 * util/i386/pc/grub-setup.c (setup): The name of the PC partition
5237 map is "pc_partition_map" but not "pc".
5238 (usage): Fix the description. The options are --boot-image and
5239 --core-image but not --boot-file or --core-file.
5240 (main): If not specified explicitly, make BOOT_FILE and CORE_FILE
5241 based on DEFAULT_BOOT_FILE and DEFAULT_CORE_FILE with DIR or
5242 DEFAULT_DIRECTORY.
5243
5244 * util/i386/pc/grub-install.in: Do not specify --boot-file or
5245 --core-file. Specify INSTALL_DEVICE as an argument.
5246
5247 * util/console.c: Include config.h.
5248 [HAVE_NCURSeS_CURSES_H]: Include ncurses/curses.h.
5249 [HAVE_NCURSES_H]: Include ncurses.h.
5250 [HAVE_CURSES_H]: Include curses.h.
5251 [!A_NORMAL] (A_NORMAL): Defined as zero.
5252 [!A_STANDOUT] (A_STANDOUT): Likewise.
5253
5254 * conf/i386-pc.rmk (grub_emu_LDFLAGS): Use $(LIBCURSES) instead of
5255 -lncurses.
5256 * conf/powerpc-ieee1275.rmk (grub_emu_LDFLAGS): Likewise.
5257
5258 * configure.ac: Check for curses libraries and headers.
5259
5260 * Makefile.in (LIBCURSES): New variable.
5261
5262 * genmk.rb (Script::rule): Set the executable bits.
5263
5264 * util/i386/pc/biosdisk.c (grub_util_biosdisk_get_grub_dev): The
5265 name of the PC partition map is "pc_partition_map" but not "pc".
5266
0e143073 52672005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
5268
5269 * util/i386/pc/grub-install.in (grub_probefs): New variable.
5270 (modules): Likewise.
5271 (usage): Added descriptions for --modules and --grub-probefs.
5272 Handle --modules and --grub-probefs. Save the arguments in MODULES
5273 and GRUB_PROBEFS, respectively.
5274 Auto-detect a filesystem module against GRUBDIR. If the result is
5275 empty and modules are not specified explicitly, abort the
5276 installation. Add the result to MODULES.
5277
5278 * DISTLIST: Removed boot/powerpc/ieee1275/ieee1275.c,
5279 disk/powerpc/ieee1275/ofdisk.c,
5280 include/grub/powerpc/ieee1275/init.h and
5281 term/powerpc/ieee1275/ofconsole.c.
5282 Added disk/ieee1275/ofdisk.c, kern/ieee1275/of.c and
5283 term/ieee1275/ofconsole.c.
5284
5285 * include/grub/powerpc/ieee1275/console.h: Resurrected.
5286
5287 * COPYING: Upgraded to the latest version. Only the address of the
5288 FSF office has changed.
5289
efd6e6d5 52902005-08-07 Yoshinori K. Okuji <okuji@enbug.org>
5291
5292 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Replaced
5293 kern/ieee1275.c with kern/ieee1275/of.c.
5294
5295 * kern/ieee1275.c: Moved to ...
5296 * kern/ieee1275/of.c: ... here.
5297
8ceafda2 52982005-08-06 Yoshinori K. Okuji <okuji@enbug.org>
5299
5300 * conf/i386-pc.rmk (kernel_img_HEADERS): Reordered for
5301 readablity.
5302
5303 * config.guess: Updated to the latest version from gnulib.
5304 * config.sub: Likewise.
5305 * install.sh: Likewise.
5306 * mkinstalldirs: Likewise.
5307
5308 * include/grub/console.h: Removed. This file is arch-specific. Do
5309 not put this in include/grub.
5310
5311 * include/grub/i386/pc/console.h: Resurrected.
5312
5313 * util/console.c: Include grub/machine/console.h instead of
5314 grub/console.h.
5315 * util/grub-emu.c: Likewise.
5316
267f6cd9 53172005-08-04 Marco Gerards <metgerards@student.han.nl>
5318
5319 * kern/term.c (grub_putcode): Use `grub_getwh' instead of
5320 hardcoded value.
5321
5322 From Vincent Pelletier <subdino2004@yahoo.fr>
5323 * include/grub/term.h (GRUB_TERM_WIDTH, GRUB_TERM_HEIGHT):
5324 Redefined to use grub_getwh.
5325 (grub_term): New member named getwh.
5326 (grub_getwh): New prototype.
5327 * kern/term.c (grub_getwh): New function.
5328 * term/i386/pc/console.c (grub_console_getwh): New function.
5329 (grub_console_term): New member `getwh'.
5330 * term/i386/pc/vga.c (grub_vga_getwh): New function.
5331 (grub_vga_term): New member `getwh'.
0b5abe02 5332 * term/ieee1275/ofconsole.c (grub_ofconsole_readkey): Use
267f6cd9 5333 grub_ssize_t.
5334 (grub_ofconsole_getw): New function.
5335 (grub_ofconsole_init): Use grub_ssize_t and unsigned char.
5336 (grub_ofconsole_term): New field named getwh and new initial
5337 value.
5338
3be7266d 53392005-08-03 Hollis Blanchard <hollis@penguinppc.org>
5340
5341 * include/grub/powerpc/ieee1275/ieee1275.h: Move ...
5342 * include/grub/ieee1275/ieee1275.h: ... to here. All users updated.
5343 Move `abort', `grub_reboot', and `grub_halt' prototypes ...
5344 * include/grub/powerpc/ieee1275/kernel.h: ... to here.
5345 * commands/ieee1275/halt.c: Include <grub/machine/kernel.h> instead
5346 of <grub/machine/ieee1275.h>.
5347 * commands/ieee1275/reboot.c: Likewise.
5348 * boot/powerpc/ieee1275/ieee1275.c: Move ...
5349 * kern/ieee1275.c: ... to here. All users updated. Change all
5350 parameter structs to use new type `grub_ieee1275_cell_t'.
5351 * term/powerpc/ieee1275/ofconsole.c: Move ...
5352 * term/ieee1275/ofconsole.c: ... to here. All users updated.
5353 * disk/powerpc/ieee1275/ofdisk.c: Move ...
5354 * disk/ieee1275/ofdisk.c: ... to here. All users updated.
5355 * boot/powerpc/ieee1275/cmain.c: Change `grub_ieee1275_entry_fn' type
5356 to return int.
5357 * include/grub/i386/pc/console.h: Move to include/grub/console.h.
5358 Remove unused prototypes. All users updated.
5359 * include/grub/powerpc/ieee1275/console.h: Removed.
5360 * include/grub/powerpc/ieee1275/ieee1275.h: Define
5361 `grub_ieee1275_cell_t'.
5362 * kern/powerpc/ieee1275/openfw.c: Include <grub/machine/kernel.h>.
5363 Cast comparisons with -1 to the correct type.
5364 * loader/powerpc/ieee1275/linux.c (kernel_entry_t): Change parameter
5365 type to match `grub_ieee1275_entry_fn'.
5366
8b5f3938 53672005-08-01 Yoshinori K. Okuji <okuji@enbug.org>
5368
5369 * DISTLIST: Added util/i386/pc/grub-probefs.c.
5370
5371 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-probefs.
5372 (grub_setup_SOURCES): Removed partmap/amiga.c, partmap/apple.c and
5373 partmap/sun.c.
5374 (grub_probefs_SOURCES): New variable.
5375
5376 * util/i386/pc/grub-probefs.c: New file.
5377
5378 * util/i386/pc/grub-setup.c (main): Call
5379 grub_pc_partition_map_init, grub_ufs_init, grub_minix_init,
5380 grub_hfs_init and grub_jfs_init to initialize the system. Call
5381 grub_ufs_fini, grub_minix_fini, grub_hfs_fini, grub_jfs_init and
5382 grub_pc_partition_map_fini to finish the system.
5383
ea409713 53842005-07-31 Yoshinori K. Okuji <okuji@enbug.org>
5385
5386 * loader/i386/pc/multiboot.c (grub_multiboot_is_elf32): New
5387 function.
5388 (grub_multiboot_load_elf32): Likewise.
5389 (grub_multiboot_is_elf64): Likewise.
5390 (grub_multiboot_load_elf64): Likewise.
5391 (grub_multiboot_load_elf): Likewise.
5392 (grub_rescue_cmd_multiboot): Call grub_multiboot_load_elf to load
5393 an ELF32 or ELF64 file.
5394 This is based on a patch from Ruslan Nikolaev <nruslan@mail.com>.
5395
5396 From Serbinenko Vladimir <serbinenko.vova@list.ru>:
5397 * kern/disk.c (grub_print_partinfo): Check if FS->LABEL is not
5398 NULL before calling FS->LABEL.
5399 * fs/fat.c (grub_fat_dir): Initialize DIRNAME to NULL.
5400 * commands/ls.c (grub_ls_list_files): Show labels, if possible.
5401 (grub_ls_list_disks): Check if FS and FS->LABEL are not NULL
5402 before calling FS->LABEL.
5403
141a288b 54042005-07-26 Yoshinori K. Okuji <okuji@enbug.org>
5405
5406 * util/i386/pc/grub-install.in (datadir): New variable.
5407 (libdir): Removed.
5408 (pkgdatadir): New variable.
5409 (pkglibdir): Removed.
5410
0d5f8a54 54112005-07-24 Yoshinori K. Okuji <okuji@enbug.org>
5412
5413 * DISTLIST: Added util/i386/pc/grub-install.in.
5414
5415 * util/i386/pc/grub-install.in: New file.
5416
5417 * conf/i386-pc.rmk (sbin_SCRIPTS): New variable.
5418 (grub_install_SOURCES): Likewise.
5419
5420 * genmk.rb: Added support for scripts.
5421 (Script): New class.
5422 (scripts): New variable.
5423
5424 * Makefile.in (install-local): Install sbin_SCRIPTS by
5425 INSTALL_SCRIPT.
5426 (uninstall): Remove sbin_SCRIPTS.
5427
5428 * util/i386/pc/grub-setup.c (main): If the argument is not a GRUB
5429 device, try to get a GRUB device by
5430 grub_util_biosdisk_get_grub_dev.
5431 Free DEST_DEV.
5432
5433 * util/i386/pc/grub-mkdevicemap.c (usage): Remove a duplicated
5434 description for --device-map.
5435
5f968e1e 54362005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
5437
5438 Change the semantics of variable hooks. They now return strings
5439 instead of error values.
5440
5441 * util/i386/pc/grub-setup.c: Include grub/env.h.
5442 (setup): Use grub_device_set_root instead of grub_env_set.
5443
5444 * kern/rescue.c (grub_rescue_cmd_root): Use grub_env_set and
5445 grub_env_get instead of grub_device_set_root and
5446 grub_device_get_root, respectively.
5447
5448 * kern/main.c (grub_env_write_root): New function.
5449 (grub_set_root_dev): Register grub_env_write_hook for "root". Use
5450 grub_env_set instead of grub_device_set_root.
5451
5452 * kern/env.c (HASHSZ): Reduced to 13, because GRUB does not need
5453 many variables.
5454 (grub_env_set): Set ENV->VALUE to the result of ENV->WRITE_HOOK
5455 rather than calling ENV->WRITE_HOOK afterwards.
5456 (grub_env_get): Return the result of ENV->READ_HOOK rather than
5457 passing a pointer of a pointer.
5458 (grub_register_variable_hook): Change the types of "read_hook" and
5459 "write_hook" to grub_env_read_hook_t and grub_env_write_hook_t,
5460 respectively.
5461 Allocate the default empty string on the heap, because this string
5462 may be freed later.
5463
5464 * kern/device.c: Include grub/env.h.
5465 (grub_device_set_root): Removed.
5466 (grub_device_get_root): Likewise.
5467 (grub_device_open): Use grub_env_get instead of
5468 grub_device_get_root.
5469
5470 * include/grub/env.h (grub_env_read_hook_t): New type.
5471 (grub_env_write_hook_t): Likewise.
5472 (grub_env_var): Change the types of "read_hook" and "write_hook"
5473 to grub_env_read_hook_t and grub_env_write_hook_t, respectively.
5474 (grub_register_variable_hook): Likewise.
5475
5476 * include/grub/device.h (grub_device_set_root): Removed.
5477 (grub_device_set_root): Likewise.
5478
5479 * fs/fat.c (grub_fat_dir): Make a copy of PATH in DIRNAME, and
5480 make sure that DIRNAME terminates with '/', so that
5481 grub_fat_find_dir will fail if PATH is not a directory.
5482
5483 * commands/ls.c (grub_ls_list_files): Remove the qualifier const
5484 from DIRNAME.
5485 Use the qualifier auto for print_files and print_files_long.
5486 If FS->DIR sets GRUB_ERRNO to GRUB_ERR_BAD_FILE_TYPE, try DIRNAME
5487 as a regular file.
5488 Put a newline only if there is no error.
5489 (grub_cmd_ls): Remove grub_ls_print_files, because this is not
5490 used.
5491
896f0afd 54922005-07-20 Yoshinori K. Okuji <okuji@enbug.org>
5493
5494 * kern/partition.c (grub_partition_probe): Initialize PART to
5495 NULL. Otherwise, when no partition map is registered, this returns
5496 a garbage.
5497
b28b81b2 54982005-07-19 Yoshinori K. Okuji <okuji@enbug.org>
5499
5500 * partmap/apple.c (apple_partition_map_iterate): Check if POS
5501 equals GRUB_DISK_SECTOR_SIZE to see if the partition table is
5502 valid.
5503
5f3607e0 55042005-07-18 Yoshinori K. Okuji <okuji@enbug.org>
5505
5506 * commands/ls.c (grub_ls_list_disks): Print the filesystem
5507 information on each device, if it does not have partitions. Print
5508 "Device" instead of "Disk", because this function is not specific
5509 to disk devices.
5510
5511 * normal/main.c (grub_rescue_cmd_normal): Make the variable CONFIG
5512 static to ensure that it is put on the memory rather than a
5513 register.
5514
502c87e8 55152005-07-17 Yoshinori Okuji <okuji@enbug.org>
5516
5517 * commands/cat.c (GRUB_MOD_INIT): Use better documentation.
5518 (grub_cat_init): Likewise.
5519 * loader/i386/pc/chainloader_normal.c (GRUB_MOD_INIT): Likewise.
5520 (options): Likewise.
5521 * commands/configfile.c (GRUB_MOD_INIT): Likewise.
5522 (grub_configfile_init): Likewise.
5523 * font/manager.c (GRUB_MOD_INIT): Likewise.
5524 * commands/help.c (GRUB_MOD_INIT): Likewise.
5525 (grub_help_init): Likewise.
5526 * normal/command.c (grub_command_init): Likewise.
5527 * loader/i386/pc/linux_normal.c (GRUB_MOD_INIT): Likewise.
5528 * disk/loopback.c (grub_loop_init): Likewise.
5529 (GRUB_MOD_INIT): Likewise.
5530 * commands/ls.c (grub_ls_init): Likewise.
5531 (GRUB_MOD_INIT): Likewise.
5532 (options): Likewise.
5533 * commands/boot.c (grub_boot_init): Likewise.
5534 (GRUB_MOD_INIT): Likewise.
5535 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Likewise.
5536 * commands/i386/pc/reboot.c (grub_reboot_init): Likewise.
5537 (GRUB_MOD_INIT): Likewise.
5538 * commands/cmp.c (grub_cmp_init): Likewise.
5539 (GRUB_MOD_INIT): Likewise.
5540
5541 * normal/arg.c: Use <> instead of "" to include header files.
5542 (SHORT_ARG_HELP): New macro.
5543 (SHORT_ARG_USAGE): Likewise.
5544 (help_options): Specify SHORT_ARG_HELP and SHORT_ARG_USAGE instead
5545 of 'h' and 'u' for help and usage, respectively. Use more GNU-like
5546 descriptions.
5547 (find_short): Check if C is 'h' or 'u' explicitly.
5548 (grub_arg_show_help): Use space characters instead of tabs. Treat
5549 SHORT_ARG_HELP and SHORT_ARG_USAGE exceptionally so that -h and -u
5550 are shown with --help and --usage only if they are not used for
5551 the command itself.
5552 (parse_option): Use SHORT_ARG_HELP and SHORT_ARG_USAGE instead of
5553 'h' and 'u'.
5554
5555 * include/grub/arg.h (struct grub_arg_option): Add the qualifier
5556 const into "longarg". Change the type of "shortarg" to int.
5557
f806d18e 55582005-07-17 Yoshinori Okuji <okuji@enbug.org>
5559
5560 * boot/i386/pc/boot.S (boot_drive_check): New label.
5561
5562 * include/grub/i386/pc/boot.h (GRUB_BOOT_MACHINE_DRIVE_CHECK): New
5563 macro.
5564
5565 * util/i386/pc/grub-setup.c (setup): Added a workaround for BIOSes
5566 which do not pass a boot drive correctly. Copied from GRUB Legacy.
5567
e293232b 55682005-07-17 Yoshinori Okuji <okuji@enbug.org>
5569
5570 * kern/i386/pc/startup.S (gate_a20_try_system_control_port_a):
5571 When turning off Gate A20, skip the check and return immediately,
5572 because this is not fatal usually.
5573
ebedfd00 55742005-07-17 Yoshinori Okuji <okuji@enbug.org>
5575
5576 * conf/i386-pc.rmk (pxeboot_img_LDFLAGS): The text address should
5577 be 0x7C00 instead of 0x8000.
5578
5579 * boot/i386/pc/pxeboot.S: Rewritten.
5580
5581 * kern/i386/pc/startup.S (gate_a20_try_bios): No need to specify
5582 EXT_C.
5583 (gate_a20_check_state): Read a byte from 0x108000. Invert the
5584 result.
5585
654fc59f 55862005-07-16 Yoshinori K. Okuji <okuji@enbug.org>
5587
5588 * kern/i386/pc/startup.S (grub_gate_a20): Rewritten for
5589 robustness. This routine now supports a BIOS call and System
5590 Control Port A to modify the gate A20.
5591
5592 * include/grub/i386/pc/kernel.h (GRUB_KERNEL_MACHINE_RAW_SIZE):
5593 Increased to 0x440.
5594
09f9923f 55952005-07-12 Hollis Blanchard <hollis@penguinppc.org>
5596
5597 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): dprintf the
5598 device path and resulting ihandle.
5599 (grub_ofdisk_close): dprintf the ihandle being closed.
5600 (grub_ofdisk_read): dprintf function parameters.
5601 * kern/mm.c (grub_mm_init_region): Likewise.
5602 * loader/powerpc/ieee1275/linux.c: Remove extra whitespace.
5603 (grub_linux_boot): dprintf the Linux entry point, initrd address and
5604 size, and boot arguments.
5605 (grub_rescue_cmd_linux): dprintf each ELF segment's address and size
5606 before loading into memory.
5607 (grub_rescue_cmd_initrd): dprintf the initrd's address and size
5608 before loading into memory.
5609
7ef504d8 56102005-07-12 Yoshinori K. Okuji <okuji@enbug.org>
5611
5612 * kern/mm.c: Added much documentation.
5613 (GRUB_MM_ALIGN_LOG2): When GRUB_CPU_SIZEOF_VOID_P is
5614 8, set to 5 instead of 8.
5615
e0f050c2 56162005-07-10 Yoshinori Okuji <okuji@enbug.org>
5617
5618 * DISTLIST: Added util/i386/pc/grub-mkimage.c.
5619
5620 * conf/i386-pc.rmk (sbin_UTILITIES): Added grub-mkdevicemap.
5621 (grub_mkdevicemap_SOURCES): New variable.
5622
5623 * util/i386/pc/grub-mkdevicemap.c: New file. Mostly copied from
5624 lib/device.c of GRUB Legacy.
5625
7224189a 56262005-07-10 Yoshinori Okuji <okuji@enbug.org>
5627
5628 * commands/ls.c (grub_ls_list_files): Check if *PATH is NUL
5629 instead of PATH is NULL.
5630
68c864eb 56312005-07-09 Vincent Pelletier <subdino2004@yahoo.fr>
5632
5633 * commands/cmp.c (BUFFER_SIZE): New macro.
5634 (grub_cmd_cmp): Close the right file at the right time. Compare
5635 only data just read. Don't report files of different size as
5636 identical. Dynamically allocate buffers. Move variable
5637 declarations at the beginning of function.
5638
e6f3e614 56392005-07-09 Yoshinori Okuji <okuji@enbug.org>
5640
5641 * aclocal.m4 (grub_I386_CHECK_REGPARM_BUG): The return value was
5642 reverse.
5643
f8f1559a 56442004-07-04 Vincent Pelletier <subdino2004@yahoo.fr>
5645
5646 * normal/cmdline.c (grub_cmdline_get): Don't fallback on ctrl-d
5647 when backspace is pressed at beginning of line.
5648
39c9d41d 56492005-07-03 Yoshinori Okuji <okuji@enbug.org>
5650
5651 * DISTLIST: Added genfslist.sh.
5652
5653 * normal/main.c (fs_module_list): New variable.
5654 (autoload_fs_module): New function.
5655 (read_fs_list): Likewise.
5656 (grub_normal_execute): Call read_fs_list.
5657
5658 * kern/fs.c (grub_fs_autoload_hook): New variable.
5659 (grub_fs_probe): Added support for auto-loading.
5660
5661 * include/grub/normal.h (struct grub_fs_module_list): New struct.
5662 (grub_fs_module_list_t): New type.
5663
5664 * include/grub/fs.h (grub_fs_autoload_hook_t): New type.
5665 (grub_fs_autoload_hook): New prototype.
5666
5667 * genfslist.sh: New file.
5668
5669 * genmk.rb: Added a rule to generate a filesystem list.
5670
121c1d83 56712005-06-30 Marco Gerards <metgerards@student.han.nl>
5672
5673 * configure.ac: Fix the test for cross-compiling.
5674
5675 * genmk.rb (Program): Use `$(CC)' instead of `$(BUILD_CC)'. Don't
5676 define GRUB_UTIL anymore.
5677
5678 * util/powerpc/ieee1275/grub-mkimage.c (load_note): Endian fixes
5679 so this function works on other systems than just big endian.
5680 (load_modules): Likewise.
5681 (add_segments): Likewise.
5682
e75d76e1 56832005-06-23 Hollis Blanchard <hollis@penguinppc.org>
5684
5685 * kern/misc.c (grub_vsprintf): Add `longfmt'. If format string
5686 contains `l' modifier, get a long from va_arg().
5687
50b5a0a7 56882005-06-23 Yoshinori K. Okuji <okuji@enbug.org>
5689
5690 * kern/mm.c (grub_free): If the next free block which is being
5691 merged is the first free block, set the first block to the block
5692 being freed.
5693 Reported by Vincent Guffens <guffens@inma.ucl.ac.be>.
5694
89371b20 56952005-05-08 Hollis Blanchard <hollis@penguinppc.org>
5696
5697 * boot/powerpc/ieee1275/cmain.c (cmain): Initialize
5698 `grub_ieee1275_chosen'.
5699
168d6e58 57002005-05-08 Hollis Blanchard <hollis@penguinppc.org>
5701
5702 * boot/powerpc/ieee1275/cmain.c (module_info): Remove definition.
5703 (grub_ieee1275_chosen): New variable.
5704 (cmain): Initialize and use `grub_ieee1275_chosen' instead of
5705 `chosen'.
5706 * boot/powerpc/ieee1275/crt0.S (init_stack): Remove stack space.
5707 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
5708 Rename first argument to `phandle' for consistency.
5709 (grub_ieee1275_get_property_length): Likewise.
5710 (grub_ieee1275_next_property): Likewise. Change type of first argument
5711 to grub_ieee1275_phandle_t.
5712 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_entry_fn):
5713 Move export next to declaration.
5714 (grub_ieee1275_chosen): New variable.
5715 * include/grub/powerpc/ieee1275/kernel.h (GRUB_IEEE1275_MODULE_BASE):
5716 Correct cosmetic typo.
5717 * kern/powerpc/ieee1275/init.c (grub_set_prefix): Use
5718 `grub_ieee1275_chosen'.
5719 * kern/powerpc/ieee1275/openfw.c (grub_map): Likewise.
5720 * loader/powerpc/ieee1275/linux.c (grub_linux_boot): Likewise.
5721 (grub_rescue_cmd_linux): Set `initrd_addr' to 0.
5722 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_refresh): Use
5723 `grub_ieee1275_chosen'.
5724
ca5baa3f 57252005-05-10 Hollis Blanchard <hollis@penguinppc.org>
5726
5727 * boot/powerpc/ieee1275/cmain.c (cmain): Remove code to parse
5728 /chosen/bootargs.
5729 * kern/powerpc/ieee1275/init.c (grub_machine_init): Parse
5730 /chosen/bootargs as "variable=value" pairs.
5731
708b345f 57322005-05-08 Vincent Pelletier <subdino2004@yahoo.fr>
5733
5734 * include/grub/misc.h (grub_dprintf): New macro.
5735 (grub_real_dprintf): New prototype.
5736 (grub_strword): Likewise.
5737 (grub_iswordseparator): Likewise.
5738 * kern/misc.c (grub_real_dprintf): New function.
5739 (grub_strword): Likewise.
5740 (grub_iswordseparator): Likewise.
5741
f4c5e67c 57422005-04-30 Hollis Blanchard <hollis@penguinppc.org>
5743
5744 * boot/powerpc/ieee1275/cmain.c: Don't include grub/machine/init.h.
5745 (roundup): Remove macro.
5746 (grub_ieee1275_flags): Make static.
5747 (grub_ieee1275_realmode): Remove.
5748 (grub_ieee1275_test_flag): New function.
5749 (grub_ieee1275_set_flag): Likewise.
5750 (find_options): Rename to `grub_ieee1275_find_options'; update
5751 callers. Set GRUB_IEEE1275_FLAG_REAL_MODE and
5752 GRUB_IEEE1275_FLAG_0_BASED_PARTITIONS.
5753 (cmain): New prototype.
5754 (cmain): Use `grub_ieee1275_set_flag' instead of accessing
5755 `grub_ieee1275_flags' directly.
5756 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Remove
5757 machine/biosdisk.h.
5758 * disk/powerpc/ieee1275/ofdisk.c: Include grub/machine/ofdisk.h.
5759 Don't include grub/machine/init.h.
5760 (grub_ofdisk_open): Call `grub_ieee1275_test_flag'.
5761 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
5762 Remove prototype.
5763 (grub_ieee1275_realmode): Likewise.
5764 (grub_ieee1275_flag): New enum.
5765 (grub_ieee1275_test_flag): New prototype.
5766 (grub_ieee1275_set_flag): New prototype.
5767 * include/grub/powerpc/ieee1275/init.h: Remove file.
5768 * include/grub/powerpc/ieee1275/ofdisk.h: New file.
5769 * kern/powerpc/ieee1275/init.c: Don't include grub/machine/init.h.
5770 Include grub/machine/console.h. Include grub/machine/ofdisk.h.
5771 (grub_machine_fini): Don't call `grub_ieee1275_release'. Remove
5772 comment.
5773 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Call
5774 `grub_ieee1275_test_flag'.
5775 (grub_ieee1275_encode_devname): Likewise.
5776
ed16607e 57772005-04-21 Hollis Blanchard <hollis@penguinppc.org>
5778
5779 * include/grub/powerpc/ieee1275/ieee1275.h
5780 (grub_ieee1275_encode_devname): New prototype.
5781 (grub_ieee1275_get_filename): Likewise.
5782 * kern/powerpc/ieee1275/init.c (grub_translate_ieee175_path): New
5783 function.
5784 (grub_set_prefix): Likewise.
5785 (grub_machine_init): Call grub_set_prefix.
5786 * kern/powerpc/ieee1275/openfw.c: Fix typos.
5787 (grub_parse_type): New enum.
5788 (grub_ieee1275_get_devargs): New function.
5789 (grub_ieee1275_get_devname): Likewise.
5790 (grub_ieee1275_parse_args): Likewise.
5791 (grub_ieee1275_get_filename): Likewise.
5792 (grub_ieee1275_encode_devname): Likewise.
5793
be369920 57942005-03-30 Marco Gerards <metgerards@student.han.nl>
5795
5796 * kern/powerpc/ieee1275/init.c (grub_machine_fini): Don't call
5797 `grub_loader_unset'.
5798
a5ce3a4a 57992005-03-26 Hollis Blanchard <hollis@penguinppc.org>
5800
5801 * commands/ieee1275/halt.c (grub_cmd_halt): Call grub_halt
5802 instead of grub_ieee1275_interpret.
5803 (grub_halt_init): New function.
5804 (grub_halt_fini): Likewise.
5805 (GRUB_MOD_INIT): Correct message grammar.
5806 * commands/ieee1275/reboot.c (grub_cmd_reboot): Call grub_reboot
5807 instead of grub_ieee1275_interpret.
5808 (grub_reboot_init): New function.
5809 (grub_reboot_fini): Likewise.
5810 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Replace
5811 commands/i386/pc/halt.c, commands/i386/pc/reboot.c, and
5812 util/i386/pc/misc.c with commands/ieee1275/halt.c,
5813 commands/ieee1275/reboot.c, and util/powerpc/ieee1275/misc.c.
5814 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_fini): New
5815 function.
5816 * include/grub/powerpc/ieee1275/console.h (grub_console_fini):
5817 Add prototype.
5818 * include/grub/powerpc/ieee1275/ieee1275.h (grub_reboot): Add
5819 prototype.
5820 (grub_halt): Likewise.
5821 * include/grub/powerpc/ieee1275/init.h: Remove inaccurate comment.
5822 (cmain): Remove __attribute__((unused)).
5823 * kern/powerpc/ieee1275/init.c (grub_heap_start): New variable.
5824 (grub_heap_len): Likewise.
5825 (grub_machine_fini): New function.
5826 * kern/powerpc/ieee1275/openfw.c (grub_reboot): New function.
5827 (grub_halt): Likewise.
5828 * term/powerpc/ieee1275/ofconsole.c (grub_console_fini): New
5829 function.
5830 * util/powerpc/ieee1275/misc.c: New file.
5831
0058f771 58322005-03-19 Yoshinori K. Okuji <okuji@enbug.org>
5833
5834 * DISTLIST: New file.
5835 * gendistlist.sh: Likewise.
5836
5837 * Makefile.in (COMMON_DISTFILES): Removed.
5838 (BOOT_DISTFILES): Likewise.
5839 (CONF_DISTFILES): Likewise.
5840 (DISK_DISTFILES): Likewise.
5841 (FS_DISTFILES): Likewise.
5842 (INCLUDE_DISTFILES): Likewise.
5843 (KERN_DISTFILES): Likewise.
5844 (LOADER_DISTFILES): Likewise.
5845 (TERM_DISTFILES): Likewise.
5846 (UTIL_DISTFILES): Likewise.
5847 (DISTFILES): Likewise.
5848 (uninstall): Uninstall files in $(pkgdata_DATA).
5849 (DISTLIST): New target.
5850 (distdir): Use the contents of the file DISTLIST to get a list of
5851 distributed files.
5852
46b3b8a5 58532005-03-18 Yoshinori K. Okuji <okuji@enbug.org>
5854
5855 * fs/fat.c (grub_fat_mount): Ignore the 3rd bit of a media
5856 descriptor. This is ported from GRUB Legacy.
5857
5858 * gencmdlist.sh: Added an extra semicolon to make it work with
5859 old sed versions. Reported by Robert Bihlmeyer
5860 <robbe@orcus.priv.at>.
5861
5822ff87 58622005-03-08 Yoshinori Okuji <okuji@enbug.org>
5863
5864 Automatic loading of commands is supported.
5865
5866 * normal/main.c (read_command_list): New function.
5867 (grub_normal_execute): Call read_command_list.
5868
5869 * normal/command.c (grub_register_command): Return zero or CMD.
5870 Allocate CMD->NAME from the heap.
5871 Initialize CMD->MODULE_NAME to zero.
5872 Find the same name as well. If the same command is found and it is
5873 a dummy command, overwrite members. If it is not a dummy command,
5874 return zero.
5875 (grub_unregister_command): Free Q->NAME and Q->MODULE_NAME.
5876 (grub_command_find): If a dummy command is found, load a module
5877 and retry to find a command only once.
5878
5879 * normal/cmdline.c (grub_tab_complete): Call grub_command_find to
5880 make sure that each command is loaded.
5881
5882 * include/grub/normal.h (GRUB_COMMAND_FLAG_NOT_LOADED): New
5883 macro.
5884 (struct grub_command): Remove const from the member `name'.
5885 Add a new member `module_name'.
5886 (grub_register_command): Return grub_command_t.
5887
5888 * commands/help.c (grub_cmd_help): Call grub_command_find to make
5889 sure that each command is loaded.
5890
5891 * genmk.rb (PModule::rule): Specify a module name without the
5892 suffix ".mod" to gencmdlist.sh.
5893
7b1f4b57 58942005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
5895
5896 * gencmdlist.sh: New file.
5897
5898 * genmk.rb (PModule::rule): Generate a rule for a command list.
5899 Clean command.lst.
5900 Generate command.lst from $(COMMANDFILES).
5901
5902 * Makefile.in (COMMON_DISTFILES): Added gencmdlist.sh.
5903 (DATA): Added $(pkgdata_DATA).
5904 (install-local): Install files in $(pkgdata_DATA).
5905
062aaf39 59062005-03-02 Yoshinori K. Okuji <okuji@enbug.org>
5907
5908 * term/i386/pc/vga.c (debug_command): Removed.
5909 (GRUB_MOD_INIT): Do not register the command "debug".
5910
5911 From Hollis Blanchard:
5912 * commands/configfile.c: New file.
5913 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
5914 commands/configfile.c.
5915 (pkgdata_MODULES): Added configfile.mod.
5916 (configfile_mod_SOURCES): New variable.
5917 (configfile_mod_CFLAGS): Likewise.
5918 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Added
5919 commands/configfile.c.
5920 (pkgdata_MODULES): Added configfile.mod.
5921 (configfile_mod_SOURCES): New variable.
5922 (configfile_mod_CFLAGS): Likewise.
5923 * util/grub-emu.c (main): Call grub_configfile_init and
5924 grub_configfile_fini.
5925 * include/grub/normal.h [GRUB_UTIL] (grub_configfile_init): New
5926 prototype.
5927 [GRUB_UTIL] (grub_configfile_fini): Likewise.
5928
cee01aa6 59292005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
5930
5931 * normal/arg.c (grub_arg_show_help): Do not show the bug report
5932 address.
5933
5934 * commands/help.c (grub_cmd_help): Do not print newlines after
5935 the last command in print_command_help.
5936
93f3a1d8 59372005-02-27 Yoshinori K. Okuji <okuji@enbug.org>
5938
5939 * commands/default.h: New file.
5940 * commands/timeout.h: Likewise.
5941 * normal/context.c: Likewise.
5942
5943 * util/misc.c: Do not include sys/times.h.
5944 Include sys/time.h and grub/machine/time.h.
5945 (grub_get_rtc): Rewritten with gettimeofday.
5946
5947 * util/grub-emu.c (main): Call grub_default_init and
5948 grub_timeout_init before grub_normal_init, and call
5949 grub_timeout_fini and grub_default_fini after grub_main.
5950
5951 * util/console.c (grub_ncurses_checkkey): Return the read
5952 character or -1.
5953
5954 * normal/menu.c (run_menu): Set MENU->TIMEOUT to -1 once it
5955 timeouts.
5956
5957 * normal/main.c (read_config_file): Push MENU. If this fails,
5958 print an error and wait for a user input.
5959 Print an error only if GRUB_ERRNO is not GRUB_ERR_NONE.
5960 If a menu is empty or an error occurs, pop MENU.
5961 (grub_normal_execute): Pop and free MENU after grub_menu_run
5962 returns.
5963
5964 * kern/loader.c (grub_loader_boot): Call grub_machine_fini.
5965
5966 * include/grub/powerpc/ieee1275/time.h [GRUB_UTIL]: Do not
5967 include time.h.
5968 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
5969 without GRUB_UTIL.
5970 * include/grub/i386/pc/time.h [GRUB_UTIL]: Do not include
5971 time.h.
5972 [GRUB_UTIL] (GRUB_TICKS_PER_SECOND): Use the same definition as
5973 without GRUB_UTIL.
5974
5975 * include/grub/normal.h (struct grub_menu_list): New struct.
5976 (grub_menu_list_t): New type.
5977 (struct grub_context): New struct.
5978 (grub_context_t): New type.
5979 (grub_register_command): Got rid of EXPORT_FUNC.
5980 (grub_unregister_command): Likewise.
5981 (grub_context_get): New prototype.
5982 (grub_context_get_current_menu): Likewise.
5983 (grub_context_push_menu): Likewise.
5984 (grub_context_pop_menu): Likewise.
5985 [GRUB_UTIL] (grub_default_init): Likewise.
5986 [GRUB_UTIL] (grub_default_fini): Likewise.
5987 [GRUB_UTIL] (grub_timeout_init): Likewise.
5988 [GRUB_UTIL] (grub_timeout_fini): Likewise.
5989
5990 * conf/i386-pc.rmk (grub_emu_SOURCES): Added commands/default.c,
5991 commands/timeout.c and normal/context.c.
5992 (pkgdata_MODULES): Added default.mod and timeout.mod.
5993 (normal_mod_SOURCES): Added normal/context.c.
5994 (default_mod_SOURCES): New variable.
5995 (default_mod_CFLAGS): Likewise.
5996 (timeout_mod_SOURCES): Likewise.
5997 (timeout_mod_CFLAGS): Likewise.
5998 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Copied from
5999 conf/i386-pc.rmk.
6000 (pkgdata_MODULES): Added default.mod and timeout.mod.
6001 (normal_mod_SOURCES): Added normal/context.c.
6002 (default_mod_SOURCES): New variable.
6003 (default_mod_CFLAGS): Likewise.
6004 (timeout_mod_SOURCES): Likewise.
6005 (timeout_mod_CFLAGS): Likewise.
6006
6007 * Makefile.in (all-local): Added $(MKFILES).
6008
4ed2e1dd 60092005-02-21 Vincent Pelletier <subdino2004@yahoo.fr>
6010
6011 * conf/i386-pc.rmk (grub_setup_SOURCES): Add `partmap/sun.c'.
6012 (grub_emu_SOURCES): Likewise.
6013 (pkgdata_MODULES): Add `sun.mod'.
6014 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
6015 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
6016 `partmap/sun.c'.
6017 (pkgdata_MODULES): Add `sun.mod'.
6018 (sun_mod_SOURCES, sun_mod_CFLAGS): New variables.
6019 * include/grub/partition.h (grub_sun_partition_map_init): New
6020 prototype.
6021 (grub_sun_partition_map_fini): Likewise.
6022 * partmap/sun.c: New file.
6023 * util/grub-emu.c (main): Initialize and de-initialize the sun
6024 partitionmap support.
6025
4d4e372e 60262005-02-19 Yoshinori K. Okuji <okuji@enbug.org>
6027
6028 This implements an Emacs-like menu entry editor.
6029
6030 * normal/menu_entry.c: New file.
6031
6032 * util/console.c (grub_ncurses_putchar): Translate some Unicode
6033 characters to ASCII.
6034 (saved_char): New variable.
6035 (grub_ncurses_checkkey): Rewritten completely.
6036 (grub_ncurses_getkey): Likewise.
6037 (grub_ncurses_init): Call raw instead of cbreak.
6038
6039 * normal/menu.c (print_entry): Do not put a space.
6040 (init_page): Renamed to ...
6041 (grub_menu_init_page): ... this. All callers changed.
6042 (edit_menu_entry): Removed.
6043 (run_menu): Call grub_menu_entry_run instead of edit_menu_entry.
6044
6045 * normal/cmdline.c (grub_cmdline_run): Call grub_setcursor.
6046
6047 * kern/misc.c (grub_vprintf): Call grub_refresh.
6048
6049 * normal/menu.c (DISP_LEFT): Renamed to ...
6050 * include/grub/term.h (GRUB_TERM_DISP_LEFT): ... this.
6051 * normal/menu.c (DISP_UP): Renamed to ...
6052 * include/grub/term.h (GRUB_TERM_DISP_UP): ... this.
6053 * normal/menu.c (DISP_RIGHT): Renamed to ...
6054 * include/grub/term.h (GRUB_TERM_DISP_RIGHT): ... this.
6055 * normal/menu.c (DISP_DOWN): Renamed to ...
6056 * include/grub/term.h (GRUB_TERM_DISP_DOWN): ... this.
6057 * normal/menu.c (DISP_HLINE): Renamed to ...
6058 * include/grub/term.h (GRUB_TERM_DISP_HLINE): ... this.
6059 * normal/menu.c (DISP_VLINE): Renamed to ...
6060 * include/grub/term.h (GRUB_TERM_DISP_VLINE): ... this.
6061 * normal/menu.c (DISP_UL): Renamed to ...
6062 * include/grub/term.h (GRUB_TERM_DISP_UL): ... this.
6063 * normal/menu.c (DISP_UR): Renamed to ...
6064 * include/grub/term.h (GRUB_TERM_DISP_UR): ... this.
6065 * normal/menu.c (DISP_LL): Renamed to ...
6066 * include/grub/term.h (GRUB_TERM_DISP_LL): ... this.
6067 * normal/menu.c (DISP_LR): Renamed to ...
6068 * include/grub/term.h (GRUB_TERM_DISP_LR): ... this.
6069 * normal/menu.c (TERM_WIDTH): Renamed to ...
6070 * include/grub/term.h (GRUB_TERM_WIDTH): ... this.
6071 * normal/menu.c (TERM_HEIGHT): Renamed to ...
6072 * include/grub/term.h (GRUB_TERM_HEIGHT): ... this.
6073 * normal/menu.c (TERM_INFO_HEIGHT): Renamed to ...
6074 * include/grub/term.h (GRUB_TERM_INFO_HEIGHT): ... this.
6075 * normal/menu.c (TERM_MARGIN): Renamed to ...
6076 * include/grub/term.h (GRUB_TERM_MARGIN): ... this.
6077 * normal/menu.c (TERM_SCROLL_WIDTH): Renamed to ...
6078 * include/grub/term.h (GRUB_TERM_SCROLL_WIDTH): ... this.
6079 * normal/menu.c (TERM_TOP_BORDER_Y): Renamed to ...
6080 * include/grub/term.h (GRUB_TERM_TOP_BORDER_Y): ... this.
6081 * normal/menu.c (TERM_LEFT_BORDER_X): Renamed to ...
6082 * include/grub/term.h (GRUB_TERM_LEFT_BORDER_X): ... this.
6083 * normal/menu.c (TERM_BORDER_WIDTH): Renamed to ...
6084 * include/grub/term.h (GRUB_TERM_BORDER_WIDTH): ... this.
6085 * normal/menu.c (TERM_MESSAGE_HEIGHT): Renamed to ...
6086 * include/grub/term.h (GRUB_TERM_MESSAGE_HEIGHT): ... this.
6087 * normal/menu.c (TERM_BORDER_HEIGHT): Renamed to ...
6088 * include/grub/term.h (GRUB_TERM_BORDER_HEIGHT): ... this.
6089 * normal/menu.c (TERM_NUM_ENTRIES): Renamed to ...
6090 * include/grub/term.h (GRUB_TERM_NUM_ENTRIES): ... this.
6091 * normal/menu.c (TERM_FIRST_ENTRY_Y): Renamed to ...
6092 * include/grub/term.h (GRUB_TERM_FIRST_ENTRY_Y): ... this.
6093 * normal/menu.c (TERM_ENTRY_WIDTH): Renamed to ...
6094 * include/grub/term.h (GRUB_TERM_ENTRY_WIDTH): ... this.
6095 * normal/menu.c (TERM_CURSOR_X): Renamed to ...
6096 * include/grub/term.h (GRUB_TERM_CURSOR_X): ... this.
6097 All callers changed.
6098
6099 * include/grub/normal.h: New prototype.
6100
6101 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
6102 normal/menu_entry.c.
6103 (normal_mod_SOURCES): Likewise.
6104 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Likewise.
6105 (normal_mod_SOURCES): Likewise.
6106
e6b92c8a 61072005-02-15 Yoshinori K. Okuji <okuji@enbug.org>
6108
6109 * include/grub/normal.h (grub_halt_init): New prototype.
6110 (grub_halt_fini): Likewise.
6111 (grub_reboot_init): Likewise.
6112 (grub_reboot_fini): Likewise.
6113
6114 * util/grub-emu.c: Include signal.h.
6115 (main_env): New global variable.
6116 (grub_machine_init): Ignore SIGINT. Otherwise grub-emu cannot
6117 catch C-c.
6118 (grub_machine_fini): New function.
6119 (main): Call grub_halt_init and grub_reboot_init before
6120 grub_main, and grub_reboot_fini and grub_halt_fini after it.
6121 Call setjmp with MAIN_ENV to go back afterwards.
6122 Call grub_machine_fini right before return.
6123
6124 * include/grub/util/misc.h: Include setjmp.h.
6125 (main_env): New prototype.
6126
6127 * include/grub/kernel.h (grub_machine_fini): New prototype.
6128 * include/grub/i386/pc/biosdisk.h (grub_biosdisk_fini): Likewise.
6129 * include/grub/i386/pc/console.h (grub_console_fini): Likewise.
6130
6131 * disk/i386/pc/biosdisk.c (grub_biosdisk_fini): New function.
6132 * kern/i386/pc/init.c (grub_machine_fini): Likewise.
6133 * term/i386/pc/console.c (grub_console_fini): Likewise.
6134
6135 * util/i386/pc/misc.c: New file.
6136
6137 * conf/i386-pc.rmk (grub_emu_SOURCES): Added
6138 util/i386/pc/misc.c, commands/i386/pc/halt.c and
6139 commands/i386/pc/reboot.c.
6140
c642636f 61412005-02-14 Guillem Jover <guillem@hadrons.org>
6142
6143 * include/grub/dl.h (grub_dl_check_header): New prototype.
6144 (grub_arch_dl_check_header): Change return type to grub_err_t,
6145 remove size parameter and export function. Update all callers.
6146 * kern/dl.c (grub_dl_check_header): New function.
6147 (grub_dl_load_core): Use `grub_dl_check_header' instead of
6148 `grub_arch_dl_check_header'. Check ELF type. Check if sections
6149 are inside the core.
6150 * kern/i386/dl.c (grub_arch_dl_check_header): Remove arch
6151 independent ELF header checks.
6152 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
6153 * loader/i386/pc/multiboot.c (grub_rescue_cmd_multiboot): Use
6154 `grub_dl_check_header' instead of explicit checks. Check for the
6155 ELF type.
6156 * loader/powerpc/ieee1275/linux.c (grub_rescue_cmd_linux): Use
6157 `grub_dl_check_header' instead of explicit checks. Remove arch
6158 specific ELF header checks.
6159
e6b92c8a 6160 * util/grub-emu.c (grub_arch_dl_check_header): Remove the
6161 argument SIZE.
6162
5eabe94b 61632005-02-13 Hollis Blanchard <hollis@penguinppc.org>
6164
6165 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add ls.mod.
6166 * include/grub/powerpc/libgcc.h (__mulsf3): New prototype.
6167
1b14a681 61682005-02-12 Hollis Blanchard <hollis@penguinppc.org>
6169
6170 * kern/partition.c (grub_partition_probe): Clear `grub_errno' and
6171 return 0 if `grub_errno' is GRUB_ERR_BAD_PART_TABLE.
6172 (part_map_iterate): Clear `grub_errno' and return 0 if
6173 `partmap->iterate' returns GRUB_ERR_BAD_PART_TABLE.
6174 * partmap/amiga.c (amiga_partition_map_iterate): Return
6175 GRUB_ERR_BAD_PART_TABLE if no partition map magic is found.
6176 * partmap/apple.c (apple_partition_map_iterate): Likewise.
6177
aca108aa 61782005-02-01 Guillem Jover <guillem@hadrons.org>
6179
6180 * loader/i386/pc/multiboot_normal.c (GRUB_MOD_INIT): Fix module
6181 help info.
6182
c9f9c556 61832005-01-31 Marco Gerards <metgerards@student.han.nl>
6184
6185 * include/grub/powerpc/ieee1275/loader.h (grub_load_linux):
6186 Removed prototype.
6187 (grub_rescue_cmd_linux): New prototype.
6188 (grub_rescue_cmd_initrd): Likewise.
6189 * powerpc/ieee1275/linux.c (grub_linux_boot): Remove struct
6190 `bi_rec'.
6191 (grub_linux_release_mem): Release the memory for the initrd.
6192 (grub_load_linux): Renamed from this...
6193 (grub_rescue_cmd_linux): ...To this. Changed all callers.
6194 Changed `entry' not to be static. Loop over memory regions to
6195 find another one when the default fails.
6196 (grub_rescue_cmd_initrd): New function.
6197 (grub_linux_init): Remove function.
6198 (grub_linux_fini): Likewise.
6199 (GRUB_MOD_INIT): Register `initrd'.
6200 (GRUB_MOD_FINI): Unregister `initrd'.
6201 * powerpc/ieee1275/linux_normal.c (grub_linux_normal_init):
6202 Function removed.
6203 (grub_linux_normal_fini): Likewise.
6204 (GRUB_MOD_INIT): Register `initrd'.
6205 (GRUB_MOD_FINI): Unregister `initrd'.
6206
990cf3aa 62072005-01-31 Marco Gerards <metgerards@student.han.nl>
6208
6209 * commands/help.c: New file.
6210 * normal/arg.c (show_help): Renamed to...
6211 (grub_arg_show_help): ... this.
6212 * commands/i386/pc/halt.c: New file.
6213 * commands/i386/pc/reboot.c: Likewise.
6214 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `commands/help.c'.
6215 (pkgdata_MODULES): Add `reboot.mod', `halt.mod' and `help.mod'.
6216 (help_mod_SOURCES, help_mod_CFLAGS, reboot_mod_SOURCES)
6217 (reboot_mod_CFLAGS, halt_mod_SOURCES, halt_mod_CFLAGS): New
6218 variables.
6219 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
6220 `commands/help.c'.
6221 (pkgdata_MODULES): Add `help.mod'.
6222 (help_mod_SOURCES, help_mod_CFLAGS): New variables.
6223 * grub/i386/pc/init.h (grub_reboot): New prototype.
6224 (grub_halt): Likewise.
6225 * include/grub/normal.h (grub_arg_show_help): New prototype.
6226 (grub_help_init): Likewise.
6227 (grub_help_fini): Likewise.
6228 * util/grub-emu.c (main): Initialize and deinitialize the help
6229 command.
6230
6231 * normal/cmdline.c (grub_cmdline_get): Doc fix.
6232
6233 * normal/command.c (grub_command_init): Fixed the description of
6234 the `set' and `unset' commands.
6235
62362005-01-31 Marco Gerards <metgerards@student.han.nl>
0f79cdc1 6237
6238 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_interpret): New
6239 function.
6240 * commands/ieee1275/halt.c: New file.
6241 * commands/ieee1275/reboot.c: Likewise.
6242 * commands/ieee1275/suspend.c (grub_cmd_suspend): Use
6243 `__attribute__ ((unused))'. Some GCS related fixed.
6244 (grub_suspend_init) [GRUB_UTIL]: Function removed.
6245 (grub_suspend_fini): Likewise.
6246 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add `reboot.mod'
6247 and `halt.mod'.
6248 (reboot_mod_SOURCES, reboot_mod_CFLAGS, halt_mod_SOURCES)
6249 (halt_mod_CFLAGS): New variables.
6250 * include/grub/powerpc/ieee1275/ieee1275.h
6251 (grub_ieee1275_interpret): New prototype.
6252
1ab09cc7 62532005-01-29 Yoshinori K. Okuji <okuji@enbug.org>
6254
6255 * include/grub/misc.h (memmove): New prototype.
6256 (memcpy): Likewise.
6257
8b8cbdb2 62582005-01-22 Hollis Blanchard <hollis@penguinppc.org>
6259
6260 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Don't initialize
6261 `devpath' to 0. Use `name' instead of `devpath' with `grub_strndup'.
6262
e3741a27 62632005-01-22 Marco Gerards <metgerards@student.han.nl>
6264
6265 * kern/misc.c (grub_strndup): Function rewritten.
6266
776bd780 62672005-01-22 Vincent Pelletier <subdino2004@yahoo.fr>
6268
6269 * normal/menu.c (TERM_WIDTH): Macro redefined.
6270 (TERM_TOP_BORDER_Y): Likewise.
6271 (draw_border): Replaced while-loop by a for-loop. Make the number
6272 of lines consistent with the number of lines displayed in
6273 print_entries. Added a margin below the rectangle.
6274 (print_entry): Make the entry fit in the rectangle.
6275 (print_entries): Display the scroll arrows next to the right
6276 border.
6277
78026bce 62782005-01-21 Marco Gerards <metgerards@student.han.nl>
6279
6280 * fs/minix.c (grub_minix_find_file): Reserve more space for
6281 `fpath' so the \0 can be stored. Use `grub_strcpy' instead of
6282 `grub_strncpy' to copy `path' into it.
6283
67bbaf0f 62842005-01-21 Marco Gerards <metgerards@student.han.nl>
6285
6286 Add the loopback device, a device via which files can be accessed
6287 as devices.
6288
6289 * conf/i386-pc.rmk (grub_emu_SOURCES): Add `disk/loopback.c'.
6290 (pkgdata_MODULES): Add loopback.mod.
6291 (loopback_mod_SOURCES): New variable.
6292 (loopback_mod_CFLAGS): Likewise.
6293 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add
6294 `disk/loopback.c'.
6295 (pkgdata_MODULES): Add loopback.mod.
6296 (loopback_mod_SOURCES): New variable.
6297 (loopback_mod_CFLAGS): Likewise.
6298 * disk/loopback.c: new file.
6299 * include/grub/normal.h (grub_loop_init): New prototype.
6300 (grub_loop_fini): New prototype.
6301 * util/grub-emu.c (main): Initialize and de-initialize loopback
6302 support.
6303 * include/grub/disk.h (grub_disk_dev_id): Add
6304 `GRUB_DISK_DEVICE_LOOPBACK_ID'.
6305
6f1c18bd 63062005-01-20 Hollis Blanchard <hollis@penguinppc.org>
6307
6308 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_enter): New
6309 function.
6310 * conf/powerpc-ieee1275.rmk (pkgdata_MODULES): Add suspend.mod.
6311 (suspend_mod_SOURCES): New variable.
6312 (suspend_mod_CFLAGS): Likewise.
6313 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_enter):
6314 New prototype.
6315 * commands/ieee1275/suspend.c: New file.
6316
b38551da 63172005-01-20 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk>
6318
6319 * include/grub/dl.h (GRUB_MOD_INIT): Changed `__attribute__
6320 ((unused))' to `__attribute__ ((used))'.
6321 (GRUB_MOD_FINI): Likewise.
6322 * kern/dl.c (grub_dl_load_file): Fix null pointer dereference.
6323 * genmk.rb (PModule): Assign space to common symbols when linking
6324 modules.
6325
777aff39 63262005-01-20 Marco Gerards <metgerards@student.han.nl>
6327
6328 * include/grub/mm.h (grub_mm_init_region): Change the type of the
6329 `unsigned' arguments to `grub_size_t'.
6330 (grub_malloc): Likewise.
6331 (grub_realloc): Likewise.
6332 (grub_memalign): Likewise.
6333 * kern/i386/dl.c (grub_arch_dl_check_header): Likewise.
6334 * kern/powerpc/dl.c (grub_arch_dl_check_header): Likewise.
6335 * util/misc.c (grub_malloc): Likewise.
6336 (grub_realloc): Likewise.
6337 * kern/mm.c (get_header_from_pointer): Change the casts to
6338 `unsigned' into a cast to `grub_size_t'.
6339
6340 * fs/fshelp.c (grub_fshelp_find_file): The `oldnode' should always
6341 point to `currnode' when `currnode' is changed.
6342
6343 * util/grub-emu.c (main): Initialize `progname'. Reported by Nico
6344 Schottelius <nico-linux@schottelius.org>.
6345
d0ff18e1 63462005-01-09 Hollis Blanchard <hollis@penguinppc.org>
6347
6348 * util/powerpc/ieee1275/grub-mkimage.c: Include <string.h>.
6349 (note_path): Remove variable.
6350 (GRUB_IEEE1275_NOTE_NAME): New macro.
6351 (GRUB_IEEE1275_NOTE_TYPE): Likewise.
6352 (grub_ieee1275_note_hdr): New structure.
6353 (grub_ieee1275_note_desc): Likewise.
6354 (grub_ieee1275_note): Likewise.
6355 (load_note): Remove `dir' argument. All callers updated. Remove
6356 `note_img' and `path'. Do not load a file from `note_path'.
6357 Initialize a struct grub_ieee1275_note and write that to `out'.
6358 Use GRUB_IEEE1275_MODULE_BASE instead of MODULE_BASE.
6359
4ca7004c 63602005-01-05 Marco Gerards <metgerards@student.han.nl>
6361
6362 * util/misc.c (grub_util_read_image): Revert last change. It
6363 called `grub_util_read_at', which seeks from the beginning of the
6364 file.
6365
0b412211 63662005-01-04 Hollis Blanchard <hollis@penguinppc.org>
6367
6368 * TODO: Add note about endianness in grub-mkimage.
6369 * boot/powerpc/ieee1275/crt0.S (note): Remove unused .note
6370 section.
6371 * conf/powerpc-ieee1275.rmk (bin_UTILITIES): Add grub-mkimage.
6372 (grub_mkimage_SOURCES): New target.
6373 * include/grub/kernel.h (grub_start_addr): Remove variable.
6374 (grub_end_addr): Likewise.
6375 (grub_total_module_size): Likewise.
6376 (grub_kernel_image_size): Likewise.
6377 (GRUB_MODULE_MAGIC): New constant.
6378 (grub_module_info): New structure.
6379 (grub_arch_modules_addr): New prototype.
6380 (grub_get_end_addr): Remove prototype.
6381 * include/grub/i386/pc/kernel.h (grub_end_addr): New prototype.
6382 * include/grub/powerpc/ieee1275/kernel.h: New file.
6383 * include/grub/util/misc.h (grub_util_get_fp_size): New
6384 prototype.
6385 (grub_util_read_at): Likewise.
6386 (grub_util_write_image_at): Likewise.
6387 * kern/main.c (grub_get_end_addr): Remove function.
6388 (grub_load_modules): Call grub_arch_modules_addr instead of using
6389 grub_end_addr. Look for a grub_module_info struct in memory. Use
6390 the grub_module_info fields instead of calling grub_get_end_addr
6391 as loop conditions. Move grub_add_unused_region code here.
6392 (grub_add_unused_region): Remove function.
6393 * kern/i386/pc/init.c: Include grub/cache.h.
6394 (grub_machine_init): Remove call to grub_get_end_addr. Remove
6395 one call to add_mem_region.
6396 (grub_arch_modules_addr): New function.
6397 * kern/powerpc/ieee1275/init.c (grub_end_addr): Remove variable.
6398 (grub_total_module_size): Likewise.
6399 Include grub/machine/kernel.h.
6400 (grub_arch_modules_addr): New function.
6401 * util/grub-emu.c (grub_end_addr): Remove variable.
6402 (grub_total_module_size): Likewise.
6403 (grub_arch_modules_addr): New function.
6404 * util/misc.c: Include unistd.h.
6405 (grub_util_get_fp_size): New function.
6406 (grub_util_read_at): Likewise.
6407 (grub_util_write_image_at): Likewise.
6408 (grub_util_read_image): Call grub_util_read_at.
6409 (grub_util_write_image): Call grub_util_write_image_at.
6410 * util/i386/pc/grub-mkimage.c (generate_image): Allocate
6411 additional memory in kernel_img for a struct grub_module_info.
6412 Fill in that grub_module_info.
6413 * util/powerpc/ieee1275/grub-mkimage.c: New file.
6414
458786f8 64152005-01-03 Hollis Blanchard <hollis@penguinppc.org>
6416
6417 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_milliseconds):
6418 New function.
6419 * include/grub/powerpc/ieee1275/ieee1275.h
6420 (grub_ieee1275_milliseconds): New prototype.
6421 * include/grub/powerpc/ieee1275/time.h (GRUB_TICKS_PER_SECOND):
6422 Change to 1000.
6423 * kern/powerpc/ieee1275/init.c (grub_get_rtc): Call
6424 grub_ieee1275_milliseconds.
6425
ac507d1b 64262005-01-03 Hollis Blanchard <hollis@penguinppc.org>
6427
6428 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_realmode): New
6429 variable.
6430 (find_options): New function.
6431 (cmain): Call find_options.
6432 * include/grub/powerpc/ieee1275/ieee1275.h
6433 (grub_ieee1275_realmode): New extern variable.
6434 * kern/powerpc/ieee1275/openfw.c (grub_claimmap): Only call
6435 grub_map if grub_ieee1275_realmode is false.
6436
6b8fd1c4 64372004-12-29 Marco Gerards <metgerards@student.han.nl>
6438
6439 * normal/cmdline.c (grub_cmdline_get): Redone logic so no empty
6440 lines are inserted and make it work like readline. Reported by
6441 Vincent Pelletier <subdino2004@yahoo.fr>.
6442
8514a1e0 64432004-12-28 Marco Gerards <metgerards@student.han.nl>
6444
6445 * boot/powerpc/ieee1275/crt0.S (_start): Don't set up the stack.
6446
6447 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCE): Remove
6448 `kern/powerpc/cache.S'.
6449
924b6140 64502004-12-27 Marco Gerards <metgerards@student.han.nl>
6451
6452 * genmk.rb: Handle the `Program' class in the main loop. Written
6453 by Johan Rydberg <jrydberg@gnu.org>.
6454 (Program): New class.
6455 (programs): New variable.
6456 * boot/powerpc/ieee1275/cmain.c: Include <grub/machine/ieee1275.h>
6457 instead of "grub/machine/ieee1275.h". Include <grub/kernel.h>
6458 instead of "grub/kernel.h". Include <grub/machine/init.h>.
6459 (help_arch): Function removed.
6460 * conf/powerpc-ieee1275.rmk (grubof_HEADERS): Add
6461 `powerpc/libgcc.h' and `loader.h'.
6462 (pkgdata_PROGRAMS): New variable.
6463 (sbin_UTILITIES): Variable removed.
6464 (grub_emu_SOURCES): Added kern/powerpc/cache.S.
6465 (grubof_SOURCES): Variable re-defined so it only includes the
6466 core functionality.
6467 (grubof_CFLAGS): Remove `-DGRUBOF'.
6468 (pkgdata_MODULES, fshelp_mod_SOURCES, fshelp_mod_CFLAGS,
6469 (fat_mod_SOURCES, fat_mod_CFLAGS, ext2_mod_SOURCES)
6470 (ext2_mod_CFLAGS, ufs_mod_SOURCES, ufs_mod_CFLAGS)
6471 (minix_mod_SOURCES, minix_mod_CFLAGS, hfs_mod_SOURCES)
6472 (hfs_mod_CFLAGS, jfs_mod_SOURCES, jfs_mod_CFLAGS)
6473 (iso9660_mod_SOURCES, iso9660_mod_CFLAGS, _linux_mod_SOURCES)
6474 (_linux_mod_CFLAGS, linux_mod_SOURCES, linux_mod_CFLAGS)
6475 (normal_mod_SOURCES, normal_mod_CFLAGS, normal_mod_ASFLAGS)
6476 (hello_mod_SOURCES, hello_mod_CFLAGS, boot_mod_SOURCES)
6477 (boot_mod_CFLAGS, terminal_mod_SOURCES, terminal_mod_CFLAGS)
6478 (ls_mod_SOURCES, ls_mod_CFLAGS, cmp_mod_SOURCES, cmp_mod_CFLAGS)
6479 (cat_mod_SOURCES, cat_mod_CFLAGS, font_mod_SOURCES)
6480 (font_mod_CFLAGS, amiga_mod_SOURCES, amiga_mod_CFLAGS)
6481 (apple_mod_SOURCES, apple_mod_CFLAGS, pc_mod_SOURCES)
6482 (pc_mod_CFLAGS): New variables.
6483 * disk/powerpc/ieee1275/ofdisk.c: Include <grub/machine/init.h>.
6484 (grub_ofdisk_iterate): Add a prototype for `dev_iterate'.
6485 * include/grub/dl.h (grub_arch_dl_sync_caches): New prototype.
6486 * include/grub/loader.h (grub_os_area_addr, grub_os_area_size):
6487 Moved from here...
6488 * include/grub/i386/pc/init.h (grub_os_area_addr)
6489 (rub_os_area_size): ... to here.
6490 * include/grub/powerpc/ieee1275/ieee1275.h
6491 (grub_ieee1275_entry_fn): Export symbol.
6492 * include/grub/powerpc/ieee1275/init.h: New file.
6493 * include/grub/powerpc/libgcc.h: Likewise.
6494 * include/grub/cache.h: Likewise.
6495 * kern/powerpc/cache.S: Likewise. Written by Hollis Blanchard
6496 <hollis@penguinppc.org>.
6497 * kern/dl.c: Include <grub/cache.h>.
6498 (grub_dl_flush_cache): New function.
6499 (grub_dl_load_core): Call `grub_dl_flush_cache' to flush the cache
6500 for this module.
6501 * kern/powerpc/ieee1275/init.c (grub_ofdisk_init)
6502 (grub_console_init): Removed prototypes.
6503 (grub_machine_init): Don't initialize the modules anymore.
6504 * kern/powerpc/ieee1275/openfw.c (grub_map): Make the function
6505 static.
6506 * include/grub/powerpc/types.h (GRUB_HOST_WORDS_LITTLEENDIAN):
6507 Macro undef removed.
6508 (GRUB_HOST_WORDS_BIGENDIAN): New macro.
6509 * kern/powerpc/dl.c (grub_arch_dl_relocate_symbols): Add
6510 relocation `R_PPC_REL32'. Return an error when the relocation is
6511 unknown.
6512 * Makefile.in (DATA): Add `$(pkgdata_PROGRAMS)'.
6513 * kern/i386/pc/init.c (grub_arch_sync_caches): New function.
6514 * util/misc.c (grub_arch_sync_caches): Likewise.
6515
e4b47e0c 65162004-12-19 Marco Gerards <metgerards@student.han.nl>
6517
6518 * conf/powerpc-ieee1275.rmk (MOSTLYCLEANFILES): Remove
6519 `symlist.c', add `grubof_symlist.c'.
6520 (symlist.c): Variable removed.
6521 (grubof_HEADERS): Variable added.
6522 (grubof_symlist.c): New target.
6523 (kernel_syms.lst): Use `grubof_HEADERS' instead of
6524 `kernel_img_HEADERS'.
6525 (grubof_SOURCES): Add `kern/powerpc/dl.c' and `grubof_symlist.c'.
6526 * kern/powerpc/dl.c: New file.
6527 * kern/powerpc/ieee1275/init.c (grub_arch_dl_check_header):
6528 Function removed.
6529 (grub_arch_dl_relocate_symbols): Likewise.
6530 (grub_register_exported_symbols): Likewise.
6531
4ceb3636 65322004-12-13 Marco Gerards <metgerards@student.han.nl>
6533
6534 * fs/ext2.c (grub_ext2_open): Don't use data after freeing it.
6535 (grub_ext2_dir): Likewise. Don't return in case of an error, jump
6536 to fail instead. Reported by Vincent Pelletier
6537 <subdino2004@yahoo.fr>.
6538
6539 * fs/fshelp.c (grub_fshelp_find_file): Don't free `oldnode' when
6540 it is not allocated. Reported by Vincent Pelletier
6541 <subdino2004@yahoo.fr>.
6542
6543 * normal/cmdline.c (grub_tab_complete): Add a blank line to the
6544 output so the output looks better.
6545
3f1578fe 65462004-12-04 Marco Gerards <metgerards@student.han.nl>
6547
6548 Modulize the partition map support and add support for the amiga
6549 partition map.
6550
6551 * commands/ls.c: Include <grub/partition.h> instead of
6552 <grub/machine/partition.h>.
6553 * kern/disk.c: Likewise.
6554 * kern/rescue.c: Likewise.
6555 * loader/i386/pc/chainloader.c: Likewise.
6556 * normal/cmdline.c: Likewise.
6557 * kern/powerpc/ieee1275/init.c: Likewise.
6558 (grub_machine_init): Call `grub_pc_partition_map_init',
6559 `grub_amiga_partition_map_init' and
6560 `grub_apple_partition_map_init'.
6561 * conf/i386-pc.rmk (kernel_img_SOURCES): Remove
6562 `disk/i386/pc/partition.c'. Add `kern/partition.c'.
6563 (kernel_img_HEADERS): Remove `machine/partition.h'. Add
6564 `partition.h' and `pc_partition.h'.
6565 (grub_setup_SOURCES): Remove
6566 `disk/i386/pc/partition.c'. Add `kern/partition.c',
6567 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
6568 (grub_emu_SOURCES): Likewise.
6569 (pkgdata_MODULES): Add `amiga.mod', `apple.mod' and `pc.mod'.
6570 (amiga_mod_SOURCES, amiga_mod_CFLAGS, apple_mod_SOURCES)
6571 (apple_mod_CFLAGS, pc_mod_SOURCES, pc_mod_CFLAGS): New variables.
6572 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
6573 `disk/powerpc/ieee1275/partition.c'. Add `kern/partition.c',
6574 `partmap/amiga.c', `partmap/apple.c' and `partmap/pc.c'.
6575 (grubof_SOURCES): Likewise.
6576 * disk/i386/pc/partition.c: File removed.
6577 * disk/powerpc/ieee1275/partition.c: Likewise.
6578 * include/grub/powerpc/ieee1275/partition.h: Likewise.
6579 * include/grub/i386/pc/partition.h: Likewise.
6580 * kern/partition.c: New file.
6581 * partmap/amiga.c: Likewise.
6582 * partmap/apple.c: Likewise.
6583 * partmap/pc.c: Likewise.
6584 * include/grub/partition.h: Likewise..
6585 * include/grub/pc_partition.h: Likewise.
6586 * util/grub-emu.c: Include <grub/partition.h> instead of
6587 <grub/machine/partition.h>.
6588 (main): Call `grub_pc_partition_map_init',
6589 `grub_amiga_partition_map_init' and
6590 `grub_apple_partition_map_init' and deinitialize afterwards.
6591 * util/i386/pc/biosdisk.c: Include `#include
6592 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
6593 `<grub/machine/partition.h>'.
6594 * util/i386/pc/grub-setup.c: Likewise.
6595 * util/i386/pc/biosdisk.c: Likewise.
6596 (grub_util_biosdisk_get_grub_dev): Only access the PC specific
6597 partition information in case of a PC partition.
6598 * util/i386/pc/grub-setup.c: Include `#include
6599 <grub/partition.h>' and `include <grub/pc_partition.h>' instead of
6600 `<grub/machine/partition.h>'.
6601 (setup): Only access the PC specific partition information in case
6602 of a PC partition.
6603
0ef4ced9 66042004-11-17 Hollis Blanchard <hollis@penguinppc.org>
6605
6606 * kern/powerpc/ieee1275/init.c (grub_setjmp): Remove function.
6607 (grub_longjmp): Likewise.
6608 * include/grub/powerpc/setjmp.h (grub_jmp_buf): Set array size to
6609 20.
6610 * normal/powerpc/setjmp.S: New file.
6611 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
6612 `normal/powerpc/setjmp.S'.
6613 (grubof_CFLAGS): Add `-DGRUBOF'.
6614 * include/grub/setjmp.h [GRUB_UTIL]: Changed condition to
6615 [GRUB_UTIL && !GRUBOF].
6616
19950e29 66172004-11-16 Marco Gerards <metgerards@student.han.nl>
6618
6619 * kern/powerpc/ieee1275/openfw.c (grub_devalias_iterate): Skip any
6620 property named `name'. Correctly handle the error returned by
6621 `grub_ieee1275_finddevice' if a device can not be opened.
6622
a2fea427 66232004-11-02 Hollis Blanchard <hollis@penguinppc.org>
6624
6625 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_readkey): Test
6626 `actual' for negativity.
6627 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Remove
6628 kern/fshelp.c.
6629
41ea0ea3 66302004-11-01 Marco Gerards <metgerards@student.han.nl>
6631
6632 * term/i386/pc/vga.c (VGA_HEIGHT): Changed to 350.
6633 (PAGE_OFFSET): New macro.
6634 (CRTC_ADDR_PORT): Likewise.
6635 (CRTC_DATA_PORT): Likewise.
6636 (START_ADDR_HIGH_REGISTER): Likewise.
6637 (START_ADDR_LOW_REGISTER): Likewise.
6638 (GRAPHICS_ADDR_PORT): Likewise.
6639 (GRAPHICS_DATA_PORT): Likewise.
6640 (READ_MAP_REGISTER): Likewise.
6641 (INPUT_STATUS1_REGISTER): Likewise.
6642 (INPUT_STATUS1_VERTR_BIT): Likewise.
6643 (page): New variable.
6644 (wait_vretrace): New function.
6645 (set_read_map): Likewise.
6646 (set_start_address): Likewise.
6647 (grub_vga_init): Use mode 0x10 instead of mode 0x12. Switch to
6648 the right page.
6649 (check_vga_mem): Take the page into account.
6650 (write_char): Likewise.
6651 (write_cursor): Likewise.
6652 (scroll_up): Likewise. Copy the page to the page that is not
6653 shown and switch between both pages.
6654 (grub_vga_putchar): Fix off by one error.
6655 (grub_vga_cls): Wait for the vertical retrace. Take the page into
6656 account.
6657
ad0bd20b 66582004-11-01 Marco Gerards <metgerards@student.han.nl>
6659
6660 Add support for iso9660 (including rockridge).
6661
6662 * conf/i386-pc.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
6663 (iso9660_mod_SOURCES): New variable.
6664 (iso9660_mod_CFLAGS): Likewise.
6665 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/iso9660.c.
6666 * include/grub/fs.h (grub_iso9660_init): New prototype.
6667 * util/grub-emu.c (main): Call `grub_iso9660_init'.
6668 * fs/iso9660.c: New file.
6669
6670 * include/grub/misc.h (grub_strncat): New prototype.
6671 * kern/misc.c (grub_strncat): New function.
6672
6673 * fs/hfs.c (grub_hfs_mount): Translate the error
6674 `GRUB_ERR_OUT_OF_RANGE' to `GRUB_ERR_BAD_FS'.
6675 * fs/jfs.c (grub_jfs_mount): Likewise.
6676 * fs/ufs.c (grub_ufs_mount): Likewise.
6677
a5477a59 66782004-10-28 Hollis Blanchard <hollis@penguinppc.org>
6679
6680 * boot/powerpc/ieee1275/cmain.c (cmain): Remove asm statements
6681 which initialized BAT registers.
6682 * boot/powerpc/ieee1275/ieee1275.c (IEEE1275_CALL_ENTRY_FN,
6683 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
6684 Move from here...
6685 * include/grub/powerpc/ieee1275/ieee1275.h (IEEE1275_CALL_ENTRY_FN,
6686 grub_ieee1275_common_hdr, INIT_IEEE1275_COMMON):
6687 ... to here.
6688 * kern/powerpc/ieee1275/openfw.c (grub_map): New function.
6689 (grub_mapclaim): Likewise.
6690 * loader/powerpc/ieee1275/linux.c (grub_load_linux): Use
6691 grub_mapclaim instead of grub_ieee1275_claim. Assign linux_addr by
6692 hand.
6693
9304c1f8 66942004-10-19 Hollis Blanchard <hollis@penguinppc.org>
6695
6696 * conf/powerpc-ieee1275.rmk (COMMON_ASFLAGS): Remove -fno-builtin.
6697 (COMMON_CFLAGS): Remove -fno-builtin and -D__ASSEMBLY__. Add
6698 -ffreestanding and -msoft-float.
6699
86f4ae25 67002004-10-15 Hollis Blanchard <hollis@penguinppc.org>
6701
6702 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_open): Do not
6703 append ":0" to devpath if the GRUB_IEEE1275_NO_PARTITION_0 flag is
6704 set in grub_ieee1275_flags.
6705
38912228 67062004-10-14 Hollis Blanchard <hollis@penguinppc.org>
6707
6708 * include/grub/powerpc/ieee1275/ieee1275.h (abort): Add function
6709 prototype.
6710 * kern/powerpc/ieee1275/init.c (grub_machine_init): Call
6711 grub_console_init first.
6712 Change the memory range used for grub_ieee1275_claim and
6713 grub_mm_init_region.
6714 Print an error message if the claim fails.
6715 Include <grub/misc.h>.
6716
d1923dc8 67172004-10-13 Hollis Blanchard <hollis@penguinppc.org>
6718
6719 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_iterate):
6720 Call grub_children_iterate for device nodes of type `scsi',
6721 `ide', or `ata'.
6722 (grub_ofdisk_open): Remove manual device alias resolution.
6723 Fix memory leak when device cannot be opened.
6724 * include/grub/powerpc/ieee1275/ieee1275.h
6725 (grub_children_iterate): New prototype.
6726 * kern/powerpc/ieee1275/openfw.c (grub_children_iterate):
6727 New function.
6728 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
6729 Return -1 if args.size was -1.
6730
4512e4f3 67312004-10-11 Hollis Blanchard <hollis@penguinppc.org>
6732
6733 * boot/powerpc/ieee1275/cmain.c (grub_ieee1275_flags): New global.
6734 (cmain): Accept 3 parameters. Test for 0xdeadbeef, indicating Old
6735 World Macintosh. If Old Wold, set flag in grub_ieee1275_flags; claim
6736 Open Firmware's memory for it; claim memory from _start to _end.
6737 * boot/powerpc/ieee1275/crt0.S (__bss_start): New extern.
6738 (_end): New extern.
6739 (_start): Zero BSS from __bss_start to _end.
6740 * include/grub/powerpc/ieee1275/ieee1275.h (grub_ieee1275_flags):
6741 New extern.
6742 (GRUB_IEEE1275_NO_PARTITION_0): New #define.
6743
4d61feb0 67442004-10-11 Hollis Blanchard <hollis@penguinppc.org>
6745
ad0bd20b 6746 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): Return
6747 -1 if args.base was -1.
4d61feb0 6748
026fa2f9 67492004-10-08 Hollis Blanchard <hollis@penguinppc.org>
6750
6751 * term/powerpc/ieee1275/ieee1275.c (grub_ofconsole_cls): Use an ANSI
6752 escape sequence instead of a literal ^L. Also call
6753 grub_ofconsole_gotoxy.
6754
9f2220ef 67552004-10-03 Hollis Blanchard <hollis@penguinppc.org>
6756
6757 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_claim): change
6758 void * arguments to grub_addr_t. All callers updated. Also make
6759 the `result' argument optional.
6760 (grub_ieee1275_release): change void * arguments to grub_addr_t.
6761 All callers updated.
6762
8a572cd7 67632004-09-22 Hollis Blanchard <hollis@penguinppc.org>
6764
6765 * commands/ls.c (grub_ls_list_files): Use the string following the
6766 initial ')', if present, as the filesystem path.
6767 * kern/rescue.c (grub_rescue_cmd_ls): Likewise.
6768
6769 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): List crt0.S first.
6770
18aa81f2 67712004-09-18 Yoshinori K. Okuji <okuji@enbug.org>
6772
6773 Make the source code of the menu interface more readable.
6774
6775 * normal/menu.c: Include grub/mm.h.
6776 (TERM_WIDTH): New macro.
6777 (TERM_HEIGHT): Likewise.
6778 (TERM_INFO_HEIGHT): Likewise.
6779 (TERM_MARGIN): Likewise.
6780 (TERM_SCROLL_WIDTH): Likewise.
6781 (TERM_TOP_BORDER_Y): Likewise.
6782 (TERM_LEFT_BORDER_X): Likewise.
6783 (TERM_BORDER_WIDTH): Likewise.
6784 (TERM_MESSAGE_HEIGHT): Likewise.
6785 (TERM_BORDER_HEIGHT): Likewise.
6786 (TERM_NUM_ENTRIES): Likewise.
6787 (TERM_FIRST_ENTRY_Y): Likewise.
6788 (TERM_ENTRY_WIDTH): Likewise.
6789 (TERM_CURSOR_X): Likewise.
6790 (draw_border): Use macros instead of magic numbers.
6791 (print_entry): Likewise.
6792 (print_entries): Likewise.
6793 (run_menu): Likewise. Also, handle the key 'e'.
6794 (run_menu_entry): Ignore empty command lines.
6795 (print_message): Added a new argument EDIT. If EDIT is true,
6796 print a different message.
6797 (init_page): Likewise.
6798 (edit_menu_entry): New function. Not implemented yet.
6799
b47efe30 68002004-09-17 Marco Gerards <metgerards@student.han.nl>
6801
6802 Add `linux.mod' and `multiboot.mod' so linux and multiboot kernels
6803 can be loaded from normal mode.
6804
6805 * conf/i386-pc.rmk (pkgdata_MODULES): Add `linux.mod' and
6806 `multiboot.mod'.
6807 (linux_mod_SOURCES, linux_mod_CFLAGS, multiboot_mod_SOURCES)
6808 (multiboot_mod_CFLAGS): New variables.
6809 * loader/i386/pc/linux_normal.c: New file.
6810 * loader/i386/pc/multiboot_normal.c: Likewise.
6811
6812 * loader/i386/pc/linux.c (grub_rescue_cmd_initrd): Don't use the
6813 attribute `unused'.
6814
6815 * fs/ext2.c (grub_ext2_iterate_dir): Fix typos in inode type. Use
6816 `fdiro' to read the mode information from instead of `diro'.
6817
6818 * fs/fshelp.c (grub_fshelp_find_file): Set type to foundtype after
6819 looking up a symlink.
6820
6821 * include/grub/normal.h (GRUB_COMMAND_FLAG_NO_ARG_PARSE): New
6822 macro.
6823 * normal/command.c (grub_command_execute): Don't parse the
6824 arguments when `GRUB_COMMAND_FLAG_NO_ARG_PARSE' is set in the
6825 flags of the command.
6826
6827 * normal/menu.c (grub_menu_run): Fix typo.
6828
da75ac71 68292004-09-14 Hollis Blanchard <hollis@penguinppc.org>
6830
6831 * kern/powerpc/ieee1275/init.c (abort): Trap into Open Firmware.
6832
6833 * term/powerpc/ieee1275/ofconsole.c (grub_ofconsole_gotoxy): Use
6834 `y + 1' instead of `y - 1'.
6835
6836 * conf/powerpc-ieee1275.rmk (grubof_LDFLAGS): Add `-N' and `-S'.
6837
062b24c2 68382004-09-14 Yoshinori K. Okuji <okuji@enbug.org>
6839
6840 From Hollis Blanchard <hollis@penguinppc.org>:
6841 * kern/misc.c (memmove): New alias for grub_memmove.
6842 (memcmp): New alias for grub_memcmp.
6843 (memset): New alias for grub_memset.
6844 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_get_property):
6845 Change "int handle" to "grub_ieee1275_phandle_t handle".
6846 * include/grub/powerpc/ieee1275/ieee1275.h
6847 (grub_ieee1275_get_property): Likewise.
6848
8ddad845 68492004-09-12 Tomas Ebenlendr <ebik@ucw.cz>
6850
6851 Added normal mode command `chainloader' as module chain.mod, which
6852 depends on normal.mod and _chain.mod.
6853
6854 * conf/i386-pc.rmk (pkgdata_MODULES): Add `chain.mod'.
6855 (chain_mod_SOURCES, chain_mod_CFLAGS): Variables added.
6856 * include/grub/i386/pc/loader.h (grub_rescue_cmd_chainloader):
6857 Deleted prototype.
6858 * loader/i386/pc/chainloader.c (grub_rescue_cmd_chainloader): All
6859 but arguments parsing moved to ...
6860 (grub_chainloader_cmd): ... here. New function.
6861 * include/grub/i386/pc/chainloader.h: New file.
6862 * loader/i386/pc/chainloader_normal.c: Likewise.
6863
2c1f4ce3 68642004-09-11 Marco Gerards <metgerards@student.han.nl>
6865
6866 * conf/i386-pc.rmk (kernel_img_SOURCES): Added kern/fshelp.c.
6867 (grub_mkimage_LDFLAGS): Likewise.
6868 (grub_emu_SOURCES): Likewise.
6869 (kernel_img_HEADERS): Added fshelp.h.
6870 * fs/ext2.c: Include <grub/fshelp.h>.
6871 (FILETYPE_REG): New macro.
6872 (FILETYPE_INO_REG): Likewise.
6873 (grub_ext_sblock): Renamed to `grub_ext2_sblock'.
6874 Changed all users.
6875 (ext2_block_group): Renamed to `grub_ext2_block_group'. Changed
6876 all users.
6877 (grub_fshelp_node): New struct.
6878 (grub_ext2_data): Added member `diropen'. Changed member `inode'
6879 to a pointer.
6880 (grub_ext2_get_file_block): Removed function.
6881 (grub_ext2_read_block): New function.
6882 (grub_ext2_read_file): Replaced parameter `data' by `node'.
6883 This function was written.
6884 (grub_ext2_mount): Read the root inode. Create a diropen struct.
6885 (grub_ext2_find_file): Removed function.
6886 (grub_ext2_read_symlink): New function.
6887 (grub_ext2_iterate_dir): Likewise.
6888 (grub_ext2_open): Rewritten.
6889 (grub_ext2_dir): Rewritten.
6890 * include/grub/fshelp.h: New file.
6891 * fs/fshelp.c: Likewise.
6892
3c52136a 68932004-09-10 Yoshinori K. Okuji <okuji@enbug.org>
6894
6895 * normal/menu.c: Include grub/loader.h and grub/machine/time.h.
6896 (print_message): Add a missing newline.
6897 (run_menu): Added timeout support.
6898 (run_menu_entry): New local function.
6899 (grub_menu_run): Added support for booting.
6900
6901 * kern/loader.c (grub_loader_is_loaded): New function.
6902
6903 * include/grub/powerpc/ieee1275/time.h: Include grub/symbol.h.
6904 (grub_get_rtc): Exported.
6905
6906 * include/grub/i386/pc/time.h: Include grub/symbol.h.
6907 (grub_get_rtc): Exported.
6908
6909 * include/grub/normal.h (struct grub_command_list): Remove
6910 constant from the member `command'.
6911
6912 * include/grub/loader.h (grub_loader_is_loaded): Declared.
6913
6914 * include/grub/err.h (GRUB_ERR_INVALID_COMMAND): New constant.
6915
6916 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/time.h.
6917
aa033560 69182004-08-28 Marco Gerards <metgerards@student.han.nl>
6919
6920 Add support for the JFS filesystem.
6921
6922 * fs/jfs.c: New file.
6923 * include/grub/fs.h (grub_jfs_init): New prototype.
6924 (grub_jfs_fini): New prototype.
6925 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/jfs.c.
6926 (grub_emu_SOURCES): Likewise.
6927 (pkgdata_MODULES): Add jfs.mod.
6928 (jfs_mod_SOURCES): New variable.
6929 (jfs_mod_CFLAGS): Likewise.
6930 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs.jfs.c.
6931 (grubof_SOURCES): Likewise.
6932 * util/grub-emu.c (main): Initialize and deinitialize JFS support.
6933
6934 * fs/fat.c (grub_fat_find_dir): Convert the filename little
6935 endian to the host endian.
6936 (grub_fat_utf16_to_utf8): Move function from there...
6937 * kern/misc.c (grub_utf16_to_utf8): ...to here. Do not convert
6938 the endianess of the source string anymore.
6939 * include/grub/misc.h (grub_utf16_to_utf8): New prototype.
6940
94bc45af 69412004-08-24 Marco Gerards <metgerards@student.han.nl>
6942
6943 * commands/boot.c (grub_boot_init) [GRUB_UTIL]: Make conditional.
6944 (grub_boot_fini) [GRUB_UTIL]: Likewise.
6945 (GRUB_MOD_INIT) [!GRUB_UTIL]: Likewise.
6946 (GRUB_MOD_FINI) [!GRUB_UTIL]: Likewise.
6947
6948 * fs/hfs.c (grub_hfs_find_node): Add a prototype for `node_found'.
6949 (grub_hfs_iterate_dir): Make the function static. Add prototypes
6950 for `node_found' and `it_dir'.
6951 (grub_hfs_dir): Add prototype for `dir_hook'.
6952
6953 * fs/minix.c (grub_minix_get_file_block): Add prototype for
6954 `grub_get_indir'. Rename `indir' in two blocks to `indir16'
6955 and `indir32' to silence a gcc warning.
6956
6957 * include/grub/fs.h (grub_hfs_init): New prototype.
6958 (grub_hfs_fini): Likewise.
6959
6960
97543f08 69612004-08-21 Yoshinori K. Okuji <okuji@enbug.org>
6962
6963 Each disk device has its own id now. This is useful to make use
6964 of multiple disk devices.
6965
6966 * include/grub/disk.h (grub_disk_dev_id): New enum.
6967 (GRUB_DISK_DEVICE_BIOSDISK_ID): New constant.
6968 (GRUB_DISK_DEVICE_OFDISK_ID): Likewise.
6969
6970 * disk/i386/pc/biosdisk.c (grub_biosdisk_dev): Specify
6971 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
6972
6973 * disk/powerpc/ieee1275/ofdisk.c (grub_ofdisk_dev): Specify
6974 GRUB_DISK_DEVICE_OFDISK_ID as an id.
6975
6976 * util/i386/pc/biosdisk.c (grub_util_biosdisk_dev): Specify
6977 GRUB_DISK_DEVICE_BIOSDISK_ID as an id.
6978
6979 * include/grub/disk.h (struct grub_disk_dev): Added a new member
6980 "id" which is used by the cache manager.
6981
6982 * normal/main.c (grub_normal_init_page): Use "GNU GRUB" instead
6983 of just "GRUB".
6984
64372eb4 69852004-08-18 Marco Gerards <metgerards@student.han.nl>
6986
6987 * fs/hfs.c: New file.
6988 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/hfs.c.
6989 (grub_emu_SOURCES): Likewise.
6990 (pkgdata_MODULES): Add hfs.mod.
6991 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/hfs.c.
6992 (grubof_SOURCES): Likewise.
6993 * util/grub-emu.c (main): Initialize and deinitialize HFS support.
6994
6995 * include/grub/misc.h (grub_strncasecmp): Add prototype.
6996 * kern/misc.c (grub_strncasecmp): Add function.
6997
cc61b58f 69982004-08-14 Marco Gerards <metgerards@student.han.nl>
6999
7000 * include/grub/arg.h (GRUB_ARG_OPTION_OPTIONAL): Surround macro
7001 with parentheses.
7002
7003 * fs/ext2.c (FILETYPE_UNKNOWN): New macro.
7004 (grub_ext2_dir): In case the directory entry type is unknown, read
7005 it from the inode.
7006
0ef123f6 70072004-08-02 Peter Bruin <pjbruin@dds.nl>
7008
7009 * loader/powerpc/ieee1275/linux.c (grub_linux_init): Pass
7010 grub_load_linux instead of grub_rescue_cmd_linux as second
7011 argument of grub_rescue_register_command.
7012
7013 * Makefile.in (RMKFILES): Add conf/powerpc-ieee1275.rmk.
7014
a447c5df 70152004-07-27 Marco Gerards <metgerards@student.han.nl>
7016
7017 * boot/powerpc/ieee1275/ieee1275.c (grub_ieee1275_release): New
7018 function.
7019 * commands/boot.c: Remove the check for `GRUB_UTIL'.
7020 * conf/powerpc-ieee1275.rmk (grubof_SOURCES): Add
7021 `loader/powerpc/ieee1275/linux.c',
7022 `loader/powerpc/ieee1275/linux_normal.c' and `commands/boot.c'.
7023 * include/grub/powerpc/ieee1275/ieee1275.h
7024 (grub_ieee1275_release): New prototype.
7025 * include/grub/powerpc/ieee1275/loader.h: Rewritten.
7026 * kern/powerpc/ieee1275/init.c (grub_machine_init): Initialize
7027 normal, boot, linux and linux_normal.
7028 * loader/powerpc/ieee1275/linux.c: New file.
7029 * loader/powerpc/ieee1275/linux_normal.c: Likewise.
7030
5a9e3546 70312004-07-12 Marco Gerards <metgerards@student.han.nl>
7032
7033 * normal/arg.c (grub_arg_parse): Correct error handling after
7034 reallocating the argumentlist (check if `argl' is not null instead
7035 of checking if `args' is not null).
7036 * kern/mm.c (grub_realloc): Return the same pointer when using the
7037 same region, instead of returning the header address.
7038
e15199cb 70392004-07-11 Marco Gerards <metgerards@student.han.nl>
7040
7041 * disk/powerpc/ieee1275/partition.c (grub_partition_iterate): Skip
7042 one block instead of two when looking for the initial partition.
7043 (grub_partition_probe): Initialize the local variable `p' with 0.
7044 Use base 10 for the grub_strtoul call.
7045 * kern/misc.c (grub_strncpy): Fix off by one bug. Eliminated the
7046 need for one local variable.
7047 (grub_strtoul): Don't add the new value to `num', instead of that
7048 just assign it.
7049
020616c2 70502004-07-11 Marco Gerards <metgerards@student.han.nl>
7051
7052 * conf/i386-pc.rmk (pkgdata_IMAGE): Add pxeboot.img.
7053 (pxeboot_img_SOURCES): New variable.
7054 (pxeboot_img_ASFLAGS): Likewise.
7055 (pxeboot_img_LDFLAGS): Likewise.
7056 * boot/i386/pc/pxeboot.S: New file. Based on pxeloader.S from
7057 GRUB Legacy and boot.S. Adopted for GRUB 2 by lode leroy
7058 <lode_leroy@hotmail.com>.
7059
6c51eb64 70602004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
7061
7062 * kern/rescue.c (grub_enter_rescue_mode): Don't continue when
7063 there was no input.
7064
cfb12aff 70652004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
7066
7067 * normal/cmdline.c (grub_set_history): Fix off by one bug. Fixed
7068 the history buffer logic.
7069
6eabba74 70702004-06-27 Tomas Ebenlendr <ebik@ucw.cz>
7071
7072 * fs/ext2.c (FILETYPE_INO_MASK, FILETYPE_INO_DIRECTORY)
7073 (FILETYPE_INO_SYMLINK): New macros.
7074 (grub_ext2_find_file): Check if the node is a directory using the
7075 inode stat information instead of using the filetype in the
7076 dirent. Exclude the first character of an absolute symlink.
7077 (grub_ext2_dir): Mask out the filetype part of the mode member of
7078 the inode.
7079
66e19ef8 70802004-05-24 Marco Gerards <metgerards@student.han.nl>
7081
7082 Add support for UFS version 1 and 2. Add support for the minix
7083 filesystem version 1 and 2, both the variants with 14 and 30 long
7084 filenames.
7085
7086 * conf/i386-pc.rmk (grub_setup_SOURCES): Add fs/ufs.c and
7087 fs/minix.c.
7088 (grub_emu_SOURCES): Likewise.
7089 (pkgdata_MODULES): Add ufs.mod and minix.mod.
7090 (ufs_mod_SOURCES): New variable.
7091 (ufs_mod_CFLAGS): Likewise.
7092 (minix_mod_SOURCES): Likewise.
7093 (minix_mod_CFLAGS): Likewise.
7094 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add fs/ufs.c and
7095 fs/minix.c.
7096 (grubof_SOURCES): Likewise.
7097 * fs/ufs.c: New file.
7098 * fs/minix.c: New file.
7099 * include/grub/fs.h (grub_ufs_init): New prototype.
7100 (grub_ufs_fini): Likewise.
7101 (grub_minix_init): Likewise.
7102 (grub_minix_fini): Likewise.
7103 * util/grub-emu.c (main): Initialize and deinitialize UFS and
7104 minix fs.
7105
cc2e748a 71062004-04-30 Jeroen Dekkers <jeroen@dekkers.cx>
7107
7108 * conf/powerpc-ieee1275.rmk (grub_emu_SOURCES): Add normal/arg.c,
7109 commands/ls.c, commands/terminal.c, commands/boot.c,
7110 commands/cmp.c and commands/cat.c.
7111 (grubof_LDFLAGS): Add -nostdlib -static-libgcc -lgcc.
7112
7113 * kern/powerpc/ieee1275/init.c: Include "grub/env.h" instead of
7114 "env.h"
7115
4b13b216 71162004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
7117
7118 All symbols prefixed with PUPA_ and pupa_ are renamed to GRUB_
7119 and grub_, respectively. Because the conversion is trivial and
7120 mechanical, I omit the details here. Please refer to the CVS
7121 if you need more information.
7122
6a142551 71232004-04-04 Yoshinori K. Okuji <okuji@enbug.org>
7124
7125 * include/pupa: Renamed to ...
7126 * include/grub: ... this.
7127 * util/i386/pc/pupa-mkimage.c: Renamed to ...
7128 * util/i386/pc/grub-mkimage.c: ... this.
7129 * util/i386/pc/pupa-setup.c: Renamed to ...
7130 * util/i386/pc/grub-setup.c: ... this.
7131 * util/pupa-emu.c: Renamed to ...
7132 * util/grub-emu.c: ... this.
7133
e56cdf21 71342004-03-29 Marco Gerards <metgerards@student.han.nl>
7135
7136 Add support for the newworld apple macintosh (PPC). This has been
7137 tested on the powerbook 2000 only. It only adds support for
7138 generic ieee1275 functions, console and disk support. This should
7139 be easy to port to other architectures with support for Open
7140 Firmware.
7141
7142 * configure.ac: Accept the powerpc as host_cpu. In the case of
7143 the powerpc cpu set the host_vendor to ieee1275. Make sure the i386
7144 specific tests are only executed while building for the i386.
7145 Inverse test for crosscompile.
7146 * genmk.rb (Utility): Allow assembler files.
7147 * normal/cmdline.c (pupa_tab_complete): Reset pupa_errno.
7148 * conf/powerpc-ieee1275.rmk: New file.
7149 * disk/powerpc/ieee1275/ofdisk.c: Likewise.
7150 * disk/powerpc/ieee1275/partition.c: Likewise.
7151 * include/pupa/powerpc/ieee1275/biosdisk.h: Likewise.
7152 * include/pupa/powerpc/ieee1275/console.h: Likewise.
7153 * include/pupa/powerpc/ieee1275/partition.h: Likewise.
7154 * include/pupa/powerpc/ieee1275/time.h: Likewise.
7155 * include/pupa/powerpc/ieee1275/util/biosdisk.h: Likewise.
7156 * include/pupa/powerpc/ieee1275/multiboot.h: Likewise.
7157 * include/pupa/powerpc/ieee1275/loader.h
7158 * include/pupa/powerpc/setjmp.h: Likewise.
7159 * include/pupa/powerpc/types.h: Likewise.
7160 * kern/powerpc/ieee1275/init.c: Likewise.
7161 * kern/powerpc/ieee1275/openfw.c: Likewise.
7162 * term/powerpc/ieee1275/ofconsole.c: Likewise.
7163
7164 These files were written by Johan Rydberg
7165 (jrydberg@night.trouble.net) and I only modified them slightly.
7166
7167 * boot/powerpc/ieee1275/cmain.c: New file.
7168 * boot/powerpc/ieee1275/crt0.S: Likewise.
7169 * boot/powerpc/ieee1275/ieee1275.c: Likewise.
7170 * include/pupa/powerpc/ieee1275/ieee1275.h: Likewise.
7171
8c8cc205 71722004-03-14 Jeroen Dekkers <jeroen@dekkers.cx>
7173
7174 * Makefile.in: Update copyright.
7175 * genmodsrc.sh: Likewise.
7176 * gensymlist.sh: Likewise.
7177 * term/i386/pc/vga.c: Indent correctly.
7178
7179 * util/i386/pc/pupa-mkimage.c (usage): Use PACKAGE_BUGREPORT as
7180 bugreporting address.
7181 * util/i386/pc/pupa-setup.c (usage): Likewise,
7182 (main): Call pupa_ext2_init and pupa_ext2_fini.
7183
7184 * fs/fat.c (log2): Renamed to ...
7185 (fat_log2): ... this.
7186 All callers changed.
7187 * kern/misc.c (memcpy): Alias to pupa_memmove.
7188 * loader/i386/pc/multiboot.c (pupa_rescue_cmd_multiboot): Fix
7189 lvalue cast.
7190 * util/console.c (pupa_ncurses_fini): Return 0.
7191
7192 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open)[__linux__]:
7193 Move fail label here.
7194 [__GNU__]: Don't warn when using stat.
7195 (open_device)[!__linux__]: Check if FD < 0 instead of !FD.
7196 (pupa_util_biosdisk_get_pupa_dev)[__GNU__]: Change type of N to
7197 long int. Use strtol instead of strtoul.
7198
db1771cf 71992004-03-14 Marco Gerards <metgerards@student.han.nl>
7200
7201 * commands/boot.c: New file.
7202 * commands/cat.c: Likewise.
7203 * commands/cmp.c: Likewise.
7204 * commands/ls.c: Likewise.
7205 * commands/terminal.c: Likewise.
7206 * normal/command.c: Include <pupa/env.h> and <pupa/dl.h>.
7207 (pupa_register_command): Changed interface to match the new
7208 argument parser.
7209 (pupa_command_execute): Changed (almost rewritten) so it uses
7210 pupa_split_command. Added support for setting variables using the
7211 syntax `foo=bar'.
7212 (rescue_command): Changed to work with the new argument parser.
7213 (terminal_command): Moved from here to commands/terminal.c.
7214 (set_command): New function.
7215 (unset_command): New function.
7216 (insmod_command): New function.
7217 (rmmod_command): New function.
7218 (lsmod_command): New function.
7219 (pupa_command_init): Don't initialize the command terminal
7220 anymore. Initialize the commands set, unset, insmod, rmmod and
7221 lsmod.
7222 * conf/i386-pc.rmk (kernel_img_SOURCES): Add kern/env.c.
7223 (kernel_img_HEADERS): Add arg.h and env.h.
7224 (pupa_mkimage_LDFLAGS): Add kern/env.c.
7225 (pupa_emu_SOURCES): Add kern/env.c, commands/ls.c,
7226 commands/terminal.c commands/boot.c commands/cmp.c commands/cat.c,
7227 normal/arg.c.
7228 (pkgdata_MODULES): Add ls.mod, boot.mod, cmp.mod, cat.mod and
7229 terminal.mod.
7230 (normal_mod_SOURCES): Add normal/arg.c and normal/arg.c.
7231 (boot_mod_SOURCES): New variable.
7232 (terminal_mod_SOURCES): Likewise.
7233 (ls_mod_SOURCES): Likewise.
7234 (cmp_mod_SOURCES): Likewise.
7235 (cat_mod_SOURCES): Likewise.
7236
7237 * normal/arg.c: New file.
7238 * kern/env.c: Likewise.
7239 * include/pupa/arg.h: Likewise.
7240 * include/pupa/env.h: Likewise.
7241 * font/manager.c (font_command): Changed to match argument parsing
7242 interface changes.
7243 (PUPA_MOD_INIT): Likewise.
7244 * hello/hello.c (pupa_cmd_hello): Likewise.
7245 (PUPA_MOD_INIT): Likewise.
7246 * include/pupa/disk.h: Include <pupa/device.h>.
7247 (pupa_print_partinfo): New prototype.
7248 * include/pupa/dl.h (pupa_dl_set_prefix): Prototype removed.
7249 (pupa_dl_get_prefix): Likewise.
7250 * include/pupa/misc.h: Include <pupa/err.h>.
7251 (pupa_isgraph): New prototype.
7252 (pupa_isdigit): Likewise.
7253 (pupa_split_cmdline): Likewise.
7254 * include/pupa/normal.h: Include <pupa/arg.h>.
7255 (pupa_command): Changed the prototype of the member `func' to
7256 match the argument parsing interface. Added member `options'.
7257 (pupa_register_command): Updated to match function.
7258 (pupa_arg_parse): New prototype.
7259 (pupa_hello_init) [PUPA_UTIL]: New prototype.
7260 (pupa_hello_fini) [PUPA_UTIL]: Likewise.
7261 (pupa_ls_init) [PUPA_UTIL]: Likewise.
7262 (pupa_ls_fini) [PUPA_UTIL]: Likewise.
7263 (pupa_cat_init) [PUPA_UTIL]: Likewise.
7264 (pupa_cat_fini) [PUPA_UTIL]: Likewise.
7265 (pupa_boot_init) [PUPA_UTIL]: Likewise.
7266 (pupa_boot_fini) [PUPA_UTIL]: Likewise.
7267 (pupa_cmp_init) [PUPA_UTIL]: Likewise.
7268 (pupa_cmp_fini) [PUPA_UTIL]: Likewise.
7269 (pupa_terminal_init) [PUPA_UTIL]: Likewise.
7270 (pupa_terminal_fini) [PUPA_UTIL]: Likewise.
7271 * kern/disk.c: Include <pupa/file.h>.
7272 (pupa_print_partinfo): New function.
7273 * kern/dl.c: Include <pupa/env.h>.
7274 (pupa_dl_dir): Variable removed.
7275 (pupa_dl_load): Use the environment variable `prefix' instead of
7276 the variable pupa_dl_dir.
7277 (pupa_dl_set_prefix): Function removed.
7278 (pupa_dl_get_prefix): Likewise.
7279 * kern/i386/pc/init.c: Include <pupa/env.h>.
7280 (pupa_machine_init): Use the environment variable `prefix' instead of
7281 using pupa_dl_set_prefix to set the prefix.
7282 * kern/main.c: Include <pupa/env.h>.
7283 (pupa_set_root_dev): Use the environment variable `prefix' instead of
7284 using pupa_dl_get_prefix to get the prefix.
7285 * kern/misc.c: Include <pupa/env.h>.
7286 (pupa_isdigit): New function.
7287 (pupa_isgraph): Likewise.
7288 (pupa_ftoa): Likewise.
7289 (pupa_vsprintf): Added support for printing values of the type
7290 `double'. Make it possible to format variable output when using
7291 formatting like `%1.2%f'.
7292 (pupa_split_cmdline): New function.
7293 * kern/rescue.c: Include <pupa/env.h>.
7294 (next_word): Removed function.
7295 (pupa_rescue_cmd_prefix): Likewise.
7296 (pupa_rescue_cmd_set): New function.
7297 (pupa_rescue_cmd_unset): New function.
7298 (pupa_enter_rescue_mode): Use the `pupa_split_cmdline' function to
7299 split the command line instead of splitting it here. Added
7300 support for setting variables using the syntax `foo=bar'. Don't
7301 initialize the prefix command anymore. Initialized the set and
7302 unset commands.
7303 * normal/cmdline.c: Include <pupa/env.h>.
7304 (pupa_tab_complete): Added prototypes for print_simple_completion,
7305 print_partition_completion, add_completion, iterate_commands,
7306 iterate_dev, iterate_part and iterate_dir. Moved code to print
7307 partition information from here to kern/disk.c.
7308 (pupa_cmdline_run): Don't check if the funtion exists anymore.
7309 * normal/main.c: Include <pupa/env.h>.
7310 (pupa_rescue_cmd_normal): Use the environment variable `prefix'
7311 instead of using pupa_dl_get_prefix to get the prefix.
7312 * term/i386/pc/vga.c: Include <pupa/arg.h>.
7313 (check_vga_mem): Cast pointers to `void *' to silence a gcc
7314 warning.
7315 (pupa_vga_putchar) [! DEBUG_VGA]: Removed for this case.
7316 (pupa_vga_setcolor): Declare unused variables with `__attribute__
7317 ((unused))' to silence a gcc warning.
7318 (pupa_vga_setcolor): Likewise.
7319 (debug_command): Changed to match argument parsing
7320 interface changes.
7321 * util/pupa-emu.c: Include <pupa/env.h>.
7322 (options): Added 0's for unused fields to silence a gcc warning.
7323 (argp): Likewise.
7324 (main): Use the environment variable `prefix' instead of using
7325 pupa_dl_set_prefix to set the prefix. Initialize the commands ls,
7326 boot, cmp, cat and terminal. Finish the commands boot, cmp, cat
7327 and terminal.
7328
7329 * util/i386/pc/getroot.c: Include <pupa/i386/pc/util/biosdisk.h>.
7330 * util/misc.c: Include <malloc.h>.
7331 (pupa_malloc): Rewritten so errors are correctly reported.
7332 (pupa_realloc): Likewise.
7333 (pupa_memalign): Likewise.
7334 (pupa_mm_init_region): Declare unused variables with
7335 `__attribute__ ((unused))' to silence a gcc warning.
7336 * normal/i386/setjmp.S: Remove tab at the end of the file to
7337 silence a gcc warning.
7338 * loader/i386/pc/linux.c (pupa_rescue_cmd_initrd): Declare unused
7339 variables with `__attribute__ ((unused))' to silence a gcc
7340 warning.
7341 * loader/i386/pc/multiboot.c (pupa_multiboot_unload): Make the
7342 local variable i unsigned to silence a gcc warning.
7343
7344 * kern/term.c: Include <pupa/misc.h>.
7345 (pupa_more_lines): New variable.
7346 (pupa_more): Likewise.
7347 (pupa_putcode): When the pager is active pause at the end of every
7348 screen.
7349 (pupa_set_more): New function.
7350 * include/pupa/term.h (pupa_set_more): New prototype.
7351
7352
3b1139cb 73532004-03-07 Yoshinori K. Okuji <okuji@enbug.org>
7354
7355 Now this project is GRUB 2 rather than PUPA. The location of
7356 the CVS repository was moved to GRUB's.
7357
7358 * configure.ac: Use bug-grub as the reporting address.
7359 Use GRUB instead of PUPA.
7360 Change the version number to 1.90.
7361
8367695c 73622004-02-24 Yoshinori K. Okuji <okuji@enbug.org>
7363
7364 * genkernsyms.sh: Updated copyright information.
7365 * genmk.rb: Likewise.
7366 * genmodsrc.sh: Likewise.
7367 * gensymlist.sh: Likewise.
7368 * boot/i386/pc/boot.S: Likewise.
7369 * boot/i386/pc/diskboot.S: Likewise.
7370 * disk/i386/pc/biosdisk.c: Likewise.
7371 * disk/i386/pc/partition.c: Likewise.
7372 * font/manager.c: Likewise.
7373 * fs/ext2.c: Likewise.
7374 * fs/fat.c: Likewise.
7375 * include/pupa/boot.h: Likewise.
7376 * include/pupa/device.h: Likewise.
7377 * include/pupa/disk.h: Likewise.
7378 * include/pupa/dl.h: Likewise.
7379 * include/pupa/elf.h: Likewise.
7380 * include/pupa/err.h: Likewise.
7381 * include/pupa/file.h: Likewise.
7382 * include/pupa/font.h: Likewise.
7383 * include/pupa/fs.h: Likewise.
7384 * include/pupa/kernel.h: Likewise.
7385 * include/pupa/loader.h: Likewise.
7386 * include/pupa/misc.h: Likewise.
7387 * include/pupa/mm.h: Likewise.
7388 * include/pupa/net.h: Likewise.
7389 * include/pupa/normal.h: Likewise.
7390 * include/pupa/rescue.h: Likewise.
7391 * include/pupa/setjmp.h: Likewise.
7392 * include/pupa/symbol.h: Likewise.
7393 * include/pupa/term.h: Likewise.
7394 * include/pupa/types.h: Likewise.
7395 * include/pupa/i386/setjmp.h: Likewise.
7396 * include/pupa/i386/types.h: Likewise.
7397 * include/pupa/i386/pc/biosdisk.h: Likewise.
7398 * include/pupa/i386/pc/boot.h: Likewise.
7399 * include/pupa/i386/pc/console.h: Likewise.
7400 * include/pupa/i386/pc/init.h: Likewise.
7401 * include/pupa/i386/pc/kernel.h: Likewise.
7402 * include/pupa/i386/pc/linux.h: Likewise.
7403 * include/pupa/i386/pc/loader.h: Likewise.
7404 * include/pupa/i386/pc/memory.h: Likewise.
7405 * include/pupa/i386/pc/multiboot.h: Likewise.
7406 * include/pupa/i386/pc/partition.h: Likewise.
7407 * include/pupa/i386/pc/time.h: Likewise.
7408 * include/pupa/i386/pc/vga.h: Likewise.
7409 * include/pupa/i386/pc/util/biosdisk.h: Likewise.
7410 * include/pupa/util/getroot.h: Likewise.
7411 * include/pupa/util/misc.h: Likewise.
7412 * include/pupa/util/resolve.h: Likewise.
7413 * kern/device.c: Likewise.
7414 * kern/disk.c: Likewise.
7415 * kern/dl.c: Likewise.
7416 * kern/err.c: Likewise.
7417 * kern/file.c: Likewise.
7418 * kern/fs.c: Likewise.
7419 * kern/loader.c: Likewise.
7420 * kern/main.c: Likewise.
7421 * kern/misc.c: Likewise.
7422 * kern/mm.c: Likewise.
7423 * kern/rescue.c: Likewise.
7424 * kern/term.c: Likewise.
7425 * kern/i386/dl.c: Likewise.
7426 * kern/i386/pc/init.c: Likewise.
7427 * kern/i386/pc/lzo1x.S: Likewise.
7428 * kern/i386/pc/startup.S: Likewise.
7429 * loader/i386/pc/chainloader.c: Likewise.
7430 * loader/i386/pc/linux.c: Likewise.
7431 * loader/i386/pc/multiboot.c: Likewise.
7432 * normal/cmdline.c: Likewise.
7433 * normal/command.c: Likewise.
7434 * normal/main.c: Likewise.
7435 * normal/menu.c: Likewise.
7436 * normal/i386/setjmp.S: Likewise.
7437 * term/i386/pc/console.c: Likewise.
7438 * term/i386/pc/vga.c: Likewise.
7439 * util/console.c: Likewise.
7440 * util/genmoddep.c: Likewise.
7441 * util/misc.c: Likewise.
7442 * util/pupa-emu.c: Likewise.
7443 * util/resolve.c: Likewise.
7444 * util/unifont2pff.rb: Likewise.
7445 * util/i386/pc/biosdisk.c: Likewise.
7446 * util/i386/pc/getroot.c: Likewise.
7447 * util/i386/pc/pupa-mkimage.c: Likewise.
7448 * util/i386/pc/pupa-setup.c: Likewise.
7449
e6eced71 74502004-02-15 Jeroen Dekkers <jeroen@dekkers.cx>
7451
7452 * fs/ext2.c (pupa_ext2_read_file): Correct the value of BLOCKEND
7453 when it is EXT2_BLOCK_SIZE (data). New argument READ_HOOK, all
7454 callers changed. Set DATA->DISK->READ_HOOK to READ_HOOK before
7455 reading and reset it after reading.
7456 (pupa_ext2_close): Return PUPA_ERR_NONE.
7457
7458 * include/pupa/i386/pc/linux.h (PUPA_LINUX_INITRD_MAX_ADDRESS):
7459 Correct value.
7460 (struct linux_kernel_header): Add kernel_version and
7461 initrd_addr_max.
7462 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Check whether
7463 pupa_file_read succeeds.
7464 (pupa_rescue_cmd_initrd): Implement.
7465
5aded270 74662003-12-03 Marco Gerards <metgerards@student.han.nl>
7467
7468 * fs/ext2.c (pupa_ext2_label): New function.
7469 (pupa_ext2_fs): Added label.
7470 * fs/fat.c (pupa_fat_label): New function.
7471 (pupa_fat_fs): Added label.
7472 * include/pupa/fs.h (struct pupa_fs): Added prototype label.
7473
7474 * kern/misc.c (pupa_strndup): New function.
7475 * include/pupa/misc.h (pupa_strndup): New prototype.
7476
7477 * include/pupa/normal.h: Include <pupa/err.h>.
7478 (pupa_set_history): New prototype.
7479 (pupa_iterate_commands): New prototype.
7480 * normal/cmdline.c: Include <pupa/machine/partition.h>,
7481 <pupa/disk.h>, <pupa/file.h>.
7482 (hist_size): New variable.
7483 (hist_lines): Likewise.
7484 (hist_end): Likewise.
7485 (hist_used): Likewise.
7486 (pupa_set_history): New function.
7487 (pupa_history_get): Likewise.
7488 (pupa_history_add): Likewise.
7489 (pupa_history_replace): Likewise.
7490 (pupa_tab_complete): Likewise.
7491 (pupa_cmdline_run): Added tab completion and history buffer. Tab
7492 completion shows partitionnames while completing partitions, this
7493 feature was suggested by Jeff Bailey.
7494 * normal/command.c (pupa_iterate_commands): New function.
7495 * normal/main.c (PUPA_DEFAULT_HISTORY_SIZE): New macro.
7496 (pupa_normal_init): Initialize history buffer.
7497 (PUPA_MOD_INIT): Likewise.
7498 (pupa_normal_fini): Free the history buffer.
7499 (PUPA_MOD_FINI): Likewise.
7500
7501 * util/console.c (pupa_ncurses_getkey): Accept 127 as backspace
7502 key.
7503
7504 * aclocal.m4 (pupa_I386_CHECK_REGPARM_BUG): New DEFUN.
7505 * configure.ac [i386]: Check for regparam bug.
7506 (NESTED_FUNC_ATTR) [! i386]: Defined.
7507
1f7315a3 75082003-11-17 Marco Gerards <metgerards@student.han.nl>
7509
7510 * conf/i386-pc.rmk (sbin_UTILITIES): Added pupa-emu.
7511 (pupa_setup_SOURCES): Added util/i386/pc/getroot.c.
7512 (pupa_emu_SOURCES): New variable.
7513 (pupa_emu_LDFLAGS): Likewise.
7514 * include/pupa/fs.h (pupa_ext2_init) [PUPA_UTIL]: New prototype.
7515 (pupa_ext2_fini) [PUPA_UTIL]: Likewise.
7516 * include/pupa/normal.h (pupa_normal_init) [PUPA_UTIL]: Likewise.
7517 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
7518 * include/pupa/setjmp.h [PUPA_UTIL]: Include <setjmp.h>.
7519 (pupa_jmp_buf): New typedef.
7520 (pupa_setjmp) [PUPA_UTIL]: New macro.
7521 (pupa_longjmp) [PUPA_UTIL]: Likewise.
7522 * include/pupa/term.h (struct pupa_term): New member `refresh'.
7523 (pupa_refresh): New prototype.
7524 * include/pupa/util/getroot.h: New file.
7525 * kern/misc.c (pupa_vsprintf): Refresh the screen after updating
7526 it.
7527 * kern/rescue.c (pupa_rescue_get_command_line): Likewise.
7528 (pupa_rescue_cmd_cat): Likewise.
7529 (pupa_rescue_cmd_ls): Likewise.
7530 (pupa_rescue_cmd_testload): Likewise.
7531 (pupa_rescue_cmd_lsmod): Likewise.
7532 * normal/cmdline.c (pupa_cmdline_get): Likewise.
7533 * normal/menu.c (run_menu): Likewise.
7534 * kern/term.c (pupa_cls): Likewise.
7535 (pupa_refresh): New function.
7536 * normal/normal.c (pupa_normal_init) [PUPA_UTIL]: New function.
7537 (pupa_normal_fini) [PUPA_UTIL]: Likewise.
7538 * util/console.c: New file.
7539
7540 * util/i386/pc/getroot.c: New file.
7541 * util/i386/pc/pupa-setup.c: Include <pupa/util/getroot.h>.
7542 (pupa_putchar): New function.
7543 (pupa_refresh): Likewise.
7544 (xgetcwd): Function moved to ...
7545 (strip_extra_slashes): Likewise.
7546 (get_prefix): Likewise.
7547 * util/i386/pc/getroot.c: ... here.
7548 (find_root_device): Function moved and renamed to...
7549 * util/i386/pc/getroot.c (pupa_find_root_device): ... here.
7550 Changed all callers.
7551 * util/i386/pc/pupa-setup.c (guess_root_device): Function moved
7552 and renamed to...
7553 * util/i386/pc/getroot.c (pupa_guess_root_device): ... here.
7554 Changed all callers.
7555 * util/misc.c (pupa_memalign): New function.
7556 (pupa_mm_init_region): Likewise.
7557 (pupa_register_exported_symbols): Likewise.
7558 (pupa_putchar): Function removed.
7559 * util/pupa-emu.c: New file.
7560
9a5c1ade 75612003-11-16 Jeroen Dekkers <jeroen@dekkers.cx>
7562
7563 * conf/i386-pc.rmk (pkgdata_MODULES): Add _multiboot.mod.
7564 (_multiboot_mod_SOURCES): New variable.
7565 (_multiboot_mod_CFLAGS): Likewise.
7566 * loader/i386/pc/multiboot.c: New file.
7567 * include/pupa/i386/pc/multiboot.h: Likewise.
7568 * kern/i386/pc/startup.S: Include pupa/machine/multiboot.h.
7569 (pupa_multiboot_real_boot): New function.
7570 * include/pupa/i386/pc/loader.h: Include pupa/machine/multiboot.h.
7571 (pupa_multiboot_real_boot): New prototype.
7572 (pupa_rescue_cmd_multiboot): Likewise
7573 (pupa_rescue_cmd_module): Likewise.
7574
7575 * kern/loader.c (pupa_loader_set): Continue when
7576 pupa_loader_unload_func() fails.
7577 (pupa_loader_unset): New function.
7578 * include/pupa/loader.h (pupa_loader_unset): New prototype.
7579
7580 * kern/misc.c (pupa_stpcpy): New function.
7581 * include/pupa/misc.h (pupa_stpcpy): New prototype.
7582
8e72a9c0 75832003-11-12 Marco Gerards <metgerards@student.han.nl>
7584
7585 * disk/i386/pc/biosdisk.c (pupa_biosdisk_open): Correctly check
7586 for available extensions.
7587
7588 * include/pupa/i386/pc/time.h: New file.
7589 * kern/disk.c: Include <pupa/machine/time.h>.
7590 (PUPA_CACHE_TIMEOUT): New macro.
7591 (pupa_last_time): New variable.
7592 (pupa_disk_open): Flush the cache when there was a timeout.
7593 (pupa_disk_close): Reset the timer.
7594 * kern/i386/pc/startup.S (pupa_get_rtc): Renamed from
7595 pupa_currticks.
7596 * util/misc.c: Include <sys/times.h>
7597 (pupa_get_rtc): New function.
7598
c4adbd32 75992003-11-09 Jeroen Dekkers <jeroen@dekkers.cx>
7600
7601 * fs/ext2.c (struct pupa_ext2_inode): Declare struct datablocks
7602 as blocks.
7603 (pupa_ext2_get_file_block): Use blocks member.
7604
7605 * fs/ext2.c (pupa_ext2_read_file): Only set skipfirst for the
7606 first block. Return -1 instead of pupa_errno on error.
7607
bfd30f06 76082003-10-27 Marco Gerards <metgerards@student.han.nl>
7609
7610 * README: In the pupa-mkimage example use _chain instead of chain
7611 and ext2 instead of fat.
7612 * TODO: Replace ext2fs with jfs as an example. Add an item for
7613 adding journal playback for ext2fs.
7614 * conf/i386-pc.rmk (pupa_setup_SOURCES): Added fs/ext2.c.
7615 (pkgdata_MODULES): Added ext2.mod.
7616 (ext2_mod_SOURCES): New variable.
7617 (ext2_mod_CFLAGS): Likewise.
7618 * include/pupa/err.h (pupa_err_t): Added PUPA_ERR_SYMLINK_LOOP.
7619 * include/pupa/misc.h (pupa_strncpy): New prototype.
7620 (pupa_strcat): Likewise.
7621 (pupa_strncmp): Likewise.
7622 * kern/misc.c (pupa_strcat): Enable function.
7623 (pupa_strncpy): New function.
7624 (pupa_strncmp): Likewise.
7625 * fs/ext2.c: New file.
7626
7627 * kern/disk.c (pupa_disk_read): Set pupa_errno to PUPA_ERR_NONE
7628 when the read failed before retrying.
7629 * util/i386/pc/biosdisk.c (_LARGEFILE_SOURCE): Removed.
7630 (_FILE_OFFSET_BITS): Likewise.
7631 * configure.ac: Added AC_SYS_LARGEFILE.
7632
98d15063 76332003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
7634
7635 * genmk.rb (PModule#rule): Make sure to get only symbol names
7636 from the output of nm.
7637 Reported by Robert Millan <zeratul2@wanadoo.es>.
7638
18d9c7cd 76392003-09-25 Yoshinori K. Okuji <okuji@enbug.org>
7640
7641 I forgot to check in these changes for a long time. This adds
7642 incomplete support for VGA console, and this is still very
7643 buggy. Also, a lot of consideration is required for I18N,
7644 UNICODE, and VGA font issues. Therefore, assume that this is
7645 such that "better than nothing".
7646
7647 * font/manager.c: New file.
7648 * include/pupa/font.h: Likewise.
7649 * include/pupa/i386/pc/vga.h: Likewise.
7650 * term/i386/pc/vga.c: Likewise.
7651 * util/unifont2pff.rb: Likewise.
7652
7653 * conf/i386-pc.rmk (kernel_img_HEADERS): Added machine/vga.h.
7654 (pkgdata_MODULES): Added vga.mod and font.mod.
7655 (vga_mod_SOURCES): New variables.
7656 (vga_mod_CFLAGS): Likewise.
7657 (font_mod_SOURCES): Likewise.
7658 (font_mod_CFLAGS): Likewise.
7659
7660 * include/pupa/err.h (PUPA_ERR_BAD_FONT): New constant.
7661
7662 * include/pupa/term.h: Include pupa/err.h.
7663 (struct pupa_term): Added init and fini.
7664 Changed the argument of putchar to pupa_uint32_t.
7665
7666 * include/pupa/i386/pc/console.h: Include pupa/symbol.h.
7667 (pupa_console_real_putchar): New prototype.
7668 (pupa_console_putchar): Removed.
7669 (pupa_console_checkkey): Exported.
7670 (pupa_console_getkey): Likewise.
7671
7672 * kern/misc.c (pupa_vsprintf): Add support for UNICODE
7673 characters.
7674
7675 * kern/term.c (pupa_term_set_current): Rewritten.
7676 (pupa_putchar): Likewise.
7677 (pupa_putcode): New function.
7678
7679 * kern/i386/pc/startup.S (pupa_console_putchar): Renamed to ...
7680 (pupa_console_real_putchar): ... this.
7681 (pupa_vga_set_mode): New function.
7682 (pupa_vga_get_font): Likewise.
7683
7684 * normal/command.c: Include pupa/term.h.
7685 (terminal_command): New function.
7686 (pupa_command_init): Register the command "terminal".
7687
7688 * normal/menu.c (DISP_LEFT): Changed to a UNICODE value.
7689 (DISP_UP): Likewise.
7690 (DISP_RIGHT): Likewise.
7691 (DISP_DOWN): Likewise.
7692 (DISP_HLINE): Likewise.
7693 (DISP_VLINE): Likewise.
7694 (DISP_UL): Likewise.
7695 (DISP_UR): Likewise.
7696 (DISP_LL): Likewise.
7697 (DISP_LR): Likewise.
7698
7699 * term/i386/pc/console.c (pupa_console_putchar): New function.
7700
977329f5 77012003-02-08 NIIBE Yutaka <gniibe@m17n.org>
7702
7703 * util/resolve.c (pupa_util_resolve_dependencies): BUG
7704 FIX. Reverse the path_list.
7705
7706 * include/pupa/normal.h: Export pupa_register_command and
7707 pupa_unregister_command.
7708
7709 * hello/hello.c (pupa_cmd_hello): New module.
7710 * conf/i386-pc.rmk: Added hello.mod.
7711
1f5ab428 77122003-01-31 Yoshinori K. Okuji <okuji@enbug.org>
7713
7714 * kern/i386/pc/lzo1x.S: New file.
7715
7716 * util/i386/pc/pupa-mkimage.c: Include lzo1x.h.
7717 (compress_kernel): New variable.
7718 (generate_image): Heavily modified to support compressing a
7719 large part of the core image.
7720
7721 * util/misc.c (pupa_util_read_image): Fix a file descriptor
7722 leak.
7723 (pupa_util_load_image): New function.
7724
7725 * kern/i386/pc/startup.S: Include pupa/machine/kernel.h.
7726 (pupa_compressed_size): New variable.
7727 (codestart): Enable Gate A20 here.
7728 Decompress the compressed part of the core image.
7729 Rearrange the code to put functions and variables which are
7730 required for initialization in the non-compressed part.
7731 Include lzo1x.S.
7732
7733 * kern/i386/pc/init.c (pupa_machine_init): Don't enable Gate A20
7734 here.
7735
7736 * include/pupa/util/misc.h (pupa_util_write_image): Declared.
7737
7738 * include/pupa/i386/pc/kernel.h
7739 (PUPA_KERNEL_MACHINE_COMPRESSED_SIZE): New macro.
7740 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): Increased by 4.
7741 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
7742 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
7743 (PUPA_KERNEL_MACHINE_RAW_SIZE): New macro.
7744
7745 * conf/i386-pc.rmk (pupa_mkimage_LDFLAGS): New variable.
7746
7747 * genmk.rb (Image#rule): Put LDFLAGS at the end of a line.
7748 (Utility#rule): Likewise.
7749
7750 * configure.ac: Check if LZO is available.
7751
ce5bf700 77522003-01-20 Yoshinori K. Okuji <okuji@enbug.org>
7753
7754 * include/pupa/normal.h: New file.
7755 * include/pupa/setjmp.h: Likewise.
7756 * include/pupa/i386/setjmp.h: Likewise.
7757 * normal/cmdline.c: Likewise.
7758 * normal/command.c: Likewise.
7759 * normal/main.c: Likewise.
7760 * normal/menu.c: Likewise.
7761 * normal/i386/setjmp.S: Likewise.
7762
7763 * loader/i386/pc/linux.c (pupa_rescue_cmd_linux): Made global.
7764 (pupa_rescue_cmd_initrd): Likewise.
7765
7766 * loader/i386/pc/chainloader.c (pupa_rescue_cmd_chainloader):
7767 Likewise.
7768
7769 * kern/i386/pc/startup.S (translation_table): New variable.
7770 (translate_keycode): New function.
7771 (pupa_console_getkey): Call translate_keycode.
7772
7773 * kern/rescue.c (attempt_normal_mode): New function.
7774 (pupa_enter_rescue_mode): Attempt to execute the normal mode. If
7775 it failed, print a message.
7776
7777 * kern/mm.c (pupa_real_malloc): Print more information when a
7778 free magic is broken.
7779 (pupa_free): If the first free header is not free actually, set
7780 it to P.
7781
7782 * kern/main.c (pupa_load_normal_mode): Just load the module
7783 "normal".
7784 (pupa_main): Don't print the message
7785 "Entering into rescue mode..." here.
7786
7787 * include/pupa/i386/pc/loader.h (pupa_rescue_cmd_initrd):
7788 Declared.
7789 (pupa_rescue_cmd_initrd): Likewise.
7790 (pupa_rescue_cmd_initrd): Likewise.
7791
7792 * include/pupa/symbol.h (FUNCTION): Specify the type.
7793 (VARIABLE): Likewise.
7794
7795 * include/pupa/err.h (pupa_err_t): Added
7796 PUPA_ERR_UNKNOWN_COMMAND.
7797
7798 * include/pupa/dl.h (pupa_dl_set_prefix): Exported.
7799 (pupa_dl_get_prefix): Likewise.
7800
7801 * conf/i386-pc.rmk (pkgdata_MODULES): Added normal.mod.
7802 Added _chain.mod and _linux.mod instead of chain.mod and
7803 linux.mod.
7804 (chain_mod_SOURCES): Renamed to ...
7805 (_chain_mod_SOURCES): ... this.
7806 (chain_mod_CFLAGS): Renamed to ...
7807 (_chain_mod_CFLAGS): ... this.
7808 (linux_mod_SOURCES): Renamed to ...
7809 (_linux_mod_SOURCES): ... this.
7810 (linux_mod_CFLAGS): Renamed to ...
7811 (_linux_mod_CFLAGS): ... this.
7812 (normal_mod_SOURCES): New variable.
7813 (normal_mod_CFLAGS): Likewise.
7814 (normal_mod_ASFLAGS): Likewise.
7815
78162003-01-18 Yoshinori K. Okuji <okuji@enbug.org>
7817
7818 * kern/rescue.c (pupa_rescue_cmd_rmmod): Call pupa_dl_unload, if
7819 possible.
7820
7821 * kern/dl.c (pupa_dl_ref): Refer dependending modules
7822 recursively.
7823 (pupa_dl_unref): Unrefer depending modules recursively.
7824 Don't call pupa_dl_unload implicitly, because PUPA can crash if
7825 a module is unloaded before one depending on that module is
7826 unloaded.
7827 (pupa_dl_unload): Unload depending modules explicitly,
7828 if possible.
7829
c04da074 78302003-01-17 Yoshinori K. Okuji <okuji@enbug.org>
7831
7832 * include/pupa/i386/pc/linux.h: New file.
7833 * loader/i386/pc/linux.c: Likewise.
7834
7835 * loader/i386/pc/chainloader.c (pupa_chainloader_boot_sector):
7836 Removed.
7837 (pupa_chainloader_unload): Return PUPA_ERR_NONE.
7838 (pupa_rescue_cmd_chainloader): Read the image to 0x7C00 instead
7839 of PUPA_CHAINLOADER_BOOT_SECTOR.
7840
7841 * kern/i386/pc/startup.S: Include pupa/machine/linux.h.
7842 (pupa_linux_prot_size): New variable.
7843 (pupa_linux_tmp_addr): Likewise.
7844 (pupa_linux_real_addr): Likewise.
7845 (pupa_linux_boot_zimage): New function.
7846 (pupa_linux_boot_bzimage): Likewise.
7847
7848 * kern/i386/pc/init.c (struct mem_region): New structure.
7849 (MAX_REGIONS): New macro.
7850 (mem_regions): New variable.
7851 (num_regions): Likewise.
7852 (pupa_os_area_addr): Likewise.
7853 (pupa_os_area_size): Likewise.
7854 (pupa_lower_mem): Likewise.
7855 (pupa_upper_mem): Likewise.
7856 (add_mem_region): New function.
7857 (compact_mem_regions): Likewise.
7858 (pupa_machine_init): Set PUPA_LOWER_MEM and PUPA_UPPER_MEM to
7859 the size of the conventional memory and that of so-called upper
7860 memory (before the first memory hole).
7861 Instead of adding each found region to free memory, use
7862 add_mem_region and add them after removing overlaps.
7863 Also, add only 1/4 of the upper memory to free memory. The rest
7864 is used for loading OS images. Maybe this is ad hoc, but this
7865 makes it much easier to relocate OS images when booting.
7866
7867 * kern/rescue.c (pupa_rescue_cmd_module): Removed.
7868 (pupa_enter_rescue_mode): Don't register initrd and module.
7869
7870 * kern/mm.c: Include pupa/dl.h.
7871
7872 * kern/main.c: Include pupa/file.h and pupa/device.h.
7873
7874 * kern/loader.c (pupa_loader_load_module_func): Removed.
7875 (pupa_loader_load_module): Likewise.
7876
7877 * kern/dl.c (pupa_dl_load): Use the suffix ``.mod'' instead of
7878 ``.o''.
7879
7880 * include/pupa/i386/pc/loader.h (pupa_linux_prot_size): Declared.
7881 (pupa_linux_tmp_addr): Likewise.
7882 (pupa_linux_real_addr): Likewise.
7883 (pupa_linux_boot_zimage): Likewise.
7884 (pupa_linux_boot_bzimage): Likewise.
7885
7886 * include/pupa/i386/pc/init.h (pupa_lower_mem): Declared.
7887 (pupa_upper_mem): Likewise.
7888 (pupa_gate_a20): Don't export, because turning off Gate A20 in a
7889 module is too dangerous.
7890
7891 * include/pupa/loader.h (pupa_os_area_addr): Declared.
7892 (pupa_os_area_size): Likewise.
7893 (pupa_loader_set): Remove the first argument. Loader doesn't
7894 manage modules or initrd any longer.
7895 (pupa_loader_load_module): Removed.
7896
7897 * conf/i386-pc.rmk (pkgdata_MODULES): Added linux.mod.
7898 (linux_mod_SOURCES): New variable.
7899 (linux_mod_CFLAGS): Likewise.
7900
a13f9237 79012003-01-07 Yoshinori K. Okuji <okuji@enbug.org>
7902
7903 * util/i386/pc/pupa-setup.c (setup): Convert the endianness of
7904 the length of a blocklist correctly.
7905
7906 * util/i386/pc/biosdisk.c (pupa_util_biosdisk_open) [__linux__]:
7907 Use ioctl only if the OS file is a block device.
7908 (pupa_util_biosdisk_open): Don't use ST.ST_BLOCKS, because it is
7909 not very useful for normal files.
7910
7911 * kern/main.c (pupa_set_root_dev): New function.
7912 (pupa_load_normal_mode): Likewise.
7913 (pupa_main): Call those above.
7914
7915 * include/pupa/types.h (pupa_swap_bytes16): Cast the result to
7916 pupa_uint16_t.
7917
7918 * include/pupa/kernel.h (pupa_enter_normal_mode): Removed.
7919
a5ffe966 79202003-01-06 Yoshinori K. Okuji <okuji@enbug.org>
7921
7922 * util/i386/pc/pupa-setup.c: Include pupa/machine/kernel.h.
7923 (setup): Configure the installed partition information and the
7924 dl prefix.
7925
7926 * loader/i386/pc/chainloader.c (my_mod): New variable.
7927 (pupa_chainloader_unload): New function.
7928 (pupa_rescue_cmd_chainloader): Refer itself.
7929 (PUPA_MOD_INIT): Save its own module in MY_MOD.
7930
7931 * kern/i386/pc/startup.S (install_partition): Removed.
7932 (version_string): Likewise.
7933 (config_file): Likewise.
7934 (pupa_install_dos_part): New variable.
7935 (pupa_install_bsd_part): Likewise.
7936 (pupa_prefix): Likewise.
7937 (pupa_chainloader_real_boot): Call pupa_dl_unload_all.
7938
7939 * kern/i386/pc/init.c: Include pupa/machine/kernel.h, pupa/dl.h
7940 and pupa/misc.h.
7941 (make_install_device): New function.
7942 (pupa_machine_init): Set the dl prefix.
7943
7944 * kern/rescue.c: Include pupa/rescue.h and pupa/dl.h.
7945 (buf): Renamed to ...
7946 (linebuf): ... this.
7947 (pupa_rescue_cmd_prefix): New function.
7948 (pupa_rescue_cmd_insmod): Likewise.
7949 (pupa_rescue_cmd_rmmod): Likewise.
7950 (pupa_rescue_cmd_lsmod): Likewise.
7951 (pupa_enter_rescue_mode): Register new commands: prefix, insmod,
7952 rmmod and lsmod.
7953
7954 * kern/mm.c (pupa_memalign): If failed even after invalidating
7955 disk caches, unload unneeded modules and retry.
7956
7957 * kern/misc.c (pupa_memmove): New function.
7958 (pupa_memcpy): Removed.
7959 (pupa_strcpy): New function.
7960 (pupa_itoa): Made static.
7961
7962 * kern/dl.c (pupa_dl_iterate): New function.
7963 (pupa_dl_ref): Likewise.
7964 (pupa_dl_unref): Likewise.
7965 (pupa_dl_unload): Return if succeeded or not.
7966 (pupa_dl_unload_unneeded): New function.
7967 (pupa_dl_unload_all): Likewise.
7968 (pupa_dl_init): Renamed to ...
7969 (pupa_dl_set_prefix): ... this.
7970 (pupa_dl_get_prefix): New function.
7971
7972 * include/pupa/i386/pc/kernel.h: Include pupa/types.h.
7973 (PUPA_KERNEL_MACHINE_INSTALL_DOS_PART): New macro.
7974 (PUPA_KERNEL_MACHINE_INSTALL_BSD_PART): Likewise.
7975 (PUPA_KERNEL_MACHINE_PREFIX): Likewise.
7976 (pupa_install_dos_part): Declared.
7977 (pupa_install_bsd_part): Likewise.
7978 (pupa_prefix): Likewise.
7979 (pupa_boot_drive): Likewise.
7980
7981 * include/pupa/types.h: Fix a typo.
7982
7983 * include/pupa/misc.h (pupa_memcpy): New macro. Just an alias to
7984 pupa_memmove.
7985 (pupa_memmove): Declared.
7986 (pupa_strcpy): Likewise.
7987
7988 * include/pupa/dl.h (PUPA_MOD_INIT): Change the prototype. Now
7989 pupa_mod_init takes one argument, its own module.
7990 (pupa_dl_unload_unneeded): Declared.
7991 (pupa_dl_unload_all): Likewise.
7992 (pupa_dl_ref): Likewise.
7993 (pupa_dl_unref): Likewise.
7994 (pupa_dl_iterate): Likewise.
7995 (pupa_dl_init): Renamed to ...
7996 (pupa_dl_set_prefix): ... this.
7997 (pupa_dl_get_prefix): Declared.
7998
7999 * fs/fat.c [!PUPA_UTIL] (my_mod): New variable.
8000 (pupa_fat_dir) [!PUPA_UTIL]: Prevent the fat module from being
8001 unloaded.
8002 (pupa_fat_open) [!PUPA_UTIL]: Refer itself if succeeded.
8003 (pupa_fat_close) [!PUPA_UTIL]: Unrefer itself.
8004
8005 * configure.ac (tmp_CFLAGS): Added -Wshadow, -Wpointer-arith,
8006 -Wmissing-prototypes, -Wundef and -Wstrict-prototypes.
8007
012d7999 80082003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
8009
8010 * util/i386/pc/pupa-setup.c (setup): Define the internal
8011 function find_first_partition_start at the top level, because GCC
8012 3.0.x cannot compile internal functions in deeper scopes
8013 correctly.
8014 (find_root_device): Use lstat instead of stat.
8015 Don't follow symbolic links.
8016 Fix the path-constructing code.
8017
8018 * util/i386/pc/biosdisk.c [__linux__] (BLKFLSBUF): New macro.
8019 (pupa_util_biosdisk_open) [__linux__]: Get the size of a device
8020 by a BLKGETSIZE ioctl first, because block devices don't fill
8021 the member st_mode of the structure stat on Linux.
8022 [__linux__] (linux_find_partition): Use a temporary buffer
8023 REAL_DEV for the working space. Copy it to DEV before returning.
8024 (open_device) [__linux__]: Call ioctl with BLKFLSBUF to make the
8025 buffer cache consistent.
8026 (get_os_disk) [__linux__]: Use the length 5 instead of 4 for
8027 strncmp. The previous value was merely wrong.
8028 (pupa_util_biosdisk_get_pupa_dev): Use stat instead of lstat.
8029
8030 * fs/fat.c (pupa_fat_read_data): Shift 4 instead of 12 when the
8031 FAT size is 12. The previous value was merely wrong.
8032
8033 * kern/main.c (pupa_main): Don't split the starting message from
8034 newlines.
8035
8036 * kern/term.c (pupa_putchar): Put CR after LF instead of before
8037 LF, because BIOS goes crazy about character attributes in this
8038 case.
8039
1cc73a62 80402003-01-03 Yoshinori K. Okuji <okuji@enbug.org>
8041
8042 * include/i386/pc/util/biosdisk.h: New file.
8043 * util/i386/pc/biosdisk.c: Likewise.
8044 * util/i386/pc/pupa-setup.c: Likewise.
8045
8046 * Makefile.in (INCLUDE_DISTFILES): Added
8047 include/pupa/i386/pc/util/biosdisk.h.
8048 (UTIL_DISTFILES): Added biosdisk.c and pupa-setup.c under the
8049 directory util/i386/pc.
8050 (install-local): Added a rule for sbin_UTILITIES.
8051 (uninstall): Likewise.
8052
8053 * util/i386/pc/pupa-mkimage.c (usage): Fix a typo in the doc.
8054
8055 * util/misc.c (xrealloc): New function.
8056 (pupa_malloc): Likewise.
8057 (pupa_free): Likewise.
8058 (pupa_realloc): Likewise.
8059 (pupa_stop): Likewise.
8060 (pupa_putchar): Likewise.
8061
8062 * kern/disk.c (pupa_disk_read): Prevent L from underflowing.
8063
8064 * include/pupa/util/misc.h (xrealloc): Declared.
8065
8066 * include/pupa/i386/pc/boot.h (PUPA_BOOT_MACHINE_BPB_START): New
8067 macro.
8068 (PUPA_BOOT_MACHINE_BPBEND): Renamed to ...
8069 (PUPA_BOOT_MACHINE_BPB_END): ... this.
8070
8071 * include/pupa/fs.h [PUPA_UTIL] (pupa_fat_init): Declared.
8072 [PUPA_UTIL] (pupa_fat_fini): Likewise.
8073
8074 * fs/fat.c [PUPA_UTIL] (pupa_fat_init): Defined. Maybe a better
8075 way should be implemented.
8076 [PUPA_UTIL] (pupa_fat_fini): Likewise.
8077
8078 * disk/i386/pc/biosdisk.c (pupa_biosdisk_call_hook): Increase
8079 the size of NAME for safety.
8080 (pupa_biosdisk_iterate): Search hard disks to 0x90 instead of
8081 0x88.
8082
8083 * conf/i386-pc.rmk (sbin_UTILITIES): New variable.
8084 (pupa_setup_SOURCES): Likewise.
8085
8086 * genmk.rb (Utility#rule): Add $(BUILD_CFLAGS) into the rules.
8087
08b70fe8 80882002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
8089
8090 * kern/i386/pc/startup.S (push_get_mmap_entry): Revert to a
8091 bunch of pushl's from pusha, because this destroys the return
8092 value.
8093
62ddcc8f 80942002-12-28 Yoshinori K. Okuji <okuji@enbug.org>
8095
8096 Use -mrtd and -mregparm=3 to reduce the generated code sizes.
8097 This means that any missing prototypes could be fatal. Also, you
8098 must take care when writing assembly code. See the comments at
8099 the beginning of startup.S, for more details.
8100
8101 * kern/i386/pc/startup.S (pupa_halt): Modified for the new
8102 compilation mechanism.
8103 (pupa_chainloader_real_boot): Likewise.
8104 (pupa_biosdisk_rw_int13_extensions): Likewise.
8105 (pupa_biosdisk_rw_standard): Likewise.
8106 (pupa_biosdisk_check_int13_extensions): Likewise.
8107 (pupa_biosdisk_get_diskinfo_int13_extensions): Likewise.
8108 (pupa_biosdisk_get_diskinfo_standard): Likewise.
8109 (pupa_get_memsize): Likewise.
8110 (pupa_get_mmap_entry): Likewise.
8111 (pupa_console_putchar): Likewise.
8112 (pupa_console_setcursor): Likewise.
8113 (pupa_getrtsecs): Use pushl instead of push.
8114
8115 * kern/i386/pc/init.c (pupa_machine_init): Use the scratch
8116 memory instead of the stack for a mmap entry, because some
8117 BIOSes may ignore the maximum size and overflow.
8118
8119 * conf/i386-pc.rmk (COMMON_CFLAGS): Added -mrtd and -mregparm=3.
8120
8121 * genmk.rb (PModule#rule): Compile automatically generated
8122 sources with module-specific CFLAGS as well as other sources.
8123
9962ed99 81242002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
8125
8126 * configure.ac: Check ld.
8127 Replace CFLAGS and CPPFLAGS with BUILD_CFLAGS and BUILD_CPPFLAGS
8128 respectively, before checking endianness and sizes.
8129
8130 * Makefile.in (LD): New variable.
8131
abdfc3c5 81322002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
8133
8134 * Makefile.in (BUILD_CC): CC -> BUILD_CC.
8135
6a161fa9 81362002-12-27 Yoshinori K. Okuji <okuji@enbug.org>
8137
8138 * Changelog: New file.
8139